Oracle數據庫(四)備份與還原

Oracle數據庫備份與還原有兩套語句:exm/imp 和expdp/impdp

1. 使用expdp,impdp命令

準備:

1.創建邏輯目錄:

查看所有目錄:select * from dba_directories;

創建數據泵目錄:create or replace direcory dp_dir as 'D:\oradata\orcl';

創建一個dbp權限的數據泵用戶: grant dba to dp identified by dp;

用戶授權數據泵讀寫權限:grant read,write on directory data to dp


數據庫備份:建邏輯目錄,給用戶授予讀寫權限

   備份:          expdp dp/123456@orcl directory=dp_dir dumpfile=student.dmp logfile=student.log schemas =STU

數據庫還原:  將還原文件放到數據泵目錄裏: 創建和備份數據庫相同的用戶,創建表空間,爲用戶指定表空間:

   還原:         impdp dp/123456@orcl directory=dp_dir dumpfile=student.dmp logfile=student.log schemas = STU


常見幾種導出:

--按用戶導出表

expdp dp/123456@orcl directory=dp_dir dumpfile=student.dmp schemas=STU

--按表名導出表

expdp scott/tiger@orcl directory=dp_dir dumpfile=expdp.dmp tables=emp,dept ;

--按查詢條件導出表

expdp scott/tiger@orcl directory=dp_dir dumpfile=expdp.dmp tables=emp query=‘WHERE deptno=20‘;

--按表空間導出表

expdp system/manager directory=dp_dir dumpfile=tablespace.dmp tablespaces=temp,example;

--導整個數據庫

expdp system/manager directory=dp_dir dumpfile=full.dmp full=y;


常見幾種導入:

--按用戶導入

impdp dp/123456@orcl directory=dp_dir dumpfile=student.dmp schemas=STU

--按表空間導入

impdp system/manager direcotry=dp_dir dumpfile=tablespace.dmp tablespaces=example;

--導入數據庫

impdp system/manager directory=dp_dir dumpfile=full.dmp full=y;

--追加數據

impdp system/manager directory=dp_dir dumpfile=expdp.dmp schemas=system TABLE_EXISTS_ACTION

--改變表的owner

impdp system/manager directory=dp_dir dumpfile=expdp.dmp tables=scott.dept REMAP_SCHEMA=scott:system;


注:

12c推出了可插拔數據庫,在一個容器cdb中以多租戶的形式同時存在多個數據庫pdb。在爲pdb做數據泵導入導出時和傳統的數據庫有少許不同。

2,導入導出時需要在userid參數內指定其tansnames的值 比如 userid=user/pwd@tnsname

設置tnsnames.ora,增加pdborocl。SERVICE_NAME爲pdb的實例名,這裏爲pdborcl

位置:oracle\product\12.2.0\dbhome_1\network\admin

orclpdb =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xqzt)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME =orclpdb)
    )
)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章