下面我们来看一个简单的例子,利用Oracle SOTA 实现hello world同步这个例子是在源库为ora9i上创建一张表为scott.test_hello,该表有一个字段,向表内插入一条hello world的记录,利用SOTA把源库产生的交易传递给目标库windos。测试时SOTA使用的作业为ebs001,源数据库为ora9i,目标数据库只有1个且名称为windos。
操作步骤如下:
1)搭建测试环境
2)利用SOTA实现hello world 同步
详细操作请参考下面信息。
2.测试环境 测试软硬件配置表:
设备与软件名称 | 描述 | 数量 |
电脑 | 电脑操作系统为windows/linux, 安装有sql server /SOTA及sotatest软件 | 至少1台 |
oracle数据库 | 源数据库与备数据库 | 2 |
SOTA | 数据库同步系统 | 1 |
sota_test | 数据库同步测试程序 | 1 |
3.配置测试环境
3.1安装源数据库服务器和备数据库服务器。
3.2配置tnsnames.ora文件
在装有SOTA程序主机上配置tnsnames.ora文件。配置tnsnames.ora文件流程:
1.找到存放tnsnames.ora的路径 | ****/network/admin/tnsnames.ora |
2.编辑更改tnsnames.ora文件 | EBS = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.88)(PORT = 10010)) <!----描述配置客户端信息, PROTOCOL是协议,HOST主机IP地址,PORT端口号—oracle 默认1521,EBS系统server端设置的是10010,端口号必须与服务端设置相同-------> <!----客户端名由用户自定义命名-----> (CONNECT_DATA = (SERVER = DEDICATED) <!----连接模式: DEDICATED专用服务器连接, shared共享服务器连接----> (SERVICE_NAME = PORCLI) <!---服务端数据库名字-----必须是安装数据库起的名字一致> ) ) |
3.3配置SOTA程序
请参照如何配置SOTA系统3.4启动源数据库与备数据库并建立各自的监听
下面介绍一下用命令行启动流程:第一步:打开命令行虚拟终端;目前大部分用户使用的操作系统是windows和linux。在windows使用cmd命令启动虚拟终端,在linux下找到应用程序下的附近中的终端用单击鼠标左键即可打开虚拟终端。
第二步:使用sqlplus /nolog命令登录数据库;该模式是使用无用户无密码登录。进入到sqlplus后显示SQL>表示可以输入sql命令了。
第三步:使用conn /as sysdba命令表示以数据库管理员登录;
第四步:使用startup命令启动数据库;
第五步:使用!lsnrctl start命令来建立监听。
实例:
wothink@wothink-desktop:~/meta/output$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Mar 1 15:04:14 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba;
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1035993088 bytes
Fixed Size 1223272 bytes
Variable Size 134219160 bytes
Database Buffers 893386752 bytes
Redo Buffers 7163904 bytes
Database mounted.
Database opened.
SQL> !lsnrctl start
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 01-MAR-2013 15:19:17
Copyright (c) 1991, 2005, Oracle. All rights reserved.
TNS-01106: Listener using listener name LISTENER has already been started
SQL>
3.5启动sota系统
下面介绍以下启动sota系统流程:Sota系统启动的组件和顺序:先启动oBus进程,再启动oPlanner进程,sucker/parser/load这三个进程必须在oBus与oPlanner存在的情况下启动,这三个进程启动的无先后顺序。
关于sota系统的启动流程请参考图sota_start 。
操作过程 | 操作界面 |
运行sotaCC程序,如右所示输入start,启动服务进程 | *************SOTA CONTROL CENTER MENU************* start| START -- Start SotaServer stop | STOP -- Stop SotaServer sj | SJ -- Start One Job pj | PJ -- Stop One Job qj | QJ -- Query JobInfo cjd | CJD -- Clear Job Data lic | LIC -- License Control q | Q -- QUIT *************SOTA CONTROL CENTER MENU************* Input==>start |
如右输入1,启动oBus | *************SOTA Start Server MENU ********************** 1--Start oBus 2--Start oPlanner q-- QUIT *************SOTA Start Server MENU ****************** Please input Your StartServer Cmd=>1 |
如右输入2,启动oPlanner | *************SOTA Start Server MENU ********************** 1--Start oBus 2--Start oPlanner q-- QUIT *************SOTA Start Server MENU ****************** Please input Your StartServer Cmd=>2 |
如右输入q,返回上层菜单 | *************SOTA Start Server MENU********************** 1--Start oBus 2--Start oPlanner q-- QUIT *************SOTA Start Server MENU********************** Please input Your StartServer Cmd=>q |
如右输入sj,启动作业进程 | *************SOTA CONTROL CENTER MENU************* start| START -- Start SotaServer stop | STOP -- Stop SotaServer sj | SJ -- Start One Job pj | PJ -- Stop One Job qj | QJ -- Query JobInfo cjd | CJD -- Clear Job Data lic | LIC -- License Control q | Q -- QUIT *************SOTA CONTROL CENTER MENU************* Input==>sj |
如右输入a,一次性启动oSucker/oParser/oLoader作业组件 或者输入1/2/3一个一个启动组件 | **********SOTA Start Job Component MENU ************** a--Start All Components of a Job 1--Start Sucker of a Job 2--Start Parser of a Job 3--Start Loader of a Job q-- QUIT **********SOTA Start Job Component MENU ************** Please input Your Option=> a |
4.SOTA实现hello world
4.1在源数据库中产生hello world
使用sqlplus在源数据库中先创建一张表:SQL> create table scott.test_hello(str varchar2(20));
Table created.
向表中添加数据:
SQL> insert into scott.test_hello values('hello world');
1 row created.
在目标数据库中查看hello world
使用sqlplus在目标数据库中查看是否有scott.test_hello表,然后查看表中是否有hello world 数据。
SQL> select owner,table_name from all_tables where owner='SCOTT' and table_name='TEST_HELLO';
OWNER TABLE_NAME
------------------------------ ------------------------------
SCOTT TEST_HELLO
目标库中存在表scott.test_hello。
操作描述 | sqlplus显示 | 结果 |
查看源库 scott.test_hello的表结构: | SQL> desc scott.test_hello; Name Null? Type ----------------------------------------- -------- ---------------------------- STR VARCHAR2(20) | |
查看目标库 scott.test_hello的表结构: | SQL> desc scott.test_hello; Name Null? Type ----------------------------------------- -------- ---------------------------- STR VARCHAR2(20) | 说明目标数据库与源库中的表结构一致。 |
查看源库的scott.test_hello表数据 | SQL> select * from scott.test_hello; STR -------------------- hello world | |
查看目标库的scott.test_hello表数据 | SQL> select * from scott.test_hello; STR -------------------- hello world | 说明源库与备库的数据一致。 |
从上述结果可以看出在ora9i库中所做的操作,全部同步到了目标库windos上。Sota系统完成了数据库的同步。
如果有疑问请咨询沃信科技公司的技术人员,有兴趣着请登录沃信科技网站了解相关的内容。