- 一个OGG实例最多支持300个并发extract和replicat进程,每个进程需要25-55M内存。
- GGSCI,view report,找到PROCESS VM AVAIL FROM OS,大约就是系统所需要的swap space大小
3. 磁盘空间每个实例50-150M,外加trail等等,至少给1G。trail所需空间的预估方法是:[log volume in one hour] x [number of hours downtime] * 0.4
4./tmp 空间,默认是dirtmp目录,可以通过CACHEMGR参数的CACHEDIRECTORY选项指定
5. 安装OGG的用户必须属于ORACLE数据库实例的组,通常就是dba。
6.要想支持RAC里的RMAN log retention特性, 得在add extract之前安装patch BUGFIX 11879974
- OGG的几种架构
如果只有一个数据库实例,那么就设置在profile里,如果有多个实例,就在extract 和 replicat的参数文件里设置,例如:
EXTRACT ora9a
SETENV (ORACLE_HOME = “/home/oracle/ora9/product”)
SETENV (ORACLE_SID = “ora9a”)
SETENV (NLS_LANG = “AMERICAN_AMERICA.AL32UTF8”)
USERID ggsa, PASSWORD ggsa
RMTHOST sysb
RMTTRAIL /home/ggs/dirdat/rt
TABLE hr.emp;
也可以在每次启动的时候,将
export ORACLE_HOME
export ORACLE_SID
放到特定的启动脚本里,然后启动进程
另外需要设置的
export PATH=<installation directory>:$PATH
export LIBPATH=<absolute path of installation directory>:$ LIBPATH
- unix环境安装
解压安装包
ggsci
create subdirs
exit
- windows环境安装
解压安装包
ggsci
create subdirs
exit
可以将mgr配置成一个服务,随着系统自动启动,可以配置一个客户化的服务名字
ggsci
edit params ./GLOBALS
MGRSERVNAME <name>
Install addevent addservice [autostart | manualstart]
- 创建OGG用户:
create user oggadm
identified by oggadm
default tablespace users
temporary tablespace temp;
extract:
grant CREATE SESSION, ALTER SESSION to oggadm;
grant RESOURCE to oggadm;
grant CONNECT to oggadm;
grant SELECT ANY DICTIONARY to oggadm;
grant FLASHBACK ANY TABLE to oggadm;
grant SELECT ANY TABLE to oggadm;
grant SELECT on dba_clusters to oggadm;
grant EXECUTE on DBMS_FLASHBACK to oggadm;
sys.dbms_internal_clkm 复制Oracle Transparent Data Encryption (TDE)时需要.
SELECT ANY TRANSACTION 新的ASM特性时需要
10gR2之后,rman会协同extract进行归档日志的保留策略,需要如下权限
10g2
exec dbms_streams_auth.grant_admin_privilege('oggadm');
grant insert on system.logmnr_restart_ckpt$ to oggadm;
grant update on sys.streams$_capture_process to oggadm;
grant become user to oggadm;
11.1 and 11.2.0.1
exec dbms_streams_auth.grant_admin_privilege('oggadm');
grant become user to oggadm;
11.2.0.2 and later
exec dbms_goldengate_auth.grant_admin_privilege('oggadm');
replicat:
grant CREATE SESSION, ALTER SESSION to oggadm;
grant RESOURCE to oggadm;
grant CONNECT to oggadm;
grant SELECT ANY DICTIONARY to oggadm;
grant SELECT ANY TABLE to oggadm;
grant CREATE TABLE to oggadm;
grant LOCK ANY TABLE to oggadm;
INSERT, UPDATE, DELETE ON <target tables>
- 支持sequence配置:
在Source和 target都得执行,
grant dba to oggadm;
ggsci
EDIT PARAMS ./GLOBALS
GGSCHEMA oggadm
SQL> @sequence.sql
在source 系统里
GRANT EXECUTE on oggadm.updateSequence TO oggadm;
在target 系统里
GRANT EXECUTE on oggadm.replicateSequence TO oggadm;
DDL支持配置完毕,就可以支持sequences (CREATE, ALTER, DROP, RENAME) 操作的复制的,但如果只是单纯的想复制sequence的话,可以不配置DDL支持,只需要sequence参数就行。
GGSCI> dblogin userid oggadm@source,password oggadm
FLUSH SEQUENCE <owner.sequence> 或者wildcard
在initial synchronization之后,必须执行的就是在target上对没一个sequence至少取一次nextval
- 支持DDL配置:
配置DDL环境,需要在数据库里创建如下一系列的表:
GRANT EXECUTE ON utl_file TO oggadm;
ggsci
EDIT PARAMS ./GLOBALS
GGSCHEMA oggadm
Sqlplus “/as sysdba”
@marker_setup.sql 必须到这个脚本所在目录进入sqlplus
@ddl_setup.sql
@role_setup.sql
Grant GGS_GGSUSER_ROLE to oggadm;
@ddl_enable.sql
@$ORACLE_HOME\rdbms\admin\dbmspool.sql
@ddl_pin oggadm;
开启和关闭DDL trigger
ddl_disable
ddl_enable
维护DDL marker表
Manager 参数文件的PURGEMARKERHISTORY提供设置最大和最小保留时间(根据最后一个修改动作的时间计算)
维护DDL history表
Manager 参数文件的PURGEDDLHISTORY参数设置最大和最小保留时间
清空DDL trace文件
运行ddl_cleartrace脚本删除trace文件,默认名字是ggs_ddl_trace.log在oracle 的 USER_DUMP_DEST目录里
DDL复制只支持两个系统之间的负责,active-passive 或者 active-active,而且必须是两个object必须是identical的,必须使用ASSUMETARGETDEFS参数。
如果使用数据泵的话,可以将PASSTHRU放在所有的要进行DDL复制的TABLE语句前,你可以把NOPASSTHRU放在任何不进行DDL复制而需要进行data转换的TABLE之前。数据泵不能使用任何DDL配置参数,比如DDL, DDLOPTIONS,
DDLSUBST, PURGEDDLHISTORY, PURGEMARKERHISTORY, DDLERROR
DDL &
INCLUDE UNMAPPED &
OPTYPE alter &
OBJTYPE ‘table’ &
OBJNAME “users.tab*” &
INCLUDE MAPPED OBJNAME “*” &
EXCLUDE MAPPED OBJNAME "temporary.tab*"
- 重置DDL环境:
1. Run GGSCI.
2. STOP EXTRACT <group>
3. STOP REPLICAT <group>
4. Run SQL*Plus and log in as a user that has SYSDBA privileges.
5. Run the ddl_disable script.
6. Run the ddl_remove script,
7. Run the marker_remove script.
8. Run the marker_setup script.
9. Run the ddl_setup script.
10. Run the role_setup script.
11. Grant the role to all Oracle GoldenGate users
12. Run the ddl_enable.sql script.
- 删除DDL环境:
1. Run GGSCI.
2. STOP EXTRACT <group>
3. STOP REPLICAT <group>
4. Run SQL*Plus and log in as a user that has SYSDBA privileges.
5. Run the ddl_disable script .
6. Run the ddl_remove script
7. Run the marker_remove script.