天天看點

使用RMAN将RAC+ASM複制到單執行個體+ASM上

本次試驗将部署到ASM上的雙節點RAC複制到單執行個體的ASM上。

該試驗也是出自于一個項目的需求,在虛拟機上演練操作特此記錄。

之前已經做過多次RMAN複制資料庫,這次試驗的特點是從RAC複制到單執行個體。需要注意的以下内容:

1,spfile參數問題

RAC下的spfile參數中記錄了很多和叢集相關的資訊,在複制時需要修改。比如

*.cluster_database=true

PROD2.instance_number=2

PROD1.instance_number=1

*.remote_listener='cluster-scan:1521'

PROD2.thread=2

PROD1.thread=1

PROD2.undo_tablespace='UNDOTBS2'

PROD1.undo_tablespace=‘UNDOTBS1’

和RAC相關的資訊可以選擇注釋掉,或者删除。

2,undo表空間問題

雙節點RAC的備份集中會産生2個undo表空間及其資料檔案,而單執行個體資料庫隻需要一個undo表空間。使用RAC的備份集在單執行個體資料庫上恢複後,可以手工删除多餘的那個undo表空間及其資料檔案,通常是undotbs2

3,redo問題

雙節點RAC的控制檔案的備份中記錄的是兩個執行個體的redo資訊,恢複完成後在open resetlogs打開資料庫後回建立出thread2的online redo log,也就是節點2的聯機日志。同undotbs2的處理原則一樣,删除之。

1,RAC 端rman全備資料庫到/backup目錄下。

[oracle@node1 ~]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Mon Sep 29 03:15:49 2014

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: PROD (DBID=271163854)

RMAN> run{

2> allocate channel c1 type disk;

3> allocate channel c2 type disk;

4> backup tag 'full' format '/backup/full_%U.bak'

5> database include current controlfile;

6> sql 'alter system archive log current';

7> backup tag 'arch' format '/backup/arch_%U.arc'

8> archivelog all;

9> release channel c1;

10> release channel c2;

11> }

RMAN> list backup;

List of Backup Sets

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

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

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

43      Full    522.99M    DISK        00:00:04     2014-09-29 03:05:29

        BP Key: 43   Status: AVAILABLE  Compressed: NO  Tag: FULL

        Piece Name: /backup/full_1bpjmdbl_1_1.bak

  List of Datafiles in backup set 43

  File LV Type Ckp SCN    Ckp Time            Name

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

  2       Full 1298717    2014-09-29 03:05:25 +DATA/prod/datafile/sysaux.257.859325451

  4       Full 1298717    2014-09-29 03:05:25 +DATA/prod/datafile/users.259.859325451

  5       Full 1298717    2014-09-29 03:05:25 +DATA/prod/datafile/example.264.859325525

  6       Full 1298717    2014-09-29 03:05:25 +DATA/prod/datafile/undotbs2.265.859325695

44      Full    649.16M    DISK        00:00:04     2014-09-29 03:05:29

        BP Key: 44   Status: AVAILABLE  Compressed: NO  Tag: FULL

        Piece Name: /backup/full_1cpjmdbl_1_1.bak

  List of Datafiles in backup set 44

  1       Full 1298719    2014-09-29 03:05:25 +DATA/prod/datafile/system.256.859325451

  3       Full 1298719    2014-09-29 03:05:25 +DATA/prod/datafile/undotbs1.258.859325451

  7       Full 1298719    2014-09-29 03:05:25 +DATA/prod/datafile/goldengate.269.859338811

45      Full    80.00K     DISK        00:00:00     2014-09-29 03:05:32

        BP Key: 45   Status: AVAILABLE  Compressed: NO  Tag: FULL

        Piece Name: /backup/full_1epjmdbs_1_1.bak           

  SPFILE Included: Modification time: 2014-09-29 02:02:18  

  SPFILE db_unique_name: PROD

46      Full    17.80M     DISK        00:00:01     2014-09-29 03:05:33

        BP Key: 46   Status: AVAILABLE  Compressed: NO  Tag: FULL

        Piece Name: /backup/full_1dpjmdbs_1_1.bak             

  Control File Included: Ckp SCN: 1298731      Ckp time: 2014-09-29 03:05:32

BS Key  Size       Device Type Elapsed Time Completion Time

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

47      53.63M     DISK        00:00:00     2014-09-29 03:05:44

        BP Key: 47   Status: AVAILABLE  Compressed: NO  Tag: ARCH

        Piece Name: /backup/arch_1gpjmdc8_1_1.arc

  List of Archived Logs in backup set 47

  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time

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

  1    28      1260638    2014-09-28 23:53:08 1260655    2014-09-28 23:53:11

  1    29      1260655    2014-09-28 23:53:11 1298750    2014-09-29 03:05:34

  1    30      1298750    2014-09-29 03:05:34 1298772    2014-09-29 03:05:40

  2    24      1260645    2014-09-28 23:53:19 1260660    2014-09-28 23:53:22

  2    25      1260660    2014-09-28 23:53:22 1298755    2014-09-29 03:05:42

  2    26      1298755    2014-09-29 03:05:42 1298767    2014-09-29 03:05:45

48      62.20M     DISK        00:00:00     2014-09-29 03:05:44

        BP Key: 48   Status: AVAILABLE  Compressed: NO  Tag: ARCH

        Piece Name: /backup/arch_1fpjmdc8_1_1.arc

  List of Archived Logs in backup set 48

  1    25      1211968    2014-09-28 19:28:25 1221060    2014-09-28 20:26:23

  1    26      1221060    2014-09-28 20:26:23 1221084    2014-09-28 20:26:29

  1    27      1221084    2014-09-28 20:26:29 1260638    2014-09-28 23:53:08

  2    21      1211964    2014-09-28 19:28:23 1221067    2014-09-28 20:26:25

  2    22      1221067    2014-09-28 20:26:25 1221089    2014-09-28 20:26:31

  2    23      1221089    2014-09-28 20:26:31 1260645    2014-09-28 23:53:19

2,RAC端使用scp傳輸備份集到單執行個體端/home/oracle目錄下

[oracle@node1 ~]$ scp /backup/* [email protected]:/home/oracle

單執行個體端檢視接收到的備份集

[oracle@single ~]$ ls -l /home/oracle

total 1338624

-rw-r----- 1 oracle oinstall  65219584 Oct  8 21:39 arch_1fpjmdc8_1_1.arc

-rw-r----- 1 oracle oinstall  56237568 Oct  8 21:39 arch_1gpjmdc8_1_1.arc

-rw-r----- 1 oracle oinstall 548405248 Oct  8 21:39 full_1bpjmdbl_1_1.bak

-rw-r----- 1 oracle oinstall 680697856 Oct  8 21:40 full_1cpjmdbl_1_1.bak

-rw-r----- 1 oracle oinstall  18677760 Oct  8 21:40 full_1dpjmdbs_1_1.bak

-rw-r----- 1 oracle oinstall     98304 Oct  8 21:40 full_1epjmdbs_1_1.bak

3,單執行個體端使用RMAN從備份集中恢複pfile到/home/oracle/racpfile.ora

$ rman target /

RMAN> startup nomount;

RMAN> restore spfile to pfile '/home/oracle/racpfile.ora' from '/home/oracle/full_1epjmdbs_1_1.bak';

4,單執行個體端修改pfile檔案,将叢集相關的資訊全部注釋掉

[oracle@single ~]$ cat racpfile.ora

##PROD1.__db_cache_size=146800640

##PROD2.__db_cache_size=176160768

##PROD1.__java_pool_size=4194304

##PROD2.__java_pool_size=4194304

##PROD1.__large_pool_size=8388608

##PROD2.__large_pool_size=8388608

##PROD1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment

##PROD1.__pga_aggregate_target=289406976

##PROD2.__pga_aggregate_target=293601280

##PROD1.__sga_target=385875968

##PROD2.__sga_target=381681664

##PROD1.__shared_io_pool_size=0

##PROD2.__shared_io_pool_size=0

##PROD1.__shared_pool_size=218103808

##PROD2.__shared_pool_size=184549376

##PROD1.__streams_pool_size=0

##PROD2.__streams_pool_size=0

##*.audit_file_dest='/u01/app/oracle/admin/PROD/adump'

*.audit_file_dest='/u01/admin/PROD/adump'

*.audit_trail='db'

##*.cluster_database=true  

*.compatible='11.2.0.4.0'

##*.control_files='+DATA/prod/controlfile/current.260.859325519','+ARCH/prod/controlfile/current.256.859325519'

*.control_files='+DATA/PROD/controlfile/control01.ctl','+FRA/PROD/controlfile/control02.ctl'

*.db_block_size=8192

*.db_create_file_dest='+DATA'

*.db_domain=''

*.db_name='PROD'

##*.db_recovery_file_dest='+ARCH'

*.db_recovery_file_dest='+FRA'

*.db_recovery_file_dest_size=4621074432

##*.diagnostic_dest='/u01/app/oracle'

*.diagnostic_dest='/u01/'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=PRODXDB)'

*.enable_goldengate_replication=TRUE

##PROD2.instance_number=2

##PROD1.instance_number=1

##*.memory_target=675282944

*.memory_target=583008256

*.open_cursors=300

*.processes=150

##*.remote_listener='cluster-scan:1521'  

*.remote_login_passwordfile='exclusive'

##PROD2.thread=2

##PROD1.thread=1

##PROD2.undo_tablespace='UNDOTBS2'

##PROD1.undo_tablespace='UNDOTBS1'

*.undo_tablespace='UNDOTBS1'                

5,單執行個體端SQLPLUS使用修改後的pfile檔案啟動執行個體到nomount狀态

SYS@PROD >startup nomount pfile=/home/oracle/racpfile.ora;

6,單執行個體端建立spfile到ASM磁盤組中的+DATA/PROD

SYS@PROD >create spfile='+DATA/PROD/spfilePROD.ora' from memory;

7,單執行個體端建立pfile,指引spfile的檔案位置

$ vi $ORACLE_HOME/dbs/initPROD.ora

spfile='+DATA/PROD/spfilePROD.ora'

8,單執行個體端使用RMAN啟動到nomount狀态

RMAN> startup force nomount;

RMAN> set DBID=271163854

9,單執行個體端使用RAMN從備份集中恢複控制檔案

RMAN> restore controlfile from '/home/oracle/full_1dpjmdbs_1_1.bak’;

10,單執行個體端mount資料庫

RMAN> mount database;

11,單執行個體端注冊備份集的路徑

RMAN> catalog start with '/home/oracle';

12,單執行個體端列出控制檔案中記錄的資料檔案

RMAN> report schema;

RMAN-06139: WARNING: control file is not current for REPORT SCHEMA

Report of database schema for database with db_unique_name PROD

List of Permanent Datafiles

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

File Size(MB) Tablespace           RB segs Datafile Name

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

1    0        SYSTEM               ***     +DATA/prod/datafile/system.256.859325451

2    0        SYSAUX               ***     +DATA/prod/datafile/sysaux.257.859325451

3    0        UNDOTBS1             ***     +DATA/prod/datafile/undotbs1.258.859325451

4    0        USERS                ***     +DATA/prod/datafile/users.259.859325451

5    0        EXAMPLE              ***     +DATA/prod/datafile/example.264.859325525

6    0        UNDOTBS2             ***     +DATA/prod/datafile/undotbs2.265.859325695

7    0        GOLDENGATE           ***     +DATA/prod/datafile/goldengate.269.859338811

List of Temporary Files

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

File Size(MB) Tablespace           Maxsize(MB) Tempfile Name

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

1    20       TEMP                 32767       +DATA/prod/tempfile/temp.263.859325523

13,單執行個體端根據列出的資料檔案采用set newname的方式來修改檔案路徑。

2> set newname for datafile 1 to '+DATA';

3> set newname for datafile 2 to '+DATA';

4> set newname for datafile 3 to '+DATA';

5> set newname for datafile 4 to '+DATA';

6> set newname for datafile 5 to '+DATA';

7> set newname for datafile 6 to '+DATA';

8> set newname for datafile 7 to '+DATA';

9> set newname for tempfile 1 to '+DATA’;  

10> restore database;

11> switch datafile all;

12> switch tempfile all;

13> recover database;

14> }

14,單執行個體端resetlogs方式打開資料庫庫

RMAN> alter database open resetlogs;

15,單執行個體端檢視redo log的分布情況,注意thread=2是RAC中第二個節點上的,單執行個體中不需要刻意删除掉。

SYS@PROD >SELECT v$logfile.member, v$logfile.group#,thread#, v$log.status,v$log.ARCHIVED, v$log.bytes/1024/1024 ,v$log.thread#

  2  FROM v$log, v$logfile

  3  WHERE v$log.group# = v$logfile.group#

  4  ORDER BY v$log.thread#,v$logfile.group#;

MEMBER                                                 GROUP#    THREAD# STATUS           ARC V$LOG.BYTES/1024/1024    THREAD#

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

+FRA/prod/onlinelog/group_1.308.860453423                   1          1 CURRENT          NO                     50          1

+DATA/prod/onlinelog/group_1.286.860453423                  1          1 CURRENT          NO                     50          1

+FRA/prod/onlinelog/group_2.261.860453423                   2          1 UNUSED           YES                    50          1

+DATA/prod/onlinelog/group_2.263.860453423                  2          1 UNUSED           YES                    50          1

+DATA/prod/onlinelog/group_3.295.860453423                  3          2 INACTIVE         YES                    50          2

+FRA/prod/onlinelog/group_3.260.860453423                   3          2 INACTIVE         YES                    50          2

+DATA/prod/onlinelog/group_4.258.860453423                  4          2 UNUSED           YES                    50          2

+FRA/prod/onlinelog/group_4.307.860453423                   4          2 UNUSED           YES                    50          2

16,禁用thread 2

SYS@PROD >alter database disable thread 2;

17,删除thread=2的日志組group3和group4

SYS@PROD >alter database drop logfile group 3;

SYS@PROD >alter database drop logfile group 4;

删除thread=2的日志組後的redo log分布

18,同樣思路,删除不屬于單執行個體的undotbs2表空間及其資料檔案

SYS@PROD >col name for a50

SYS@PROD >select name from v$datafile;

NAME

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

+DATA/prod/datafile/system.296.860453223

+DATA/prod/datafile/sysaux.262.860453229

+DATA/prod/datafile/undotbs1.273.860453223

+DATA/prod/datafile/users.261.860453229

+DATA/prod/datafile/example.293.860453229

+DATA/prod/datafile/undotbs2.285.860453229      

+DATA/prod/datafile/goldengate.259.860453223

7 rows selected.

SYS@PROD >select name from v$tablespace where name like 'UNDO%';

UNDOTBS1

UNDOTBS2

SYS@PROD >drop tablespace undotbs2 including contents and datafiles;

此次試驗結束