怎么使用Oracle數(shù)據(jù)庫的邏輯備份工具

這篇文章主要介紹“怎么使用Oracle數(shù)據(jù)庫的邏輯備份工具”,在日常操作中,相信很多人在怎么使用Oracle數(shù)據(jù)庫的邏輯備份工具問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用Oracle數(shù)據(jù)庫的邏輯備份工具”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

我們一直強調(diào)網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)對于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對待,選擇一個安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過程中的有力推手。專業(yè)的建站公司不一定是大公司,創(chuàng)新互聯(lián)建站作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。

Oracle數(shù)據(jù)庫可以通過數(shù)據(jù)泵expdp工具進行數(shù)據(jù)的導(dǎo)出、導(dǎo)入。在介紹工具使用之前,先說個注意事項,在Oracle11g之后新創(chuàng)建的表在沒有插入數(shù)據(jù)時,是不會分配segment的,也就是說不會分配空間,而使用expdp導(dǎo)出時,這類空表就不會被導(dǎo)出,導(dǎo)致數(shù)據(jù)庫結(jié)構(gòu)不完整(此情況不包含原先有數(shù)據(jù)后來被清空的表)。因此為了不會遺漏數(shù)據(jù),在導(dǎo)出時先對空表進行一次處理(手動分配空間):
1.通過user_tables查詢那些表時沒有數(shù)據(jù)的(注意:為了提高準確性,可以先對用戶下的所有表進行一次表分析analysis table),然后通過下面語句直接生成手動分配segment的語句:

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

PS:當然以上語句會把原先有數(shù)據(jù)后被清空的表也查詢出來,但為了一個一個排除麻煩,就直接再從新分配一次segment。

2.批量執(zhí)行生成的語句即可。

一、以上處理完成后,下面說一下expdp導(dǎo)出工具的使用:

1.expdp工具導(dǎo)出的文件只能存放在數(shù)據(jù)庫服務(wù)器本地,是無法遠程導(dǎo)出到其他服務(wù)器的(exp工具導(dǎo)出通過本地遠程到數(shù)據(jù)庫服務(wù)器,將導(dǎo)出文件直接放到本地:),只能導(dǎo)出存放到數(shù)據(jù)庫服務(wù)器本地,然后才能傳到你想存放的備份服務(wù)器。
expdp工具使用需要在數(shù)據(jù)庫中創(chuàng)建directory映射到指定存放dmp文件的系統(tǒng)目錄:

# 創(chuàng)建dmp文件存放系統(tǒng)目錄(當然創(chuàng)建的目錄Oracle用戶要有權(quán)限讀寫):[oracle@local ~]$ mkdir /data/dmpfile
# 使用sys用戶(或者有DBA權(quán)限的用戶)登錄數(shù)據(jù)庫[oracle@local ~]$ sqlplus /  as sysdba
# 查看當前實例是否是要進行用戶導(dǎo)出的實例名
SQL> select instance_name from v$instance; # 創(chuàng)建directory名稱為expdp,映射目錄是剛才創(chuàng)建的目錄/data/dmpfile   
SQL> create directory expdp as '/data/dmpfile';  # 將該目錄讀寫權(quán)限授予用戶或者直接授予public,表示所有用戶都可使用,不用每次不同用戶都授權(quán)一次。
SQL> Grant read,write on directory expdp to PUBLIC;# 推出數(shù)據(jù)庫
SQL> exit
# 導(dǎo)出指定用戶數(shù)據(jù)進行備份[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log

2.impdp是數(shù)據(jù)泵的導(dǎo)入工具,要進行dmp文件導(dǎo)入時,需要將dmp文件放到執(zhí)行導(dǎo)入操作的數(shù)據(jù)庫服務(wù)器上,dmp存放的目錄是導(dǎo)入directory映射的目錄,當然系統(tǒng)Oracle用戶要有讀寫權(quán)限:

# 在導(dǎo)入數(shù)據(jù)庫服務(wù)器上創(chuàng)建dmp文件存放系統(tǒng)目錄(當然創(chuàng)建的目錄Oracle用戶要有權(quán)限讀寫):[oracle@localhost ~]$ mkdir /data/dmpfile2[oracle@localhost ~]$ mv orcl_full20200216.dmp /data/dmpfile2
# 使用sys用戶(或者有DBA權(quán)限的用戶)登錄數(shù)據(jù)庫[oracle@localhost ~]$ sqlplus /  as sysdba
# 查看當前實例是否是要進行導(dǎo)入的數(shù)據(jù)庫
SQL> select instance_name from v$instance; # 創(chuàng)建directory名稱為expdp,映射目錄是剛才創(chuàng)建的目錄/data/dmpfile2  
SQL> create directory expdp2 as '/data/dmpfile2';  # 將該目錄讀寫權(quán)限授予用戶或者直接授予public,表示所有用戶都可使用,不用每次不同用戶都授權(quán)一次。
SQL> Grant read,write on directory expdp2 to PUBLIC;# 推出數(shù)據(jù)庫
SQL> exit
# 導(dǎo)出指定用戶數(shù)據(jù)進行備份[oracle@localhost ~]$ impdp username/userpassword directory=expdp2 dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log

三、數(shù)據(jù)泵工具使用注意事項

1.expdp數(shù)據(jù)泵工具時向上兼容的,比如Oracle 11G使用expdp導(dǎo)出的dmp文件,可以直接導(dǎo)入Oracle 12C數(shù)據(jù)庫中,但是Oracle 12C導(dǎo)出的dmp文件是不能直接導(dǎo)入Oracle 11G中的。在expdp導(dǎo)出時導(dǎo)出語句還要加一個參數(shù),比如Oracle 12C導(dǎo)出dmp文件導(dǎo)入Oracle 11G數(shù)據(jù)庫中,在導(dǎo)出語句后加上 VERSION=11.1.0.0.0.:

[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log VERSION=11.1.0.0.0

2.字符集要一致,數(shù)據(jù)庫字符集導(dǎo)入的數(shù)據(jù)庫要與導(dǎo)出的數(shù)據(jù)庫一致,保證數(shù)據(jù)正常導(dǎo)入。
查詢數(shù)據(jù)庫字符集的方法:

select userenv('language') from dual;

3.導(dǎo)出和導(dǎo)入前創(chuàng)建的存放dmp文件的目錄,oracle系統(tǒng)用戶必須有讀寫權(quán)限,為了避免此類錯誤,可記住一點,所有操作都在oracle系統(tǒng)用戶下操作,如果使用了root用戶來創(chuàng)建存放dmp文件的目錄,在創(chuàng)建后一定要進行屬主屬組修改授權(quán),例如:

[root@local ~]# mkdir /data/dmpfile[root@local ~]# chown oracle:oinstall /data[root@local ~]# cd /data[root@local ~]# chown oracle:oinstall /dmpfile

注意:不要輕易使用chown -R /data/dmpfile的方式進行授權(quán),如果/data目錄下有其他服務(wù)部署,此方法會導(dǎo)致/data下其他部署服務(wù)出現(xiàn)問題,為了防止這種錯誤,一步一步授權(quán)比較保險。

4.使用expdp進行數(shù)據(jù)遷移時,導(dǎo)入的數(shù)據(jù)庫要創(chuàng)建與導(dǎo)出數(shù)據(jù)庫相同表空間,尤其是一個表空間有多個數(shù)據(jù)文件的,必須要一致,防止導(dǎo)入時數(shù)據(jù)無法存入數(shù)據(jù)庫報錯。

5.從大數(shù)據(jù)量的庫中導(dǎo)出一部分數(shù)據(jù)時候,雖然導(dǎo)出的數(shù)據(jù)量很小,但是在導(dǎo)入的時候經(jīng)常報錯表空間不足,原因是導(dǎo)出的數(shù)據(jù)中含有表空間的元數(shù)據(jù)(比如表占用的空間大?。?br/>需要在導(dǎo)出的時加上compress 參數(shù)。

6.特殊的導(dǎo)出方式:
(1)按照查詢語句導(dǎo)出:

[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log QUERY=employees:"WHERE department_id > 10"

(2)指定表名或者指定多個表導(dǎo)出:

# 導(dǎo)出所有sys開頭的表[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log tables=(username.sys%)# 導(dǎo)出指定的多個表[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log tables=(BTRULES, CDRULES, CXRULES, DTBTRULES, HLXRULES)

(3)規(guī)定dmp大小方式導(dǎo)出:

# 每個dmp大小為2G[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=full_xzxt_%U.dmp filesize=2G  loggile=orcl_full20200216.log

(4)只導(dǎo)出表結(jié)構(gòu)

[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log content=metadata_only

(5)只導(dǎo)出表結(jié)構(gòu)

[oracle@local ~]$ expdp username/userpassword directory=expdp dumpfile=orcl_full20200216.dmp loggile=orcl_full20200216.log content=data_only

(6)導(dǎo)入不同用戶,導(dǎo)出用戶為scott,導(dǎo)入用戶為zhang:

[oracle@local ~]$ impdp zhang/zhang directory=expdp dumpfile=scott.dmp logfile=scott.log schemas=scott remap_schema=scott:zhang

到此,關(guān)于“怎么使用Oracle數(shù)據(jù)庫的邏輯備份工具”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

新聞標題:怎么使用Oracle數(shù)據(jù)庫的邏輯備份工具
文章分享:http://muchs.cn/article22/jpiecc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站收錄、用戶體驗、標簽優(yōu)化網(wǎng)頁設(shè)計公司、自適應(yīng)網(wǎng)站

廣告

聲明:本網(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)

成都做網(wǎng)站