當前位置:首頁 » 數據倉庫 » oracle資料庫表還原
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle資料庫表還原

發布時間: 2022-07-31 06:59:16

『壹』 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 執行這個操作