1. 程式人生 > >Linux系統下,Oracle資料庫的備份與還原

Linux系統下,Oracle資料庫的備份與還原

資料備份:


1.使用Linux系統下的資料庫管理員賬號連線linux終端。


2. 執行以下語句,建立“bak_dir”資料夾。

 mkdir bak_dir

3. 執行以下語句,為“bak_dir”資料夾賦予讀、寫和執行許可權。

 chmod 777 bak_dir

4. 執行以下語句,以sysdba使用者登入Oracle資料庫伺服器。

 sqlplus 資料庫管理員賬號/密碼@資料庫例項名 as sysdba

5. 執行以下語句,將“bak_dir”指定為“/opt/oracle/bak_dir”。
 create or replace directory bak_dir as '/opt/oracle/bak_dir'

 commit

6. 執行以下語句,將“bak_dir”的讀、寫和執行許可權賦給xx(資料使用者名稱)使用者。
 grant all on directory bak_dir to xx


 commit
7. 執行以下語句,退出oracle資料庫伺服器。
 quit


執行以下語句,將sysdb使用者的表備份到“bak_dir”目錄下。
8.expdp xx(要匯出表所在的資料庫使用者名稱)/xx(密碼)@資料庫例項名 directory=bak_dir dumpfile=expdb_xx.dmp logfile=expdb_xxlog tables=表名


 


資料還原:


1.在命令列輸入:sqlplus "/as sysdba"


2. 執行以下語句登入xx資料庫,使用者名稱:xx,密碼:xx(請輸入當地實際密碼)
 conn xx/xx;


3.如果恢復的表中有涉及到觸發器的請停止觸發器,例:A表


alter table A disable all triggers; 


commit;


4. 執行以下語句退出當前使用者

 quit;

5. 執行以下語句,恢復使用者資料。
 impdp xx/[email protected]資料庫例項名 directory=bak_dir table_exists_action=truncate dumpfile=expdb_xx.dmp logfile=impdb_xx.log


5.在命令列輸入:sqlplus "/as sysdba"


6. 執行以下語句登入xx資料庫,使用者名稱:xx,密碼:xx(請輸入當地實際密碼)
 conn xx/xx;


7. 執行以下語句開啟被禁止的觸發器


alter table A enable all triggers;


commit;