oracle資料庫修復
① 如何修復安裝oracle
一種方法是重裝資料庫後用IMP來導入原來的數據,但使用這種方法的前提是你有以前數據的備份,並且這種方法還有許多不足的地方,如備份過舊,可能會丟失許多數據、導入數據太長等。
一般情況下我們可以採用重用原來的資料庫的方法來恢復。在講步驟前先說說這種方法的原理。
數 據庫與實例對應,當資料庫服務啟動後,我們可以用sqlPLUS "/AS SYSDBA"方法連接到一個空閑的常式,當執行startup啟動資料庫時,首先會在%ORACLE_HOME%/database下找當前SID對應 的參數文件(PFILE或者SPFILE)和密碼文件,然後啟動常式;接著根據參數文件記錄的信息找到控制文件,讀取控制文件的信息,這就是mount數 據庫了;最終根據控制文件的信息打開資料庫。這個過程相當於對資料庫著了一次冷備份的恢復。
下面的具體步驟:(我們假設原庫的所有相關文件都存在)1、安裝資料庫軟體只需安裝同版本的資料庫軟體即可,不需要創建資料庫。最好安裝在和原來資料庫同樣的%ORACLE_HOME%下,省得還要修改參數文件路徑等。(直接覆蓋原來的oracle即可)再次強調,只安裝軟體,不創建資料庫,否則將資料庫軟體安裝在同樣的目錄下舊的部分數據文件會被覆蓋,這樣資料庫也不能被恢復了。
2、新建一個實例在cmd窗口執行oradim -new -sid xinhai注意,這個SID名稱最好與你以前的SID一樣,否則在啟動的數據需要指明pfile,並且需要重建密碼文件,比較麻煩。(當然,如果你就不想用原來的SID也可以,把參數文件、密碼文件的名稱都改成與新SID對應的名稱)。
3、啟動資料庫做完以上兩步,就可以啟動資料庫了。用net start 檢查oracle服務是否已經啟動,如果oracle服務沒有啟動,則在cmd下運行如下命令:net start oracleservicexinhai然後設定必要的環境變數,在cmd窗口運行set ORACLE_SID=xinhai
接著連接資料庫sqlplus "/as sysdba"startup
如果正常的話,資料庫應該就能起來了
4、啟動監聽lsnrctl start
5、後續工作經過以上幾步後,基本上就可以使用oracle了,但是使用起來有點不方便,如每次在cmd中啟動資料庫都需要先SET ORACLE_SID、在本機連接資料庫也都需要加上@TNSNAME等。我們可以修改注冊表,添加ORACLE_SID的信息,避免這些麻煩。
在注冊表的HKEY_LOCAL_MACHINESOFTWAREORACLE下新建字元串值,名稱為ORACLE_SID,值為xinhai。也可以將以下內容保持成一個後綴名為reg的文件(文件名隨便起),然後雙擊,即可將信息導入到注冊表中。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREORACLE]"ORACLE_SID"="xinhai"
注意,以上步驟都是在%ORACLE_HOME%、%ORACLE_SID%都與原庫一樣的情況下討論的,雖然%ORACLE_HOME%和%ORACLE_SID%可以與原庫不一樣,但為了減少麻煩和出錯的幾率,建議不要改變則兩個值。
6、如果系統啟動時 還不能啟動oracle就增加以下
編輯一個oracle_startup.bat文檔 內容為:
set sid=xinhailsnrctl start>>e:/oracle_startuplog.logsqlplus /nolog @e:oracle_startupsql.txt>>e:/ oracle_startuplog.log
在e盤下增加文檔oracle_startuplog.log,內容為:
connect / as sysdba;startup nomount;alter database mount;alter database open;quit
然後把oracle_startup.bat放到系統啟動項裡面,這樣每次啟動系統時oracle就自動啟動了。
② 誤刪除Oracle資料庫恢復,怎麼辦
oracle資料庫恢復,主要包括
(1)系統崩潰只剩下數據文件的情況下的恢復,甚至沒有system表空間而只有數據表空間的情況下的恢復.只要提供數據文件就可恢復.
(2)
undo
system
表空間損壞數據恢復
.
(3)
非歸檔或者歸檔模式下誤
delete
數據的恢復、誤刪除表空間的恢復、
drop
truncate
表的恢復
.
(4)
資料庫中有大量CLOB
BLOB對象數據恢復等情況以及各種ora-錯誤的修復.
(5)
DMP文件損壞導致文件不能導入資料庫的數據恢復
(6)
oracle資料庫中數據文件出現壞塊情況下的恢復.
(7)
oracle資料庫無數據文件但有日誌的情況下的恢復.
(8)
UNIX、WINDOWS下ORACLE數據文件被誤刪除情況下的資料庫恢復.
(9)
Oracle10G、Oracle11G
的ASM損壞的資料庫恢復.
(10)
Oracle10G、Oracle11G
BIFGILE
TABLESPACE大文件表空間損壞數據恢復
(11)
Oracle9i、Oracle10G、Oracle11G壓縮表
壓縮表空間損壞數據恢復
(12)Oracle10G
Oracle11G
Expdp導出
Impdp導入DMP文件錯誤數據恢復
恢復成功率高達90%以上,在數據恢復領域處於國內領先的地位。具體案例見廣州拓飛官方網站
③ oracle資料庫數據刪除後如何恢復
Oracle DBA神器:PRM災難恢復工具,Schema級別數據恢復。PRM For Oracle Database – schema級別oracle資料庫數據恢復特性 ,PRM即ParnassusData Recovery Manager是企業級別Oracle資料庫災難恢復工具。PRM可以在無備份的情況下恢復被truncated掉的表,也可以恢復無法打開的Oracle資料庫(Alter Database Open失敗)中的數據。 PRM是圖形化增強版的Oracle DUL工具,同時具備很多Oracle DUL不具備的特性
④ 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資料庫恢復,提示ORA-01110: 數據文件 35: ''
回復有問題,你是dmp恢復的吧,這樣的話要求資料庫名字,資料庫文件存放的路徑都要和原來的一樣。你要恢復這個資料庫,先建立資料庫名字,和資料庫表空間,表空間位置,錯誤里已經提示出來了。然後就是資料庫導入命令指定建立的這個資料庫。
⑥ 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
⑦ oracle資料庫刪除錯了表怎麼恢復
如果僅僅是
數據行被刪除了,那麼可以用得方法很多
例如logmnr
flashback
query
等等
如果是表被刪除了,那麼如果開了recylebin
可以用回收站,
也可以使用專業oracle數據恢復工具prm
for
oracle
如果自己搞不定可以找askmaclean專業oracle資料庫修復團隊成員幫您恢復!
askmaclean.com
⑧ ora-00604、ORA-00704、ORA-00942、ORA-01092 Oracle資料庫
ORA-00604:error occurred at recursive SQL level 1 ,如果是因為刪除sys數據對象導致的,那麼一般報錯是:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00604: error occurred at recursive SQL level 1
例如上面的報錯說明了由於 數據字典訛誤 oracle dicitonary 遞歸SQL錯誤,oracle認為這樣啟動資料庫是不行的,所以報出ORA-00704錯誤, 對於該問題 可用的手段:
1、如果有備份恢復可以考慮從備份中恢復
2、如果沒有備份 那麼需要使用特殊手段 手動patch system.dbf 系統表空間上的數據字典 來繞過該問題。
如果自己搞不定可以找詩檀軟體專業ORACLE資料庫修復團隊成員幫您恢復!
詩檀軟體專業Oracle資料庫修復團隊
⑨ 如何Oracle 資料庫備份與恢復
oracle資料庫的備份與恢復
---- 當我們使用一個資料庫時,總希望資料庫的內容是可靠的、正確的,但由於計算機系統的故障(包括機器故障、介質故障、誤操作等),資料庫有時也可能遭到破壞,這時如何盡快恢復數據就成為當務之急。如果平時對資料庫做了備份,那麼此時恢復數據就顯得很容易。由此可見,做好資料庫的備份是多麼的重要,下面筆者就以oracle7為例,來講述一下資料庫的備份和恢復。oracle 資料庫有三種標準的備份方法,它們分別為導出/導入(export/import)、冷備份、熱備份。導出備份是一種邏輯備份,冷備份和熱備份是物理備份。
---- 一、 導出/導入(export/import)
---- 利用export可將數據從資料庫中提取出來,利用import則可將提取出來的數據送回oracle資料庫中去。
---- 1. 簡單導出數據(export)和導入數據(import)
---- oracle支持三種類型的輸出:
---- (1)表方式(t方式),將指定表的數據導出。
---- (2)用戶方式(u方式),將指定用戶的所有對象及數據導出。
---- (3)全庫方式(full方式),將資料庫中的所有對象導出。
---- 數據導出(import)的過程是數據導入(export)的逆過程,它們的數據流向不同。
---- 2. 增量導出/導入
---- 增量導出是一種常用的數據備份方法,它只能對整個資料庫來實施,並且必須作為system來導出。在進行此種導出時,系統不要求回答任何問題。導出文件名預設為export.dmp,如果不希望自己的輸出文件定名為export.dmp,必須在命令行中指出要用的文件名。
---- 增量導出包括三個類型:
---- (1)「完全」增量導出(complete)
---- 即備份整個資料庫,比如:
---- $exp system/manager inctype=complete file=990702.dmp
---- (2) 「增量型」增量導出
---- 備份上一次備份後改變的數據。比如:
---- $exp system/manager inctype=incremental file=990702.dmp
---- (3) 「累計型」增量導出(cumulative)
---- 累計型導出方式只是導出自上次「完全」 導出之後資料庫中變化了的信息。比如:
---- $exp system/manager inctype=cumulative file=990702.dmp
---- 資料庫管理員可以排定一個備份日程表,用數據導出的三個不同方式合理高效地完成。
---- 比如資料庫的備份任務可作如下安排:
---- 星期一:完全導出(a)
---- 星期二:增量導出(b)
---- 星期三:增量導出(c)
---- 星期四:增量導出(d)
---- 星期五:累計導出(e)
---- 星期六:增量導出(f)
---- 星期日:增量導出(g)
---- 如果在星期日,資料庫遭到意外破壞,資料庫管理員可按以下步驟來恢復資料庫:
---- 第一步:用命令create database重新生成資料庫結構;
---- 第二步:創建一個足夠大的附加回段。
---- 第三步:完全增量導入a:
---- $imp system./manager inctype= rectore full=y file=a
---- 第四步:累計增量導入e:
---- $imp system/manager inctype= rectore full=y file =e
---- 第五步:最近增量導入f:
---- $imp system/manager inctype=restore full=y file=f
---- 二、 冷備份
---- 冷備份發生在資料庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的資料庫。冷備份是將關鍵性文件拷貝到另外位置的一種說法。對於備份oracle信息而言,冷備份是最快和最安全的方法。冷備份的優點是:
---- 1.是非常快速的備份方法(只需拷貝文件)
---- 2.容易歸檔(簡單拷貝即可)
---- 3.容易恢復到某個時間點上(只需將文件再拷貝回去)
---- 4.能與歸檔方法相結合,作資料庫「最新狀態」的恢復。
---- 5.低度維護,高度安全。
---- 但冷備份也有如下不足:
---- 1.單獨使用時,只能提供到「某一時間點上」的恢復。
---- 2.在實施備份的全過程中,資料庫必須要作備份而不能作其它工作。也就是說,在冷備份過程中,資料庫必須是關閉狀態。
---- 3.若磁碟空間有限,只能拷貝到磁帶等其它外部存儲設備上,速度會很慢。
---- 4.不能按表或按用戶恢復。
---- 如果可能的話(主要看效率),應將信息備份到磁碟上,然後啟動資料庫(使用戶可以工作)並將所備份的信息拷貝到磁帶上(拷貝的同時,資料庫也可以工作)。冷備份中必須拷貝的文件包括:
---- 1.所有數據文件
---- 2.所有控制文件
---- 3.所有聯機redo log文件
---- 4.init.ora文件(可選)。
---- 值得注意的是冷備份必須在資料庫關閉的情況下進行,當資料庫處於打開狀態時,執行資料庫文件系統備份是無效的
---- 下面是做冷備份的完整例子:
---- (1) 關閉資料庫$sqldba lmode=y
---- sqldba >connect internal;
---- sqldba >shutdown normal;
---- (2) 用拷貝命令備份全部的時間文件、重做日誌文件、控制文件、初始化參數文件
---- sqldba >! cp < file > <; backup directory >
---- (3) 重啟oracle資料庫
---- $sqldba lmode=y
---- sqldba >connect internal;
---- sqldba >startup;
---- 三、 熱備份
---- 熱備份是在資料庫運行的情況下,採用archivelog mode方式備份數據的方法。所以,如果你有昨天夜裡的一個冷備份而且又有今天的熱備份文件,在發生問題時,就可以利用這些資料恢復更多的信息。熱備份要求資料庫在archivelog方式下操作,並需要大量的檔案空間。一旦資料庫運行在archivelog狀態下,就可以做備份了。熱備份的命令文件由三部分組成:
---- 1.數據文件一個表空間一個表空間地備份。
---- (1)設置表空間為備份狀態
---- (2)備份表空間的數據文件
---- (3)恢復表空間為正常狀態
---- 2.備份歸檔log文件。
---- (1)臨時停止歸檔進程
---- (2)log下那些在archive redo log目標目錄中的文件
---- (3)重新啟動archive進程
---- (4)備份歸檔的redo log 文件
---- 3.用alter database backup controlfile命令來備份拷貝文件
---- 熱備份的優點是:
---- 1.可在表空間或數據文件級備份,備份時間短。
---- 2.備份時資料庫仍可使用。
---- 3.可達到秒級恢復(恢復到某一時間點上)。
---- 4.可對幾乎所有資料庫實體作恢復。
---- 5.恢復是快速的,在大多數情況下在資料庫仍工作時恢復。
---- 熱備份的不足是:
---- 1.不能出錯,否則後果嚴重。
---- 2.若熱備份不成功,所得結果不可用於時間點的恢復。
---- 3.因難於維護,所以要特別仔細小心,不允許「以失敗而告終」。
⑩ oracle 怎樣利用閃回功能恢復數據
1,只需要執行以下個腳本即可。
7,查看日誌信息,就可以了。