1. oracle資料庫執行腳步出錯,怎麼恢復資料庫
數據恢復方法是利用oracle提供的閃回方法進行數據恢復,適用於delete刪除(一條記錄)方式:
首先需要知道是什麼時間進行的刪除操作,如果不能確定具體時間點則選擇盡量准確的刪除數據前的時間。然後利用
select * from 表名 as of timestamp to_timestamp('刪除時間點','yyyy-mm-dd hh24:mi:ss')
語句可以找回刪除的數據。利用
insert into 表名 (select * from 表名 as of timestamp to_timestamp('刪除時間點','yyyy-mm-dd hh24:mi:ss'));
語句就可以將恢復出來的數據插入原表中(注意要保證主鍵不重復)。
另一種方法可以通過閃回整個表來恢復誤刪除的數據,但僅適用於表結構沒有發生改變且用戶有flash any table許可權的情況下,語句如下:
·alter table 表名 enable row movement
2. oracle資料庫的表刪了怎麼恢復
請使用 Oracle Database 10g 中的閃回表特性,它使得被刪除表的恢復過程如同執行幾條語句一樣簡單。讓我們來看該特性是如何工作的。
刪除那個表!
首先,讓我們查看當前模式中的表。
sql> select * from tab;
TNAME
TABTYPE
CLUSTERID
--------------------- - -- -- --- ------
RECYCLETEST
TABLE
現在,我們意外地刪除了該表:
SQL> drop table recycletest;
Table dropped.
現在讓我們來查看該表的狀態。
SQL> select * from tab;
TNAME
3. 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內容。然後就開始自動執行還原了。
4. oracle資料庫誤操作把表刪除了,怎麼找回
一:表的恢復x0dx0ax0dx0a 對誤刪的表,只要沒有使用PURGE永久刪除選項,那麼從flash back區恢復回來希望是挺大的。一般步驟有:x0dx0ax0dx0a1、從flash back里查詢被刪除的表x0dx0ax0dx0a select * from recyclebinx0dx0ax0dx0a2.執行表的恢復x0dx0ax0dx0a flashback table tb to before drop,這里的tb代表你要恢復的表的名稱。x0dx0ax0dx0a二:表數據恢復x0dx0ax0dx0a 對誤刪的表記錄,只要沒有truncate語句,就可以根據事務的提交時間進行選擇恢復,一般步驟有:x0dx0ax0dx0a1、先從flashback_transaction_query視圖里查詢,視圖提供了供查詢用的表名稱、事務提交時間、UNDO_SQL等欄位。x0dx0ax0dx0a 如:select * from flashback_transaction_query where x0dx0atable_name='TEST'x0dx0ax0dx0a 2、執行表記錄恢復x0dx0ax0dx0a 一般先根據時間進行查詢,查詢語句模式為select * from tb as of timestamp x0dx0ato_timestamp(time,'yyyy-mm-dd hh24:mi:ss'); tb指表名稱,time指某個時間點x0dx0ax0dx0a 如select * from scott.test as of timestamp to_timestamp(-12-11 x0dx0a20:53:57','yyyy-mm-dd hh24:mi:ss');x0dx0ax0dx0a 若有數據,恢復極為簡單了,語句為flashback table tb to timestamp x0dx0ato_timestamp(time,'yyyy-mm-dd hh24:mi:ss');x0dx0ax0dx0a 如flashback table scott.test to timestamp to_timestamp(-12-11 x0dx0a20:47:30','yyyy-mm-dd hh24:mi:ss');x0dx0ax0dx0a注意:alter table testvarchar enable row movement;x0dx0ax0dx0a 這個命令的作用是,允許Oracle 修改分配給行的rowid。在Oracle x0dx0a中,插入一行時就會為它分配一個rowid,而且這一行永遠擁有這個rowid。閃回表處理會對EMP x0dx0a完成DELETE,並且重新插入行,這樣就會為這些行分配一個新的rowid。要支持閃回就必須允許Oracle 執行這個操作
5. 請問oracle怎麼從dmp文件只恢復一張表的數據,恢復到另一個用戶中
1、安裝Oracle資料庫軟體,並且用Oracle管理工具中的Database Configuration Assistant 根據對方提供的資料庫名建立資料庫。資料庫版本則要和導出當前dmp文件的資料庫版本一致。
6. 重裝系統後,怎麼恢復oracle資料庫
任何軟體都有可能在有意或無意的情況下被重新安裝,如Oracle重裝後資料庫怎麼恢復呢?情況發生在你是無意的情況下!ORACLE資料庫恢復的方法我們經常會用到,下面就為您介紹重裝系統後ORACLE資料庫恢復的方法,希望對您學習ORACLE資料庫恢復方面能有所幫助。x0dx0ax0dx0a我的電腦突然掛了,不得不重裝系統,不過我的ORACLE裝在了D盤,所有的文件都還在,我相信一定能夠恢復,直到搞定工作,我才開始整我的資料庫,花了兩天時間,終於恢復了,慶祝一下,同時總結一下,希望有遇到同樣問題的朋友能夠快速搞定此類問題x0dx0ax0dx0a第一種:x0dx0ax0dx0a首先,備份資料庫(X:\oracle\oradata)下的數據文件,重新命名即可(否則裝資料庫的時候會提示sid已存在)。重新安裝數據x0dx0a庫,當然資料庫的名字就是你要恢復的名字。安裝完成後,打開控制面板,停止oracle的服務。把(X:\oracle\oradata)下新生成的文件x0dx0a改名,把原先目錄下的文件恢復名字。再重新啟動oracle服務和監聽。用sys/as dba x0dx0a登陸資料庫,可能會提示許可權不夠(ora-01031)修改(X:\oracle\ora92\network\admin x0dx0a)文件夾下的sqlnet.ora文件,添加SQLNET.AUTHENTICATION_SERVICES= x0dx0a(NTS),增加許可權。登陸進去後,打開table提示不能打開。打開common頁,執行命令alert database x0dx0aopen;這時再刷新table,發現原先的表可以打開了。恢復成功了。再用原先資料庫的普通用戶進入。發現一切正常。至此,大功告成。x0dx0ax0dx0a第二種:x0dx0ax0dx0a1、首先,將原來的ORACLE文件夾改名,原來的路徑是D:/oracle.我暫時改成D:/oracle_old.找來ORACLE(我用x0dx0a的是ORACLE 9I)安裝光碟,將ORACLE安裝在原來安裝的目錄下,這樣恢復起來更加方便,主要是注冊表的內容不用修改。x0dx0ax0dx0a2、安裝完了之後,系統中又有一個可以使用的ORACLE了。這個時候要做的就是將原來的文件和數據恢復過來。第一步,先關閉ORACLE的所x0dx0a有已經啟動的項目,在"服務"裡面逐一關閉。然後,將安裝目錄改名。我現在用的是D:/oracle.改成D:/oracle_new.再將D:x0dx0a/oracle_old改成D:/oracle. x0dx0a這樣理論上說從物理層面恢復了ORACLE了。但是我們發現,現在還不能啟動ORACLE的監聽程序和服務程序。我們還要從邏輯上解決。x0dx0ax0dx0a3、在dos環境下執行一個刪除命令:oradim -delete -sid mm,其中mm為創建oracle時候創建的實例 x0dx0a建議執行這個命令後重新啟動機器,重啟後就可以建立和原來實例名相同的實例。當然你懶,不重新啟動也可以,但是你的實例名就不能和原來的一樣了。x0dx0ax0dx0a4、在dos環境下執行命令 oradim -new -sid mm -startmode a -pfile "D:\oracle\admin\mm\pfile\initmm.ora "創建一個新的實例,其中 "mm"為新資料庫的名稱。x0dx0ax0dx0a5、啟動服務,先打開資料庫,然後可以用以前的用戶名和密碼登陸進去。 x0dx0a要補充的是,一般的ORACLE資料庫的監聽程序都是用電腦的名稱來識別地址的,而不是127.0.0.1或者localhost.所以,如果我們安裝系x0dx0a統的時候用的是不同的電腦名稱(比如我原來用的是wm_mm.重新安裝後用的是wenming_mm),那麼我們還有一個工作要做,就是修改文件 x0dx0alistener.ora.將裡面的相關的東西改過來就可以了。x0dx0ax0dx0a需要耐心、細心,可能在一步里有一個細小的差別就會出些古怪的錯誤提示,有時需要根據錯誤提示採取策略,總之原理是,先裝一個一模一樣的ORACLE,安裝目錄、資料庫名稱都一樣,這樣保證注冊表裡不用更改;再覆蓋物理文件,最後重新實例化,打開資料庫就可以進去了。
7. 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
最後:希望我描述清楚了,能幫到你。
8. oracle還原資料庫長時間不動
一般是網路不好,更換網路再試一下。
根據oracle資料庫的特點和提供的工具,還原數據主要方法有以下幾種方法。
1、利用邏輯備份使用import工具丟失數據的表;2、利用物理備份來通過還原數據文件並進行不完全恢復;3、利用dbms_logmnr包從redo log文件中恢復;4、利用flashback特性恢復數據。