Oracle數據庫用戶數據完整備份與恢復
1.1 PL/SQL->工具->導出用戶對象,選項如圖
常用的用戶對象包括:
TABLE,SEQUENCE,VIEW,PACKAGE,TYPE,FUNCTION,PROCEDURE,PACKAGE BODY,TREGGER
1.2 PL/SQL->工具->導出表,選項如圖
上一步中導出的表中沒有數據,所以這一步是要導出表中的所有數據
至此,備份完成,通常SQL文件大也只有幾兆,PDE文件有上百兆。
2.恢復
2.1 由於上面我們導出的是一個用戶下完整的數據,所以如果要恢復的數據庫裡面有這個用戶,我們首先執行刪除用戶及用戶下所有數據的操作,並結束相關進程,腳本如下:
drop user lqpvplmuser cascade;
select sid,serial# from v$session where username='username';
alter system kill session '150,9019';
2.2 創建用戶並賦予權限,腳本如下:
CREATE USER username PROFILE "DEFAULT" IDENTIFIED BY "tyinteplm" ACCOUNT UNLOCK;
GRANT "CONNECT" TO username;
GRANT "RESOURCE" TO username;
grant create cluster to username;
grant create database link to username;
grant create procedure to username;
grant create sequence to username;
grant create table to username;
grant create trigger to username;
grant create type to username;
grant create view to username;
grant debug any procedure to username;
grant debug connect session to username;
grant select any dictionary to username;
2.3 打開一個命令窗口,將備份好的SQL文本內容復制到命令窗口執行,這一步是創建所有的用戶對象,包括表,存儲過程,函數,序列…… 但是此時表中是沒有數據的
2.4 導入表
在PL/SQL->工具->導入表
將會依次執行 禁止所有觸發器,禁止所有外鍵約束,刪除所有表數據,插入所有表數據,啟用外鍵約束,啟用觸發器的操作。
導入用戶對象通常幾分鐘就能解決,導入表中的數據通常要幾十分鐘甚至幾個小時。
當然,上述導出的文件大小和導入所需要的時間都是針對我平常的工作所言,只是起一個參考作用。具體的要視大家的數據量和電腦性能而定。