• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    您的位置: 網站首頁 > 幫助中心>文章內容

    Linux下自動執行Oracle數據庫的備份

    發布時間:  2012/9/20 16:48:38

    備份策略:

    星期天 0 級
    星期一,二,四,五,六 2 級
    星期三 1 級


    --創建本地管理路徑

    mkdir -p /dinglp/ora_managed/backup
    mkdir -p /dinglp/ora_managed/backup
    mkdir -p /dinglp/ora_managed/backup/export-
     

    mkdir -p /dinglp/ora_managed/backup/log
    mkdir -p /dinglp/ora_managed/backup/rman_backup
    mkdir -p /dinglp/ora_managed/scripts

    --創建rman表空間和rman用戶

    create tablespace rman_tbs datafile '/oradata/luke/rman_tbs01.dbf' size 1024M;
    create user rman_dlp identified by dlp default tablespace rman_tbs temporary tablespace temp;
    grant connect,resource ,recovery_catalog_owner to rman;

    --注冊catalog 數據庫

    rman catalog rman_dlp/dlp
    create catalog tablespace rman_tbs;
    connect target sys/dg@priamry
    register database;
    report schema;

    --設置備份參數

    configure retention policy to redundancy 2;
    configure retention policy to recovery window of 7 days;

    --以下是備份腳本(可以通過vi進行編輯)
    dlp-> touch exp_rman.par
    dlp-> touch exp_rman.sh
    dlp-> touch rman_bk_LEVEL0.rcv   (數據庫0級備份)
    dlp-> touch rman_bk_LEVEL0.sh
    dlp-> touch rman_bk_LEVEL1.rcv (數據庫1級備份)
    dlp-> touch rman_bk_LEVEL1.sh
    dlp-> touch rman_bk_LEVEL2.rcv   (數據庫2級備份www.linuxidc.com)
    dlp-> touch rman_bk_LEVEL2.sh

    --倒出RMAN用戶數據腳本exp_rman.par
    ##################################################
    ###               exp_rman.par                 ###
    ##################################################
    userid=rman_dlp/dlp
    file=/dinglp/ora_managed/backup/export/rman.dmp
    log=/dinglp/ora_managed/backup/log/rman.log

    --倒出RMAN數據SHELL腳本exp_rman.sh
    ##################################################
    ###                 exp_rman.sh                ###
    ##################################################
    #!/bin/bash
    source /home/Oracle/.bash_profile
    cd /dinglp/ora_managed/scripts
    exp parfile=exp_rman.par

    --零級備份RMAN腳本rman_bk_LEVEL0.rcv
    connect catalog rman_dlp/dlp
    connect target sys/dg@primary
    run {
    allocate channel d1 type disk;
    allocate channel d2 type disk;
    backup incremental level 0 database format '/dinglp/ora_managed/backup/rman_backup/level0_%d_%s_%p_%u.bak'
    tag='level 0' include current controlfile;
    sql 'alter system archive log current';
    backup archivelog all format '/dinglp/ora_managed/backup/rman_backup/log_%d_%s_%p_%u.bak' delete all input;
    release channel d2;
    release channel d1;
    }
    crosscheck backup;
    delete noprompt expired backup;
    delete noprompt obsolete;
    resync catalog;
    exit;

    --零級備份SHELL腳本的rman_bk_LEVEL0.sh
    #####################################################################
    ###                   rman_bk_LEVEL0.sh                           ###
    #####################################################################
    #!/bin/bash
    source /home/Oracle/.bash_profile
    cd /dinglp/ora_managed/scripts
    rman cmdfile=rman_bk_LEVEL0.rcv msglog=$HOME/backup/log/rman_bk_LEVEL0.log
    ./dinglp/ora_managed/script/exp_rman.sh

    --一級差異增量備份RMAN腳本rman_bk_LEVEL1.rcv
    connect catalog rman_dlp/dlp
    connect target sys/dg@primary
    run {
    allocate channel d1 type disk;
    backup incremental level 1 format '/dinglp/ora_managed/backup/rman_backup/level1_%d_%s_%p_%u.bak' tag = 'level 1' database;
    sql 'alter system archive log current';
    backup archivelog all format '/dinglp/ora_managed/backup/rman_backup/log_%d_%s_%p_%u.bak' delete all input;
    release channel d1;
    }
    crosscheck backup;
    delete noprompt expired backup;
    delete noprompt obsolete;
    resync catalog;
    exit;

    --一級差異增量備份SHELL腳本rman_bk_LEVEL1.sh
    #####################################################################
    ###                   rman_bk_LEVEL1.sh                           ###
    #####################################################################
    #!/bin/bash
    source /home/Oracle/.bash_profile
    cd /dinglp/ora_managed/scripts
    rman cmdfile=rman_bk_LEVEL1.rcv msglog=/dinglp/ora_managed/backup/log/rman_bk_LEVEL1.log
    . /dinglp/ora_managed/scripts/exp_rman.sh

    --二級差異增量備份RMAN腳本rman_bk_LEVEL2.rcv
    connect catalog rman_dlp/dlp
    connect target sys/dg@primary
    run {
    allocate channel d1 type disk;
    backup incremental level 2 format '/dinglp/ora_managed/backup/rman_backup/level2_%d_%s_%p_%u.bak' tag = 'level 2' database;
    sql 'alter system archive log current';
    backup archivelog all format '/dinglp/ora_managed/backup/rman_backup/log_%d_%s_%p_%u.bak' delete all input;
    release channel d1;
    }
    crosscheck backup;
    delete noprompt expired backup;
    delete noprompt obsolete;
    resync catalog;
    exit;

    --二級差異增量備份SHELL腳本rman_bk_LEVEL2.sh
    #####################################################################
    ###                   rman_bk_LEVEL2.sh                           ###
    #####################################################################
    #!/bin/bash
    source /home/Oracle/.bash_profile
    cd /dinglp/ora_managed/scripts
    rman cmdfile=rman_bk_LEVEL2.rcv msglog=/dinglp/ora_managed/backup/log/rman_bk_LEVEL2.log
    . /dinglp/ora_managed/scripts/exp_rman.sh

    --提高RMAN增量備份性能

    alter database enable block change tracking using file '/u01/app/Oracle/admin/devdb/bdump/luke.log';

    desc v$block_change_tracking;

    --RMAN 動態視圖
    V$ARCHIVED_LOG             顯示在數據庫中已經創建、備份或清除的歸檔文件。
    V$BACKUP_CORRUPTION    顯示在備份集的備份過程中找到的損壞塊。
    V$COPY_CORRUPTION    顯示映像復制過程中找到的損壞塊。
    V$BACKUP_DATAFILE    用于通過確定各數據文件中的塊數來創建大小相同的備份集。通過它也可以找出數據文件中已損壞的塊數。    V$BACKUP_REDOLOG    顯示在備份集中存儲的歸檔日志。
    V$BACKUP_SET     顯示已經創建的備份集。
    V$BACKUP_PIECE    顯示為備份集創建的備份片。

    --如何監視復制進程
    使用 SET COMMAND ID 命令可將服務器會話與通道聯系起來。
    查詢 V$PROCESS 和 V$SESSION,可以確定會話與哪些 RMAN 通道對應。
    查詢 V$SESSION_LONGOPS,可以監視備份和復制的進度。

    --linux下自動運行備份腳本
    crontab格式簡介
    第1列分鐘1~59
    第2列小時1~23(0表示子夜)
    第3列日1~31
    第4列月1~12
    第5列星期0~6(0表示星期天)
    第6列要運行的命令

    [root@dlp ~]# vi /etc/crontab

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    HOME=/

    # run-parts
    01 * * * * root run-parts /etc/cron.hourly
    02 4 * * * root run-parts /etc/cron.daily
    22 4 * * 0 root run-parts /etc/cron.weekly
    42 4 1 * * root run-parts /etc/cron.monthly
    00 22 * * 0 root /dinglp/ora_managed/scripts/rman_bk_LEVEL0.sh
    00 22 * * 3 root /dinglp/ora_managed/scripts/rman_bk_LEVEL1.sh
    00 22 * * 1,2,4,5,6 root /dinglp/ora_managed/scripts/rman_bk_LEVEL2.sh

    --完畢,RYOHEI,2010-08-04。


     


    本文出自:億恩科技【www.vbseamall.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線