SharePlex实施文档以及常见故障Word文件下载.docx
《SharePlex实施文档以及常见故障Word文件下载.docx》由会员分享,可在线阅读,更多相关《SharePlex实施文档以及常见故障Word文件下载.docx(35页珍藏版)》请在冰豆网上搜索。
$./SharePlex-8.6.6-b64-oracle110-rh-40-amd64-m64.tpm
1.2ora_setup配置
--配置shareplex,配置时如果需要自定义复制的源与目标端的ORACLE_SID,那么需要配置tnsnames.ora别名,且/etc/oratab中必须有对应于自定义的tnsnames别名的ORACLE_SID。
1.3sp_cop-u2300&
启动
[splexlocalhost~]exportSP_SYS_HOST_NAME=cluster1vip可以使用该参数指定shareplex启动到指定的IP上,可以使用netstat-an|grep<
port_number>
--启动-u可以启动shareplex实例到指定端口,可以复制多个库。
1.4sp_ctrl控制台
SharePlex日常操作都在sp_ctrl控制台中进展,启动命令为:
/<
prodir>
/bin/sp_ctrl,一般启动之后首先进入控制台执行sp_ctrl>
stoppost,停顿。
1.5config配置文件
Config配置文件为复制链路需要复制对象以及链路映射文件。
sp_ctrl>
listconfig
verifyconfig
activateconfig<
file_name>
filename>
[threads-n][nolock]--加nolock不锁表,如果在一定时间获取锁失败,那么继续往下进展
activate尽量执行两次,确保成功,可以同时tail-f<
event_log>
查看执行情况。
config配置样例以及配置规那么:
datasource:
o.wahaha
#sourcetablestargettablesroutingmap
#splex.demo_srcsplex.demo_desttarget_systemo.target_sid
--target_sid为目标端的sid或别名。
Ø
splex.demo_src--源库的用户名.表名,可以使用%通配符,全匹配半匹配等。
priv%not(table_name)排除表。
splex.demo_dest--目标库的用户名.表名
target_systemo.target_sid--目标库的IP或hosts文件中映射名为目标端的sid或别名。
hr.testhr.test192.168.204.151:
scott_tabo.honor1--IP或主机名后加冒号,可以为该表复制单独起一个队列。
mary.cust2!
key(c1,c2)mary.cust2prodao.sid--自定义pk
1.6analyzeconfig<
config_name>
--可以分析config,生成报表,分析数据库表操作频繁记录等。
2.SharePlex常用操作
2.1copy命令
命令说明:
会将目标先truncate掉,然后再利用expdp加constraint=y参数导出再导入,如果你不想truncate目标端的原有同步数据那么你需要使用另一个命令append
copy命令可实现单表或表分区的同步,不适合大批量表的同步。
使用要求:
目标端启动launcher:
sp_ctrl>
startlauncher――默认端口是2501
同步的表出现在已激活的配置文件中。
目标端的复制表所属用户需先建立,copy可以创立表构造,但要求表空间不变,所以建议先建好表构造再复制。
语法如下:
copyowner.tablename[attarget_host]
如果一样的对象复制到不同的主机,需加attarget_host选项,源端和目标端的用户名或者表名不一致的话还需参加目标端的owner.tablename。
检查源端的copy状态:
copystatusall
copystatus<
jobid>
查看job细节
cancel<
可以取消job,一般针对长时间waitfor的job
当日志积累多了不方便查看时,可去除日志:
源端去除日志:
clearhistoryall
目标端去除:
cdvardir/log;
rmsync_clt*log
2.2pare与repair
如果发现或疑心源端和目标端的表数据不一致,可以通过pare命令查看和修复。
但由于pare需要把比拟的数据排序,然后逐条比拟,大量数据的比拟可能会导致资源的过量使用,所以不建议对大量数据的比拟。
paretableowner.tabletoowner.tabletargettarget_hosto.targetsid[repair]
比拟表分区:
paretableowner.tablep1toowner.tablep1targettarget_hosto.targetsid[repair]
直接修复在后面加上repair,不加repair参数那么将可用于修复的SQL语句生成在日志文件中。
查看比拟进度:
showpare[detail]
取消比拟:
parecancelid<
id>
去除比拟日志:
removelogpareid<
或者removelogpareall
可以指定pare使用其他端口,不指定那么随机选端口:
paretableowner.tablep1toowner.tablep1targettarget_hosto.targetsid[repair]port2500
2.3param设置参数
listparamall--列出所有参数。
setparam--设置参数
listparammodified--查看被修改的参数
shareplex安装目录说明:
/bin包含可执行程序的符号连接
/.app_modules包含可执行程序
/data默认参数文件,包含默认的参数设置
/doc空目录
/installSharePlex安装、license管理等相关的脚本
/libSharePlex应用到的库文件
/utilSharePlex工具,SQL脚本,监控脚本等
2.4去除当前复制
shutdown
$env|grepSP_SYS_VARDIR--一定要在去除之前确认清理的实例正确。
执行下条语句之前一定确认上述参数正确,防止清理掉正在使用的实例。
$ora_cleanupsplex/splex
2.5SharePlex实用参数命令
exportSP_SYS_VARDIR=/splex/vardir--类似ORACLE_SID,指定splex使用指定的队列配置文件等等。
exportSP_SYS_HOST_NAME–在启动sp_cop之前设置,指定SharePlex启动在指定的IP上,在RAC安装时需要注意此选项。
setparamSP_OPO_DISABLE_OBJECT_NUM<
源端object_ID>
--在目标端设置。
抛弃指定表。
r202--执行上条命令20次,两秒一次。
helptarget
targeto.orclsetmetadatatime:
sp_time.op:
sp_op--可以在目标端增加列,写入时间戳与DML语句行为。
helptargetsetmetadatatime
2.6忽略大事务的操作
过大的事务复制可能会遇到问题,所以建议所有大于1000万数据DML操作事务,分成多批次mit,并建议不要对一样表做并行的大事物操作。
在有的场景下可能不希望源端的某些修改复制到目标端,比方源端去除历史数据而目标端需要保存等。
具体步骤如下:
源端,在数据库中以shareplex用户执行util目录下的create_ignore.sql,该脚本创立了SHAREPLEX_IGNORE_TRANSprocedure;
只需执行一次。
在执行大的事务前先执行这个procedure,即可忽略对该事务(从这个存储过程至下一个mit之间的所有DML操作)的复制,如:
SQL>
conntest/test
execsplex.shareplex_ignore_trans;
insertintotb1values(100,'
aaa'
);
mit;
2.7修改SharePlex的数据库用户密码
SharePlex数据库用户的密码还存在于SharePlex参数文件中,不能简单的在数据库中更改,需要执行SharePlex提供的脚本进展,具体步骤如下。
对每个环境都单独列出了详细步骤。
a.源端stopcapture进程,观察SharePlex队列中数据都已应用到目标端;
b.shutdown源端和目标端的SharePlex;
c.执行prod/bin目录下的ora_chpwd命令来自动改变存储在数据库中和paramdb文件中的密码。
●生产环境:
dcdb02:
/oracle$ora_chpwd
Thisprogramallowsyoutochangethepasswordofthe
SharePlexuseraccountneededtorunOraclereplication.
Inresponsetoprompts,acarriagereturnwillchoosethe
defaultgiveninbrackets.Ifthereisnodefault,areplymustbeentered.
PleaseentertheSIDwhereSharePlexisinstalled[dl2]:
emptyresponse--tryagain:
splex
注意:
在此处不要使用本地的实例名,要输入TNS别名,然后回车;
Inordertochangethepa