 | 使用 TelCo 应用程序模拟一个 TelCo 环境
如果您在上一个实践步骤中关闭了 vmware 映像,请参考该实践的 “重启 IBM
solidDB Universal Cache” 部分。
现在您已经准备好将数据装载到每个数据库中,并观察它如何复制到对应的目标数据库。Telco 应用程序可用于:
- 将大量数据装载到数据库中
- 根据数据库中的数据运行许多不同的事务类型,并显示 TPS(事务/秒)信息
TelCo 应用程序已经根据本教程进行了调整。您可以在本教程的实践例子中以多种方式使用它。这些程序是使用 Data Studio 开发的。本教程的包中包含了源代码和运行时代码(见 下载)。
将数据装载到后端数据库
您将使用 Telco 应用程序向后端数据库中的两个表插入一些行。您将观察到这些行如何被复制到对应的目标数据库。
- 打开一个新的终端窗口,并切换到 “solid” 用户。
- 运行 Telco 应用程序插入例程,通过以下命令向后端数据库插入 10 个 HLR_SUBS 和一些随意的 VLR 行:
Insert.sh [number of HLR_SUBS rows] [database type] [port number] |
图 44. 插入 10 个 HLr_SUBS 记录
注意:如果插入的行数少于 10,就可以看到输出到屏幕上的数据。添加的 VLR 行的数量是变化的。
在本教程中,应用程序为这两个表在每个数据行内记录特定的审计数据。这两个表都有两个列,它们能够帮助您查看发生在特定数据行上的插入或更新的来源。‘process id’ 标识由哪个进程更新行,‘upserter’ 标识需要更新行的数据库。
- 使用以下命令手动检查插入到后端数据库的行(或使用您喜欢的方法询问数据库):
db2 CONNECT TO sample;
db2 select IMSI ,MSISDN ,VLR_NUMBER ,COUNTRY_CODE ,PID ,UPSERTER from TUT.hlr_subs ;
db2 select IMSI ,MSISDN ,PID ,UPSERTER from TUT.vlr;
|
图 45. 检查 DB2 中的行
- 使用以下命令手动检查插入到前端数据库的行(或使用您喜欢的方法询问数据库):
solsql -a SOLDB soluser solpwd
select IMSI ,MSISDN ,VLR_NUMBER ,COUNTRY_CODE ,PID ,UPSERTER from TUT.hlr_subs ;
select IMSI ,MSISDN ,PID ,UPSERTER from TUT.vlr;
exit ;
|
图 46. 检查 solidDB 中的行
现在,solid 数据库中拥有插入到 DB2 后端数据库中的行。
- 使用 Values.sh shell 脚本进一步检查和理解如何填充行。
您将看到以下结果。仅将 10 行插入到 DB2 之后,您可以看到,两个数据库中的数据都来源于 DB2 后端数据库。
图 47. 为两个数据库检查行数
设置在 Management Console 上收集到的统计数据的显示方式
在大量加载数据之前,有必要演示如何在 Management Console 上查看数据。
- 在选择 Monitoring 和 Subscription 选项卡之后,右键单击 DB2_SOLID 订阅,然后选择 Show Statistics。完成之后,将出现如下所示的统计数据面板:
图 48. 显示统计数据
- 为了在两个订阅中都设置收集统计数据,首先要确保鼠标停留在上边订阅面板的 DB2_SOLID 订阅上。
- 在数据统计面板中,单击 Collect statistics 选项卡。
- 现在,要确保鼠标停留在上边订阅面板的 SOLID_DB2 订阅上。
- 在数据统计面板中,单击 Collect statistics 选项卡。
将数据装载到前端数据库
我们已经将 10 个行插入到后端数据库,并复制到前端数据库。接下来,我们将更大量的数据插入到 solidDB 前端数据库。
在这个实践中,您首先装载一个包含 10000 个 HLR_SUBS 行和相关 VLR 记录的 solidDB 数据库。
- 使用 TelCo 应用程序将 10,000 个行插入到 solidDB 数据库中:
Insert.sh 10000 solid 1315
|
图 49. 将 10,000 个行插入到 solidDB 数据库中
- 使用 Values 脚本检查已复制的数据:
图 50. 检查已复制的数据
- 在 Management Console 中,为每个订阅点击 Operations/s 查看吞吐量图表。
图 51. 查看吞吐量图表
- 使用 TelCo 应用程序将 10,000 个行插入到 DB2 数据库:
Insert.sh 10000 db2 50002
|
图 52. 将 10,000 个行插入到 DB2 数据库
- 使用 Values 脚本检查已复制的数据:
图 53. 检查已复制的数据
- 还有一个 Counts 脚本,它将在任何数据库中显示这两个表的计数。使用以下命令运行 Counts 脚本:
图 54. 在两个数据库中查看行数
使用 Telco 应用程序根据每个数据库运行事务
Telco 应用程序可用于根据数据执行一系列事务,以及收集计时统计数据。附录 B 提供这段代码模拟的特定事务类型的细节(见 下载 中的 PDF 文档 “样例应用程序细节”)。
还可以从 Data Studio 运行 Telco 应用程序(参见附录 B 了解更多信息)。
- 使用 solid 数据库中的数据在 Transaction 模式下运行 TelCo 应用程序,以根据数据库模拟 10,000 个事务。命令的使用如下所示:
Transact.sh [number of HLR_SUBS rows] [database type] [port number]
Transact.sh 10000 solid 1315
|
图 55. 根据 solidDB 模拟 10,000 个事务
- 使用 Values 脚本检查已复制的数据:
图 56. 检查复制
- 可以按照以上方式对 solid 使用完全编译的 ‘c’ 代码可执行文件。运行以下命令,将获得的结果与上面第一步获得的结果进行对比:
TelcoApC [number of Transactions to take place] [port number]
TelcoApC 10000 1315
|
图 57. 针对 solidDB 模拟 10,000 个事务
- 使用 Values 脚本检查已复制的数据:
在两个数据库上运行并发事务
在这个步骤中,您将有两个针对数据库运行事务的会话。其中一个会话根据前端数据库运行,另一个会话根据后端数据库运行。将在这两个数据库之间发生双向复制。
- 打开一个新的终端窗口,并切换到 “solid” 用户。
- 运行 Transact 脚本对 DB2 数据库执行 2000 个事务:
Transact.sh 2000 db2 50002
|
确保在完成第一个步骤之后才开始第二个步骤。
- 在上面的事务针对 DB2 数据库运行时,从原来的终端中运行 Transact 脚本来针对 solid 数据库同时运行一组事务:
Transact.sh 2000 solid 1315
|
- 这两个步骤完成之后,使用 Values 脚本检查已复制的数据:
- 使用 Counts 脚本在两个数据库上检查这两个表的计数:
|  |