Oracle OGG配置

时间:2019-09-17 13:21:51   收藏:0   阅读:724

一、源端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;

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!