一、 OGG数据同步原理
读取源端数据库的归档日志,将日志信息推送到目标端数据库,并在目标端数据库执行日志中的语句,达到数据推送的目的。根据实际测试结果,单表读取日志并推送、执行的总时间为10s左右。
二、环境要求
2.1 操作系统
目前仅支持Windows系统、Linux相关系统,不支持国产操作系统。根据操作系统不同,使用的OGG软件版本也不同。
2.2 数据库
目前仅支持Oracle数据库、SQL server数据库;不支持国产数据库。根据数据库类型不同,使用的OGG软件版本也不同。
2.3 端口
源端服务器与目标端服务器,需要ping通两个端口号:7809、7819。
三、Oracle11g 数据库配置----红色字体 需根据实际修改
3.1 归档日志配置
>>sqlplus /nolog
>>conn sys/sys@orcl as sysdba
>>select log_mode,supplemental_log_data_min,force_logging from v$database;
>>shutdown immediate;
>>startup mount;
>>alter database archivelog;
>>alter database force logging;
>>alter database add supplemental log data;
>>alter system set recyclebin=off;
>>show parameter recyclebin;
>>show parameter db_recovery_file_dest ----查看归档日志路径
>>alter system set db_recovery_file_dest_size =64G; ------增加归档闪回区空间 (缺省是2G,可以根据实际情况调整大小)
>>alter database open;
>>alter system switch logfile;
3.2 授权配置
>>sqlplus /nolog
>>@marker_setup.sql, ddl_setup.sql, role_setup.sql
>>grant GGS_GGSUSER_ROLE to ogg;
>>@ddl_enable.sql
3.3 查看归档日志
>> select * from v$flash_recovery_area_usage;
----查看空间占用率
>> select * from v$recovery_file_dest;
----查看归档日志的存放地址;
3.4 手动删除归档日志
>>rman target sys/sys@orcl
>>crosscheck archivelog all;
>>delete expired archivelog all;
>>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-1'; // 删除1天前的归档日志
>> DELETE ARCHIVELOG FROM TIME 'SYSDATE-7'; // 删除从7天前到现在的全部日志,慎用!
>> crosscheck archivelog all;
>> exit
3.5 自动定时删除归档日志
1)新建文本文档 del_archivelog,内容:
connect target sys/sys@orcl // sys登陆账号与密码
run{
crosscheck archivelog all;
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-3'; // 删除三天前所有日志
delete expired archivelog all;
}
2)新建bat执行文件 del_archivelog , 内容:
@echo off
set "filename=del_archivelog_task_log_%date:~0,4%%date:~5,2%%date:~8,2%.txt"
(
echo.
echo ========================= 正在清除过期归档文件,请稍等...... %date% %time% =========================
echo.
rman cmdfile=E:\app\clean\del_archivelog.txt // del_archivelog.txt 文件存放的路径地址
echo.
echo ========================= 【结束清理 %date% %time%】 =========================
echo.
)>>D:\app\admin\%filename% 2>&1<nul // 清理日志存放的路径地址
Pause
3)添加系统任务计划
位置:开始 => 所有程序 => 附件 => 系统工具 => 任务计划
双击打开任务计划程序,点击右侧新建任务
填写任务基本信息
新建触发器
选择操作 - > 新建操作 - > 浏览选择del_archivelog.bat脚本文件
到此整个Windows下的配置已结束,注意定期观察任务的运行情况。
四、OGG配置---红色字体 需根据实际修改
4.1.1 启动OGG
执行 ggsci,红色 的需根据实际修改
ggsci>> dblogin userid BDCDJ4
ggsci>> create subdirs
4.1.2 Source 端,
1)ggsci>>edit param mgr
port 7809
USERID ogg, PASSWORD ogg
PURGEOLDEXTRACTS E:\app\admin\ogg\dirdat\wt,USECHECKPOINTS // 源端存放的目录位置
2)ggsci>>add trandata ogg.*
3)ggsci>>add extract EXT1,tranlog, begin now
4)ggsci>>edit params EXT1
extract ext1
SETENV (NLS_LANG=“AMERICAN_AMERICA.ZHS16GBK”) // 根据实际数据库的字符集修改
userid ogg,password ogg
rmthost 192.168.1.8, mgrport 7809 // 目标端的IP地址和端口号
rmttrail E:\app\admin\ogg\dirdat\wt // 目标端存放的目录位置
dynamicresolution
gettruncates
table ogg.*; ---更改 ogg 名称
5)ggsci>>add rmttrail E:\app\admin\ogg\dirdat\wt, extract EXT1 // 目标端存放的目录位置
4.1.3 Target 端
1)ggsci>>edit param mgr
port 7809
2)ggsci>>add replicat repa exttrail D:\app\Administrator\admin\ogg\dirdat\wt, nodbcheckpoint // 目标端存放的目录位置
3)ggsci>>edit param repa
replicat repa
SETENV (NLS_LANG=“AMERICAN_AMERICA.ZHS16GBK”) // 根据实际数据库的字符集修改
userid ogg,password ogg
assumetargetdefs
reperror default,discard
discardfile E:\app\admin\ogg\dirdat\repsz.dsc,append,megabytes 50000 // 目标端存放的目录位置
map ogg.*, target ogg.*;