第一部分 先配置单向同步(含DDL)
一 源端安装GoldenGate
-
创建用户
创建目录
mkdir -p /opt/ogg
chmod -R 777 /opt/ogg
chown -R oracle:oinstall /opt/ogg
?
ogg用户????
useradd -g oinstall -G dba ggate
?
-
解压软件
-
设置环境变量
配置goldengate用户变量
su – ggate
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=prm
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/u01/app/oracle/ggate
export GGATE=/opt/ogg
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$PATH:$ORACLE_HOME/bin:$GGATE
-
安装GoldenGate
????图形化安装方法中,在software location部分选择环境变量中GGATE的值,不过要注意给GGATE目录适当的权限;
????Database Location部分就是ORACLE_HOME的值。
二 目标端安装GoldenGate
-
创建用户
创建目录
mkdir -p /opt/ogg
chmod -R 755 /opt/ogg
chown -R oracle:oinstall /opt/ogg
?
ogg用户????
useradd -g oinstall -G dba ggate
-
解压软件
-
设置环境变量
配置goldengate用户变量
su – ggate
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=prm
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/u01/app/oracle/ggate
export GGATE=/opt/ogg
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$PATH:$ORACLE_HOME/bin:$GGATE
-
安装GoldenGate
????图形化安装方法中,在software location部分选择环境变量中GGATE的值,不过要注意给GGATE目录适当的权限;
????Database Location部分就是ORACLE_HOME的值。
三 配置源端数据库
-
开启归档
开启归档
修改之前 创建参数文件做备份
?
create pfile=‘/home/oracle/initdemo.ora‘ from spfile;
alter system set log_archive_dest=‘/arch/prm‘ scope=spfile; --修改归档的路径
---alter system set db_recovery_file_dest=‘‘ scope=spfile; --关闭闪回
shutdown immediate;
startup mount;
alter database archivelog;
archive log list;
alter database open;
-
设置数据库force logging
实际生产应用中,最好同时打开ORACLE的强制日志模式,以防止源数据库因直接路径加载忽略redo生成而导致这部分数据无法同步:
SQL> select force_logging from v$database;
SQL> Alter database force logging;
?
-
开启最小附加日志(DDL的话好开启数据库级别)
Oracle数据库需要开启归档日志,并开启最小附加日志模式。
SQL> select supplemental_log_data_min from v$database; --查看是否开启了最小附加日志模式
SQL> alter database add supplemental log data;
--开启最小附加日志模式
?
千万不要小看这步日志设置,其实在GoldenGate的配置中,这步是最容易出错的环节。如果开启DDL复制做冗灾备份,最好直接在数据库级别打开补全日志:
SQL> alter database add supplemental log data (primary key,unique,foreign key) columns;
检查一下,全是YES就OK了(整个数据库级别补全)
SQL> select supplemental_log_data_min,
supplemental_log_data_pk,supplemental_log_data_ui from v$database;
-
源库关闭回收站
SQL>?show?parameter?recyclebin??
SQL>?alter?system?set?recyclebin=off scope=spfile;
SQL>shutdown immediate;
SQL>startup;
SQL>?show?parameter?recyclebin
?
-
UNDO设置
alter?system?set?undo_retention=86400;??
-
创建goldengate用户并且授权
创建表空间、用户、赋予dba权限
create tablespace ogg datafile ‘/u01/app/oracle/oradata/prm/ogg01.dbf‘ size 1024M;
create user ggate identified by ggate default tablespace ogg temporary tablespace temp;
grant connect,resource,unlimited tablespace to ggate;
grant connect,resource,dba to ggate;
grant execute on utl_file to ggate;
grant select any dictionary,select any table to ggate;
grant alter any table to ggate;
grant flashback any table to ggate;
grant execute on DBMS_FLASHBACK to ggate;
grant insert any table to ggate;
grant delete any table to ggate;
grant update any table to ggate;
?
运行DDL同步需要的脚本
cd $GGATE
@marker_setup.sql;
@ddl_setup.sql;
@role_setup.sql;
grant GGS_GGSUSER_ROLE to ggate;
@ddl_enable.sql;
?
安装性能优化包。
SQL> @?/rdbms/admin/dbmspool
?
ddl_pin将触发器用到的plsql包放进内存中
cd $GGATE??
SQL>[email protected]_pin?ggate
?
-
添加传输表【transdata】
光开启最小附加日志模式还不够,还需要打开表级的补全日志,可以在ogg的安装配置 配置双向同步(含DDL)