操作步驟
數據備份: 步驟 1 備份用戶數據。
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/xx@數據庫實例名 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;