Oracle to Oracle版本的
平时给客户生产环境部署参考的文档,总结的比较详细,主要是详细的说明了数据初始化的过程,参数各个环境不同,所以只是写了比较简单的,根据实际条件添加吧。
1. 前期准备
1.1. 系统层面
windows需要安装c\c++ 2005运行库
1.2. 数据库层面
运行full-DB_CheckOracle.sql 查看结果,检查是否有不支持的对象
2. 源端数据库配置
2.1. 开启归档模式
检查源端数据库是否为归档模式
SQL>archive log list;
若为非归档模式,在数据库mount状态下将其改为归档模式
SQL> alter database archivelog;
确认归档已经开启
SQL>archive log list;
2.2. 开启库级别最小附加日志
检查源端数据库附加日志是否打开
SQL>select supplemental_log_data_min from v$database;
打开数据库附件日志
SQL>alter database add supplemental log data;
切换日志以使附加日志生效
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
或
SQL>alter system switch logfile;
确认最小附加日志已经打开
select supplemental_log_data_min from v$database;
2.3. 创建GoldenGate专有用户
创建goldengate表空间:
SQL>create tablespace goldengate datafile '/oracle/oracle/oradata/ora11/goldengate.dbf' size 100m;
注:不开启DDL的话源端goldengate不会在数据库中创建任何表,存储任何数据,所以这个表空间给较少空间即可
创建goldengate用户并授权:
SQL>create user goldengate identified by goldengate default tablespace goldengate;
给用户授权:
如果客户对于权限管理不严格,直接赋予DBA权限即可:
SQL>grant dba to goldengate;
如果管理严格请参考各版本OGG文档进行授权
注:如开启DDL必须需要DBA权限
3. 源端部署GoldenGate
3.1. 下载并将GoldenGate上传到服务器
Linux\Unix传到Oracle用户即可,windows传到Oracle的安装用户下
3.2. 配置环境变量
主要配置以下三个变量:
ORACLE_SID ORACLE_HOME LD_LIBRARY_PATH(LINUX环境)
其中D_LIBRARY_PATH写ogg的安装目录
export LD_LIBRARY_PATH=/ggs/11.0:$LD_LIBRARY_PATH
3.3. 配置启动mgr
windows环境需要加入到服务中
.\install addservice
./ggsci
create subdirs
配置mgr参数
edit params mgr
port 7809
DYNAMICPORTLIST 7840-7898
autostart er *
autorestart er *, retries 5, waitminutes 3
PURGEOLDEXTRACTS ./dirdat/*,USECHECKPOINTS, MINKEEPDAYS 7
启动mgr
start mgr
确认mgr启动成功
info all
3.4. 增加trandata
ggsci登录到数据库
dblogin userid goldengate,password goldengate
增加trandata
add TRANDATA ajdbo.passenger
确认trandata添加成功
info trandata ajdbo.passenger
在数据库中确认已经添加trandata的表
select * from dba_log_groups where owner='xxx' and table_name='xxx';
3.5. 配置、启动extract进程
增加extract进程
add extract ext_ynkg, tranlog, begin now
增加exttrail
add exttrail ./dirdat/ld,extract ext_ynkg, MEGABYTES 100
配置extract进程
edit params ext_ynkg
EXTRACT ext_ynkg
SETENV(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID goldengate, PASSWORD goldengate
TRANLOGOPTIONS EXCLUDEUSER goldengate
EXTTRAIL ./dirdat/ld
--GETTRUNCATES
--GETUPDATEBEFORES
EOFDELAY 3
NUMFILES 5000
DISCARDFILE ./dirrpt/ext_ynkg.dsc, APPEND, MEGABYTES 1000
DYNAMICRESOLUTION
table ajdbo.passenger;
talle ajdbo.channel;
table ajdbo.validate_info;
table ajdbo.bord_info;
启动extract进程
start ext_ynkg
确认进程启动成功
info ext_ynkg
3.6. 获取基准SCN
3.6.1. 方法一
如果客户环境归档保留的比较多,则可采用这种方法:
首先确认系统中最早的transaction的启动时间
sql> select min(start_time) from gv$transaction;
MIN(START_TIME)
--------------------
02/08/16 19:21:38
之后在指定extract进程的begin时间时,指定一个比这个早的时间,让extract从这里开始抽取:
add extract <ext_name> tranlog threads 2 begin 2016-02-08 19:20:00
最后再查询当前SCN号
select current_scn from v$database;
则该SCN则为基准SCN(SCN3),如使用导入导出的方法,这个SCN即为最终确定的SCN时间点,如果使用RMAN则最终RMAN恢复的SCN要大于等于这个SCN。
3.6.2. 方法二
如果客户环境归档保留的比较少,则可采用这种方法
查询当前SCN号(SCN1)
select current_scn from v$database;
查看当前数据库系统中最早transaction