由于公司的程序一直部署在客戶現(xiàn)場(chǎng)內(nèi)網(wǎng),內(nèi)網(wǎng)調(diào)試難度高,一般是有備份還原數(shù)據(jù)庫的需求,這里簡(jiǎn)記備份(導(dǎo)出)數(shù)據(jù)庫dmp文件與恢復(fù)(導(dǎo)入)的步驟。
一、導(dǎo)出dmp文件
exp與expdp命令異同
相同點(diǎn):exp與expdp命令都是備份數(shù)據(jù)庫的。
不同點(diǎn):
1、expdp效率更高,exp是串行備份的,但expdp是并行備份的。
2、二者導(dǎo)出機(jī)制不同,exp導(dǎo)出的是文本型,expdp導(dǎo)出的是二進(jìn)制,所以expdp導(dǎo)出的dmp文件是要小于exp導(dǎo)出的。
3、二者導(dǎo)出的dmp需要對(duì)應(yīng)不同的導(dǎo)入命令,exp對(duì)應(yīng)imp,expdp對(duì)應(yīng)impdp。
4、exp不需要指定邏輯目錄對(duì)象(directory),而expdp需要指定。
5、exp/imp可在客戶端執(zhí)行,而expdp/impdp只能在服務(wù)端執(zhí)行。
6、oracle11g后exp不導(dǎo)出空表,expdp可以。
exp導(dǎo)出指定用戶(表、視圖、存儲(chǔ)過程、同義詞)到dmp文件
一般適用于單個(gè)用戶只有一個(gè)表空間的情況
exp 用戶名/密碼@127.0.0.1:1521/ORCLCDB
file=備份文件.dmp
log=操作日志.log
expdp導(dǎo)出指定用戶(表、視圖、存儲(chǔ)過程、同義詞)到dmp文件
#創(chuàng)建備份目錄
mkdir -p /tmp/dbbackup
#登錄sqlplus,創(chuàng)建邏輯目錄DB_BACKUP,映射物理目錄/tmp/dbbackup
create or replace directory DB_BACKUP as '/tmp/dbbackup';
#為備份的用戶授權(quán)邏輯目錄讀寫權(quán)限
grant read,write on directory DB_BACKUP to 備份的用戶名;
#導(dǎo)出備份文件到/tmp/dbbackup下
expdp 用戶名/密碼@127.0.0.1:1521/orclcdb
directory=DB_BACKUP
dumpfile=備份文件.dmp
schemas=用戶名
logfile=操作日志.log
cluster=N
exclude=grant
exclude=STATISTICS
compression=ALL
二、導(dǎo)入dmp文件
確定dmp文件是用exp與是expdp導(dǎo)出的
由于exp與expdp導(dǎo)出的文件都是dmp,而這兩者導(dǎo)出的dmp格式不同,導(dǎo)入命令也不同(exp導(dǎo)出的用imp導(dǎo)入,expdp導(dǎo)出的用impdp導(dǎo)入),需要進(jìn)行區(qū)分,以下是簡(jiǎn)單區(qū)分的辦法:
#如果顯示以TEXPORT開頭,則是EXP導(dǎo)出的;如果是亂碼則是expdp導(dǎo)出的。
head -n 1 備份文件.dmp
同表空間不同用戶恢復(fù)表空間命令
exp導(dǎo)出dmp使用imp恢復(fù),方法如下:
imp 目標(biāo)用戶名/密碼@127.0.0.1:1521/ORCLCDB
fromuser=源用戶名 touser=目標(biāo)用戶名
file=備份文件.dmp
log=操作日志.log
ignore=y
expdb導(dǎo)出dmp使用impdp恢復(fù),方法如下:
impdp 目標(biāo)庫用戶名/密碼@127.0.0.1:1521/ORCLCDB
remap_schema=源用戶名:目標(biāo)用戶名
directory=dmp文件所在的目錄
dumpfile=備份庫文件名.dmp
logfile=操作日志.log
不同表空間不同用戶恢復(fù)表空間命令
exp導(dǎo)出dmp使用imp恢復(fù),方法如下:文章來源:http://www.zghlxwxcb.cn/news/detail-806784.html
#全局替換dmp文件中表空間名,減少導(dǎo)出時(shí)需transport_tablespace的麻煩
sed -i "s/源表空間名/目標(biāo)表空間名/g" 備份庫文件名.dmp
#導(dǎo)入
imp 目標(biāo)用戶名/密碼@127.0.0.1:1521/ORCLCDB
fromuser=源用戶名 touser=目標(biāo)用戶名
file=備份文件.dmp
log=操作日志.log
ignore=y
expdb導(dǎo)出dmp使用impdp恢復(fù),方法如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-806784.html
#創(chuàng)建備份目錄
mkdir -p /tmp/dbbackup
#登錄sqlplus,創(chuàng)建邏輯目錄DB_BACKUP,映射物理目錄/tmp/dbbackup
create or replace directory DB_BACKUP as '/tmp/dbbackup';
#為備份的用戶授權(quán)邏輯目錄讀寫權(quán)限
grant read,write on directory DB_BACKUP to 備份的用戶名;
#導(dǎo)入
impdp 目標(biāo)庫用戶名/密碼@127.0.0.1:1521/ORCLCDB
remap_tablespace=源表空間:目標(biāo)表空間
remap_schema=源用戶名:目標(biāo)用戶名
directory=DB_BACKUP
dumpfile=備份庫文件名.dmp
logfile=操作日志.log
到了這里,關(guān)于OracleDatabase——數(shù)據(jù)庫表空間dmp導(dǎo)出與導(dǎo)入的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!