茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1671851 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
F09_411.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2017/6/8 8:34:33

Oracle RMAN的基本概念

剛開始學rman就被恢復目錄資料庫和目標資料庫給搞混了頭,浪費了些時間,這裡先把這個兩者給解釋一下,順便記在這裡,以後可以回憶。

Target Database:(目標資料庫)

就是需要RMAN對其進行備份與恢復的資料庫,RMAN 可以備份資料檔案,控制檔,歸檔日誌,spfile.(注意:RMAN不能用於備份連線日誌、初始化參數檔和口令檔)

recovery catalog: (恢復目錄)

用來保存備份與恢復資訊的一個資料庫,不建議創建在目標資料庫上。 RMAN 利用恢復目錄記載的資訊去判斷如何執行需要的備份恢復操作。

如果不採用恢復目錄,備份資訊可以存在於目標資料庫的 control file 中。

如果存放在目標資料庫的 control file 中,控制項檔會不斷增長,不能保存 RMAN 的Script. CONTROL_FILE_RECORD_KEEP_TIME (default=7):控制項檔中 RMAN 資訊保存的最短時間。

使用恢復目錄的優勢: 可以存儲腳本,記載較長時間的備份恢復操作。


RMAN Repository: (RMAN 恢復目錄資料庫)

存放 recovery catalog(恢復目錄)的資料庫。
建議為恢復目錄資料庫創建一個單獨的資料庫。



附上管理‘恢復目錄’一些命令


一、建立恢復目錄的步驟
1、建立恢復目錄表空間
SQL>CREATE TABLESPACE RMAN_TS
2>DATAFILE 'D:\ORACLE\TEST\RMAN. DBF' SIZE 100M
2、建立恢復目錄擁有者
SQL>CREATE USER RMAN IDENTIFIED BY RMAN
2>DEFAULT TABLESPACE RMAN_TS
3、授予恢復目錄擁有者角色。 恢復目錄擁有者必須具有RECOVERY_CATALOG_OWNER角色。 另外,當建立恢復目錄時,需要連接到資料庫,並且在恢復目錄表空間上創建
表,因此還應該為恢復目錄擁有者授予CONNECT 和 RESOURCE角色
SQL>GRANT CONNECT,RESOURCE,RECOVERY_CATALOG_OWNER TO RMAN
4、建立恢復目錄。
C:\>RMAN CATALOG RMAN/RMAN@CATADB

RMAN>CREATE CATALOG;

5、註冊目標資料庫。 在建立了恢復目錄之後,為了將目標資料庫的RMAN中繼資料存放到恢復目錄中,必須連接到目標資料庫,並使用REGISTER DATABASE命令註冊目標資料庫,
可以使用REPORT SCHEMA命令檢查是否註冊成功。
C:\>RMAN CATALOG RMAN/RMAN@CATADB
RMAN>CONNECT TARGET SYS/ORACLE@MYDB
RMAN>REGISTER DATABASE
RMAN>REPORT SCHEMA;
二、使用存儲腳本
1、建立存儲腳本
RMAN>CREATE SCRIPT BACKUP_DATABASE{
2>BACKUP FORMAT='D:\BACKUP\%d_%s.bak' database
3>include current controlfile
4>plus archivelog;
5>sql 'alter system archive log current';
6>}
2、運行存儲腳本
(1) 在RMAN提示符下運行存儲腳本
RMAN>RUN{EXECUTE SCRIPT BACKUP_DATABASE;}
(2)在命令列運行存儲腳本。
C:\>RMAN CATALOG RMAN/RMAN@MYORCL TARGET SYS/WENZI@MYDB SCRIPT BACKUP_DATABASE
3、顯示腳本內容
RMAN>PRINT SCRIPT BACKUP_DATABASE
4、替換存儲腳本
RMAN>REPLACE SCRIPT BACKUP_DATABASE{
2>BACKUP DATABASE;
3}
5、刪除存儲腳本
RMAN>DELETE SCRIPT BACKUP_DATABASE;
7、列出所有存儲腳本
RMAN>LIST SCRIPT NAMES;
三、維護恢復目錄
1、重新同步恢復目錄
重新同步恢復目錄的目的是為了使恢復目錄和目標資料庫控制檔保持同步,當目標資料庫物理結構發生改變(增加和刪除表空間,增加資料檔案)時,應該重新同步恢復目錄。
RMAN>RESYNC CATALOG;
2、登出目標資料庫
RMAN>UNREGISTER DATABASE;
3、升級恢復目錄
如果RMAN用戶端版本高於恢復目錄的版本號,那麼應該升級恢復目錄。
注意,當升級恢復目錄時,需要執行兩次UPGRADE CATALOG命令。
RMAN>UPGRADE CATALOG;
...
...
RMAN>UPGRADE CATALOG;
4、刪除恢復目錄
刪除恢復目錄時,會刪除目錄的所有資訊。 注意,當刪除恢復目錄時,需要執行兩次DROP CATALOG命令。
5、恢復資料庫到早期資料庫副本
當執行了不完全恢復之後,需要使用RESETLOGS選項打開資料庫,當用該選項打開資料庫後,會建立資料庫的副本,如果想將資料庫恢復到早期副本的狀態,
則必須使用RESET DATABASE TO INCARNATION命令設置當前資料庫副本為早期副本,然後執行相應操作。 步驟如下:
(1)確定資料庫副本的副本鍵值
RMAN>LIST INCARNATION OF DATABASE;
(2)設置資料庫到早期版本
RMAN>STARTUP FORCE MOUNT
RMAN>RESET DATABASE TO INCARNATION 2;
(3)轉儲早期版本的控制檔。 當轉儲控制檔時,要求目標資料庫必須處於NOMOUNT狀態。
注意,當轉儲早期版本的控制檔時,必須確保控制檔副本存在。
RMAN>RUN{
2>STARTUP FORCE NOMOUNT;
3>SET UNTIL SCN=656740;
4>RESTORE CONTROLFILE;
5>}
(4)恢復資料庫到早期副本。
RMAN>RUN{
2>ALTER DATABASE MOUNT;
3>RESTORE DATABASE;
4>RECOVER DATABASE;
5>ALTER DATABASE OPEN RESETLOGS;
6>}
四、查詢恢復目錄
1、RC_DATABASE
該資料字典視圖用於顯示在恢復目錄中已經註冊的所有目標資料庫資訊。
SQL>SELECT DBID,NAME,RESETLOGS_CHANGE# FROM RC_DATABASE
2、RC_TABLESPACE
該資料字典視圖用於顯示在恢復目錄中所記載的目標資料庫的表空間資訊。
SQL>SELECT TS#,NAME,CREATION_CHANGE# FROM RC_TABLESPACE WHERE DB_NAME='MYDB'
3、RC_DATAFILE
該資料字典視圖用於顯示在恢復目錄中所記載的目標資料庫的資料檔案資訊。
SQL>SELECT FILE#,NAME,BYTES FROM RC_DATAFILE WHERE DB_NAME='MYDB'
4、RC_STORED_SCRIPT
該資料字典視圖用於顯示在恢復目錄中所記載的所有存儲腳本資訊。
SQL>SELECT SCRIPT_NAME FROM RC_STORED_SCRIPT WHERE DB_NAME='MYDB'
5、RC_STORED_SCRIPT_LINE
該資料字典視圖用於存儲腳本的內容。
SQL>SELECT LINE,TEXT FROM RC_STORED_SCRIPT_LINE WHERE SCRIPT_NAME='BACKUP_DATABASE'


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




接下來在記錄其他基礎知識


RMAN的元件、概念
1. RMAN 主要包括以下元件:

Server Session:(伺服器會話)

RMAN啟動資料庫上的Oracle伺服器進程,將建立一個與目標資料庫的會話。
由目標資料庫上的伺服器進程進行備份、還原、恢復的實際操作。


伺服器進程

RMAN的服務進程是一個後臺進程,用於與RMAN工具與資料庫之間的通信,也用於RMAN工具與磁片/磁帶等I/O設置之間的通信,服務進程負責備份與恢復的所有工作,在如下情況將產生一個服務進程:當連接到目標資料庫分配一個新的通道


Channel: (通道)


通道控制命令可以用來:

控制 RMAN使用的 O/S資源,影響並行度

指定 I/O頻寬的限制值(設置 limit read rate 參數)

定義備份片大小的限制(設置 limit kbytes)

指定當前打開檔的限制值(設置 limit maxopenfiles)


MML: (媒體管理庫)

Media Management Layer (MML)是協力廠商工具或軟體,用於管理對磁帶的讀寫與檔的 跟蹤管理。 如果你想直接通過 RMAN 備份到磁帶上,就必須配置媒體管理層,媒體管理層 的工具如備份軟體可以調用 RMAN來進行備份與恢復。


2.概念述語

Backup Sets (備份組合)


備份組合的特性:包括一個或多個資料檔案或歸檔日誌,以oracle專有的格式保存,有一個完全的所有的備份片集合構成,構成一個完全備份或增量備份。


Backup Pieces (備份片)

一個備份組由若干個備份片組成。 每個備份片是一個單獨的輸出檔案。 一個備份片的大 小是有限制的;如果沒有大小的限制, 備份組就只由一個備份片構成。 備份片的大小不能 大於使用的檔案系統所支援的檔長度的最大值。


Image Copies 鏡像備份

鏡像備份是獨立檔(資料檔案、歸檔日誌、控制檔)的備份。 它很類似作業系統級 的檔案備份。 它不是備份組或備份片,也沒有被壓縮。


Full backup Sets 全備份組合

全備份是一個或多個資料檔案中使用過的資料塊的的備份。 沒有使用過的資料塊是不被備份的,也就是說,oracle 進行備份組合的壓縮。


Incremental backup sets 增量備份集合

增量備份是指備份一個或多個資料檔案的自從上一次同一級別的或更低級別的備份以來被修改過的資料塊。 與完全備份相同,增量備份也進行壓縮。



File multiplexing

多個資料檔案可以在一個備份組中。

Recovery catalog resyncing 恢復目錄同步

使用恢復管理器執行 backup、copy、restore 或者 switch 命令時,恢復目錄自動進行更 新,但是有關日誌與歸檔日誌資訊沒有自動記入恢復目錄。 需要進行目錄同步。 使用 resync catalog命令進行同步。

RMAN> resync catalog;


Incarnation 對應物

在不完全恢復完成之後,通常需要使用 resetlogs 選項來打開資料庫。 resetlogs 表示一個 資料庫邏輯存留期的結束和另一個資料庫邏輯存留期的開始。 資料庫的邏輯存留期也被稱為 一個對應物(incarnation)。 每次使用 resetlogs 選項來打開資料庫後都會創建一個新的資料庫 對應物。


RMAN的使用:命令列介面與腳本
資料庫狀態:RMAN恢復目錄資料庫: 必須OPEN目標資料庫: 根據不同情況,必須MOUNT或OPEN


1. 使用不帶恢復目錄的 RMAN


設置目標資料庫的 ORACLE_SID ,執行:$ rman nocatalog RMAN> connect target RMAN> connect target user/pwd>@db


2. 使用帶恢復目錄的RMAN

$ rman catalogrman/rman RMAN> connecttarget //連接本機資料庫作為目標資料庫RMAN> connecttarget user/pwd>@db //連接遠端資料庫或$ rman catalogrman/rman targetuser/pwd>@db


3. 命令列介面


1、單個執行

RMAN> backup database;


2、運行一個命令塊

RMAN> RUN { 2> copy datafile 10 to 3> '/oracle/prod/backup/prod_10.dbf';4> }


3、運行存儲在恢復目錄中的腳本:

RMAN> RUN { EXECUTE SCRIPT backup_whole_db };


4、運行外部腳本:

$ rman catalog rman/rman target / @backup_db.rman

$ rman cmdfile=backup.rman msglog=backup.log


RMAN> @backup_db.rman ]

RMAN> RUN { @backup_db.rman }

如果在cron中執行,注意在腳本中設置正確的環境變數,例:

#set env export ORACLE_HOME=/opt/oracle/product/9.2

export ORACLE_SID=test


export PATH=$PATH:$ORACLE_HOME/bin rman cmdfile=backup_db.rman


4. 使用腳本

創建或者取代腳本:

RMAN> create script alloc_disk {

2> # Allocates one disk

3> allocate channel dev1 type disk;

4> setlimit channel dev1 kbytes 2097150 maxopenfiles 32 readrate 200;

5> } RMAN> replace script rel_disk { 2> # releases disk 3> release channel dev1;5> }

刪除腳本:RMAN> DELETE SCRIPT Level0Backup;

查看腳本:RMAN> PRINT SCRIPT Level0Backup;

運行腳本:RMAN> RUN { EXECUTE SCRIPT backup_whole_db };


5. 運行OS命令

RMAN支援通過執行 host命令暫時退出 RMAN的命令提示符而進入到作業系統的命令環境。


6. 執行SQL語句

在 RMAN 的命令提示符後輸入 SQL 命令,然後在一對單引號(雙引號亦可)中輸入要執行的 SQL 語句,例如:RMAN> SQL 'ALTER SYSTEM CHECKPOINT';對於 SELECT語句,無法得到結果。 可以先執行 host再用 SQLPLUS.


RMAN 的配置
4.2.1 建立Recovery Catalog恢復目錄

(1) 在目錄資料庫中創建恢復目錄所用表空間:

SQL> create tablespace rman_ts datafile '/xxx/rman_ts.dbf' size 20M;

(2) 在目錄資料庫中創建RMAN 使用者並授權:


SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;SQL> grant connect, resource, recovery_catalog_ownerto rman;

(3) 在目錄資料庫中創建恢復目錄

$ rman catalog rman/rman RMAN> create catalog tablespace rman_ts;

(4) 登記目標資料庫:

一個恢復目錄可以註冊多個目標資料庫,註冊目標資料庫的命令為:$ RMAN catalog rman/rman target user/pwd @rcdb; RMAN> register database;


4.2.2 查看RMAN的預設設置SHOW命令

必須連接目標資料庫RMAN> show all

RMAN> show channel; // 通道分配 RMAN> show device type; // IO 裝置類型

RMAN> show retention policy; // 保存策略

RMAN> show datafile backup copies; // 多個備份的拷貝數目

RMAN> show maxsetsize; // 備份組大小的最大值


RMAN> show exclude; // 不必備份的表空間

RMAN> show backup optimization; // 備份的優化


配置RMAN的預設設置
1. 配置備份組檔的格式 (format)

RMAN> configure channel device type disk format'/u05/oracle/rmanback/%U';備份檔案可以自訂各種各樣的格式,如下%c 備份片的拷貝數%d 資料庫名稱%D 位於該月中的第幾天 (DD)

%M 位於該年中的第幾月 (MM)

%F 一個基於 DBID 唯一的名稱,這個格式的形式為 c-IIIIIIIIII-YYYYMMDD-QQ,其中 IIIIIIIIII 為該資料庫的 DBID,YYYYMMDD 為日期,QQ 是一個 1-256 的

序列%n 資料庫名稱,向右填補到最大八個字元%u 一個八個字元的名稱代表備份組與創建時間%p 該備份組中的備份片號,從 1 開始到創建的檔數%U 一個唯一的檔案名,代表%u_%p_%c %s 備份組的號%t 備份組時間戳記%T 年月日格式(YYYYMMDD)


2. 配置預設 IO裝置類型 ( device type )

IO 裝置類型可以是磁片或者磁帶,在預設的情況下是磁片,可以通過如下的命令 進行重新配置。


RMAN> configure default device t ype to disk; RMAN> configure default device t ype to sbt;注意,如果換了一種 IO 設備,相應的配置也需要做修改,如RMAN> configure device type sbt parallelism 2;


3. 配置自動分配的通道 ( Chanel )

RMAN> configure channel device type disk format

'/U01/ORACLE/BACKUP/%U在運行塊中,手工指定通道分配,這樣的話,將取代預設的通道分配。

RMAN> Run { allocate channel cq type disk format='/u01/backup/%u.bak';...

}

通道的一些特性:讀的速率限制 Allocate channel ......rate = integer 最大備份片大小限制 Allocate channel ...... maxpiecesize = integer 最大併發打開檔數(預設 16) Allocate channel ...... maxopenfile = integer


4. 配置預設的保存策略 ( Retention Policy)

保存策略是管理備份與副本有效期或者是否有效的一種方法。 恢復資料庫的時候Oracle 不 考 慮 失效 的 備 份。 我們可以定義兩種保存策略:


恢復視窗備份保存策略(recovery window backup retention policy )和冗余備份保存策略(redundancy backup retention policy )

備份策略保持

分為兩個保持策略:

一個是時間策略,決定至少有一個備份能恢復到指定的日期


一個冗余策略,規定至少有幾個冗余的備份。 恢復視窗備份保存策略這種保存策略類型的使用基於資料庫可能恢復到的最早的日期。 例如,假設今天 是星期一,此前存在 3 個備份。 第一個備份在昨天生成的,第二個備份是上星期四生 成的,而最後一個備份是 10 天前備份的。 假如恢復視窗是 7 天,那麼昨天和上星期 四的備份是有效備份,而 10 天前的備份會成為廢棄備份。 下面的命令將恢復視窗配置為 7 天:RMAN> configure retention policy to recovery window of 7 days;冗余備份保存策略使用這種保存策略,RMAN 會從最新備份開是保留 N 個資料備份,其餘的廢棄。 例如,如果有四個備份,而冗餘數是 3,那麼最早的那個備份將被廢棄。 下面的命令將 備份策略設置為 3:RMAN> configure retention policy to redundancy3;設置 NONE可以把使備份保持策略失效,Clear 將恢復預設的保持策略RMAN> configure retention policy to none;例:保 證 至 少有一 個 備份 能 恢復 到 Sysdate-5 的時 間點 上, 之 前
的備份將 標 記 為Obsolete RMAN> configure retention policy to recovery window of 5 days;至少需要有三個冗余的備份存在,如果多餘三個備份以上的備份將標記為冗余RMAN> configure retention policy to redundancy 5;


5. 配置多個備份的拷貝數目( backup copies )

如果覺得單個備份組不放心,可以設置多個備份組的拷貝,如:

RMAN> configure datafile backup copies for device type disk to 2;

RMAN> configure archivelogbackup copies for device type disk to 2;

如果指定了多個拷貝,可以在通道配置或者備份配置中指定多個拷貝地點:

RMAN> configure channel device type disk format

'/u01/backup/%U', '/u02/backup/%U';

RMAN> backup datafile n format '/u01/backup/%U', '/u02/backup/%U';


6. 設置並行備份( ARALLELISM )

RMAN支援並行備份與恢復,也可以在配置中指定預設的並行程度。
如:RMAN> configure device type disk parallelism 4;指定在以後的備份與恢復中,將採用並行度為 4,同時開啟 4個通道進行備份與恢 複,當然也可以在 RUN的運行塊中手工分配多個通道來決定備份與恢復的並行程度。 並行的數目決定了開啟通道的個數。 如果指定了通道配置,將採用指定的通道,如果沒 有指定通道,將採用預設通道配置。

還可以在 BACKUP命令中使用指定 FILESPERSET 或者指定(datafile 1,4,5 channel c1 tag=DF1)(datafile 2,3,6 channel c2 tag=DF2)


7. 設置控制檔自動備份 (autobackup on)

通過如下的命令,可以設置控制檔的自動備份RMAN> configure controlfile autobackup on;對於沒有恢復目錄的備份策略來說,這個特性是特別有效的,控制檔的自動備份發生在任何 backup 或者 copy 命令之後,或者任何資料庫的結構改變之後。

可以用如下的配置指定控制檔的備份路徑與格式RMAN> configure controlfile autobackup format for type disk to '%f';

在備份期間,將產生一個控制檔的快照,用於控制檔的讀一致性,如下配置:

RMAN> configure snapshot controlfile name to

'/u01/app/oracle/product/9.0.2/dbs/snapcf_U02.f';


8. 設置備份優化選項 ( optimization )

可以在配置中設置備份的優化,如RMAN> configure backup optimization on;如果優化設置打開,將對備份的資料檔案、歸檔日誌或備份組運行一個優化演算法。


RMAN 會話的設置
set 命令與configure命令很相似,但是set命令設置不是永久的。 set 命令定義只應用於當前 RMAN會話的設置。

可以用於RUN代碼之外的命令有:set echo on | off // 顯示或關閉 RMAN顯示set DBID dbidn // 指定一個資料庫的資料庫識別碼。

下面的set 命令只能在 RUN代碼中使用:set newname:用於TSPITR或者資料庫複製操作,指定新的資料庫檔案名,將資料庫移動到新的系統中並且檔案名不同的時候可以用此命令。

set maxcorrupt for datafile:用於定義 RMAN操作失敗之前允許的資料塊訛誤的數量set archivelog destination:可以修改存儲歸檔的重做日誌 archive_log_dest_1 的目的地。

set命令和until 子句:可以定義資料庫時間點恢復操作所使用的具體的時間點、SCN或者日誌序號,例:


set backup copies:

使用該命令可以定義為備份組的每個備份片創建的鏡像副本數。

例:


RMAN> RUN{

set maxcorrupt for datafile 3 to 10;

set backup copies = 2;

backup database;

}


本文來自CSDN博客,轉載請標明出處:HTTP://blog.csdn.net/hxf0759/archive/2009/05/17/4194747.aspx

原文出處:Oracle RMAN的基本概念 @ 資訊園 :: 痞客邦 PIXNET ::
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|