OracleDatabase——數據庫表空間dmp導出與導入

由於公司的程序一直部署在客戶現場內網,內網調試難度高,一般是有備份還原數據庫的需求,這裏簡記備份(導出)數據庫dmp文件與恢復(導入)的步驟。

一、導出dmp文件

exp與expdp命令異同

相同點:exp與expdp命令都是備份數據庫的。

不同點

1、expdp效率更高,exp是串行備份的,但expdp是並行備份的。

2、二者導出機制不同,exp導出的是文本型,expdp導出的是二進制,所以expdp導出的dmp文件是要小於exp導出的。

3、二者導出的dmp需要對應不同的導入命令,exp對應imp,expdp對應impdp。

4、exp不需要指定邏輯目錄對象(directory),而expdp需要指定。

5、exp/imp可在客戶端執行,而expdp/impdp只能在服務端執行。

6、oracle11g後exp不導出空表,expdp可以。

exp導出指定用戶(表、視圖、存儲過程、同義詞)到dmp文件

一般適用於單個用戶只有一個表空間的情況

exp 用戶名/密碼@127.0.0.1:1521/ORCLCDB 
    file=備份文件.dmp 
    log=操作日誌.log

expdp導出指定用戶(表、視圖、存儲過程、同義詞)到dmp文件

#創建備份目錄
mkdir -p /tmp/dbbackup
#登錄sqlplus,創建邏輯目錄DB_BACKUP,映射物理目錄/tmp/dbbackup
create or replace directory DB_BACKUP as '/tmp/dbbackup';
#爲備份的用戶授權邏輯目錄讀寫權限
grant read,write on directory DB_BACKUP to 備份的用戶名;
#導出備份文件到/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

二、導入dmp文件

確定dmp文件是用exp與是expdp導出的

由於exp與expdp導出的文件都是dmp,而這兩者導出的dmp格式不同,導入命令也不同(exp導出的用imp導入,expdp導出的用impdp導入),需要進行區分,以下是簡單區分的辦法:

#如果顯示以TEXPORT開頭,則是EXP導出的;如果是亂碼則是expdp導出的。
head -n 1 備份文件.dmp

同表空間不同用戶恢復表空間命令

exp導出dmp使用imp恢復,方法如下:

imp 目標用戶名/密碼@127.0.0.1:1521/ORCLCDB 
	fromuser=源用戶名 touser=目標用戶名 
	file=備份文件.dmp 
	log=操作日誌.log 
	ignore=y

expdb導出dmp使用impdp恢復,方法如下:

impdp 目標庫用戶名/密碼@127.0.0.1:1521/ORCLCDB 
    remap_schema=源用戶名:目標用戶名
    directory=dmp文件所在的目錄
    dumpfile=備份庫文件名.dmp
    logfile=操作日誌.log

不同表空間不同用戶恢復表空間命令

exp導出dmp使用imp恢復,方法如下:

#全局替換dmp文件中表空間名,減少導出時需transport_tablespace的麻煩
sed -i "s/源表空間名/目標表空間名/g" 備份庫文件名.dmp
#導入
imp 目標用戶名/密碼@127.0.0.1:1521/ORCLCDB 
	fromuser=源用戶名 touser=目標用戶名 
	file=備份文件.dmp 
	log=操作日誌.log 
	ignore=y

expdb導出dmp使用impdp恢復,方法如下:

#創建備份目錄
mkdir -p /tmp/dbbackup
#登錄sqlplus,創建邏輯目錄DB_BACKUP,映射物理目錄/tmp/dbbackup
create or replace directory DB_BACKUP as '/tmp/dbbackup';
#爲備份的用戶授權邏輯目錄讀寫權限
grant read,write on directory DB_BACKUP to 備份的用戶名;
#導入
impdp 目標庫用戶名/密碼@127.0.0.1:1521/ORCLCDB 
    remap_tablespace=源表空間:目標表空間
    remap_schema=源用戶名:目標用戶名
    directory=DB_BACKUP
    dumpfile=備份庫文件名.dmp
    logfile=操作日誌.log
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章