Oracle OGG配置
Posted yfb918
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle OGG配置相关的知识,希望对你有一定的参考价值。
一、源端Oracle配置
1、开启归档
1、1查看你数据库是否处于归档模式,如果处于归档模式, 则返回结果 ARCHIVELOG
1、2如果没有处于
归档模式,请按照一下操作进行修改为归档模式:
SQL> shutdown immediate; SQL> startup mount; SQL> alter database archivelog; SQL> alter database open; SQL> archive log list;
1、3日志切换测试
SQL> alter system switch logfile;
注意:数据库开启归档后,要制定清理归档日志的策略,否则如果归档目录满了,数据库将被hang住。 -- 查询归档目录的位置 SQL> show parameter recovery SQL> select name from v$archived_log; -- 设置归档目录,重启数据库后生效 SQL> alter system set log_archive_dest_1=‘location=/xxx/xxx‘ scope=both; -- 删除所有的归档日志(慎用) $> rman target / RMAN> delete noprompt force archivelog all completed before ‘sysdate‘;
2、开启数据库附加日志
2、1开启数据库附加日志
SQL> alter database add supplemental log data;
SQL> alter database add supplemental log data (primary key, unique,foreign key) columns;
2、2确认:除SUPPLEMENTAL_LOG_DATA_ALL外,均开启附加日志
select SUPPLEMENTAL_LOG_DATA_MIN ,SUPPLEMENTAL_LOG_DATA_PK ,SUPPLEMENTAL_LOG_DATA_UI ,SUPPLEMENTAL_LOG_DATA_FK ,SUPPLEMENTAL_LOG_DATA_ALL from v$database;
3、开启数据库强制日志
注意:数据库强制日志开启需要与业务和应用部门确认。如果只同步数据库的一部分表,需要检查这些表是否开启logging属性,并确认在业务中没有对这些表的nologging操作。
3、1开启数据库强制日志
SQL> alter database force logging;
3、2检查数据库日志模式
4、开启表的logging属性
注意:仅在非强制日志模式下执行该操作。
4、1检查表是否开启logging属性
sql> select TABLE_NAME,LOGGING from DBA_TABLES where table_name=<TABLE_NAME>;
4、2开启表logging属性
alter table <TABLE_NAME> logging;
4、3确认这些表在业务中无nologging操作。
5、创建Oracle用户并授权
SQL> create user c##test identified by test; SQL> grant connect,resource,unlimited tablespace to c##test; SQL> grant unlimited tablespace to c##test; SQL> grant execute on utl_file to c##test; SQL> grant dba to c##test; SQL> ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH; SQL> commit;
注意:这里创建Oracle时格式为c##username
备注: 对于ENABLE_GOLDENGATE_REPLICATION的说明: So, in order to use OGG, on Oracle 19c,you will need to issue the following command through SQL*Plus. ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;
6、查询数据库字符集
查询源端字符集,编辑OGG进程时需要该参数,找到:NLS_CHARACTERSET对应的值
因此需要做修改,将NLS_CHARACTERSET修改为:ZHS16GBK,修改步骤如下:
参数资料:
https://blog.csdn.net/u011727617/article/details/50238049/
SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP MOUNT; SQL> ALTER SESSION SET SQL_TRACE=TRUE; SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; SQL> ALTER DATABASE OPEN; SQL> set linesize 120; SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; 常见问题: 问题1: SQL> ALTER DATABASE CHARACTER SET ZHS16CGB231280; ALTER DATABASE CHARACTER SET ZHS16CGB231280 * ERROR at line 1: ORA-12712: new character set must be a superset of old character set 原因: 字符集超集问题,所谓超集是指:当前字符集中的每一个字符在新字符集中都可以表示,并使用同样的代码点,比如很多字符集都是US7ASCII的严格超集。如果不是超集,将获得以上错误。 解决方式: SQL> alter database character set internal_use ZHS16GBK; SQL> select * from v$nls_parameters; SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP;
修改之后结果:
二、源端OGG配置
1、安装OGG
1、1创建Oracle用户和oinstall组
1、2使用Oracle用户安装OGG软件
1、3创建OGG相关目录
1、4设置环境变量
2、编辑进程
2、1编辑管理进程
2、2编辑抽取进程
2、3编辑传输进程
3、添加进程
4、启动进程
5、生成表结构定义文件
6、添加trandata
6、1如果表的列数不大于32
6、2如果表的列数大于32
三、目标端OGG配置
1、安装OGG
1、1创建Oracle用户和oinstall组
1、2使用Oracle用户安装OGG软件
1、3设置环境变量
1、4创建OGG相关目录
1、5上传handller.properties
1、6上传jar包
2、编辑进程
2、1编辑管理进程
2、2编辑Handler进程
3、添加进程
4、启动进程
5、查看OGG运行状态
alter table <TABLE_NAME> logging;
以上是关于Oracle OGG配置的主要内容,如果未能解决你的问题,请参考以下文章
ORACLE 11G R2 RAC classical install OGG12.1(LINUX) 经典抽取模式单项同步配置OGG12.1