对于源端是 oracle 的数据库,无论是什么操作系统、数据库 ,都必须满足最小附加日至、归档日志、强制日志开启才能安装部署 ogg ,具体操作如下:
开启最小附加日志
SQL> select supplemental_log_data_min from v$database;
SUPPLEME
--------
NO
若不是YES ,需要打开
打开语句:
SQL> alter database add supplemental log data;
注: supplemental log 可以指示数据库在日志中添加额外信息到日志流中 , 开启后对于修改操作, oracle 就会同时附加一些能够唯一标识修改记录的列到 redo log 中。
开启 归档
确认归档是否开启(以 11g RAC 为例):
[root@s1-11g ~]# su - oracle [oracle@s1-11g ~]$ sqlplus "/ as sysdba" SQL*Plus: Release 11.2.0.4.0 Production on Wed Aug 5 10:56:20 2015 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination +DATA Oldest online log sequence 82 Next log sequence to archive 0 Current log sequence 83 SQL> |
以上说明归档已经开启,如果没有开启,请参照以下方法开启归档:
[root@s1-11g ~]# su - oracle [oracle@s1-11g ~]$ sqlplus "/ as sysdba" SQL> alter system set log_archive_dest_1='location=+DKWHDATA/DKWHDB/ARCHIVELOG' scope =both sid='*'; 关闭双节点数据库: SQL>shutdown immediate; 在一节点将一号实例启动: SQL>startup mount; SQL> alter database archivelog ; Database altered.
SQL> alter database open; Database altered
将二号实例也启动: SQL>startup; 检查归档是否开启 : SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination +DKWHDATA/DKWHDB/ARCHIVELOG Oldest online log sequence 82 Next log sequence to archive 0 Current log sequence 83
|
打开force logging
SQL> select force_logging from v$database;
FOR
---
YES
如果状态为 YES ,则已经打开,如果状态为 NO ,则参考下面步骤
SQL> ALTER DATABASE FORCE LOGGING;
注:指定数据库为 Force Logging 模式后,数据库将会记录除临时表空间或临时回滚段外所有的操作,而忽略类似 NOLOGGING 之类的指定参数 , 对数据库中的所有操作都产生日志信息写入到 redo log 中。
OGG classic 模式下(本文档均是按 ogg v11 版本的 classic 模式配置),需要排除压缩表、不支持的列、物化视图。
查询压缩表
SQL>
SQL>
查询不支持的列的表格
SQL>
查询物化视 图
SQL>
查询nologging 的表
查看要复制的表的日志信息是完整的,确保是logging 。把nologing 变成logging 。
SQL>
查询出的结果改成 logging 命令
SQL> alter table oggtest.test logging;
查看两边数据库字符集
SQL> select value from nls_database_parameters where parameter='NLS_CHARACTERSET';
VALUE
------------------------------
ZHS16GBK
源端创建管理用户
创建管理用户
SQL> create tablespace odc_tps datafile '+MCDATA/ora11g/odc01.dbf' size 100M autoextend on;
SQL> create user odc identified by odc default tablespace odc_tps;
授权, DBA 权限在安装成功后可以收回
GRANT CONNECT TO odc;
GRANT ALTER ANY TABLE TO odc;
GRANT ALTER SESSION TO odc;
GRANT CREATE SESSION TO odc;
GRANT FLASHBACK ANY TABLE TO odc;
GRANT SELECT ANY DICTIONARY TO odc;
GRANT SELECT ANY TABLE TO odc;
GRANT SELECT ANY TRANSACTION TO ODC;
GRANT RESOURCE TO odc;
GRANT DBA TO odc;
安装成功后可以收回 dba 权限,但是要授予 UNLIMITED TABLESPACE 权限:
GRANT UNLIMITED TABLESPACE TO odc;
或者 alter user odc quota unlimited on users;
在 ddl_setup 时报错,通过授予以下权限解决。
grant create any table to odc;
grant create any view to odc;
grant create any procedure to odc;
grant create any sequence to odc;
grant create any index to odc;
grant create any trigger to odc;
grant create any view to odc;
配置library 环境变量
不同操作系统不同的环境变量配置:
HP-UX : SHLIB_PATH
AIX : LIBPATH
LINUX : LD_LIBRARY_PATH
例如:
export LD_LIBRARY_PATH =$ORACLE_HOME/lib:$LD_LIBRARY_PATH
安装软件
1. 将对应操作系统数据库版本的介质拷贝到源端后,创建安装目录或文件系统,
例如 /odc
# su - oracle
$ mkdir /odc
注:在windows 上面安装前,需要确保安装必要的库文件,不然可能导致ogg 无法打开。
报错如下:
查阅官网文档:
Oracle GoldenGate for Oracle Installation and Setup Guide
The following are additional considerations in support of Oracle GoldenGate.
Before installing Oracle GoldenGate on a Windows system, install and configure the Microsoft Visual C ++ 2005 SP1 Redistributable Package.
Make certain it is the SP1 version of this package, and make certain to get the correct bit version for your server.
This package installs runtime components of Visual C++ Libraries.
根据相应的操作系统安装对应的库文件。
2. 解压软件安装包
$ cd /odc
$ tar xf ggs_LINUX_ppc_ora11g_64bit_v11_1_1_0_11_001.tar
注:如果是 windows ,需要单独安装服务
运行cmd ,cd 到安装软件目录下,执行:
C:\odc> install addservice
3. 创建子工作目录
解压并解包成功后在/odc 目录执行
$ ./ggsci
ggsci>
以上所创建的目录的作用:
Name |
purpose |
|
dirchk |
Checkpoint files |
用来存放检查点(checkpoint) 文件, 次检查点是ogg 自己的检查点与实例不同 |
dirdat |
GoldenGate trails |
用来存放TRAIL 文件 |
dirdef |
Data definition files |
用来存放通过DEFGEN 工具生成的源或目标端数据定义文件 |
dirprm |
Parameter files |
用来存放配置参数文件 |
dirpcs |
Process status files |
用来存放进程状态文件 |
dirrpt |
Report files |
用来存放进程报告文件 |
dirsql |
SQL script files |
用来存放SQL 脚本文件 |
dirtmp |
Temporary files |
当事物所需要的内存超过已分配内存时, 默认存储在这个目录 |
4. 创建管理进程
创建管理进程所需参数:
参数 |
阀值 |
定义 |
port |
7809 |
mgr 进程使用的TCP/IP 端口侦听请求,默认端口为7809 |
DYNAMICPORTLIST |
7800-7810 |
指定可用动态 TCP/IP 端口列表,用于源端与目标端进程通信的绑定,最大支持256 个端口 |
PURGEOLDEXTRACTS |
./dirdat/sm* |
定期清理抽取出的过期文件,可以被设置在Manager, Extract, and Replicat 参数文件中,oracle 建议设置在Manager 中 |
USECHECKPOINTS |
|
根据任何MINKEEP 规则,允许清除那些已经被Extract 和Replicat 进程检测过的,保证数据不丢失。 |
MINKEEPHOURS |
24 |
trail 文件的保留时间,超过这个时间则删除 |
autorestart |
extract * |
指定进程失败时自动重启 |
retries |
10 |
指定尝试重新启动进程的次数(默认尝试2 次) |
waitminutes |
10 |
指定重新启动进程的等待时间,直到必要资源变得可用或一些其他的事件发生。默认的延迟时间为2 分钟。 |
具体设置如下:
ggsci>edit param mgr
输入:
DYNAMICPORTLIST 7800-7810
PURGEOLDEXTRACTS ./dirdat/sm*, USECHECKPOINTS, MINKEEPHOURS 24
autorestart extract * retries 10 waitminutes 10
autostart ER *
ggsci>
输入:
CHECKPOINTTABLE odc.ggs_checkpoint --- 保存退出
ggsci>start mgr
注:
OGG12c 以后的版本安装采用图形化界面,可忽略装在共享存储上的警告!