1 ORACLE数据复制方案环境要求
1.1 操作系统环境要求
1.1.1 磁盘要求
- 数据库为集群方式。要安装Oracle GoldenGate 二进制文件和其他文件到共享阵列。
- 数据库为主备HA方式。要安装Oracle GoldenGate 二进制文件和其他文件到共享阵列。
- 复制软件本身的大小为200 MB左右。
- 为Oracle GoldenGate trails分配足够的磁盘空间,一般与GoldenGate分配到同一文件系统。
- 这些trails文件占用的磁盘空间依赖于处理的数据量大小,根据Trail文件的保存期限进行设置。说明如下:
Trail文件可以位于Oracle GoldenGate安装的本地驱动器上,它们也可以位于NAS或者SAN设备上。对于存储在源端的那些trails文件,应该有足够的空间处理网络连接失败时的数据累积。在典型配置下,第二个extract进程(data pump)通过网络从本地trail发送数据,当网络连接中断,发送将失败。然而,读事务日志并且写到本地trail的主extract进程将继续。这个extract进程不应该因失败而停止,因此应该有足够的磁盘空间来容纳数据累积。
- 在目标端的安装位置与空间建议与源端相同。
估算trail需要的空间的方法
- 估算网络不可用的最长时间。
- 估算商业应用程序每小时生成多少事务日志。
- 使用下面的公式计算需要的磁盘空间
[每小时的日志量] x [宕机小时数] x .4 = trail需要的磁盘空间
这个等式使用百分之四十是因为Oracle GoldenGate大约只需要一个事务日志中百分之四十的数据。
注意:这个公式只是一个保守的估算,应该在配置好Oracle GoldenGate后,做测试来决定trail文件需要的准确空间。
1.1.2 TCPIP的配置要求
- 配置系统使用TCP/IP 服务,包括
- 配置运行Oracle GoldenGate进程的所有系统的主机名或者IP地址,以及Oracle GoldenGate将要连接的系统的主机名或者IP地址。建议使用主机名。
- Oracle GoldenGate使用下列TCP/IP 端口:
Manager process 和other Oracle GoldenGate processes通讯端口.
端口范围:默认端口范围是从7840开始或者可以自定义256个其它端口.
具体TCP/IP端口的分配参见国网下发的具体文档。
1.1.3 操作系统用户及权限要求
- 在unix上安装Oracle GoldenGate ,用户必须有读写Oracle GoldenGate安装目标的权限。
- 在windows上安装Oracle GoldenGate ,用户必须以Administrator 登录系统。
- Oracle GoldenGate 进程需要一个有权限读、写和删除Oracle GoldenGate目录下的文件和子目录的操作系统用户。此外,Manager进程用户需要有权限控制Oracle GoldenGate进程。
- 推荐这些操作系统用户给Oracle GoldenGate专用。
1.2 对ORACLE数据库环境的要求
1.2.1 对数据/对象和操作的支持
支持的数据类型
Numeric data types
- NUMBER
- BINARY FLOAT
- BINARY DOUBLE
Character data types
- CHAR
- VARCHAR2
- LONG
- NCHAR
- NVARCHAR2
Multi-byte character types
- NCHAR and NVARCHAR2 multi-byte character data types
- Multi-byte data stored in CHAR and VARCHAR2 columns
Binary data types
- RAW
- LONG RAW
Date and timestamp data types
- DATE
- TIMESTAMP
Large object data types
- CLOB
- NCLOB
- BLOB
XML data types
- XMLType(Oracle 9i及以上)
User defined types (objects)
GoldenGate 支持UDT(user defined types)类型,要求源和目标必须有相同的结构,Schema可以不同。
Other supported data types
- ROWID
- VARRAY
- INTERVAL DAY 和 INTERVAL YEAR,要求目标必须大于等于源
不支持的数据类型
- ORDDICOM
- ANYDATA
- ANYDATASET
- ANYTYPE
- BFILE
- MLSLABEL
- TIMEZONE_ABBR
- TIMEZONE_REGION
- URITYPE
- UROWID
支持的对象和操作
对象 | 是否支持 | 说明 |
Clusters | 支持 | |
Functions | 支持 | |
Indexes | 支持 | |
Packages | 支持 | |
Procedure | 支持 | |
Tables | 支持 | 包括字段,约束 |
Tablespaces | 支持 | |
Roles | 支持 | |
Sequences | 支持 | |
Synonyms | 支持 | |
Triggers | 支持 | |
Types | 支持 | |
Views | 支持 | |
materialized views | 支持 | |
Users | 支持 |
数据类型排查脚本
该脚本用于排查现有源数据库中是否用到GoldenGate不支持的数据类型。
1.2.2 数据库配置
- 源数据库必须开启归档模式。
- Oracle GoldenGate需要读取数据库的在线和归档日志,需要保留一定时间以内的数据库系统产生的日志,这个时间间隔不要少于数据复制可能落后生产库操作的最长时间。
- 对于Oracle RAC环境,必须保证GoldenGate能够访问到每个节点存放的归档日志文件。
1.2.3 数据库用户
- 需要创建一个数据库用户来管理Oracle GoldenGate(例如:ggs) 。需要连接到一个数据库上的所有Oracle GoldenGate进程可以使用同一用户 :
- Extract (源数据库)
- Replicat (目标数据库)
- DEFGEN (源数据库或目标数据库)
- 为了保护数据的安全与精确地监控Oracle GoldenGate 进程,不允许其他用户、应用系统,或者进程以Oracle GoldenGate数据库用户登录或操作。
- 分配系统管理员权限(DBA)给运行Extract的数据库用户。
GRANT DBA TO GGS;
- 要运行Replicat至少授予数据库用户如下权限:
- CONNECT到目标数据库
- SELECT系统视图目录
- 在目标数据库表可以SELECT, INSERT, UPDATE, 和 DELETE
建议赋予DBA的权限。
2 系统环境现状检查与调整
2.1 操作系统现状检查与调整
分类 | 项目 | 目标 | 现状检查 | 系统调整步骤 | 备注 |
操作系统 | 磁盘要求 | 见3.1.1磁盘需求 | 1. 主备方式
2. 已经分配了磁盘空间 |
不需要 | |
TCPIP网络配置 | 见3.1.2 TCPIP的配置要求 | 1. 满足配置要求 | 不需要 | ||
用户和权限 | 见3.1.3操作系统用户及权限要求 | 1. ORACLE实例用户已经存在
2. 还未建立OGG安装目录 |
1. 使用数据库实例用户,不需要另外定义新用户
2. 由数据库管理员创建GGS软件安装目录:/ggsfs mkdir /ggsfs; 修改目录的属主和属组为数据库实例用户及所在的组oracle:dba 3. 说明:请确认已按照安装准备要求将OGG所在的文件系统放置在阵列上,可以提高性能和高可用性。 |
2.2 ORACLE数据库检查与调整
分类 | 项目 | 目标 | 现状检查 | 系统调整步骤 | 备注 |
数据库准备 | 检查源库是否存在不支持的对象 | 发现不支持的对象 | 1. 检查源数据库
参见3.2.1排查脚本 |
没有发现不支持的对象。如果发现有不支持的对象,应从OGG参数文件中将该对象删除。 | |
检查数据库日志参数
|
确保日志处于归档状态 | 1. 连接到ORACLE数据库:
2. SQL> SELECT LOG_MODE FROM V$DATABASE; |
如果没有开启归档模式,按照如下步骤开启归档模式。
1. SQL> SHUTDOWN IMMEDIATE 2. SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST=’/U01/archive’; 3. SQL> STARTUP MOUNT; 4. SQL> ALTER DATABASE ARCHIVELOG; 5. SQL> ALTER DATABASE OPEN; 6. SQL> ARCHIVE LOG LIST; |
||
归档日志路径 | 确认归档日志的路径 | 检查归档路径,对于RAC环境必须保证可以访问到每个节点的归档文件。 | |||
检查日志保留策略 | 确保在系统上保留一定时间段内的归档日志 | 当前日志的备份策略需要保留一定时间以内的数据库系统产生的日志,这个时间间隔不要少于数据复制可能落后生产库操作的最长时间。 | 满足。
如果不满足。需要进行调整。 |
||
确认源表的DATA_CAPTURE状态 | 确保源表必要的数据可以被同步工具捕获 | 确认源数据库是否开启附加日志
SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE; |
如果没有开启,按照如下步骤开启附加日志。
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE; |
||
数据表准备 | 去掉目标表的约束 | 去掉trigger,cascade delete/update约束 | 在目标数据库初始化之后,未开启OGG复制进程之前,执行此步骤。 | ||
3 数据复制方案的部署
3.1 网省端软件安装
1、使用Oracle用户(如非此用户,请自行取代,下同)通过ftp上传GGS软件并解压缩:
tar zxvf *.gz
或者分两步解压:
gunzip *.gz 或 gzip –d *.gz
tar xvf *.gz
2、创建子目录,上传参数文件
在数据库服务器上创建文件系统:/ggsfs(小写),大小10G(营销系统除外), GoldenGate安装目录统一为:/ggsfs(小写)
队列文件存放在本地,存放目录为/ggsfs/dirdat
- a) 在/ggsfs目录下运行GGS命令行控制界面:
./ggsci
- b) 在GGS命令行界面下创建子目录:
GGSCI> create subdirs
- c) 通过ftp上传参数文件mgr, ext*, dpe*到dirprm文件夹中。
3.2 容灾中心端软件安装
1、使用Oracle用户(如非此用户,请自行取代,下同)通过ftp上传GGS软件并解压缩:
tar zxvf *.gz
或者分两步解压:
gunzip *.gz 或 gzip –d *.gz
tar xvf *.gz
2、创建子目录,上传参数文件
在数据库服务器上创建文件系统:/ggsfs(小写),大小10G(营销系统除外), GoldenGate安装目录统一为:/ggsfs(小写)
- a) 在/ggsfs目录下运行GGS命令行控制界面:
./ggsci
- b) 在GGS命令行界面下创建子目录:
GGSCI> create subdirs
- c) 通过ftp上传参数文件mgr, rep*到dirprm文件夹中。
3.3 网省端数据链路的配置和启动
1、在源数据库创建GoldenGate用户
sqlplus / as sysdba
sql>create user ggs identified by xxx default tablespace xx(表空间名)temporary tablespace xx(表空间名);
sql>grant dba to ggs;
2、GOLDENGATE进程的配置
- a) 配置mgr进程
GGSCI>edit param mgr
GGSCI>start mgr
Manager started.
- b) 为需要抽取数据的schema增加trandata
GGSCI>dblogin userid ggs, password xxx
GGSCI>add trandata schema.*
- c) 配置源端extract进程
GGSCI>edit param dpeXX
—下面的命令在进行数据库备份之前执行
GGSCI>add ext extXX, tranlog, begin now
EXTRACT added.
GGSCI>add exttrail /ggsfs/dirdat/XX, ext extXX, megabytes 50
EXTTRAIL added.
- d) 配置源端datapump进程
GGSCI>edit param dpeXX
GGSCI>add ext dpeXX, exttrailsource /ggsfs/dirdat/XX
EXTRACT added.
GGSCI>add rmttrail /ggsfs/dirdat/XX, ext dpeXX, megabytes 50
RMTTRAIL added.
3、启动源端进程
- a) 启动源端抓取进程:
GGSCI>start er *
- b) 查看源端进程状态:
GGSCI>info er *
RUNNING
RUNNING
注:若目标端mgr进程未启动,则该步骤无法启动dpe*进程,需等目标端mgr进程启动后再启动。
3.4 容灾中心数据链路的配置和启动
1、在目标数据库创建GoldenGate用户
以管理员用户登录oracle数据库
sqlplus / as sysdba
sql>create user ggs identified by xxx default tablespace xx(表空间名)temporary tablespace xx(表空间名);
sql>grant dba to ggs;
2、 配置MGR进程
GGSCI>edit param mgr
GGSCI>start mgr
Manager started.
3、配置检查点
GGSCI>EDIT PARAMS ./GLOBALS
文件名:GLOBALS,内容如下:
CHECKPOINTTABLE ggs.ggschkpt
GGSCI> EXIT
Shell> ggsci
GGSCI> DBLOGIN USERID ggs, PASSWORD xxx
GGSCI> ADD CHECKPOINTTABLE
4、配置目标端复制进程
GGSCI>edit param repXX
GGSCI>add rep repXX, exttrail /ggsfs/dirdat/XX
REPLICAT added.
—下面的命令在进行数据库完全恢复之后执行
GGSCI>start repXX
REPLICAT REP* starting
5、查看目标端进程状态
GGSCI>info er *
RUNNING
3.5 Oracle RMAN初始化步骤
在数据初始化的过程中,不需要源数据库停机。
注意:
一定要保证所有交易是在extract启动之后开始的再启动备份!
否则,可能某些交易开始早于Extract启动,其数据变化无法捕捉。可以通过查看(g)V$TRANSACTION中的最小的START_TIME,与extract启动时间做对比。如果比extract启动时间时间早就需要再等一段时间,否则就可以开始备份了。
0、清除过期的归档日志
$rman target /
RMAN>
run {
crosscheck backupset;
delete expired backup;
}
1、源端和目标端安装OGG软件,并启动manager
2、源端配置OGG的Extract及DataPump
3、源端启动Extract进程以及DataPump进程
4、使用oracle用户登录,执行rman备份
$rman target /
RMAN>
run {
crosscheck backupset;
delete expired backup;
crosscheck archivelog all;
backup incremental level 0 filesperset 1 format ‘/u01/oracle/rmanbk/hpdb_full_%s%t%p.dbf’ database;
sql ‘alter system archive log current’;
}
RMAN>
run {
backup format ‘/u01/oracle/rmanbk/hp_archiveloghp_%s%t%p.dbf’ archivelog all delete input;
}
=================================
RMAN>
backup format ‘/u01/oracle/rmanbk/hpdb_ctlfile_%s%t%p.dbf’ current controlfile;
LIST BACKUP OF CONTROLFILE;
List of Backup Sets
=================================
BS Key Type LV Size Device Type Elapsed Time Completion Time
——- —- — ———- ———– ———— —————
72 Incr 0 11M DISK 00:00:34 01-DEC-10
BP Key: 72 Status: AVAILABLE Tag: TAG20101201T185001
Piece Name: /u01/oracle/rmanbk/hpdb_full_727366278761.dbf
Controlfile Included: Ckp SCN: 218216 Ckp time: 01-DEC-10
BS Key Type LV Size Device Type Elapsed Time Completion Time
——- —- — ———- ———– ———— —————
75 Full 11M DISK 00:00:03 01-DEC-10
BP Key: 75 Status: AVAILABLE Tag: TAG20101201T185358
Piece Name: /u01/oracle/rmanbk/hpdb_ctlfile_757366280381.dbf
Controlfile Included: Ckp SCN: 218562 Ckp time: 01-DEC-10
在源机执行
SQL>select * from v$log;
SQL>set line 200
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM
———- ———- ———- ———- ———- — —————- ————- ———
1 1 23 104857600 1 NO CURRENT 218512 01-DEC-10
2 1 22 104857600 1 YES ACTIVE 218422 01-DEC-10
3 2 17 104857600 1 NO CURRENT 218503 01-DEC-10
4 2 16 104857600 1 YES INACTIVE 218412 01-DEC-10 (*)
获取不活动的归档日志的最后一个SCN号,如果有多个INACTIVE的组,取最大的FIRST_CHANGE#,这里取218412
记录该SCN号
将备份文件,FTP到目标机
========================================
hpux2:/u01/oracle$ ftp 192.168.1.27
Connected to 192.168.1.27.
220 hpux_dr FTP server (Revision 4.0 Version wuftpd-2.6.1 Wed Jun 18 07:11:14 GMT 2008) ready.
Name (192.168.1.27:oracle): oracle
331 Password required for oracle.
Password:
230 User oracle logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /u01/oracle/rmanbk
250 CWD command successful.
ftp> lcd /u01/oracle/rmanbk
Local directory now /u01/oracle/rmanbk
ftp> bin
200 Type set to I.
ftp> prompt
Interactive mode off.
ftp> mput hp*
===============================================
5、使用oracle用户登录目标机执行恢复
在目标机建立相同的目录结构,并正确设置:ORACLE_BASE,ORACLE_HOME,ORACLE_SID环境变量。
拷贝源机init{ORACLE_SID}.ora文件到目标机
cp $ORACLE_HOME/dbs/initorcl.ora 目标机对应目录
生成口令文件或者copy $ORACLE_HOME/dbs/PWD{ORACLE_SID}
6、启动数据库到nomount状态
sqlplus ‘/ as sysdba’
SQL>startup nomount
7、启动RMAN恢复控制文件
rman target /
RMAN>restore controlfile from ‘/u01/oracle/rmanbk/hpdb_ctlfile_757366280381.dbf’;
8、将数据库更改为mount状态
sqlplus ‘/ as sysdba’
SQL>alter database mount;
9、启动RMAN恢复数据库
rman target /
RMAN>restore database;
RMAN> list backup;
查找最小的SCN号,推荐使用上面记录的SCN号,例如:218412
RMAN>
run
{
set archivelog destination to ‘/u01/arch’;
SET UNTIL SCN 218412;
RECOVER DATABASE;
–SHUTDOWN IMMEDIATE;
}
9-1、(备选)如果源端为RAC,目标端为单机,需将目标机改为单机模式
删除多余的redolog group
SQL> select THREAD#, STATUS, ENABLED from v$thread;
THREAD# STATUS ENABLED
———- —— ——–
1 OPEN PUBLIC
2 CLOSED PRIVATE
SQL> select group# from v$log where THREAD#=2;
GROUP#
———-
4
5
6
SQL> alter database disable thread 2;
Database altered.
SQL> alter database drop logfile group 4;
alter database drop logfile group 4
*
ERROR at line 1:
ORA-00350: log 4 of instance racdb2 (thread 2) needs to be archived
ORA-00312: online log 4 thread 2: ‘/u01/oracle/oradata/ractest/log/redo04.log’
SQL> alter database clear unarchived logfile group 4;
Database altered.
SQL> alter database drop logfile group 4;
Database altered.
SQL> alter database drop logfile group 5;
Database altered.
SQL> alter database drop logfile group 6;
Database altered.
SQL> select THREAD#, STATUS, ENABLED from v$thread;
THREAD# STATUS ENABLED
———- —— ——–
1 OPEN PUBLIC
删除多余UNDO表空间
SQL> show parameter undo;
NAME TYPE VALUE
———————————— ———– ——————————
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> select tablespace_name from dba_tablespaces where contents=’UNDO’;
TABLESPACE_NAME
——————————
UNDOTBS1
UNDOTBS2
SQL> drop tablespace UNDOTBS2 including contents and datafiles;
Tablespace dropped.
如果源数据库为Oracle9i,因为RMAN时不备份TEMP表空间,需重新创建TEMP表空间
SQL> create temporary tablespace TEMP tempfile ‘/u01/temp.dbf’ size 500M;
Tablespace created.
SQL> alter database default temporary tablespace TEMP;
Database altered.
10、目标端打开数据库
alter database open resetlogs;
11、将目标数据库的触发器及约束禁止掉
脚本参见4.2节中“去掉目标表的约束”
12、目标端启动Replicat进程
start replicat,aftercsn 218412
3.6 Oracle EXPDP/IMPDP初始化步骤
在数据初始化的过程中,不需要源数据库停机。
1、源端和目标端安装OGG软件,并启动manager
2、源端配置OGG的Extract及DataPump
3、源端启动Extract进程以及DataPump进程
4、创建directory用于执行数据泵操作
–directory path for store dump file
CREATE OR REPLACE DIRECTORY DATA_PUMP AS ‘E:\OGG\data’;
grant read ,write on DIRECTORY DATA_PUMP to ggs ;
–users to execute expdp
grant read ,write on DIRECTORY DATA_PUMP to sglaw ;
5、源端获取数据库当前的SCN
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
————————
3079975
注意:
一定要保证所有交易是在extract启动之后开始的,再选这个SCN!
否则,可能某些交易开始早于Extract启动,其数据变化无法捕捉。可以通过查看(g)V$TRANSACTION中的最小的START_TIME,与extract启动时间做对比。如果比extract启动时间时间早就需要再等一段时间,否则就可以开始备份了。
6、源端数据导出
在源端OS系统中执行数据导出,导出用户名、dmp文件名自行修改,导出完成后ftp至目标端datapump目录
expdp sglaw/sglaw directory=DATA_PUMP dumpfile=<dp_sglaw.dmp> flashback_scn=<scn>
—以下在目标端执行
7、创建directory用于执行数据泵操作,同时给ggs以及导入用户赋权
–directory path for store dump file
CREATE OR REPLACE DIRECTORY DATA_PUMP AS ‘/ggsfs/data’;
grant read ,write on DIRECTORY DATA_PUMP to ggs ;
grant read ,write on DIRECTORY DATA_PUMP to <sglaw>;
8、目标端导入数据
— 以下操作在OS中执行,具体用户名与导入dmp文件名视具体情况而定
impdp sglaw/sglaw DUMPFILE=DATA_PUMP:DP_SGLAW.DMP
9、将目标数据库的触发器及约束禁止掉
脚本参见4.2节中“去掉目标表的约束”
10、目标端启动复制进程
GGSCI > start repa3, aftercsn 3079975
3.7 检查各个进程的状态和报告
GGSCI > view ggsevt
GGSCI > info er *
GGSCI > status er *
GGSCI > view report extXX
GGSCI > view report dpeXX
GGSCI > view report repXX
3.8 设置进程自动重启及HA切换
针对网络中断、数据库停机等异常情况,可在GOLDENGATE TDM软件的mgr进程 参数文件中设置自动重启参数,在无需人工干预的情况下重启抽取及复制进程。
mgr参数文件如下:
port 7809
–autostart er *
autorestart er *, waitminutes 3, retries 15
在HA环境下,需要在HA脚本中添加启动GoldenGate的命令:
sh start_mgr.sh
脚本start_mgr.sh的内容:
cd /ggsfs/dirpcs
rm -f *
cd /ggsfs
./ggsci << EOF
start mgr
EXIT
EOF
详细内容参见附件
4 GoldenGate参数文件样例
4.1 源端参数文件
4.1.1 manager参数文件
文件名:mgr.prm,内容如下:
PORT 7839
DYNAMICPORTLIST 7840-7914
AUTOSTART ER *
AUTORESTART ER *, WAITMINUTES 2, RETRIES 5
PURGEOLDEXTRACTS /ggsfs/dirdat/*, USECHECKPOINTS, minkeepdays 7
4.1.2 extract参数文件
文件名:exee.prm,内容如下:
EXTRACT exee
SETENV (ORACLE_SID = “<SID>”)
SETENV (ORACLE_HOME=/app/oracle/product/10.2.0/db_1)
SETENV (NLS_LANG = “AMERICAN_AMERICA.ZHS16GBK”)
–如果使用tnsname,可以不设置上面的ORACLE_SID环境变量
USERID ggs@gg, PASSWORD xxx
WARNLONGTRANS 2h, CHECKINTERVAL 3m
–如果是RAC环境,需要增加下面一行
–TRANLOGOPTIONS altarchivelogdest primary instance src1 /arch1, altarchivelogdest instance src2 /arch2
FETCHOPTIONS NOUSESNAPSHOT
grouptransops 20000
exttrail ./dirdat/ee, megabytes 500
discardfile ./dirrpt/ee.dsc,append, megabytes 50
dynamicresolution
–抽取哪些表,依次增加到下面
table TEST.CZ2;
4.1.3 datapump参数文件
文件名:dpee.prm,内容如下:
EXTRACT dpee
SETENV (ORACLE_SID = “<SID>”)
SETENV (ORACLE_HOME=/app/oracle/product/10.2.0/db_1)
SETENV (NLS_LANG = “AMERICAN_AMERICA.ZHS16GBK”)
RMTHOST 192.168.1.7, MGRPORT 7839, compress
RMTTRAIL ./dirdat/ee
PASSTHRU
dynamicresolution
table TEST.CZ2;
4.1.4 生成TABLE LIST脚本
–将该脚本输出结果添加到extract和datapump参数文件中即可
set pagesize 0
set feedback off
spool ext_table_list.txt
select ‘TABLE ‘||owner||’.’||table_name||’ ;’ from dba_tables where owner=’SGLAW’
spool off
4.2 容灾端参数文件
4.2.1 GLOBALS参数文件
GGSCI>EDIT PARAMS ./GLOBALS
文件名:GLOBALS,内容如下:
CHECKPOINTTABLE ggs.ggschkpt
GGSCI> EXIT
Shell> ggsci
GGSCI> DBLOGIN USERID ggs, PASSWORD xxx
GGSCI> ADD CHECKPOINTTABLE
4.2.2 manager参数文件
文件名:mgr.prm,内容如下:
PORT 7839
DYNAMICPORTLIST 7840-7914
AUTOSTART ER *
AUTORESTART ER *, WAITMINUTES 2, RETRIES 5
PURGEOLDEXTRACTS /ggsfs/dirdat/*, USECHECKPOINTS, minkeepdays 7
4.2.3 replicat参数文件
文件名:rpee.prm,内容如下:
REPLICAT rpee
SETENV (ORACLE_SID = “<SID>”)
SETENV (ORACLE_HOME=/app/oracle/product/10.2.0/db_1)
SETENV (NLS_LANG = “AMERICAN_AMERICA.ZHS16GBK”)
USERID ggs@gg, PASSWORD xxx
–handlecollisions
assumetargetdefs
allownoopupdates
discardfile ./dirrpt/ee.dsc,append, megabytes 500, purge
dynamicresolution
map TEST.CZ2, target TEST.CZ2;
4.2.4 生成MAP脚本
— 生成replicat table list,用于map源与目标表,将该脚本的输出添加到replicat参数文件即可
set pagesize 0
set feedback off
spool rep_table_list.txt
select trim(‘MAP ‘||owner||’.’||table_name||’ , TARGET ‘||owner||’.’||table_name||’;’) from dba_tables where owner=<‘SGLAW’>
Leave a Reply