本篇文章為大家展示了數(shù)據(jù)庫邏輯備份與恢復(fù)是怎樣的,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)是專業(yè)的湖南網(wǎng)站建設(shè)公司,湖南接單;提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行湖南網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
(一)問題:
初次接觸數(shù)據(jù)庫備份與恢復(fù),目前是應(yīng)用在這樣一個場景:
我們平時開發(fā)都是在自己的開發(fā)環(huán)境中進(jìn)行,開發(fā)完成之后,需要將oracle數(shù)據(jù)庫(安裝在Linux服務(wù)器上)轉(zhuǎn)到位客戶部署的服務(wù)器(也是Linux)之上。
所以就需要將開發(fā)環(huán)境中的數(shù)據(jù)庫備份出來,然后恢復(fù)到新的服務(wù)器機(jī)器上。
(二)解決方案:使用expdp/impdp數(shù)據(jù)泵
按照以下步驟進(jìn)行:
(1)備份表空間創(chuàng)建腳本:
將要備份的數(shù)據(jù)庫的所有表空間的創(chuàng)建語句拷貝出來,待會要用來在新數(shù)據(jù)庫上創(chuàng)建對應(yīng)的表空間;
(2)在自己的windows機(jī)器上利用expdp命令按照用戶導(dǎo)出數(shù)據(jù)庫:
expdp system/password@172.16.1.61/baseinfo dumpfile=user1.dmp directory=backup schemas=user1
以管理員system的身份登錄,導(dǎo)出用戶服務(wù)器172.16.1.61上的數(shù)據(jù)庫baseinfo實例下的user1用戶所屬的數(shù)據(jù)庫,dmp文件放在遠(yuǎn)端服務(wù)器172.16.1.61的oradata目錄下(注意,這個目錄是相對于Oracle的工作目錄而言的,如果導(dǎo)出出現(xiàn)“無效操作,不能操作日志文件”的錯誤,那就換一個導(dǎo)出目錄把,或者不要directory這項了)。
(3)dmp文件傳輸:
利用PenguiNet等windows連接linux的軟件將服務(wù)器上導(dǎo)出的dmp文件拷貝到windows上來,在將這個dmp文件上傳到目標(biāo)linux服務(wù)器(新數(shù)據(jù)庫),也可以直接用scp命令在源Linux和目標(biāo)Linux上互傳這個dmp文件。
注意:如果是覆蓋已經(jīng)存在的數(shù)據(jù)庫,即你要導(dǎo)入的目標(biāo)數(shù)據(jù)庫已經(jīng)存在了user1這個用戶,那么(4)(5)兩步跳過,直接到第(6)步。
(4)創(chuàng)建存放表空間的目錄:
PenguiNet連接到目標(biāo)Linux服務(wù)器,創(chuàng)建一個新的目錄來存放新數(shù)據(jù)庫的表空間:
mkdir -p /oradata/newDataBase chown -R oracle:oogroup /oradata/newDataBase
創(chuàng)建一個目錄,然后將這個目錄的所有權(quán)賦給oogroup組的oracle用戶,因為是oracle用戶下創(chuàng)建的數(shù)據(jù)庫實例,所以需要給它讀寫這個目錄的權(quán)限。
(5)創(chuàng)建表空間:
使用Toad連接到目標(biāo)Linux服務(wù)器(System用戶登錄),將第一步中備份的創(chuàng)建表空間的腳本拷進(jìn)去,修改表空間文件的路徑為上一步創(chuàng)建的目錄路徑,然后執(zhí)行,創(chuàng)建好數(shù)據(jù)庫需要的所有表空間;
(6)在自己的windows機(jī)器上使用impdp命令導(dǎo)入數(shù)據(jù)導(dǎo)入到目標(biāo)Linux服務(wù)器指定實例下:
注意:在導(dǎo)入之前最好先執(zhí)行drop user userName cascade刪除即將要導(dǎo)入的用戶,然后再執(zhí)行下面的導(dǎo)入命令。
另外順便提一句,如果你是要導(dǎo)入多個用戶,可以刪除一個,導(dǎo)一個,因為它們之間可能會有以來,如果全部刪除了再一個個導(dǎo)入,那么可能會出現(xiàn)錯誤。
但是最好的辦法是全部所有用戶一起導(dǎo)出,然后一起導(dǎo)入,用戶名之間用逗號分隔。
impdp system/password@192.168.9.226/baseinfo dumpfile=user1.dmp schemas=user1
注意:用Penguinet的SCP方式連接,導(dǎo)航到user1.dmp文件所在的目錄,那么直接執(zhí)行上面的imp命令就可以找到這個dmp文件。
如果出現(xiàn)錯誤,一般是因為沒有找到dmp文件,你可以看看錯誤提示,它是在哪兒去找dmp文件,那么你就把dmp文件放到哪兒。
至此數(shù)據(jù)庫導(dǎo)出,導(dǎo)入工作結(jié)束,你在新機(jī)器上已經(jīng)擁有了一個同樣的數(shù)據(jù)庫,接下來用Toad測試一下,用user1用戶登錄。
(三)與exp/imp的區(qū)別:
1、Oracle 的導(dǎo)出導(dǎo)入是一個很常用的遷移工具。 在Oracle
10g中,Oracle 推出了數(shù)據(jù)泵(expdp/impdp). 它可以通過使用并行,從而在效率上要比exp/imp 要高。
2、expdp/impdp調(diào)用Server端的API在執(zhí)行操作,是數(shù)據(jù)庫內(nèi)部的job任務(wù)??梢赃h(yuǎn)程使用,但是生成的dump
文件存在于服務(wù)器上的directory里。
3、據(jù)泵與exp/imp 來說性能有很大的提高, 其中影響最大的就是paralle。 可以這么來看: expdp/impdp=exp/imp+direct
moe + paralle. 所以, 使用數(shù)據(jù)泵,要想提高速度,就要設(shè)置并行參數(shù)。
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ù)庫。
首先介紹下 Export/Import的命令用法:
(一)將一個用戶的對象導(dǎo)入到另一個用戶模式中
把數(shù)據(jù)庫中原有的用戶Export至一個dmp文件(如把用戶olduser的對象導(dǎo)出到文件*****.dmp中):
命令: exp sys/password file=******.dmp owner=olduser grant=N indexes=Y rows=Y |
從dmp文件中把一個用戶的對象import至一個用戶的模式中(從******.dmp中,把用戶user的對象導(dǎo)入到用戶newuser中):
命令:imp sys/password file=******,dmp fromuser=olduser touser=newuser indexes=Y rows=Y |
導(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=******.dmp full=Y commit=y rows=Y |
導(dǎo)入時如果出現(xiàn)錯誤,就修改設(shè)置:rows=n,ignore=n:
命令: imp sys/password file=******.dmp full=Y rows=N commit=Y ignore=N |
(二)做無增量的全數(shù)據(jù)庫備份及恢復(fù)的例子
全數(shù)據(jù)庫Export至dmp文件(如******.dmp):
命令: exp sys/password file=******.dmp Full=y -- rows確省為Y |
把整個數(shù)據(jù)庫備份的******.dmp文件至數(shù)據(jù)庫中:
命令: imp sys/password file=******.dmp ignore=y full=y-- rows確省為Y |
注意:導(dǎo)入/導(dǎo)出是最徹底的減少磁盤碎片的方法。
其次介紹下數(shù)據(jù)庫備份策略:
(三)做全數(shù)據(jù)庫增量備份和恢復(fù)的方法:
全數(shù)據(jù)庫Export至dmp文件(如******.dmp)
命令: exp sys/manager file= ******.dmp Full=y inctype=complete |
第一天增量備份Export至dmp文件(如第一天1.dmp):
命令: exp sys/manager file= 第一天1.dmp inctype=incremental |
第二天增量備份Export至dmp文件(如第二天2.dmp):
命令: exp sys/manager file= 第二天2.dmp inctype=incremental |
第三天增量備份Export至dmp文件(如第三天3.dmp):
命令: exp sys/manager file= 第三天3.dmp inctype=incremental |
現(xiàn)假設(shè)Oracle數(shù)據(jù)庫在第三天被破壞了重新建一個Oracle數(shù)據(jù)庫,先把最后的一個dmp文件imp至數(shù)據(jù)庫中:
命令: imp sys/manager file= 第三天3.dmp full=y ignore=y inctype=system |
把整個數(shù)據(jù)庫備份的dmp文件imp至數(shù)據(jù)庫中:
命令: imp sys/manager file= ******.dmp ignore=y full=y inctype=restore |
把第一天增量備份的dmp文件imp至數(shù)據(jù)庫中:
命令: imp sys/manager file= 第一天1.dmp ignore=y full=y inctype=restore
把第二天增量備份的dmp文件imp至數(shù)據(jù)庫中:
命令: imp sys/manager file= 第二天2.dmp ignore=y full=y inctype=restore |
把第三天增量備份的dmp文件imp至數(shù)據(jù)庫中
命令: imp sys/manager file= 第三天3.dmp ignore=y full=y inctype=restore |
(四)利用windows任務(wù)計劃定時備份數(shù)據(jù)庫:
把上面各個命令寫成各個bat腳本, 然后添加備份的定時器,具體的配置步驟如下:
我的環(huán)境是windowxp操作系統(tǒng),在附件選擇系統(tǒng)工具,選擇任務(wù)計劃,然后點擊“添加任務(wù)計劃”,一步一步的按照提示往下走,定制的每個bat執(zhí)行的時間,這樣,就可以定時的執(zhí)行數(shù)據(jù)庫備份的任務(wù)任務(wù)。
上述內(nèi)容就是數(shù)據(jù)庫邏輯備份與恢復(fù)是怎樣的,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站題目:數(shù)據(jù)庫邏輯備份與恢復(fù)是怎樣的
本文路徑:http://aaarwkj.com/article42/gjgohc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、搜索引擎優(yōu)化、標(biāo)簽優(yōu)化、靜態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)