用Golden Gate实现mysql到mysql的实时复制

  1. 安装mysql server
  2. 安装mysql odbc组件。可以从这里下载。
  3. 创建mysql的源数据库和目标数据库
    create database project;
    create database project_target;
  4. 在源数据库和目标库中创建表。
    CREATE TABLE NBArankings2013(
    TeamID int(10) NOT NULL AUTO_INCREMENT,
    NBATeam varchar(255) NOT NULL,
    Division varchar(255) NOT NULL,
    WinPerc decimal(8,3) NOT NULL, GB  decimal(8,1) NOT NULL,
    Conference varchar(255) NOT NULL,
    PRIMARY KEY (TeamID)
    )ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
  5. 在源数据库中插入测试数据。
    INSERT INTO NBArankings2013 (NBATeam, Division, WinPerc, GB, Conference)
    VALUES ('New York', 'Atlantic', '0.659', '12', 'East'),
    ('Brooklyn', 'Atlantic', '0.598', '17', 'East'),
    ('Boston', 'Atlantic', '0.506', '24.5', 'East'),
    ('Philadelphia', 'Atlantic', '0.415', '32', 'East'),
    ('Toronto', 'Atlantic', '0.415', '32', 'East'),
    ('Indiana', 'Central', '0.605', '16.5', 'East'),
    ('Chicago', 'Central', '0.549', '21', 'East'),
    ('Milwaukee', 'Central', '0.463', '28', 'East'),
    ('Detriot', 'Central', '0.354', '37', 'East'),
    ('Cleveland', 'Central', '0.293', '42', 'East'),
    ('Miami', 'Southeast', '0.805', '0', 'East'),
    ('Atlanta', 'Southeast', '0.537', '22', 'East'),
    ('Washington', 'Southeast', '0.354', '37', 'East'),
    ('Charlotte', 'Southeast', '0.256', '45', 'East'),
    ('Orlando', 'Southeast', '0.244', '46', 'East'),
    ('San Antonio', 'Southwest', '0.707', '2', 'West'),
    ('Memphis', 'Southwest', '0.683', '4', 'West'),
    ('Houston', 'Southwest', '0.549', '15', 'West'),
    ('Dallas', 'Southwest', '0.5', '19', 'West'),
    ('New Orleans', 'Southwest', '0.329', '33', 'West'),
    ('Oklahoma City', 'Northwest', '0.732', '0', 'West'),
    ('Denver', 'Northwest', '0.695', '3', 'West'),
    ('Utah', 'Northwest', '0.524', '17', 'West'),
    ('Portland', 'Northwest', '0.402', '27', 'West'),
    ('Minnesota', 'Northwest', '0.376', '29', 'West'),
    ('LA Clippers', 'Pacific', '0.683', '4', 'West'),
    ('Golden State', 'Pacific', '0.573', '13', 'West'),
    ('LA Lakers', 'Pacific', '0.549', '15', 'West'),
    ('Sacramento', 'Pacific', '0.341', '32', 'West'),
    ('Phoenix', 'Pacific', '0.305', '35', 'West');
  6. 创建ODBC数据源。
    用Golden Gate实现mysql到mysql的实时复制_第1张图片
  7. 打开console,切换到gg安装的目录。
  8. 运行ggsci.exe。
  9. 创建需要的中间文件夹,dir开头的,肯定会用到。不创建的话就会报很多错误的。用Golden Gate实现mysql到mysql的实时复制_第2张图片
  10. 创建manager。
    EDIT PARAMS MGR
    会询问你是否创建新的配置文件,选择创建,然后在新的配置文件中输入一下内容。
    PORT 7809
  11. 启动manager。
    START MGR
    执行命令后会弹出一个新的窗口来运行manager。
  12. 添加源数据库并配置
    ADD EXTRACT INITLOD1, SOURCEISTABLE
    EDIT PARAMS INITLOD1
    之后会询问是否创建新的配置文件,同上,并输入配置信息
    EXTRACT INITLOD1
    
    DBOPTIONS HOST 127.0.0.1, CONNECTIONPORT 3306
    SOURCEDB project, USERID root@project, PASSWORD 123456
    RMTHOST 127.0.0.1, MGRPORT 7089
    RMTFILE ./dirdat/el1.dat, PURGE
    TABLE project.*;
  13. 添加目标数据库并配置
    ADD REPLICAT INITLOD2, SPECIALRUN
    EDIT PARAMS INITLOD2
    之后会询问是否创建新的配置文件,同上,并输入配置信息
    REPLICAT INITLOD2
    SPECIALRUN
    HANDLECOLLISIONS
    
    DBOPTIONS HOST 127.0.0.1, CONNECTIONPORT 3306
    TARGETDB project_target, USERID root@project_target, PASSWORD 123456 
    ASSUMETARGETDEFS
    EXTFILE ./dirdat/el1.dat
    DISCARDFILE ./dirrpt/el1.dsc, PURGE
    MAP project.*, TARGET project_target.*;
  14. 开始复制源数据库的数据,并查看报告。
    start extract INITLOD1
    view report INITLOD1
    最后会看到这样的数据:用Golden Gate实现mysql到mysql的实时复制_第3张图片
  15. 开始向目标数据库中复制数据。
    START REPLICAT INITLOD2
  16. 在mysql的console中查看目标表中的数据。可以看到数据已经过去了。


另外附上可能会用到的命令

查看manager的状态

info manager
status manager
start manager
stop manager
restart manager
查看日志

view ggsevt


你可能感兴趣的:(data,replication,Golden,Gate)