加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ogg112101同构部署for_oracle11gr2

发布时间:2020-12-24 11:16:57 所属栏目:百科 来源:网络整理
导读:副标题#e# 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=/hom
副标题[/!--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应用进程的组和名字?

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读