SharePlex操作手册
第2章 建立SharePlex的复制环境
2.1. 初始化同步
2.1.1. 为什么要初始化同步?
SharePlex在开始进行复制工作之前,一定要保证生产中心系统和目标系统的数据
库一致,包括所有需要复制的表结构和表里的数据必须一致。而对于一个新建的目标系统来说,数据库里没有用户数据或者连数据库也未安装,因此,初始化同步是必须的。
2.1.2. 初始化同步的方法
因为系统已经上线,所以需要在线完成初始化同步。
本例中通过RMAN备份方式进行在线初始化同步,步骤详见《SharePlex实施手册》。
2.2. 启动SharePlex
生产中心系统和目标系统都需要启动SharePlex,启动的方式相同。
启动SharePlex即启动SharePlex的主进程,首先以SharePlex产品和队列文件所有者(缺省为Oracle用户)的身份登录,然后进入到product_dir/bin目录下,其中product_dir为SharePlex的安装目录,在该目录下运行如下命令启动SharePlex主进程:
$ export EXTSHM=ON -- for AIX system $ sp_cop &
$ unset EXTSHM -- for AIX system
其中$为UNIX提示符
针对XXXX的系统情况:
启动SharePlex: 以oracle用户登录 $ sp_cop &
$ ps -ef |grep sp_ 检查进程运行情况
关闭SharePlex $ sp_ctrl
sp_ctrl> shutdown
Quest Professional Services, 4/2/2015 6
SharePlex操作手册
2.3. 建立SharePlex的配置文件
SharePlex的配置文件实际上是一个基于ASCII的文本文件,必须按照一定的格式将所有需要复制的表增加到这个文件里,它不但确定了SharePlex要复制哪些内容,而且还确定了复制的目的地。
2.3.1. SharePlex配置文件的格式
以下是一个具体的SharePlex配置文件,通过它来说明配置文件的结构以及含义:
Datasource:o.sourceSID
source_owner.table target_owner.table targetsystem@o.targetSID
文件中粗体显示的部分是配置文件的关键字,不能改变。其中sourceSID是生产中心系统Oracle的SID;targetSID是目标系统Oracle的SID;targetsystem是目标系统主机名(IP地址亦可)。
文件的第一行信息代表生产中心系统Oracle的SID,从第二行之后代表要复制的表,一行信息对应一个表,它包括三部分内容:
该表在生产中心系统中的模式用户名以及表名; 该表在目标系统中的模式用户名以及表名; 路由信息。
有时为提高post性能,需要创建多个post队列,要确认不同post队列中的表没有严格的依赖关系。因为在同一post队列中的表的操作顺序SharePlex可以保证,但不同队列的数据是分别处理的,所以无法严格保证队列间的先后顺序。
source_owner.table target_owner.table targetsystem:app@o.targetSID 如上所示,这个表通过post队列”app”进行处理。
2.3.2. 建立SharePlex配置文件的方法
有两种方法建立SharePlex的配置文件。一种是手工编辑,一种是利用SharePlex的工具自动生成。
手工编辑的方法
(1)进入到生产中心系统$product_dir/bin目录下,其中$product_dir为SharePlex的安装目 录;
(2)在该目录下运行sp_ctrl进入SharePlex的控制台: $sp_ctrl
其中$为UNIX提示符
(3)在控制台下运行create config filename
Quest Professional Services, 4/2/2015 7
SharePlex操作手册
sp_ctrl(Source)> edit config filename
其中filename为配置文件名,该命令使UNIX系统激活vi的环境,Windows系统激活写字版程序,然后进行文字编辑,编辑完成后保存配置文件,UNIX系统中用wq命令保存文件并退出vi环境,Windows系统用file菜单下的save选项保存,然后退出写字版程序;
用SharePlex工具自动生成配置文件
配置文件也可以用SharePlex提供的工具自动生成。自动生成需要遵循以下步骤:
(1)进入生产中心系统的product_dir/util目录下; 其中product_dir为SharePlex的安装目录);
(2)编辑config.sql文件,保证只有需要复制的用户下的表被复制而且只有需要复制的用户下的序列被复制;
(3)进入生产中心系统SharePlex配置文件所在的目录; $ cd Variable_dir/config
其中Variable_dir为SharePlex队列所在目录;
(4)启动Sqlplus 并运行config.sql脚本; $ sqlplus SYSTEM/systempassword SQL> @product_dir/util/config.sql
其中product_dir为SharePlex产品的安装目录;
(5)在出现 'Name of the Target machine --> '提示时输入目标系统的主机名(IP地址亦可),然后回车;
(6)在出现'Source Database Sid --> '提示时输入生产中心系统数据库的SID,然后回车;
(7)在出现'Target Database Sid --> '提示时输入目标系统数据库的SID,然后回车;
(8)在出现'Replicate Sequences (y/n) --> '提示时输入y,然后回车;
(9)在出现'SharePlex oracle username --> '提示时输入SharePlex配置数据库时建立的模式用户名(缺省为SPLEX),然后回车;
(10)脚本运行完成后,会在/Variable_dir/config目录下自动生成SharePlex的配置文件config.file,该文件不用进行任何修改。
2.4. 激活配置文件
配置文件只有被激活之后才能生效。激活配置文件一定要加live选项,建议在业务较少的时候进行,激活前确认数据库无长时间不释放的锁。以下是激活配置文件的步骤:
(1)进入生产中心系统SharePlex的控制台;
进入到product_dir/bin目录下运行sp_ctrl,其中product_dir为SharePlex的安装目录; Quest Professional Services, 4/2/2015 8
SharePlex操作手册
$sp_ctrl
其中$为UNIX提示符
(2)运行如下命令激活配置文件;
sp_ctrl(Source)> activate config filename live 其中filename为配置文件名
(3)此时,复制链路已经建立,应用程序可以在生产中心系统运行。
第3章 SharePlex复制链路的监控
为了保障SharePlex复制链路的稳定运行,需要定期地做SharePlex的监控。
3.1. 查看进程的状态
按照如下的方法分别在生产中心系统和目标系统启动SharePlex的控制台:
进入到product_dir/bin目录下运行sp_ctrl,其中product_dir为SharePlex的安装目录; $sp_ctrl
其中$为UNIX提示符
在控制台下键入status,将显示SharePlex正在运行的进程和进程的状态。
sp_ctrl (Source:2200)> show
Brief Status for Source
Process State PID Running Since --------------- ------------------------------ -------- --------------------
Capture Running 18593 04-Oct-08 11:31:51 Read Running 18596 04-Oct-08 11:31:51 Export Running 28910 05-Oct-08 17:17:40
注意各个进程的state一项是否都处在running状态。
目标系统SharePlex进程的正常运行状态如下:
sp_ctrl (target:2200)> show
Brief Status for Target
Process State PID Running Since --------------- ------------------------------ -------- --------------------
Import Running 19849 05-Oct-08 17:18:30 MTPost Running 19830 05-Oct-08 17:17:50
注意各个进程的state一项是否都处在running状态。
Quest Professional Services, 4/2/2015 9
SharePlex操作手册
3.2. 查看status库
查看status库,了解有没有SharePlex的报错信息,包括有没有不同步(out of sync)的现象发生。
sp_ctrl (Souce:2200)> show statusdb
Status Database for Target
Status Database:
Status Id Date Log Level Count Clear? Condition --------- --------------- ------------ ----- ------ --------------------
23 05-Oct-08 17:17 Info 1 No System status Reason: SharePlex has been started
32 12-Oct-08 14:31 Info 1 No Activating a config Reason: config.file
Status库中的信息对诊断问题很有帮助。
3.3. 查看Log日志
应该定期的检查SharePlex的日志,看看日志中有没有出错或报警信息。这些信息对诊断问题很有帮助。
SharePlex日志很多,我们应该定期检查的日志是:
variable_dir/log/event.log(其中variable_dir为SharePlex队列文件所在的目录)
3.4. 查看队列文件的空间占用
应该定期的检查队列文件所在的磁盘的剩余空间是否足够大。队列文件所在的磁盘剩余空间不足会导致SharePlex复制链路中断。
3.5. 查看归档日志空间占用
应该定期的检查归档日志空间是否足够大。队列文件所在的磁盘剩余空间不足会引起Oracle数据库挂起从而导致SharePlex复制链路中断。
Quest Professional Services, 4/2/2015 10