a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > Oracle > 正文

oracle 增量備份恢復策略(基礎知識)

2024-08-29 13:53:51
字體:
來源:轉載
供稿:網友
 EXP和IMP是Oracle提供的一種邏輯備份工具。邏輯備份創建數據庫對象的邏輯拷貝并存入一個二進制轉儲文件。這種邏輯備份需要在數據庫啟動的情況下使用, 其導出實質就是讀取一個數據庫記錄集(甚至可以包括數據字典)并將這個記錄集寫入一個文件,這些記錄的導出與其物理位置無關,導入實質就是讀取轉儲文件并執行其中的命令。此備份方式是通過Oracle的實用工具export和import來實施的, export是把數據庫中的數據導出,import是把export卸出的數據導入數據庫中。通過此工具可以衍生出多種功能, 比如整個數據庫的備份、表結構重建、數據的傳輸、用戶的改變等等。

    Oracle Export/Import工具提供了靈活多樣的功能和導出/導入模式,最常使用的三種模式是User、table和full database。除此以外,還可以在導出/導入時決定是否包含與對象有關的數據字典信息,如索引、約束、權限等等。

    注意:通過邏輯備份可以備份整個數據庫, 或僅備份部分重要數據。因為是邏輯上的備份,故只能用于邏輯的恢復數據, 一旦數據庫被物理損壞, 導致不能啟動,邏輯備份的數據不能幫助恢復數據庫。

    1. Export/Import的使用舉例:(以下操作均為在
    (1). 將一個用戶的對象導入到另一個用戶模式中:
    把數據庫中原有的用戶Export至一個dmp文件(如把用戶olduser的對象導出到文件olduser0701.dmp中):
    $ exp sys/passWord file= olduser0701 owner=olduser grant=N indexes=Y rows=Y
     從dmp文件中把一個用戶的對象import至一個用戶的模式中(從olduser0701.dmp中,把用戶olduser的對象導入到用戶newuser中):
    $imp sys/password file=olduser0701 fromuser=olduser touser=newuser indexes=Y rows=Y
    (2). 導入時避免出現ORA-00942(表或是圖不存在)錯誤:
    因為,導出是按照在數據庫中對象建立的順序進行的,從而在導入時,數據庫對象之間的依賴性會引起某些先導入對象找不到其依賴對象(如view、 PRocedure等等),就會引起ORA-00942(表或是圖不存在)錯誤。通常解決這種問題的方法是,做兩次導入工作,第一遍導入時設置如下:
    $ imp sys/password file=demo0701 full=Y commit=y rows=Y
    導入時如果出現錯誤,就修改設置:rows=n,ignore=n:
    $ imp sys/password file=demo0701 full=Y rows=N commit=Y ignore=N
    (3). 做無增量的全數據庫備份及恢復的例子:
    全數據庫Export至dmp文件(如sidfull0701.dmp):
    $ exp sys/password file=sidfull0701.dmp Full=y -- rows確省為Y
    把整個數據庫備份的sidfull0701.dmp文件至數據庫中:
    $ imp sys/password file=sidfull0701.dmp ignore=y full=y-- rows確省為Y
    注意:導入/導出是最徹底的減少磁盤碎片的方法。
2. 備份策略和綜合應用舉例:
    (1). 做全數據庫增量備份和恢復的方法:
    全數據庫Export至dmp文件(如sidfull0701.dmp):
    $ exp sys/manager file= sidfull0701.dmp Full=y inctype=complete
    第一天增量備份Export至dmp文件(如sidincr1.dmp):
    $ exp sys/manager file= sidincr1.dmp inctype=incremental
    第二天增量備份Export至dmp文件(如sidincr2.dmp):
    $ exp sys/manager file= sidincr2.dmp inctype=incremental
    第三天增量備份Export至dmp文件(如sidincr3.dmp):
    $ exp sys/manager file= sidincr3.dmp inctype=incremental
    現假設Oracle數據庫在第三天被破壞了重新建一個Oracle數據庫,先把最后的一個dmp文件imp至數據庫中:
    $ imp sys/manager file= sidincr3.dmp full=y ignore=y inctype=system
    把整個數據庫備份的dmp文件imp至數據庫中:
    $ imp sys/manager file= sidfull0701.dmp ignore=y full=y inctype=restore
    把第一天增量備份的dmp文件imp至數據庫中:
    $ imp sys/manager file= sidincr1.dmp ignore=y full=y inctype=restore
    把第二天增量備份的dmp文件imp至數據庫中:
    $ imp sys/manager file= sidincr2.dmp ignore=y full=y inctype=restore
    把第三天增量備份的dmp文件imp至數據庫中
    $ imp sys/manager file= sidincr3.dmp ignore=y full=y inctype=restore
    (2). 數據庫邏輯備份策略的制定:
    數據庫管理員可以排定一個備份日程表,結合數據導出的三個不同方式合理、高效、可靠地完成。比如數據庫的備份任務可作如下安排:
    星期一:完全導出(A)
    星期二:增量導出(B)
星期三:增量導出(C)
    星期四:增量導出(D)
    星期五:累計導出(E)
    星期六:增量導出(F)
    星期日:增量導出(G)
    如果在星期日,數據庫遭到意外破壞,數據庫管理員可按以下步驟來恢復數據庫:
    第一步:用命令CREATE DATABASE重新生成數據庫結構;
    第二步:創建一個足夠大的附加回滾段。
    第三步:完全增量導入A:
    $ imp system/manager inctype=RECTORE FULL=Y FILE=A
    第四步:累計增量導入E:
    $ imp system/manager inctype=RECTORE FULL=Y FILE =E
    第五步:最近增量導入F:
    $ imp system/manager inctype=RESTORE FULL=Y FILE=F
    注: 備份文件的命名最好加上日期,這樣便于以后的恢復工作。
    操作如下:
    $ tar -cvf full'date +%Y-%m-%d-%H-%M'.dmp abc
    $ tar -cvf full'date +%Y-%m-%d-%H-%M-%S'.dmp abc
    (3). 利用cron定時備份數據庫:
    linux、Unix提供了定時服務cron程序,能夠在確定的時間中執行一系列任務,因此數據庫的備份必須和cron合作來完成,或者使用/etc下的daily,weekly,monthly文件做定時的數據庫備份操作。
    例如:編寫Oracle邏輯備份的sh文件,并用cron程序來制定備份的時間。
    i. 編輯完全備份的腳本文件(exp_comp.sh):
    rq='date +"%m%d"'
    su - oracle -c "exp system/manager full=y inctype=complete file=/oracle/
    export/db_comp$rq.dmp"
    ii. 編輯累計備份的腳本文件(exp_cumu.sh):
    rq=' date +"%m%d"'
    su - oracle -c"exp system/manager full=y inctype=cumulative file=/oracle
    /export/db_cumu$rq.dmp"
    iii. 編輯增量備份的腳本文件(exp_incr.sh):
    rq='date +"%m%d" '
    su - oracle -c"exp system/manager full=y inctype=incremental file=/oracle
    /export/db_incr$rq.dmp"
    iv. 編輯root用戶crontab文件,將上面的腳本命令用cron程序來制定數據庫備份的時間:
    $ vi /var/spool/cron/crontabs/root
   v. 在/var/spool/cron/crontabs/root文件中增加以下內容:
    0 2 1 * * /oracle/exp_comp.sh
    30 2 * * 0-5 /oracle/exp_incr.sh
    45 2 * * 6 /oracle/exp_cumu.sh
    當然上面這個時間表可以根據不同的需求來改變。比如按照上面的數據庫的備份安排表來做這個cron程序的制定,如下所示:
    星期一:完全導出(A)
    星期二:增量導出(B)
    星期三:增量導出(C)
    星期四:增量導出(D)
    星期五:累計導出(E)
    星期六:增量導出(F)
    星期日:增量導出(G)
    (4).使用Export/Import的注意事項:
    在做Export和Import的時候千萬請注意您的字符集設置,如果在做Export或Import的時候,UINX的環境變量如果和字符集設置不一致的話,將導致數據庫恢復的信息不能正確讀取,特別是數據庫采用的非缺省值的中文字符集。切記一定要求保持一致,如果有特殊的要求請先聯系Oracle售后支持部。下面介紹怎樣確定Oracle數據庫的字符集設置和操作系統的環境變量:
$ sqlplus sys/manager
SQL> select * from NLS_DATABASE_PARAMETERS;
PARAMETER VALUE
------------------------- -----------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CHARACTERSET UTF8
    環境變量應設置
$ export NLS_LANG=American_america.UTF8
    Export/Import支持的增量和累計備份實際上是表級的,即上一次備份之后變化的表將全表卸載,而不是變化的記錄。因此,在以OLTP應用為主的數據庫中,由于保存主要業務數據的表處于頻繁的錄入和更新之中,增量和累計卸載并不能顯著提高備份的效率。
    在做整個數據庫Import時,缺省狀態下以一個Table為一個Transaction,所以如果存在一些表的數據量很大, 建議使用commit=y并且要提供一個較大的buffer值,同時建立一個臨時Rollback segment ,它的default storage參數initial 和 next要設置大一些,并要將這個Rollback Segment Online,同時offline 其他小的rollback segments。確保一個Table能完整import 。因為在做import時, 數據庫將自動創建索引,及完整性約束, 為了加快數據加載的速度及一次成功的概率,可以考慮在export之前首先disable所有的完整性約束, 在import之后在enable所有的完整性約束。而對索引,可以考慮單獨export索引。通過使用命令 "imp indexfile=……" 在import數據之后來單獨創建索引。
    如果希望在export數據庫時,直接將產生的dmp文件寫到外設上, 你可以使用 " exp file=設備名… Volsize=設備的容量"。
由于export出來的文件可能較大,而某些操作系統(如Linux)對文件大小有限制,如不能大于2G。因此可將dmp文件設置為指定大小的若干文件。如:
$exp sys/manager buffer=4096000 file=(full1.dmp,full2.dmp,full3.dmp,full4.dmp) filesize=2G Full=y inctype=complete log=full.log
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品日韩欧美一区二区三区 | 亚洲精品久久久一区二区三区 | 日本不卡高字幕在线2019 | 国产高清精品一区二区三区 | 久久成人视屏 | 四虎免费在线播放 | 久久久久亚洲视频 | 亚洲+变态+欧美+另类+精品 | 免费黄色激情视频 | 日韩精品久久久 | 国产一区二区影院 | 久久精品中文字幕 | 国产在线看片 | 欧美一级高潮片免费的 | 欧美精品一区二区在线播放 | 欧美精品久久久久久久久老牛影院 | 国产精久久久久久久妇剪断 | 成人精品鲁一区一区二区 | 黄色毛片视频网站 | 欧美激情| 黄色成人在线 | 亚洲欧美综合 | 中文愉拍 | 日韩欧美一级精品久久 | 精品久久中文 | 日韩在线观看视频一区二区 | 久久久久久美女 | 国产精品人人做人人爽 | 很黄很污的网站 | 亚洲精品午夜国产va久久成人 | 免费看h | 在线视频一二三 | 亚洲精品一区久久久久久 | 在线视频久 | 免费黄色在线观看 | 成人免费视频毛片 | 成人一边做一边爽爽视频 | 久久亚洲国产 | 精品综合 | 日韩美女国产精品 | 色av综合|