国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Oracle數(shù)據(jù)庫邏輯備份的實現(xiàn)
EXP和IMP是Oracle提供的一種邏輯備份工具。邏輯備份創(chuàng)建數(shù)據(jù)庫對象的邏輯拷貝并存入一個二進(jìn)制轉(zhuǎn)儲文件。這種邏輯備份需要在數(shù)據(jù)庫啟動的情況下使用, 其導(dǎo)出實質(zhì)就是讀取一個數(shù)據(jù)庫記錄集(甚至可以包括數(shù)據(jù)字典)并將這個記錄集寫入一個文件,這些記錄的導(dǎo)出與其物理位置無關(guān),導(dǎo)入實質(zhì)就是讀取轉(zhuǎn)儲文件并執(zhí)行其中的命令。此備份方式是通過Oracle的實用工具export和import來實施的, export是把數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出,import是把export卸出的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫中。通過此工具可以衍生出多種功能, 比如整個數(shù)據(jù)庫的備份、表結(jié)構(gòu)重建、數(shù)據(jù)的傳輸、用戶的改變等等。

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

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

  1. Export/Import的使用舉例:(以下操作均為在

  (1). 將一個用戶的對象導(dǎo)入到另一個用戶模式中:

  把數(shù)據(jù)庫中原有的用戶Export至一個dmp文件(如把用戶olduser的對象導(dǎo)出到文件olduser0701.dmp中):

  $ exp sys/password file= olduser0701 owner=olduser grant=N indexes=Y rows=Y

  從dmp文件中把一個用戶的對象import至一個用戶的模式中(從olduser0701.dmp中,把用戶olduser的對象導(dǎo)入到用戶newuser中):

  $imp sys/password file=olduser0701 fromuser=olduser touser=newuser indexes=Y rows=Y

  (2). 導(dǎo)入時避免出現(xiàn)ORA-00942(表或是圖不存在)錯誤:

  因為,導(dǎo)出是按照在數(shù)據(jù)庫中對象建立的順序進(jìn)行的,從而在導(dǎo)入時,數(shù)據(jù)庫對象之間的依賴性會引起某些先導(dǎo)入對象找不到其依賴對象(如view、procedure等等),就會引起ORA-00942(表或是圖不存在)錯誤。通常解決這種問題的方法是,做兩次導(dǎo)入工作,第一遍導(dǎo)入時設(shè)置如下:

  $ imp sys/password file=demo0701 full=Y commit=y rows=Y

  導(dǎo)入時如果出現(xiàn)錯誤,就修改設(shè)置:rows=n,ignore=n:

  $ imp sys/password file=demo0701 full=Y rows=N commit=Y ignore=N

  (3). 做無增量的全數(shù)據(jù)庫備份及恢復(fù)的例子:

  全數(shù)據(jù)庫Export至dmp文件(如sidfull0701.dmp):

  $ exp sys/password file=sidfull0701.dmp Full=y -- rows確省為Y

  把整個數(shù)據(jù)庫備份的sidfull0701.dmp文件至數(shù)據(jù)庫中:

  $ imp sys/password file=sidfull0701.dmp ignore=y full=y-- rows確省為Y

  注意:導(dǎo)入/導(dǎo)出是最徹底的減少磁盤碎片的方法。

  2. 備份策略和綜合應(yīng)用舉例:

  (1). 做全數(shù)據(jù)庫增量備份和恢復(fù)的方法:

  全數(shù)據(jù)庫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

  現(xiàn)假設(shè)Oracle數(shù)據(jù)庫在第三天被破壞了重新建一個Oracle數(shù)據(jù)庫,先把最后的一個dmp文件imp至數(shù)據(jù)庫中:

  $ imp sys/manager file= sidincr3.dmp full=y ignore=y inctype=system

  把整個數(shù)據(jù)庫備份的dmp文件imp至數(shù)據(jù)庫中:

  $ imp sys/manager file= sidfull0701.dmp ignore=y full=y inctype=restore

  把第一天增量備份的dmp文件imp至數(shù)據(jù)庫中:

  $ imp sys/manager file= sidincr1.dmp ignore=y full=y inctype=restore

  把第二天增量備份的dmp文件imp至數(shù)據(jù)庫中:

  $ imp sys/manager file= sidincr2.dmp ignore=y full=y inctype=restore

  把第三天增量備份的dmp文件imp至數(shù)據(jù)庫中

  $ imp sys/manager file= sidincr3.dmp ignore=y full=y inctype=restore

  (2). 數(shù)據(jù)庫邏輯備份策略的制定:

  數(shù)據(jù)庫管理員可以排定一個備份日程表,結(jié)合數(shù)據(jù)導(dǎo)出的三個不同方式合理、高效、可靠地完成。比如數(shù)據(jù)庫的備份任務(wù)可作如下安排:

  星期一:完全導(dǎo)出(A)

  星期二:增量導(dǎo)出(B)

  星期三:增量導(dǎo)出(C)

  星期四:增量導(dǎo)出(D)

  星期五:累計導(dǎo)出(E)

  星期六:增量導(dǎo)出(F)

  星期日:增量導(dǎo)出(G)

  如果在星期日,數(shù)據(jù)庫遭到意外破壞,數(shù)據(jù)庫管理員可按以下步驟來恢復(fù)數(shù)據(jù)庫:

  第一步:用命令CREATE DATABASE重新生成數(shù)據(jù)庫結(jié)構(gòu);

  第二步:創(chuàng)建一個足夠大的附加回滾段。

  第三步:完全增量導(dǎo)入A:

  $ imp system/manager inctype=RECTORE FULL=Y FILE=A

  第四步:累計增量導(dǎo)入E:

  $ imp system/manager inctype=RECTORE FULL=Y FILE =E

  第五步:最近增量導(dǎo)入F:

  $ imp system/manager inctype=RESTORE FULL=Y FILE=F

  注: 備份文件的命名最好加上日期,這樣便于以后的恢復(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定時備份數(shù)據(jù)庫:

  Linux、Unix提供了定時服務(wù)cron程序,能夠在確定的時間中執(zhí)行一系列任務(wù),因此數(shù)據(jù)庫的備份必須和cron合作來完成,或者使用/etc下的daily,weekly,monthly文件做定時的數(shù)據(jù)庫備份操作。

  例如:編寫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程序來制定數(shù)據(jù)庫備份的時間:

  $ vi /var/spool/cron/crontabs/root

  v. 在/var/spool/cron/crontabs/root文件中增加以下內(nèi)容:

  0 2 1 * * /Oracle/exp_comp.sh

  30 2 * * 0-5 /Oracle/exp_incr.sh

  45 2 * * 6 /Oracle/exp_cumu.sh

  當(dāng)然上面這個時間表可以根據(jù)不同的需求來改變。比如按照上面的數(shù)據(jù)庫的備份安排表來做這個cron程序的制定,如下所示:

  星期一:完全導(dǎo)出(A)

  星期二:增量導(dǎo)出(B)

  星期三:增量導(dǎo)出(C)

  星期四:增量導(dǎo)出(D)

  星期五:累計導(dǎo)出(E)

  星期六:增量導(dǎo)出(F)

  星期日:增量導(dǎo)出(G)

  (4).使用Export/Import的注意事項:

  在做Export和Import的時候千萬請注意您的字符集設(shè)置,如果在做Export或Import的時候,UINX的環(huán)境變量如果和字符集設(shè)置不一致的話, 將導(dǎo)致數(shù)據(jù)庫恢復(fù)的信息不能正確讀取,特別是數(shù)據(jù)庫采用的非缺省值的中文字符集。切記一定要求保持一致,如果有特殊的要求請先聯(lián)系Oracle售后支持部。下面介紹怎樣確定Oracle數(shù)據(jù)庫的字符集設(shè)置和操作系統(tǒng)的環(huán)境變量:

  $ sqlplus sys/manager

  SQL> select * from NLS_DATABASE_PARAMETERS;

  PARAMETER VALUE

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

  NLS_LANGUAGE AMERICAN

  NLS_TERRITORY AMERICA

  NLS_CHARACTERSET UTF8

  環(huán)境變量應(yīng)設(shè)置

  $ export NLS_LANG=American_america.UTF8

  Export/Import支持的增量和累計備份實際上是表級的,即上一次備份之后變化的表將全表卸載,而不是變化的記錄。因此,在以O(shè)LTP應(yīng)用為主的數(shù)據(jù)庫中,由于保存主要業(yè)務(wù)數(shù)據(jù)的表處于頻繁的錄入和更新之中,增量和累計卸載并不能顯著提高備份的效率。

  在做整個數(shù)據(jù)庫Import時,缺省狀態(tài)下以一個Table為一個Transaction,所以如果存在一些表的數(shù)據(jù)量很大, 建議使用commit=y并且要提供一個較大的buffer值,同時建立一個臨時Rollback segment ,它的default storage參數(shù)initial 和 next要設(shè)置大一些,并要將這個Rollback Segment Online,同時offline 其他小的rollback segments。確保一個Table能完整import 。因為在做import時, 數(shù)據(jù)庫將自動創(chuàng)建索引,及完整性約束, 為了加快數(shù)據(jù)加載的速度及一次成功的概率,可以考慮在export之前首先disable所有的完整性約束, 在import之后在enable所有的完整性約束。而對索引,可以考慮單獨export索引。通過使用命令 "imp indexfile=……" 在import數(shù)據(jù)之后來單獨創(chuàng)建索引。

  如果希望在export數(shù)據(jù)庫時,直接將產(chǎn)生的dmp文件寫到外設(shè)上, 你可以使用 " exp file=設(shè)備名… Volsize=設(shè)備的容量"。

  由于export出來的文件可能較大,而某些操作系統(tǒng)(如Linux)對文件大小有限制,如不能大于2G。因此可將dmp文件設(shè)置為指定大小的若干文件。如:

  $exp sys/manager buffer=4096000 file=(full1.dmp,full2.dmp,full3.dmp,full4.dmp) filesize=2G Full=y inctype=complete log=full.log

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
數(shù)據(jù)庫安全知識:關(guān)于 Oracle數(shù)據(jù)庫的備份與恢復(fù)
Oracle數(shù)據(jù)庫邏輯增量備份恢復(fù)之exp/imp參數(shù)inctype 轉(zhuǎn)載
oracle imp/exp - 張氏兄弟 - BlogJava
帶你走進(jìn)Oracle數(shù)據(jù)安全的世界一觀
Oracle數(shù)據(jù)庫的備份與還原
oracle備份命令(備份)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服