RMAN說,我能備份(2)--熟悉RMAN操作~

junsansi發表於2010-01-08

塗抹ORACLE試閱章節:第8章-Rman說,我能備份(2)

8.2 熟悉RMAN操作

  前面已經知道了如何進入RMAN,相信大家定會覺著RMAN操作簡單,事實也確實如此。一方面千萬不要被這種名頭響亮的專業工具嚇倒,認為專業的都是複雜的,另外一方面也萬不要因為操作簡單而小視其功能的強大,簡單往往意味著靈活,靈活對於那些有心人則意味著主動權盡在掌握之中。

  首先需要強調,如果是在Oracle資料庫OPEN狀態執行備份(嚴格地講是屬於OPEN READ WRITE狀態),則資料庫必須是置於歸檔模式,否則在執行備份操作時有可能碰到ORA-19602錯誤。

    提示:資料庫是否處於歸檔模式,以及如何開啟歸檔模式請參考第五部分相關章節。

8.2.1 啟動、關閉資料庫

  在RMAN中執行關閉和啟動資料庫的命令與SQL*P lus 環境中相同。當然,在執行之前,你需要先連線到目標資料庫,如:

    C:\Documents and Settings\junsansi> RMAN TARGET /

    Recovery Manager: Release 10.2.0.1.0 - Production on Tue Mar 17 21:13:59 2009

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

    connected to target database: JSSBOOK (DBID=1415261003)

  先關閉資料庫:

    RMAN>  SHUTDOWN IMMEDIATE

    using target database control file instead of recovery catalog

    database closed

    database dismounted

    Oracle instance shut down

  再啟動資料庫:

    RMAN>  STARTUP

    connected to target database (not started)

    Oracle instance started

    database mounted

    database opened

    Total System Global Area   314572800 bytes

    Fixed Size   1248720 bytes

    Variable Size   67109424 bytes

    Database Buffers   239075328 bytes

    Redo Buffers   7139328 bytes

    RMAN>

  同樣,你也可以執行STARTUP MOUNT,然後再利用ALTER DATABASE OPEN命令開啟資料庫,以及執行SHUTDOWN NORMAL、SHUTDOWN ABORT操作等。總之啟動和關閉的命令跟SQL*Plus 環境下相比就仨詞:完全一模一樣。

8.2.2 執行作業系統命令

  RMAN 支援通過執行 HOST 命令暫時退出RMAN的命令提示符,進入到作業系統的命令環境,如:

    RMAN>  HOST ;

    Microsoft Windows XP [版本 5.1.2600]

    (C) 版權所有 1985-2001 Microsoft Corp.

    C:\Documents and Settings\junsansi>exit

    host command complete

    RMAN>

  執行完系統命令後可以再通過執行 EXIT 命令退出到 RMAN 命令提示符下。

8.2.3 執行SQL語句

  在RMAN中執行 SQL 語句稍嫌複雜。在RMAN的命令提示符後輸入SQL命令,然後在一對單引號(雙引號亦可)中輸入要執行的SQL語句,例如:

    RMAN> SQL  ' ALTER SYSTEM ARCHIVE LOG ALL ' ;

  需要注意的一點是,RMAN中的 SQL 命令不能執行SELECT語句,或者說可以執行,但看不到結果。

  其實我們完全可以通過更取巧的方式來實現更強大的SQL操作,比如利用8.2.2節介紹的內容,如下所示:

    RMAN>  HOST ;

    Microsoft Windows XP [版本 5.1.2600]

    (C) 版權所有 1985-2001 Microsoft Corp.

    C:\Documents and Settings\junsansi> SQLPLUS /NOLOG

    SQL*Plus: Release 10.2.0.1.0 - Production on Tue Mar 17 21:15:44 2009

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

    SQL>  CONN / AS SYSDBA

    Connected.

    SQL>  ALTER SESSION SET NLS_DATE_FORMAT = ' yyyy-mm-dd hh24:mi:ss ' ;

    Session altered.

    SQL>  SELECT SYSDATE FROM DUAL;

    SYSDATE

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

    2009-03-17 21:16:08

    SQL> exit

    Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    With the Partitioning, OLAP and Data Mining options

    C:\Documents and Settings\junsansi> EXIT

    host command complete

    RMAN>

  蘿蔔青菜各有所愛,大家是愛蘿蔔還是愛青菜啊,愛蘿蔔的請選第一種,愛青菜的請選第二種。我愛吃肉,我要找第三種出來~

8.2.4 RMAN 備份型別

  通過RMAN有兩種不同型別的備份方式:建立映象複製和建立備份集。

  • 映象複製(Image Copies)。映象複製實際上就是建立資料檔案、控制檔案或歸檔檔案的備份檔案,與使用者通過作業系統命令建立的備份一樣(甚至連執行的命令都相同,RMAN映象複製使用 COPY 命令, W indows 下複製檔案也用 COPY 命令,Linux/U NIX 下則是用cp命令),只不過RMAN是利用目標資料庫中的服務程式來完成檔案複製,而使用者則是用作業系統命令。這種方式本質仍是複製資料庫中的物理檔案,包括資料檔案、控制檔案等,複製出的檔案與原始檔案一模一樣,所以映象複製的方式體現不出RMAN的優勢,也並非我們討論的重點,大家瞭解一下即可(啥?想知道映象複製咋用?問村長去~)。
  • 備份集(Backup Sets)。備份集是RMAN建立的具有特定格式的邏輯備份物件,備份集在邏輯上由一個或多個備份片段(Backup Piece)組成,每個備份片段在物理上對應一個作業系統檔案,一個備份片段中可能包含多個資料檔案、控制檔案或歸檔檔案,括弧之一。通過RMAN建立備份集的優勢在於,備份時只讀取資料庫中已經使用的資料塊,因此不管是從備份效率,或是節省儲存空間的角度,建立備份集的方式都更有優勢,本章所執行的演示均是基於建立備份集的方式進行的。

8.2.5 RMAN 命令執行方式

  在進入演練之前,大家還有必要了解執行RMAN命令的方式,就目前已知的情況來說,共有以下3種執行方式:

(1)單個執行。

  沒啥說的,之前的示例都是這種方式:

    RMAN> BACKUP DATABASE;

(2)批處理,如下所示:

    RMAN>RUN{

    ......

    }

  批處理方式實質是將原來單個執行的命令組合到一起,並放在 RUN {} 之間,這種方式最大的好處是所有在 RUN 中的命令被視為一個作業,如果作業中任何一條命令執行失敗,則整個命令停止執行,即失敗命令後的其他命令都不會再被執行。這種方式是最常使用的方式,特別是對於後臺指令碼化執行。

  不過,並不是所有的RMAN命令都能被放到RUN塊中執行,一些控制RMAN環境變數,或操作 CATALOG 的操作都不能在RUN塊中執行,如CONFIGURE、LIST、REPORT等。但是你仍然可以將這些命令放在RUN之前、之後或多個RUN塊之間(隨你放哪,只要不放到RUN塊裡就行)。

(3)執行指令碼,又能細分為以下幾種方式:

  • 用命令列方式呼叫作業系統中儲存的指令碼:
    F:\oracle\script> RMAN  TARGET / @backup_db.rman

  或者:

    F:\oracle\script> RMAN  TARGET / cmdfile=backup_db.rman
  • 在RMAN中執行作業系統中儲存的指令碼檔案:
    RMAN> @backup_db.rman
  • 執行儲存在 CATALOG 中的指令碼(需要首先為 RMAN 建立恢復目錄):
    RMAN> RUN { EXECUTE SCRIPT backup_whole_db };

  看看,夠靈活吧。

=================================================
圖書專區:http://www.5ienet.com/books
全書目錄:http://space.itpub.net/7607759/viewspace-622699
樣書預覽:http://space.itpub.net/7607759/viewspace-622515
馬上購買:http://www.china-pub.com/196252

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-624672/,如需轉載,請註明出處,否則將追究法律責任。

相關文章