RMAN使用備份傳輸資料表空間

來源:互聯網
上載者:User

RMAN使用備份傳輸資料表空間

在Oracle資料庫管理手冊中建立傳輸資料表空間集的方法要求在執行資料表空間傳輸期間被傳輸的資料表空間要以唯讀模式開啟。相比之下,當RMAN使用備份建立傳輸資料表空間集時,不需要訪問被傳輸資料表空間的聯機資料檔案。這就消除了要將傳輸資料表空間設定為唯讀模式的操作。結果就是提高了來源資料庫的可用性,特別是對於很大的資料表空間更是如此,因為資料表空間在傳輸時仍然操作讀寫狀態,而且將資料表空間設定為唯讀模式依賴於資料庫的負載,可能需要花費很長時間。

使用RMAN建立傳輸資料表空間集能讓你指定一個目標時間點,SCN或者你恢複視窗中的還原點並且傳輸資料的時間並不是transport tablespace的時間。例如,如果你的備份保留原則是保證一周的恢複視窗並且想建立傳輸資料表空間來報告資料庫在每個月最後一天時間的內容,可以使用RMAN在下個月的第一周內的任何時間來完成這個任務。

RMAN的transport tablespace命令被用來從RMAN備份中建立傳輸資料表空間集。注意,即使用沒有使用RMAN對資料庫進行備份,RMAN的transport tablespace命令也仍然能被用來建立傳輸資料表空間集。然而,對於傳輸資料表空間集所期待的SCN之前必須有傳輸資料表空間集所有的資料檔案副本,並且為了執行transport tablespace命令使用RMAN的catalog命令將資料檔案副本和歸檔重做日誌登記到RMAN的檔案庫中。當RMAN記錄了所有需要的備份和日誌後,就可以執行傳輸資料表空間。

何時使用RMAN來建立傳輸資料表空間集
 在任何需要傳輸資料表空間的情況下,只要你有將資料表空間恢複到指定SCN所需要的Database Backup,都可以使用RMAN的transport tablespace命令來建立它們。

然而在以下兩種特殊情況下更好有用:
.使用資料表空間檔案庫來建立傳輸資料表空間集。例如,資料庫中有些資料表空間用來做季報。使用transport
 tablespace命令來為這些儲存在資料表空間檔案庫中的產生季報的資料表空間建立傳輸資料表空間集。之後從檔案庫中被請求的資料表空間版本被附加到一些其它資料庫中來產生報表。

.當準備使用流來使用來源資料庫同步目標資料庫時,必須安裝流,為了使用目標資料庫及時更新到指定的SCN,兩個資料庫必須被同步。

--------------------------------------推薦閱讀 --------------------------------------

RMAN 配置歸檔日誌刪除策略

Oracle基礎教程之通過RMAN複製資料庫

RMAN備份策略制定參考內容

RMAN備份學習筆記

OracleDatabase Backup加密 RMAN加密

--------------------------------------分割線 --------------------------------------

使用RMAN產生傳輸資料表空間集要有以下執行個體:
1.RMAN用戶端
2.來源資料庫,包含了被傳輸的資料表空間
3.來源資料庫的歸檔重做記錄備份,將用來恢複被傳輸的資料表空間
4.輔助執行個體,由RMAN在來源資料庫所在主機上建立的執行個體,用來執行資料表空間的還原和恢複,如果處成功會清除它
5.輔助集,包含了執行傳輸資料表空間所要求的資料檔案和其它檔案但它們不是恢複集的一部分。輔助集包括:system和sysaux資料表空間的副本,undo資料表空間和來源資料庫中包含 undo段或復原段的資料檔案。輔助執行個體還有其它相關的檔案,比如,控制檔案,參數檔案和聯機重做記錄檔,但這些都是輔助集的一部分
6.輔助目錄,當執行RMAN的transport tablespace命令時,磁碟上用來儲存輔助集檔案的目錄,比如參數檔案,資料檔案(除了傳輸資料表空間的資料檔案之外的資料檔案),控制檔案和輔助執行個體的聯機重做記錄檔。如果傳輸資料表空間執行成功,這些檔案都會被刪除。
 注意:設定輔助目錄是可選項,然而,如果沒有設定輔助目錄,必須確保對所有輔助執行個體檔案,包括所有資料檔案,聯機重做記錄檔都使用輔助執行個體參數來指定儲存目錄,Oracle建議使用輔助目錄來簡化transport tablespace命令。
7.資料表空間目錄,儲存資料檔案副本和資料表空間傳輸命令完成後的輸出檔案的磁碟目錄。
8.傳輸集,包含了被傳輸資料表空間的資料檔案和用於在目標資料庫附加資料表空間的匯出dump檔案(通常是使用Data Pump匯出)。
9.用於在目標資料庫附加資料表空間的樣本匯入指令碼(由RMAN產生)和Data Pump匯出的記錄檔。

RMAN使用備份執行傳輸資料表空間的操作步驟
1.在啟動階段,RMAN會構建一個輔助執行個體。首先RMAN會為輔助執行個體自動建立參數檔案,並將輔助執行個體啟、動到nomount狀態。然後,RMAN使用來源資料庫的控制檔案備份還原輔助執行個體控制檔案並載入控制檔案。

2.當輔助執行個體控制檔案被載入後,RMAN就會使用來源資料庫備份,輔助目錄中的輔助資料檔案和資料表空間目錄中的傳輸集檔案來還原輔助執行個體和傳輸集資料檔案。RMAN然後在輔助執行個體中執行switch操作,因此輔助執行個體使用還原的資料檔案作為輔助執行個體的資料檔案。

RMAN對輔助執行個體執行資料庫按還原時間點。這將輔助集和傳輸集資料檔案中的內容更新到transport tablespace命令所指定目標時間點。(如果沒有指定目錄時間就是執行完全恢複)。執行transport tablespace命令時間會使用備份將需要的歸檔重做記錄檔還原到輔助目錄中(或其它目錄中)並在應用給輔助執行個體之後將其刪除。

一旦恢複完成,RMAN會對輔助執行個體執行open resetlogs操作。這時資料檔案反映了資料表空間在傳輸資料表空間操作所指定的目標時間點的內容。

3.輔助執行個體的恢複集資料表空間將會被設定為唯讀模式,並且調用Data Pump來為恢複集資料表空間產生dump檔案預設情況下,產生的dump檔案儲存體在資料表空間目錄中,也可以指定dump檔案目錄。

在這時RMAN也產生了用於在目標資料庫中附加傳輸資料表空間的Data Pump匯入的樣本指令碼。指令碼內容將被寫入到一個名叫impscript.sql的檔案中,並且儲存在資料表空間目錄中。這個指令碼的命令也被包含在RMAN的transport tablespace命令的輸出資訊中。

如果所有操作都執行成功,RMAN會關閉輔助執行個體並刪除除了傳輸集檔案之外的,transport tablespace命令產生的所有檔案,Data Pump匯出日誌和樣本匯入指令碼。

注意:transport tablespace失蹤不會自動地對恢複集資料檔案進行位元組序的轉換。如果需要,在建立傳輸集後將資料檔案轉換為目標資料庫的位元組序。匯入的樣本指令碼是假設要被附加到目標資料庫的傳輸資料表空間的資料檔案的儲存目錄與transport tablespace操作建立這些檔案的目錄相同。如果這些檔案在資料表空間被附加之前移動到新的磁碟目錄中,必須修改樣本指令碼指向新的目錄。

RMAN transport tablespace命令的限制
 使用RMAN建立傳輸資料表空間有以下限制:
1.必須對transport tablespace操作將資料庫恢複到指定目標時間點所有需要的資料表空間(包括輔助集中的資料表空間)和歸檔重做日誌進行備份。

2.因為RMAN在使用備份建立傳輸資料表空間的過程中會使用到Data Pump匯出和匯入工具,如果被傳輸的資料表空間使用XMLTypes就不能使用RMAN進行操作。在這種情況下必須使用Oracle管理手冊中介紹的方法

3.因為RMAN會在與源執行個體相同的主機上自動建立輔助執行個體來還原和恢複,在執行transport tablespace命令時會有些效能開銷。

4.如果刪除了一個資料表空間,即使transport tablespace命令指定的SCN早於資料表空間被刪除時的SCN,也不能將被刪除的資料表空間包含在transport tablepsace命令的傳輸資料表空間集中。

5.如果對錶空間重新命名後,不能使用transport tablespace命令來建立資料表空間集的目標時間不能早於資料表空間被刪除的時間(RMAN有關於資料表空間之前的名字)。

6.不能傳輸傳表沒有相關約束的表或者沒有相關表的約束

7.傳輸集和輔助集資料檔案可以包含以下任何對象:
--複製主表
--部分表
-有varray列,巢狀表格或外部檔案的表
--快照日誌和快照表
--包含undo或復原段的資料表空間
--包含屬於SYS使用者物件加,復原段的資料表空間

如果不使用恢複目錄執行transport tablespace還有以下兩個限制:
1.如果使用過去某個時間點的資料表空間內容來建立傳輸集,那麼執行transport tablespace命令時資料表空間集所使用的undo段與傳輸時所選擇的資料表空間所使用的undo段必須相同。包含transport tablespace命令所指定目標SCN所需要的undo段的資料表空間是輔助集的一部分。不像恢複目錄,控制檔案中的RMAN檔案庫只包含在當時包含undo段的資料表空間記錄。如果資料表空間要使用的undo段與指定的目標時間要使用的不同,那麼transport tablespace命令將會失敗。

2.如果資料庫已經重用了RMAN檔案庫中包含transport tablespace操作所需要的備份記錄資訊,那麼因為RMAN不能定位需要的備份而造成操作失敗。如果備份仍然可用,可以使用catalog命令將需要的備份登記到RMAN檔案庫中,但如果資料庫已經覆蓋了控制檔案中的備份記錄那麼可能要丟失需要的備份記錄資訊。

使用RMAN建立傳輸資料表空間集的操作過程

使用RMAN傳輸資料表空間的基本操作
1.確認來源資料庫與目標資料庫所在平台是不是傳輸資料表空間所支援的作業系統平台。
 確認來源資料庫作業系統平台:
SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d
  2  where tp.platform_name=d.platform_name ;

PLATFORM_NAME                                                                                        ENDIAN_FORMAT
----------------------------------------------------------------------------------------------------- --------------
Linux IA (32-bit)                                                                                    Little


確認目資料庫作業系統平台:
SQL> select d.platform_name,endian_format from v$transportable_platform tp,v$database d
  2  where tp.platform_name=d.platform_name ;

PLATFORM_NAME                                                                                        ENDIAN_FORMAT
----------------------------------------------------------------------------------------------------- --------------
Linux IA (32-bit)                                                                                    Little


這裡作業系統平台都是Linux

2.確認要被傳輸的資料表空間是否是自包含資料表空間(TSPITR,TEST):
SQL> exec sys.dbms_tts.transport_set_check('TSPITR',true);

PL/SQL procedure successfully completed.


SQL> exec sys.dbms_tts.transport_set_check('TEST',true);

PL/SQL procedure successfully completed.

SQL> select * from sys.transport_set_violations;

no rows selected

 

如果沒有行選擇,表示該資料表空間只包含表資料,可以傳輸。

記錄資料表空間傳輸前表tspitr與test中的記錄:
SQL> conn tspitr/tspitr
Connected.
SQL> select count(*) from tspitr;

  COUNT(*)
----------
    50641

SQL> conn test/test
Connected.
SQL> select count(*) from test;

  COUNT(*)
----------
    50680


3.對來源資料庫執行備份,在執行備份時一定要加上include current controlfile否則執行transport tablespace命令時會出現以下錯誤資訊:
Automatic instance removed
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of tranport tablespace command at 03/26/2015 20:24:22
RMAN-03015: error occurred in stored script Memory Script
RMAN-06026: some targets not found - aborting restore
RMAN-06024: no backup or copy of the control file found to restore

[oracle@oracle11g admin]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
[oracle@oracle11g admin]$ rman target sys/zzh_2046@test  catalog rman/rman@jy

Recovery Manager: Release 10.2.0.5.0 - Production on Thu Mar 26 20:01:33 2015

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: TEST (DBID=2168949517)
connected to recovery catalog database

RMAN> backup as backupset database include current controlfile plus archivelog;


Starting backup at 2015-03-26 20:32:19
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=68 recid=75 stamp=875286167
input archive log thread=1 sequence=69 recid=76 stamp=875291999
input archive log thread=1 sequence=70 recid=77 stamp=875302397
input archive log thread=1 sequence=71 recid=78 stamp=875308491
input archive log thread=1 sequence=72 recid=79 stamp=875350203
input archive log thread=1 sequence=73 recid=80 stamp=875351397
input archive log thread=1 sequence=74 recid=81 stamp=875390545
input archive log thread=1 sequence=75 recid=82 stamp=875390643
input archive log thread=1 sequence=76 recid=83 stamp=875391627
input archive log thread=1 sequence=77 recid=84 stamp=875391661
input archive log thread=1 sequence=78 recid=85 stamp=875391764
input archive log thread=1 sequence=79 recid=86 stamp=875392340
channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:32:22
channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:32:29
piece handle=/u02/ora_test875392341_991 tag=TAG20150326T203220 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:08
Finished backup at 2015-03-26 20:32:29

Starting backup at 2015-03-26 20:32:29
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u01/app/oracle/oradata/test/system01.dbf
input datafile fno=00003 name=/u01/app/oracle/oradata/test/sysaux01.dbf
input datafile fno=00005 name=/u01/app/oracle/oradata/test/example01.dbf
input datafile fno=00006 name=/u01/app/oracle/oradata/test/tspitr01.dbf
input datafile fno=00002 name=/u01/app/oracle/oradata/test/undotbs01.dbf
input datafile fno=00004 name=/u01/app/oracle/oradata/test/users01.dbf
input datafile fno=00007 name=/u01/app/oracle/oradata/test/test01.dbf
channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:32:30
channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:33:45
piece handle=/u02/ora_test875392350_1001 tag=TAG20150326T203229 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:15
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:33:46
channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:33:47
piece handle=/u02/ora_test875392425_1011 tag=TAG20150326T203229 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 2015-03-26 20:33:47

Starting backup at 2015-03-26 20:33:47
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=80 recid=87 stamp=875392427
channel ORA_DISK_1: starting piece 1 at 2015-03-26 20:33:49
channel ORA_DISK_1: finished piece 1 at 2015-03-26 20:33:50
piece handle=/u02/ora_test875392428_1021 tag=TAG20150326T203348 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 2015-03-26 20:33:50

Starting Control File and SPFILE Autobackup at 2015-03-26 20:33:50
piece handle=/u02/c-2168949517-20150326-07 comment=NONE
Finished Control File and SPFILE Autobackup at 2015-03-26 20:33:54

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 3
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.