ogg112101同构部署for_oracle11gr2
副标题[/!--empirenews.page--]
2.1创建ogg操作系统用户: useradd -u 1003 -g oinstall -G dba ogg passwd ogg ? --源端开启归档,若归档路径不设置则pump进程启动报错 su - oracle mkdir archivelog sqlplus / as sysdba alter system set log_archive_dest_1=‘location=/home/oracle/archivelog‘; shutdown immediate; startup mount; alter database archivelog; alter database open; alter system switch logfile; / archive log list; exit ? 2.2修改ogg操作系统用户环境变量,并链接oracle用户环境变量,修改实例名为jvm vi /home/ogg/.bash_profile ? export ORACLE_SID=orcl export ORACLE_BASE=/home/oracle/app/oracle export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1 export OGG_HOME=/ogg export PATH=$ORACLE_HOME/bin:/usr/sbin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH:/ogg:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/ogg ? --运行生效 . /home/ogg/.bash_profile ? 2.3创建OGG安装目录? --两台服务器都需要做同样的操作。 mkdir /ogg chown -R ogg:oinstall /ogg --chmod 770 -R /ogg --让ogg用户可以访问oracle用户的sqlplus和lsnrctl chmod 770 /home/oracle ? 2.4上传ogg介质 --将ogg安装文件上传到2台服务器的ogg操作系统用户的家目录(默认为/home/ogg) su - ogg unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C /ogg/ --GGSCI (dbdream) 2> DBLOGIN USERID ogg,PASSWORD oracle无权限 ? 2.5登录OGG测试? cd /ogg ./ggsci --创建OGG的管理目录 --源端: ./ggsci create subdirs --查询管理目录是否创建 show --目标端: ./ggsci? create subdirs show exit ? 2.6建立OGG表空间,以ogg用户执行 sqlplus / as sysdba --ORACLE建议使用单独的表空间存放OGG数据,表空间大小50M就可以,但是最好设置数据文件的自动扩展。? create tablespace ogg datafile ‘/home/oracle/ogg01.dbf‘ size 50M autoextend on;? ? 2.7创建OGG用户? create user ogg identified by oracle default tablespace ogg;? ? 2.8为OGG用户授权? --OGG用户需要以下权限,也有人为了省事,直接给OGG用户DBA权限。? --不同的需求,OGG用户需要的权限也不一样,上面的权限基本可以支持大多数情况的数据复制,如权限不足,需根据实际需求授权 grant CONNECT,RESOURCE to ogg;? grant ALTER ANY TABLE to ogg;? grant FLASHBACK ANY TABLE to ogg;? grant EXECUTE on DBMS_FLASHBACK to ogg;? grant SELECT ANY DICTIONARY to ogg;? grant SELECT ANY TABLE to ogg;? grant insert any table to ogg;? grant update any table to ogg;? grant delete any table to ogg; ? 2.9打开数据库的附加日志和force log? alter database force logging;? alter database add SUPPLEMENTAL log data;? select NAME,OPEN_MODE,FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MIN from v$database;? ? 2.10运行OGG支持DDL脚本 /* --不确定兼容性,先不执行,否则ddl_setup.sql可能会报错而导致无法create user:ORA-04098:trigger ‘SYS.GGS_DDL_TRIGGER_BEFORE‘ is invalid and failed --如果要让OGG支持DDL操作,源端与目标端都需要运行 --验证ogg用户调用sqlplus时对脚本marker_status.sql的访问权限 sqlplus / as sysdba? @/ogg/marker_setup.sql? @/ogg/ddl_setup.sql? @/ogg/role_setup.sql? @/ogg/ddl_enable.sql? ? --主库配置ddl参考 主库 执行DDL配置脚本 sqlplus / as sysdba --oracle11.2.0.4报错:SP2-0310:unable to pen file:"marker_status.sql" SQL> @/opt/app/OGG/marker_setup.sql? 输入OGG管理用户名:ogg ? SQL> @/opt/app/OGG/ddl_setup.sql? 输入OGG管理用户名:ogg 注意1:此处可能会报错:ORA-04098: trigger ‘SYS.GGS_DDL_TRIGGER_BEFORE‘ is invalid and failed,同时OGG中的很多表和视图无法创建,原因主要由于OGG缺少权限引起,即便有 DBA权限也是不足的(OGG BUG),可以通过如下方法修复: 1)先将触发器关闭,否则执行任何sql都会包ORA-04098的错误 @/opt/app/OGG/ddl_disable.sql 2)赋予ogg对应权限 grant execute on utl_file to ogg; grant restricted session to ogg; GRANT CREATE TABLE,CREATE SEQUENCE TO OGG; 3)重新执行ddl_setup.sql ? 注意2:当主库上有很多应用连接时,执行该sql会出现如下报警: IMPORTANT: Oracle sessions that used or may use DDL must be disconnected. If you continue,some of these sessions may cause DDL to fail with ORA-6508. To proceed,enter yes. To stop installation,enter no. Enter yes or no: 为了不影响主库,选no,选择一个时间点,停止应用再创建ddl。 如果不创建ddl,需要在主备库的ogg进程参数中添加truncate选项: gettruncates,参考后面同步进程配置。 ? SQL> @/opt/app/OGG/role_setup.sql? 输入OGG管理用户名:ogg SQL> GRANT GGS_GGSUSER_ROLE TO OGG;? SQL> @/opt/app/OGG/ddl_enable.sql? */ ? 2.12 OGG复制流程? --先看下OGG的复制流程,OGG和其他传统复制软件一样,也是通过源端捕获/挖掘ORACLE的日志信息,? --目标端根据源端传送过来的日志信息进行重塑,实现源端-目标端数据同步 --只有commit之后的日志信息才会被Capture进程捕获,未提交的事务OGG不会捕获。? 2.13建立测试表,含主键 create user test identified by oracle; grant dba to test; create table test.test_ogg(id number primary key,name varchar2(20)); create table test.dep_ogg(depno number primary key,depname varchar2(20)); insert into test.test_ogg values(1,‘zyj‘); insert into test.dep_ogg values(1,‘imp‘); commit; ? --目标端建立EMP_OGG和DEPT_OGG测试表 create user test identified by oracle; grant dba to test; create table test.test_ogg(id number primary key,depname varchar2(20)); ? 2.14源端添加表级TRANDATA? --将哪些用户的哪些表和目标库同步,其实也是添加表级的supplemental log,但是只有上文打开的minimal supplemental log后,这个才生效 cd /ogg ./ggsci DBLOGIN USERID ogg,PASSWORD oracle? add trandata test.test_ogg? add trandata test.dep_ogg? INFO TRANDATA test.*? ? 2.15配置MGR管理进程? --源端:? EDIT PARAMS MGR? ? PORT 7809? PURGEOLDEXTRACTS /ogg/dirdat,USECHECKPOINTS? ? --目标端: 可以添加 DYNAMICPORTLIST 7840-7850 EDIT PARAMS MGR? ? PORT 7809? PURGEOLDEXTRACTS /ogg/dirdat,USECHECKPOINTS? ? --参数说明:? PORT 7809:OGG管理进程监控端口。? PURGEOLDEXTRACTS:清除不需要的trail文件。? /ogg/dirdat:trail文件存放位置。? USECHECKPOINTS:使用检查点队列。 ? --置完MGR管理进程后,就可以启动MGR管理进程(源端和目标端都需要启动)。? start mgr info mgr ? 2.16配置初始化数据进程? ADD EXTRACT EINI_1,SOURCEISTABLE? INFO EXTRACT *,TASKS? EDIT PARAMS EINI_1? ? EXTRACT EINI_1? SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)? USERID ogg,PASSWORD oracle? RMTHOST 192.168.92.101,MGRPORT 7809? RMTTASK REPLICAT,GROUP RINI_1? TABLE test.test_ogg; TABLE test.dep_ogg; ? --参数介绍:? EXTRACT EINI_1:说明这是EXTRACT进程,名字是EINI_1? SETENV:环境变量,一定要设置和数据库字符集一样,否则可能会乱码? USERID:数据库OGG用户? PASSWORD:数据库用户OGG的密码? RMTHOST:目标端地址,如果在/etc/hosts文件里已经设置解析,可以写主机名? MGRPORT:目标端MGR管理进程监听的端口? RMTTASK REPLICAT:目标端REPLICAT应用进程的组和名字? (编辑:91站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |