你好,游客 登录 注册 搜索
背景:
阅读新闻

GoldenGate for Oracle 数据一致性初始化方案

[日期:2015-10-10] 来源:Linux社区  作者:perlin [字体: ]

运维的过程是不断产生新的问题,需要不断研究和前进的过程。十一假期刚过客户就电话告知之前的Oracle 同步数据不一致需要处理,然而又不能停业务。

这里研究使用RMAN初始化方案

--不需要源数据库停机。

1.环境介绍:

客户三台数据库,三台之间相互同步DDL、DML

2.前言:

每个高可用的场景不一样,处理各有千秋,但是大致步骤雷同。我的故障不能直接就去处理这样的故障,需要先分析每个库的差异,哪个库的数据是正常的在初始化到其它数据库上,在启动同步。由于是生产环境,数据库的数据实时在变化,所以源端的抽取进程需要开启(传输进程可开),目标端的恢复停止,待初始化完成后再开启。

3.步骤如下:

生产端===============================================

1)使用oracle用户登录,执行rman备份

–备份数据库:

mkdir -p /data/backup /data/dbback/gpofullbak

chown -R oracle.oinstall /data/backup /data/dbback/gpofullbak

rman target /

run {

allocate channel ch00 type disk maxpiecesize 30g;

allocate channel ch01 type disk maxpiecesize 30g;

crosscheck backupset;

delete noprompt expired backupset;

sql 'alter system archive log current';

backup as backupset skip inaccessible tag hot_db_bk_level0

full database

format '/data/backup/bk_%s_%p_%t';

release channel ch00;

release channel ch01;

}

–备份归档和控制文件:

run {

ALLOCATE CHANNEL ch00 TYPE DISK MAXPIECESIZE 30g;

ALLOCATE CHANNEL ch01 TYPE DISK MAXPIECESIZE 30g;

sql 'alter system switch logfile';

sql 'alter system switch logfile';

sql 'alter system switch logfile';

sql 'alter system archive log current';

BACKUP ARCHIVELOG ALL FORMAT '/data/backup/ARCH_%U';

BACKUP CURRENT CONTROLFILE FORMAT '/data/backup/bk_controlfile';

RELEASE CHANNEL ch00;

RELEASE CHANNEL ch01;

}

--在源机执行

SQL>select * from Gv$log;

  INST_ID    GROUP#        THREAD#  SEQUENCE#        BYTES        BLOCKSIZE    MEMBERS ARC STATUS          FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME

---------- ---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------

        1            1              1        795  52428800              512          1 YES INACTIVE              17689009 09-OCT-15    17689018 09-OCT-15

        1            2              1        796  52428800              512          1 YES INACTIVE              17689018 09-OCT-15    17689026 09-OCT-15

        1            3              1        797  52428800              512          1 NO  CURRENT              17689026 09-OCT-15  2.8147E+14

记录该SCN号 17689018

========================================

SQL>create pfile='/tmp/initora11g.ora' from spfile ;

scp -rp /tmp/initora11g.ora root@192.168.80.71:/u01/app/oracle/product/11.2.0/db_1/dbs/

scp -rp /data/backup/ /data/dbback/ root@192.168.80.71:/data

目标端===============================================

2)启动数据库到nomount状态

SQL>startup nomount

3)启动RMAN恢复控制文件

rman target /

RMAN>restore controlfile from '/data/backup/bk_controlfile';

4)将数据库更改为mount状态

sqlplus / as sysdba

SQL>alter database mount;

5)启动RMAN恢复数据库

rman target /

RMAN>restore database;

RMAN>

run

{

  set archivelog destination to '/u01/app/oracle/flash_recovery_area';

  SET UNTIL SCN 17689018; #注意使用前面记录下的scn号

  RECOVER DATABASE;

}

6)查看

SQL> SELECT CHECKPOINT_CHANGE#,CHECKPOINT_TIME FROM V$DATAFILE_HEADER;

CHECKPOINT_CHANGE# CHECKPOIN

------------------ ---------

          17689018 09-OCT-15

          17689018 09-OCT-15

          17689018 09-OCT-15

          17689018 09-OCT-15

          17689018 09-OCT-15

          17689018 09-OCT-15

          17689018 09-OCT-15

          17689018 09-OCT-15

8 rows selected.

SQL>alter database open resetlogs;

到这里备份恢复已经完成。

7)启动恢复

start rini_1, aftercsn 17689018

8)开启目标端所以进程

Oracle GoldenGate 学习教程一:介绍和安装  http://www.linuxidc.com/Linux/2015-08/122146.htm

Oracle GoldenGate 学习教程二、配置和使用  http://www.linuxidc.com/Linux/2015-08/122325.htm

Oracle GoldenGate 学习教程三、加密  http://www.linuxidc.com/Linux/2015-09/122567.htm

更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-10/124011.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款