Oracle 冷備份

來源:互聯網
上載者:User

-- Oracle 冷備份
--======================

 

一、冷備份
    資料庫在關閉狀態下完成所有物理系統檔案拷貝的過程,也稱離線備份
    適合於非歸檔模式下,資料庫處於一致性狀態
   

二、步驟   

    首先在啟動並執行庫中得到資料庫啟動並執行所有的物理檔案位置,然後在計劃內關閉資料庫(shutdown)

    再執行拷貝物理文夾到備份路徑或備份裝置
    備份完成後立即啟動資料庫讓其提供正常的服務
 

 

三、冷備指令碼的寫法
    首先應該在相關視圖裡查出資料庫的資料檔案,記錄檔,控制檔案,臨時檔案所在的位置
    注意:不要直接把oradata下的cp就行了,因為生產庫裡各個檔案通常分布在不同的磁碟,不同的地方,所以在去視圖裡獲得真實路徑 

 

    --查看執行個體和資料庫的相關資訊
    SQL> select instance_name,version,status,archiver,database_status from v$instance;

 

    INSTANCE_NAME    VERSION           STATUS       ARCHIVE DATABASE_STATUS

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

    orcl             10.2.0.1.0        OPEN         STOPPED ACTIVE

 

    SQL> select dbid,name,log_mode from v$database;

 

          DBID NAME      LOG_MODE

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

    1242732291 ORCL      NOARCHIVELOG

 

    --查看資料檔案及狀態資訊
    SQL> select file_name,tablespace_name,status,online_status from dba_data_files;

 

    FILE_NAME                                               TABLESPACE STATUS    ONLINE_

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

    /u01/app/oracle/oradata/orcl/undotbs01.dbf              UNDOTBS1   AVAILABLE ONLINE

    /u01/app/oracle/oradata/orcl/system01.dbf               SYSTEM     AVAILABLE SYSTEM

    /u01/app/oracle/oradata/orcl/sysaux01.dbf               SYSAUX     AVAILABLE ONLINE

    /u01/app/oracle/oradata/orcl/users01.dbf                USERS      AVAILABLE ONLINE

    /u01/app/oracle/oradata/orcl/example01.dbf              EXAMPLE    AVAILABLE ONLINE

    /u01/app/oracle/oradata/orcl/tbs1_1.dbf                 TBS1       AVAILABLE ONLINE

    /u01/app/oracle/oradata/orcl/tbs1_2.dbf                 TBS1       AVAILABLE ONLINE

 

    --查看資料檔案
    SQL> select name from v$datafile;

 

    NAME

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

    /u01/app/oracle/oradata/orcl/system01.dbf

    /u01/app/oracle/oradata/orcl/undotbs01.dbf

    /u01/app/oracle/oradata/orcl/sysaux01.dbf

    /u01/app/oracle/oradata/orcl/users01.dbf

    /u01/app/oracle/oradata/orcl/example01.dbf

    /u01/app/oracle/oradata/orcl/tbs1_1.dbf

    /u01/app/oracle/oradata/orcl/tbs1_2.dbf

 

    --查看臨時檔案
    SQL> select name from v$tempfile;

 

    NAME

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

    /u01/app/oracle/oradata/orcl/temp01.dbf

 

    --查看記錄檔
    SQL> select member from v$logfile;

 

    MEMBER

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

    /u01/app/oracle/oradata/orcl/redo2a.rdo

    /u01/app/oracle/oradata/orcl/redo2b.rdo

    /u01/app/oracle/oradata/orcl/redo1a.rdo

    /u01/app/oracle/oradata/orcl/redo3a.rdo

    /u01/app/oracle/oradata/orcl/redo3b.rdo

    /u01/app/oracle/oradata/orcl/redo1b.rdo

 

    --查看控制檔案
    SQL> select name from v$controlfile;

 

    NAME

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

    /u01/app/oracle/oradata/orcl/control01.ctl

    /u01/app/oracle/oradata/orcl/control02.ctl

 

    --建立備份目錄
    SQL> ho mkdir /u01/app/oracle/coolbak

   

    --使用串連符產生複製檔案命令
    SQL> select 'ho cp ' || name || ' /u01/app/oracle/coolbak' from v$controlfile;

 

    'HOCP'||NAME||'/U01/APP/ORACLE/COOLBAK'

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

    ho cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/coolbak

    ho cp /u01/app/oracle/oradata/orcl/control02.ctl /u01/app/oracle/coolbak

 

    SQL> save /tmp/tmpbak.sql;   --將上面的輸入儲存為tmpbak.sql

    Created file /tmp/tmpbak.sql

 

    SQL> ho vim /tmp/tmpbak.sql   --編輯tmpbak.sql,將下面的內容輸入到tmpbak.sql

 

    set feedback off

    set heading off

    set verify off

    set trimspool off

    set pagesize 0

    set linesize 200

    define dir = '/u01/app/oracle/coolbak'

    define script = '/tmp/coolbak.sql'

    spool &script

    select 'ho cp ' || name || ' &dir' from v$controlfile

    union all

    select 'ho cp ' || name || ' &dir' from v$datafile

    union all

    select 'ho cp ' || member || ' &dir'  from v$logfile

    union all

    select 'ho cp ' || name || ' &dir' from v$tempfile

    /

    create pfile = '&dir/initorcl.ora' from spfile;

    ho cp /u01/app/oracle/10g/dbs/orapworcl &dir

    spool off

    shutdown immediate

    start &script

    ho rm &script

    startup

 

    --執行tmpbak.sql

    SQL> @/tmp/tmpbak.sql;

 

    --執行過程及資料庫啟動略
       

    --啟動後查看備份的檔案
    SQL> ho ls /u01/app/oracle/coolbak

    control01.ctl  orapworcl   redo2b.rdo    system01.dbf   users01.dbf

    control02.ctl  redo1a.rdo  redo3a.rdo    tbs1_1.dbf

    example01.dbf  redo1b.rdo  redo3b.rdo    tbs1_2.dbf

    initorcl.ora   redo2a.rdo  sysaux01.dbf  undotbs01.dbf

 

四、總結
    優點
        冷備模式下概念易於理解,即將需要備份的檔案複製到安全的位置
        操作比較簡單,不需要太多的幹預
        容易恢複到某個時間點上(只需將檔案再拷貝回去)

        能與歸檔方法相結合,作資料庫“最新狀態”的恢複。
    缺點
        備份時,資料庫必須處於一致性關閉狀態
        只能提供到某一時間點的恢複
        備份時速度比較慢,尤其是資料量大效能影響比較大
        不能實現基於表和使用者層級的資料恢複
 

五、更多參考
 

  Oracle 備份恢複概念

 

SPFILE錯誤導致資料庫無法啟動

 

Managing Archived Redo Logs

 

Oracle 使用者、對象許可權、系統許可權

 

Oracle 角色、設定檔

 

  Oracle 聯機重做記錄檔(ONLINE LOG FILE)

 

  Oracle 控制檔案(CONTROLFILE)

 

  Oracle 資料表空間與資料檔案

 

Oracle 歸檔日誌

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/robinson_0612/archive/2010/08/05/5791597.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.