ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1
exportORACLE_HOME
ORACLE_SID=oradb1
exportORACLE_SID
GG_HOME=/opt/ggs/goldengate
exportGG_HOME
PATH=\$ORACLE_HOME/bin:
\$PATH
exportPATH
LD_LIBRARY_PATH=\$ORACLE_HOME/lib:
\$GG_HOME:
\$LD_LIBRARY_PATH
exportLD_LIBRARY_PATH
EOF
应用刚刚修改的环境变量,然后进入GoldenGate安装目录,执行lddggsci,确定需要的库文件都能够找到。
如果出现共享库文件无法找到,例如libnnz10.so=>notfound,检查LD_LIBRARY_PATH环境变量的设置
[goldengate@linuxgggoldengate]$source~/.bashrc
[goldengate@linuxgggoldengate]$cd$GG_HOME
[goldengate@linuxgggoldengate]$lddggsci
libdl.so.2=>/lib64/libdl.so.2(0x00000037a3900000)
libicui18n.so.38=>/opt/ggs/goldengate/libicui18n.so.38(0x0000002a9558c000)
libicuuc.so.38=>/opt/ggs/goldengate/libicuuc.so.38(0x0000002a958ec000)libicudata.so.38=>/opt/ggs/goldengate/libicudata.so.38(0x0000002a95c25000)
libpthread.so.0=>/lib64/tls/libpthread.so.0(0x00000037a3d00000)
libxerces-c.so.28=>/opt/ggs/goldengate/libxerces-c.so.28(0x0000002a968fc000)
libnnz10.so=>/opt/app/oracle/product/10.2.0/db_1/lib/libnnz10.so(0x0000002a96e13000)
libclntsh.so.10.1=>/opt/app/oracle/product/10.2.0/db_1/lib/libclntsh.so.10.1(0x0000002a972b4000)
libstdc++.so.6=>/usr/lib64/libstdc++.so.6(0x00000037a5d00000)
libm.so.6=>/lib64/tls/libm.so.6(0x00000037a3700000)
libgcc_s.so.1=>/lib64/libgcc_s.so.1(0x00000037a5b00000)
libc.so.6=>/lib64/tls/libc.so.6(0x00000037a3400000)
/lib64/ld-linux-x86-64.so.2(0x00000037a3000000)
libnsl.so.1=>/lib64/libnsl.so.1(0x00000037a9100000)
3.5数据库方面的准备
3.5.1在源端数据库中打开归档模式
SQL>archiveloglist
Databaselogmode ArchiveMode
Automaticarchival Enabled
Archivedestination +RECOVERY_DG
Oldestonlinelogsequence 120
Nextlogsequencetoarchive 121
Currentlogsequence 121
若处于非归档模式,则改为归档模式:
SQL>shutdownimmediate
Databaseclosed.
Databasedismounted.
ORACLEinstanceshutdown.
SQL>startupmount;
ORACLEinstancestarted.
SQL>alterdatabasearchivelog;
Databasealtered.
SQL>alterdatabaseopen;
Databasealtered.
SQL>
3.5.2在源端数据库中打开forcelogging
SQL>selectforce_loggingfromv$database;
FOR
---
NO
SQL>alterdatabaseforcelogging;
Databasealtered.
SQL>selectforce_loggingfromv$database;
FOR
---
YES
3.5.3在源端数据库中打开supplementallog
SQL>selectsupplemental_log_data_minfromv$database;
SUPPLEME
--------
NO
SQL>alterdatabaseaddsupplementallogdata;
Databasealtered.
切换日志,使更改生效
SQL>altersystemswitchlogfile;
Systemaltered.
SQL>selectsupplemental_log_data_minfromv$database;
SUPPLEME
--------
YES
3.5.4在源端数据库中关闭回收站
官方的说明是,由于一个已知的问题,回收站会对DDL触发器产生影响,因此需要关闭。
由此可见,我们只需要在源库中关闭回收站即可。
SQL>showparameterrecyclebin
NAMETYPEVALUE
-----------------------------------------------------------------------------
recyclebinstringon
SQL>altersystemsetrecyclebin=off;
Systemaltered.
SQL>showparameterrecyclebin
NAMETYPE
--------------------------------------------------------------------
VALUE
------------------------------
recyclebinstring
OFF
3.5.5确保goldengate能够连接到数据库的ASM实例
RAC中所有节点都要配置
在源端TNSNAMES.ORA中配置ASM实例信息
vi$ORACLE_HOME/network/admin/tnsnames.ora
ORADB_ASM=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=db1-vip)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=db2-vip)(PORT=1521))
(LOAD_BALANCE=yes)
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=+ASM)
)
)
在源端LISTENER.ORA中配置ASM实例的相关信息
vi$ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER_DB1=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=oradb)
(ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1)
(SID_NAME=oradb1)
)
(SID_DESC=
(GLOBAL_DBNAME=+ASM)
(ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1)
(SID_NAME=+ASM1)
)
)
上面是db1中的配置,db2中的SID_LIST_LISTENER_xxx和SID_NAME要相应修改
重启监听
lsnrctlreload
通过sqlplussys/xxx@oradb_asmassysdba来连接asm实例,能连上则说明配置成功
3.5.6字符集
1.目标数据库的字符集必须是源数据库字符集的超集
2.数据库字符集必须为客户端应用程序字符集的超集
SQL>SHOWPARAMETERNLS_LANGUAGE
NAMETYPEVALUE
-----------------------------------------------------------------------------
nls_languagestringSIMPLIFIEDCHINESE
SQL>SHOWPARAMETERNLS_TERRITORY
NAMETYPEVALUE
-----------------------------------------------------------------------------
nls_territorystringCHINA
SQL>SELECTname,value$fromSYS.PROPS$WHEREname='NLS_CHARACTERSET';
NAME
------------------------------
VALUE$
--------------------------------------------------------------------------------
NLS_CHARACTERSET
ZHS16GBK
SQL>SHOWPARAMETERNLS_LENGTH_SEMANTICS
NAMETYPEVALUE
-----------------------------------------------------------------------------
nls_length_semanticsstringBYTE
SQL>
设置终端的字符集:
root用户登录,源(db1和db2)和目标端都做
cat>>/etc/bash