通过OGG(OracleGoldenGate)实现SqlServer2012的数据同步
Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉、变换、投递。
1、OGG原理
OGG是⼀种基于⽇志的结构化数据复制软件,通过捕获源数据库online redo log (在线重做⽇志)或archive log(归档⽇志)获得数据变化,形成tail(队列⽂件 ),再将这些tail通过⽹络协议,传输到⽬标数据库,⽬标端通过解析,插⼊⾄⽬标端数据库,从⽽实现源端与⽬标端数据同步。
2、OGG的特性:
1)、对⽣产系统影响⼩:实时读取交易⽇志,以低资源占⽤实现⼤交易量数据实时复制;
2)、以交易为单位复制,保证交易⼀致性:只同步已提交的数据;
3)、⾼性能,智能的交易重组和操作合并,使⽤数据库本地接⼝访问,并⾏处理体系,灵活的拓扑结构:⽀持⼀对⼀、⼀对多、多对⼀、多对多和双向复制等。
环境准备
1.两台服务器(或者虚拟机)(⼀个作为源端,⼀个作为⽬标端)
2.操作系统:Windows Server 2012
植物大战僵尸 存档位置3.数据库:SqlServer 2012
4.OGG版本:
5.源端服务器
计算机名:WIN-P84VIUL0I4S
IP:10.10.10.130
6.⽬标端服务器
计算机名:WIN-78FQJI5O5B8
IP:10.10.10.131
**注意:**安装SqlServer依赖.NET Framework 3.5,在安装数据库前先⾏安装
资料:
安装部署
1、在源端和⽬标端的E盘建⽴ggs⽬录将OGG软件包解压到ggs⽬录中(解压位置根据⾃⼰情况⽽定,我这⾥是E盘)
2、打开源端和⽬标的SQL Server代理服务并将启动类型改为⾃动
3、在源端建⽴数据库source,⽬标端建⽴数据库target
4、在源端和⽬标端SQLServer中执⾏对应的语句
-- 源端:
USE [source]
GO
CREATE SCHEMA [ogg] AUTHORIZATION [dbo]
GO
-- ⽬标端:
USE [target]
GO
CREATE SCHEMA [ogg] AUTHORIZATION [dbo]
GO
5、创建测试表
-- 源端
use source;
create st1 (id int primary key, name varchar(50));
2020年跨年表白句子create st2( id int, name varchar(50), age int);
-- ⽬标端
use target;
create st1 (id int primary key, name varchar(50));
create st2( id int, name varchar(50), age int);
6、为源端和⽬标端创建⽤户,并授权
源端: ⽤户名:oggsrc 密码:oggpsw
USE [master]
GO
CREATE LOGIN [oggsrc] WITH PASSWORD=N'oggpsw', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO
EXEC master..sp_addsrvrolemember @loginame = N'oggsrc', @rolename = N'sysadmin'
GO
右键点击oggsrc选择属性对⽤户进⾏授权
⽬标端: ⽤户名:oggdest 密码:oggpsw
GO
CREATE LOGIN [oggdest] WITH PASSWORD=N'oggpsw', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO
EXEC master..sp_addsrvrolemember @loginame = N'oggdest', @rolename = N'sysadmin'
GO
右键点击oggdest 选择属性对⽤户进⾏授权
7、在源端source库启⽤cdc
use source
EXECUTE sys.sp_cdc_enable_db
8、在源端和⽬标端分别创建ODBC数据源
源端:
被感情伤得太深的网名ODBC数据源建成功
⽬标端:
前⾯步骤同源端⼀样;
之后步骤同源端⼀样
创建target数据源成功
源端和⽬标端的ogg安装⽬录中执⾏ggsci,打开OGG对话窗⼝
双十一省钱指南初始化OGG⽂件⽬录
create subdirs
在源端登录OGG
dblogin sourcedb source, userid oggsrc, password oggpsw
配置管理进程(源端和⽬标端都执⾏)
edit params mgr
输⼊port 7809,保存
启动mgr线程(源端和⽬标端都执⾏)
start mgr
编辑GLOBALS⽂件(源端和⽬标端都执⾏)
edit params ./GLOBALS
##输⼊
GGSCHEMA OGG
在源端的OGG中启表级附加⽇志(源端执⾏)
add st1
add st1
在源端服务器中创建OGG clean job(源端执⾏)
创建OGG clean job,需要先删除源端SQLServer中⾃带的clean job
use source
EXECUTE sys.sp_cdc_drop_job 'cleanup'
然后在源端服务器OGG安装⽬录下,进⼊命令⾏,执⾏如下语句,其中(local)是默认的sqlserver实例ogg_cdc_cleanup_setup.bat createjob oggsrc oggpsw source (local) ogg
源端:
配置抽取进程(源端执⾏)
##输⼊
extract ext01
页眉横线怎么去掉sourcedb source, userid oggsrc, password oggpsw
exttrail ./dirdat/aa
table dbo.*;
##执⾏命令,从当前时间点抽取
add extract ext01,tranlog,begin now
##添加抽取进程并指定⽇志⽂件抽取位置
add exttrail ./dirdat/aa,extract ext01
##启动抽取进程
start ext01
配置投递进程(源端执⾏)
##编辑投递进程参数
edit params pmp01
##输⼊
EXTRACT PMP01
PASSTHRU
RMTHOST 10.10.10.131 MGRPORT 7809
RMTTRAIL ./dirdat/rt
TABLE dbo.*;
##添加抽取进程,指定源端数据⽂件位置
ADD EXTRACT PMP01, EXTTRAILSOURCE ./dirdat/aa
##指定投递到⽬标端⽂件存放的路径
ADD RMTTRAIL ./dirdat/rt, EXTRACT PMP01
##启动投递进程
start pmp01
⽬标端:
配置接收进程(⽬标端执⾏)
##配置接收进程
edit params rep01
##输⼊
REPLICAT REP01
targetdb target, userid oggdest, password oggpsw
ASSUMETARGETDEFS
MAP dbo.*, TARGET dbo.*;
#配置checkpoint
如何获得手机root权限add checkpointtable dbo.OGGCHKPT
#添加trail⽂件到replicate进程
ADD REPLICAT REP01, EXTTRAIL ./dirdat/rt, CHECKPOINTTABLE dbo.OGGCHKPT ##启动复制进程
start rep01
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论