『壹』 oracle資料庫的表刪了怎麼恢復
請使用 Oracle Database 10g 中的閃回表特性,它使得被刪除表的恢復過程如同執行幾條語句一樣簡單。讓我們來看該特性是如何工作的。
刪除那個表!
首先,讓我們查看當前模式中的表。
sql> select * from tab;
TNAME
TABTYPE
CLUSTERID
--------------------- - -- -- --- ------
RECYCLETEST
TABLE
現在,我們意外地刪除了該表:
SQL> drop table recycletest;
Table dropped.
現在讓我們來查看該表的狀態。
SQL> select * from tab;
TNAME
『貳』 oracle 資料庫如何還原
單擊開始,這里輸入cmd,打開dos窗口
輸入命令
exp bms/BMSPASS@TCDB file=E:DBbackdbback20160112.dmp
這里說明一下
這里的bms是指備份時,登錄資料庫實例TCDB的用戶名;
這里的/是語法符號。
這里的BMSPASS是用戶bms登錄資料庫TCDB時的密碼;
@是語法符號。
這里的TCDB是Oracle資料庫的實例名。
這里的file=E:DBbackdbback20160112.dmp 是只指備份文件的存放路徑。
等待導出完成,如果看到這里的導出成功,說明備份完成了。
打開備份時指定的存儲路徑,就可以看到備份文件了。
如果在導出命令的最後加上full=y的參數,也就是
exp bms/BMSPASS@TCDB file=E:DBbackdbback20160112.dmp full=y
意思是將用戶bms在TCDB資料庫實例中的所有文件都備份,也就是完整備份。
資料庫還原使用語法
imp bms/BMSPASS@TCDB file=E:DBbackdbback20160112.dmp
這里的E:DBbackdbback20160112.dmp是備份文件的存放路徑
『叄』 oracle資料庫備份怎麼還原
1 導出存儲過程,觸發器,序列等所有用戶對象。(備份)
在PL/SQL Developer的菜單Tools(工具) => Export User Objects(導出用戶對象)中出來一個對話框界面
建議紅色框住部分都不選,這樣執行這個sql 時,就根據當前你的登錄賬戶來進行創建。 在對象列表中ctrl+a 全選所有(如果你只導出部分,可單獨選擇)
設置 輸出文件地址,文件名。 點擊導出完成。
2 導出數據。(備份)
在PL/SQL Developer的菜單Tools(工具) => 導出表 中出來一個對話框界面
如果 數據量較大,選擇oracle導出,勾壓縮選項,然後設置輸出文件地址。 如果只導出部分數據,可以在Where 處添加條件。例如 rownum<=1000 ( 導出1000條記錄),此種方式導出dmp 格式文件。
如果數據量較小,可以選擇sql 插入,此種方式導出sql文件。
選項,勾選 約束,索引,行數,觸發器。
注意:如果表中包含clob 或nclob 欄位,就只能用dmp格式進行導入,如果是少量表,不包含這種欄位,可以用sql插入方式。
還原時,注意需要先還原dmp文件。
3 表數據還原 。
a. 如果dmp 文件,那麼在PL/SQL Developer的菜單Tools(工具) => 導入表 中出來一個對話框界面
可以在 「到用戶」 處 選擇你登錄的賬戶。
b 如果是sql 格式文件,一樣在PLSQL中新建一個命令窗口 (command windows) , 粘貼(ctrl+v) 剛才負責的sql內容。然後就開始自動執行還原了。
4 還原其他對象(存儲過程,觸發器,序列,函數等)
a. 用PLSQL 登錄要還原的Oracle。此時你登錄的賬號是什麼,還原就在該賬號下。
b. 把先前備份的表結構sql文件打開,全選內容。 然後在PLSQL中新建一個命令窗口 (command windows) , 粘貼(ctrl+v) 剛才負責的sql內容。然後就開始自動執行還原了。
『肆』 oracle怎麼還原被刪除的表中的數據
Oracle DBA神器:PRM-DUL災難恢復工具,Schema級別數據恢復。PRM-DULFor Oracle Database – schema級別oracle資料庫數據恢復特性 ,PRM-DUL即ParnassusData Recovery Manager是企業級別Oracle資料庫災難恢復工具。PRM可以在無備份的情況下恢復被truncated掉的表,也可以恢復無法打開的Oracle資料庫(Alter Database Open失敗)中的數據。
『伍』 我的oracle資料庫裡面覆蓋了一張表,怎麼還原
用oracle的
flashback
,可以還原查詢某個時間點這個表中的數據,只要時間不要過去太久就可以,比如
SELECT
*
FROM
tt_tab
AS
of
TIMESTAMP(SYSDATE-1/24)
『陸』 oracle資料庫備份後怎麼恢復
1 導出存儲過程,觸發器,序列等所有用戶對象。(備份)
在PL/SQL Developer的菜單Tools(工具) => Export User Objects(導出用戶對象)中出來一個對話框界面
建議紅色框住部分都不選,這樣執行這個sql 時,就根據當前你的登錄賬戶來進行創建。 在對象列表中ctrl+a 全選所有(如果你只導出部分,可單獨選擇)
設置 輸出文件地址,文件名。 點擊導出完成。
2 導出數據。(備份)
在PL/SQL Developer的菜單Tools(工具) => 導出表 中出來一個對話框界面
如果 數據量較大,選擇oracle導出,勾壓縮選項,然後設置輸出文件地址。 如果只導出部分數據,可以在Where 處添加條件。例如 rownum<=1000 ( 導出1000條記錄),此種方式導出dmp 格式文件。
如果數據量較小,可以選擇sql 插入,此種方式導出sql文件。
選項,勾選 約束,索引,行數,觸發器。
注意:如果表中包含clob 或nclob 欄位,就只能用dmp格式進行導入,如果是少量表,不包含這種欄位,可以用sql插入方式。
還原時,注意需要先還原dmp文件。
3 表數據還原 。
a. 如果dmp 文件,那麼在PL/SQL Developer的菜單Tools(工具) => 導入表 中出來一個對話框界面
可以在 「到用戶」 處 選擇你登錄的賬戶。
b 如果是sql 格式文件,一樣在PLSQL中新建一個命令窗口 (command windows) , 粘貼(ctrl+v) 剛才負責的sql內容。然後就開始自動執行還原了。
4 還原其他對象(存儲過程,觸發器,序列,函數等)
a. 用PLSQL 登錄要還原的Oracle。此時你登錄的賬號是什麼,還原就在該賬號下。
b. 把先前備份的表結構sql文件打開,全選內容。 然後在PLSQL中新建一個命令窗口 (command windows) , 粘貼(ctrl+v) 剛才負責的sql內容。然後就開始自動執行還原了。
『柒』 oracle資料庫怎樣還原到以前某個正確的狀態
第一:用安裝資料庫時的管理員用戶登錄:創建一個新的用戶,如:
//創建用戶123密碼456
create
user
123
identified
by
456;
第二:授權,賦予dba的許可權
grant
dba
to
123;
第三:導入資料庫
imp
123/456@orcl
file=e:\*.dmp
fromuser=expuser
touser=123
注意:如上導入需要直接在cmd界面執行;expuser是導出用戶名,可以隨便寫,但會有警告;orcl是你創建的資料庫事例,在安裝oracl的時候,默認會新建一個orcl
最後:希望我描述清楚了,能幫到你。
『捌』 oracle資料庫如何還原
第一:用安裝資料庫時的管理員用戶登錄:創建一個新的用戶,如:
//創建用戶123密碼456
create user 123 identified by 456;
第二:授權,賦予dba的許可權
grant dba to 123;
第三:導入資料庫
imp 123/456@orcl file=E:\*.DMP fromuser=expuser touser=123
注意:如上導入需要直接在cmd界面執行;expuser是導出用戶名,可以隨便寫,但會有警告;orcl是你創建的資料庫事例,在安裝oracl的時候,默認會新建一個orcl
最後:希望我描述清楚了,能幫到你。
『玖』 oracle資料庫誤操作把表刪除了,怎樣恢復
一:表的恢復
對誤刪的表,只要沒有使用PURGE永久刪除選項,那麼從flash back區恢復回來希望是挺大的。一般步驟有:
1、從flash back里查詢被刪除的表
select * from recyclebin
2.執行表的恢復
flashback table tb to before drop,這里的tb代表你要恢復的表的名稱。
二:表數據恢復
對誤刪的表記錄,只要沒有truncate語句,就可以根據事務的提交時間進行選擇恢復,一般步驟有:
1、先從flashback_transaction_query視圖里查詢,視圖提供了供查詢用的表名稱、事務提交時間、UNDO_SQL等欄位。
如:select * from flashback_transaction_query where
table_name='TEST';
2、執行表記錄恢復
一般先根據時間進行查詢,查詢語句模式為select * from tb as of timestamp
to_timestamp(time,'yyyy-mm-dd hh24:mi:ss'); tb指表名稱,time指某個時間點
如select * from scott.test as of timestamp to_timestamp('2009-12-11
20:53:57','yyyy-mm-dd hh24:mi:ss');
若有數據,恢復極為簡單了,語句為flashback table tb to timestamp
to_timestamp(time,'yyyy-mm-dd hh24:mi:ss');
如flashback table scott.test to timestamp to_timestamp('2009-12-11
20:47:30','yyyy-mm-dd hh24:mi:ss');
注意:alter table testvarchar enable row movement;
這個命令的作用是,允許Oracle 修改分配給行的rowid。在Oracle
中,插入一行時就會為它分配一個rowid,而且這一行永遠擁有這個rowid。閃回表處理會對EMP
完成DELETE,並且重新插入行,這樣就會為這些行分配一個新的rowid。要支持閃回就必須允許Oracle 執行這個操作