久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

數(shù)據(jù)庫邏輯備份與恢復(fù)是怎樣的

共計(jì) 4370 個(gè)字符,預(yù)計(jì)需要花費(fèi) 11 分鐘才能閱讀完成。

本篇文章為大家展示了數(shù)據(jù)庫邏輯備份與恢復(fù)是怎樣的,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

(一)問題:

初次接觸數(shù)據(jù)庫備份與恢復(fù),目前是應(yīng)用在這樣一個(gè)場(chǎng)景:

我們平時(shí)開發(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)建語句拷貝出來,待會(huì)要用來在新數(shù)據(jù)庫上創(chuàng)建對(duì)應(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 實(shí)例下的 user1 用戶所屬的數(shù)據(jù)庫,dmp 文件放在遠(yuǎn)端服務(wù)器 172.16.1.61 的 oradata 目錄下(注意,這個(gè)目錄是相對(duì)于 Oracle 的工作目錄而言的,如果導(dǎo)出出現(xiàn)“無效操作,不能操作日志文件”的錯(cuò)誤,那就換一個(gè)導(dǎo)出目錄把,或者不要 directory 這項(xiàng)了)。

(3)dmp 文件傳輸:

利用 PenguiNet 等 windows 連接 linux 的軟件將服務(wù)器上導(dǎo)出的 dmp 文件拷貝到 windows 上來,在將這個(gè) dmp 文件上傳到目標(biāo) linux 服務(wù)器(新數(shù)據(jù)庫),也可以直接用 scp 命令在源 Linux 和目標(biāo) Linux 上互傳這個(gè) dmp 文件。

注意:如果是覆蓋已經(jīng)存在的數(shù)據(jù)庫,即你要導(dǎo)入的目標(biāo)數(shù)據(jù)庫已經(jīng)存在了 user1 這個(gè)用戶,那么(4)(5)兩步跳過,直接到第(6)步。

(4)創(chuàng)建存放表空間的目錄:

PenguiNet 連接到目標(biāo) Linux 服務(wù)器,創(chuàng)建一個(gè)新的目錄來存放新數(shù)據(jù)庫的表空間:

mkdir -p /oradata/newDataBase
chown -R oracle:oogroup /oradata/newDataBase

創(chuàng)建一個(gè)目錄,然后將這個(gè)目錄的所有權(quán)賦給 oogroup 組的 oracle 用戶,因?yàn)槭?oracle 用戶下創(chuàng)建的數(shù)據(jù)庫實(shí)例,所以需要給它讀寫這個(gè)目錄的權(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ù)器指定實(shí)例下:

注意:在導(dǎo)入之前最好先執(zhí)行 drop user userName cascade 刪除即將要導(dǎo)入的用戶,然后再執(zhí)行下面的導(dǎo)入命令。

另外順便提一句,如果你是要導(dǎo)入多個(gè)用戶,可以刪除一個(gè),導(dǎo)一個(gè),因?yàn)樗鼈冎g可能會(huì)有以來,如果全部刪除了再一個(gè)個(gè)導(dǎo)入,那么可能會(huì)出現(xiàn)錯(cuò)誤。

但是最好的辦法是全部所有用戶一起導(dǎo)出,然后一起導(dǎo)入,用戶名之間用逗號(hào)分隔。

impdp system/password@192.168.9.226/baseinfo dumpfile=user1.dmp schemas=user1

注意:用 Penguinet 的 SCP 方式連接,導(dǎo)航到 user1.dmp 文件所在的目錄,那么直接執(zhí)行上面的 imp 命令就可以找到這個(gè) dmp 文件。

如果出現(xiàn)錯(cuò)誤,一般是因?yàn)闆]有找到 dmp 文件,你可以看看錯(cuò)誤提示,它是在哪兒去找 dmp 文件,那么你就把 dmp 文件放到哪兒。

至此數(shù)據(jù)庫導(dǎo)出,導(dǎo)入工作結(jié)束,你在新機(jī)器上已經(jīng)擁有了一個(gè)同樣的數(shù)據(jù)庫,接下來用 Toad 測(cè)試一下,用 user1 用戶登錄。

(三)與 exp/imp 的區(qū)別:

1、Oracle  的導(dǎo)出導(dǎo)入是一個(gè)很常用的遷移工具。  在 Oracle
10g 中,Oracle  推出了數(shù)據(jù)泵 (expdp/impdp).  它可以通過使用并行,從而在效率上要比 exp/imp  要高。

2、expdp/impdp 調(diào)用 Server 端的 API 在執(zhí)行操作,是數(shù)據(jù)庫內(nèi)部的 job 任務(wù)。可以遠(yuǎn)程使用,但是生成的 dump
文件存在于服務(wù)器上的 directory 里。

3、據(jù)泵與 exp/imp  來說性能有很大的提高,  其中影響最大的就是 paralle。  可以這么來看: expdp/impdp=exp/imp+direct
moe + paralle.  所以,  使用數(shù)據(jù)泵,要想提高速度,就要設(shè)置并行參數(shù)。

Oracle 數(shù)據(jù)庫邏輯備份和恢復(fù)——用 exp 和 imp 命令來實(shí)現(xiàn)

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

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

注意:通過邏輯備份可以備份整個(gè)數(shù)據(jù)庫, 或僅備份部分重要數(shù)據(jù)。因?yàn)槭沁壿嬌系膫浞? 故只能用于邏輯的恢復(fù)數(shù)據(jù), 一旦數(shù)據(jù)庫被物理損壞, 導(dǎo)致不能啟動(dòng), 邏輯備份的數(shù)據(jù)不能幫助恢復(fù)數(shù)據(jù)庫。

首先介紹下 Export/Import 的命令用法:

(一)將一個(gè)用戶的對(duì)象導(dǎo)入到另一個(gè)用戶模式中

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

 命令: exp sys/password file=******.dmp owner=olduser grant=N
 indexes=Y rows=Y

從 dmp 文件中把一個(gè)用戶的對(duì)象 import 至一個(gè)用戶的模式中(從 ******.dmp 中,把用戶 user 的對(duì)象導(dǎo)入到用戶 newuser 中):

 命令:imp sys/password file=******,dmp fromuser=olduser
 touser=newuser indexes=Y rows=Y

導(dǎo)入時(shí)避免出現(xiàn) ORA-00942(表或是圖不存在) 錯(cuò)誤

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

 命令: imp sys/password file=******.dmp full=Y commit=y rows=Y

導(dǎo)入時(shí)如果出現(xiàn)錯(cuò)誤,就修改設(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 

把整個(gè)數(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ù)庫在第三天被破壞了重新建一個(gè) Oracle 數(shù)據(jù)庫,先把最后的一個(gè) dmp 文件 imp 至數(shù)據(jù)庫中:

 命令: imp sys/manager file=  第三天 3.dmp full=y ignore=y inctype=system

把整個(gè)數(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ù)計(jì)劃定時(shí)備份數(shù)據(jù)庫:

把上面各個(gè)命令寫成各個(gè) bat 腳本, 然后添加備份的定時(shí)器,具體的配置步驟如下:

我的環(huán)境是 windowxp 操作系統(tǒng),在附件選擇系統(tǒng)工具,選擇任務(wù)計(jì)劃,然后點(diǎn)擊“添加任務(wù)計(jì)劃”,一步一步的按照提示往下走,定制的每個(gè) bat 執(zhí)行的時(shí)間,這樣,就可以定時(shí)的執(zhí)行數(shù)據(jù)庫備份的任務(wù)任務(wù)。

上述內(nèi)容就是數(shù)據(jù)庫邏輯備份與恢復(fù)是怎樣的,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-17發(fā)表,共計(jì)4370字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 福贡县| 竹山县| 临颍县| 阜南县| 建始县| 天门市| 阳城县| 陈巴尔虎旗| 宁德市| 凌海市| 衡阳市| 泰安市| 巴青县| 朔州市| 历史| 禄丰县| 高密市| 常宁市| 鸡东县| 永济市| 申扎县| 历史| 湘潭县| 贵港市| 嘉义县| 汝州市| 龙州县| 大姚县| 钦州市| 余姚市| 中山市| 肥东县| 左贡县| 泗洪县| 米林县| 绍兴县| 奉化市| 广饶县| 逊克县| 扎囊县| 阿城市|