<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • 數據庫數據備份與恢復(oracle的三種備份方式)


    Oracle數據庫非常強大,有其自己的備份與恢復機制,并且細分,只要配置合理,完全可以保證數據庫的完整,免去運維人員的后顧之憂。

    Oracle數據庫使用RMAN備份,需要把數據庫的非歸檔模式改成歸檔模式。

    數據庫的備份

    一、更改數據庫的歸檔模式需要重新啟動數據庫,在mount模式下修改(三種啟動模式nomount—mount— open)。

    具體步驟如下:

    1、進入數據庫后,關閉數據庫

    SQL>shutdown immediate

    2、啟動數據庫到mount狀態

    SQL>startup mount

    3、改變數據庫為歸檔模式

    SQL>alter database archivelog;(歸檔改為非歸檔語句為alter database noarchivelog;)

    4、驗證方式

    SQL>alter database open;(打開數據庫)

    SQL>archive log list

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    二、啟動控制文件的自動備份

    RMAN>configure controlfile autobackup on;

    RMAN>show controlfile autobackup ;(驗證)

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    三、全庫備份

    3.1最簡單的全庫備份

    RMAN>backup database;

    RMAN>list backup;(驗證)

    RMAN>list backup summary;(驗證)

    四、腳本備份

    4.1查看linux系統oracle用戶的環境變量,從而知道需要備份數據庫的名稱和實例

    $ cat /home/oracle/.bash_profile

    主要看ORACLE_SID=orcl

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    4.2在RMAN中設置冗余數(備份的次數,根據需要,一次備份的數據大小,備份的磁盤空間大小來決定)。

    $ rman target/

    RMAN>configure retenticn policy to redundancy 10;(這里設置為10次)

    4.3規劃備份的目錄


    /usr/local/oradata/orcl/RmanBackup,如果沒有,創建即可,這里需要注意這個文件夾必須屬于oracle用戶。

    4.4全量備份腳本如下圖

    這個0級全量備份腳本需要在oracle用戶下執行,并且需要把腳本chmod為775權限。

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用
    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    export ORACLE_BASE=/usr/local/oracle

    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

    export ORACLE_SID=orcl

    export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

    rman target/ << EOF_RMAN

    run{

    allocate channel c1 type disk;

    backup incremental level 0 tag ‘db0’ format

    ‘/usr/local/oradata/orcl/RmanBackup/db0_%d_%U’ database include current controlfile;

    delete noprompt obsolete;

    release channel c1;

    }

    #end

    把以上腳本放置到crontab中,可以設置自動執行。

    4.3增量備份腳本

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    export ORACLE_BASE=/usr/local/oracle

    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

    export ORACLE_SID=orcl

    export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

    rman target/ << EOF_RMAN

    run{

    allocate channel c1 type disk;

    backup incremental level 1 tag ‘db1’ format

    /usr/local/oradata/orcl/RmanBackup/db1_%d_%T_%s’ database include current controlfile;

    delete noprompt obsolete;

    release channel c1;

    }

    #end

    Oracle數據庫的恢復(一)

    Oracle數據庫的恢復需要在oracle用戶下執行,恢復內容包括控制文件*.ctl,重組日志文件*.log,數據庫文件*.dbf。

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    一、恢復dbf文件

    前提條件是Oracle數據庫的初始化spfile文件,控制文件、重組日志文件、歸檔日志、備份都可以正常使用。

    現在先刪除dbf文件。

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    1、關閉數據庫,再重新數據庫,進入數據庫

    1.1 $ sqlplul / as sysdba

    SQL>shutdown immediate(無法正常關閉,原因是沒有數據庫文件)

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    SQL>shutdown abort(強制關閉)

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    1.2 SQL>startup(無法正常啟動,原因是沒有數據庫文件)

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    1.3恢復

    $ rman target/

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    Oracle數據庫沒有處于open狀態,這是因為數據庫找不到數據文件,所以目前的數據庫處于mount狀態。

    1.3.1 還原文件

    RMAN> restore database;

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    1.3.2驗證

    進入存放dbf文件的目錄查看,dfb文件已經被恢復。

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    1.3.3繼續恢復數據

    RMAN> recover database;

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    1.3.4打開數據庫的open狀態

    RMAN> sql ‘alter database open’;

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    恢復完成,下面退出oracle數據庫的rman環境,重新進入數據庫。

    [oracle@shell ~]$ sqlplus / as sysdba

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    SQL> select instance_name,status from v$instance;

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    查看重做日志文件是否為原來的重做日志文件

    SQL> archive log list;

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    由上圖顯示,數據庫的重做日志的序號沒有從1開始,證明還是原來的重做日志。數據庫進行了完全恢復。

    恢復成功后,最好立刻備份數據。

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用
    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    二、重做日志文件損壞的恢復

    2.1確定數據庫的備份狀態

    必須是oracle用戶,執行rman target/

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    查看數據庫備份信息

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用
    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    2.2刪除重做日志文件

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    2.3重做日志

    $sqlplus / as sysdba

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    SQL> alter system switch logfile;

    數據庫會報錯

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    這里第一行主要出現

    ORA-01034: ORACLE not available的錯誤

    此時可以重新啟動到mount狀態

    SQL> startup mount;

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    繼續恢復

    SQL> alter database open resetlogs;

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    SQL> select * from v$log;

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    SQL> alter database open resetlogs;

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    第一行出現錯誤,ORA-01139:RESETLOGS選項僅在不完全數據庫恢復后有效。

    SQL> recover database until time ‘2021-06-16 09:09:09’;

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    完成介質恢復。把數據恢復到6月19日9點09分09秒。

    SQL> alter database open resetlogs;

    數據庫已經更改

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    SQL> shutdown

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    數據庫已經關閉。

    已經卸載數據庫。

    ORACLE例程已經關閉。

    SQL> startup

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    ORACLE實例已經啟動。

    數據庫裝載完畢。

    數據庫已經打開。

    SQL> select instance_name,status from v$instance;

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    查看文件.log文件在/usr/local/oradata/orcl目錄下

    Oracle數據庫的備份與恢復,實用易學簡單,轉發收藏備用

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费