DBF 文件恢復(fù) ORACLE 數(shù)據(jù)庫的方法
清·魏源《庸易通義》:“至道問學(xué)之有知無行,分溫故為存心,知新為致知,而敦厚為存心,崇禮為致知,此皆百密一疏?!?/p>
起因
在我們的生產(chǎn)活動(dòng)中,意外總是在不經(jīng)意間發(fā)生。那天一個(gè)安裝有 oracle 數(shù)據(jù)庫的盤符不小心被格式化了,好幾個(gè)項(xiàng)目都炸了。不過還好有備份,不過只有 .DBF 文件和幾個(gè)日志文件:
//數(shù)據(jù)庫系統(tǒng)相關(guān) REDO01.LOG REDO02.LOG REDO03.LOG SYSTEM01.DBF UNDOTBS01.DBF SYSAUX01.DBF USERS01.DBF //項(xiàng)目相關(guān) xxx.DBF
解決
前期準(zhǔn)備
重新安裝和之前一樣的數(shù)據(jù)庫版本、實(shí)例名都和之前的一致;編寫創(chuàng)建控制文件 CONTROLFILE 的命令。
控制文件(Control File)是Oracle的物理文件之一,它記錄了數(shù)據(jù)庫的名字、數(shù)據(jù)文件的位置等信息??刂莆募闹匾栽谟?,一旦控制文件損壞,數(shù)據(jù)庫將會(huì)宕機(jī)。如果沒有數(shù)據(jù)庫的備份和歸檔日志文件,數(shù)據(jù)庫將無法恢復(fù)。因此,我們應(yīng)該多路鏡像控制文件(Multiplex Control Files),并把每個(gè)鏡像的控制文件分布在不同的物理磁盤。根據(jù)經(jīng)驗(yàn),控制文件多路鏡像以后,幾個(gè)控制文件同時(shí)壞掉的可能性幾乎為零。控制文件管理的重心是重在預(yù)防,而不是亡羊補(bǔ)牢!
控制文件實(shí)例:
CREATE CONTROLFILE REUSE DATABASE "數(shù)據(jù)庫名(orcl)" NORESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 454 LOGFILE GROUP 1 '需要恢復(fù)的日志文件路徑(E:\oradata\orcl\)REDO01.LOG' SIZE 50M, GROUP 2 '同上\REDO02.LOG' SIZE 50M, GROUP 3 '同上\REDO03.LOG' SIZE 50M DATAFILE(數(shù)據(jù)文件) -- 系統(tǒng)相關(guān) '需要恢復(fù)的數(shù)據(jù)文件路徑(E:\oradata\orcl\)SYSTEM01.DBF', '需要恢復(fù)的數(shù)據(jù)文件路徑(E:\oradata\orcl\)UNDOTBS01.DBF', '需要恢復(fù)的數(shù)據(jù)文件路徑(E:\oradata\orcl\)SYSAUX01.DBF', '需要恢復(fù)的數(shù)據(jù)文件路徑(E:\oradata\orcl\)USERS01.DBF', -- 用戶數(shù)據(jù)相關(guān) '需要恢復(fù)的數(shù)據(jù)文件路徑(E:\oradata\orcl\)TEST01.DBF', '需要恢復(fù)的數(shù)據(jù)文件路徑(E:\oradata\orcl\)TEST02.DBF' 'CHARACTER SET ZHS16GBK;
操作步驟
1.進(jìn)入 cmd 輸入命令:
sqlplus
然后以數(shù)據(jù)庫管理員身份登錄系統(tǒng),輸入:
sys / as sysdba
輸入命令回車,下一步輸入密碼即可進(jìn)入到數(shù)據(jù)庫命令行模式。
2.備份控制文件到 trace 文件,輸入命令:
alter database backup controlfile to trace;
3.停止數(shù)據(jù)庫,輸入命令:
shutdown immediate;
4.以 nomount 狀態(tài)啟動(dòng)數(shù)據(jù)庫,輸入命令:
startup nomount;
5.執(zhí)行創(chuàng)建控制文件的命令,輸入前期準(zhǔn)備好的創(chuàng)建控制文件的命令:
6.恢復(fù)數(shù)據(jù)庫,輸入命令:
recover database;
7.將數(shù)據(jù)庫從 mount 狀態(tài)切換到 open 狀態(tài),這時(shí)就是使用數(shù)據(jù)庫了,輸入命令:
alter database open;
oracle數(shù)據(jù)庫啟動(dòng)分三個(gè)步驟 nomount mount open startup是數(shù)據(jù)庫從開始階段的啟動(dòng)du,需要經(jīng)過上述zhi三個(gè)步dao驟 alter database open是數(shù)據(jù)庫處于mount狀態(tài),從mount狀態(tài)打開數(shù)據(jù)庫的命令
至此,dbf 文件恢復(fù) oracle 數(shù)據(jù)庫就完成了。祝君好運(yùn)!
期間遇到的問題
有問題不要害怕,一個(gè)一個(gè)去解決它,從中汲取養(yǎng)料,相信自己。
問題一
數(shù)據(jù)庫恢復(fù)成功后,連接數(shù)據(jù)庫遇到
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-aNrFPOfC-1609941209785)(https://cdn.jsdelivr.net/gh/filess/img10@main/2021/01/06/1609939139070-3baeea76-c41a-48f7-b36b-fb1c3f3f6ce0.png)]
因?yàn)闅w檔文件的空間滿了。
解決一
增加歸檔日志空間或者刪除歸檔日志(謹(jǐn)慎操作),可同時(shí)操作。
1.增加歸檔日志空間:
//查看當(dāng)前歸檔空間大小 select * from v$recovery_file_dest; //相應(yīng)增加歸檔日志空間大小 alter system set db_recovery_file_dest_size=20G scope=both;
2.刪除歸檔日志
//重新打開一個(gè) cmd 窗口,輸入命令:進(jìn)入 rman rman target / //刪除所有的歸檔日志 delete archivelog all;
問題二
ORA-00379: no free buffers available in buffer pool DEFAULT for block size 16K
緩沖池 DEFAULT 中無法提供 16K 塊大小的空閑緩沖區(qū)
解決二
查看 16K 塊大小
show parameter db_16k_cache_size
2.設(shè)置 16K 塊緩沖區(qū)大小
alter system set db_16k_cache_size=10m;
問題三
ORA-12516
ORA-12516: TNS: 監(jiān)聽程序找不到符合協(xié)議堆棧要求的可用處理程'
解決三
1.查看數(shù)據(jù)庫現(xiàn)有的進(jìn)程(process)數(shù)是否已經(jīng)達(dá)到參數(shù) processes 的大小;當(dāng)前會(huì)話數(shù)量(session)是否達(dá)到參數(shù) sessions 的大小。
//獲取當(dāng)前數(shù)據(jù)庫所有的進(jìn)程數(shù)量 select count(*) from v$process; //獲取當(dāng)前數(shù)據(jù)庫所有會(huì)話數(shù)量 select count(*) from v$session; //獲取 processes 大小 show parameter processes; //獲取 sessions 大小 show parameter sessions
2.修改 processes 值和 sessions 值
alter system set processes=300 scope=spfile; alter system set sessions=335 scope=spfile;
3.重啟數(shù)據(jù)庫生效
shutdown immediate; or shutdown startup
到此這篇關(guān)于DBF 文件 ORACLE 數(shù)據(jù)庫恢復(fù)的文章就介紹到這了,更多相關(guān)DBF 文件 ORACLE 數(shù)據(jù)庫恢復(fù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle數(shù)據(jù)庫時(shí)間格式轉(zhuǎn)換的常見示例
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫時(shí)間格式轉(zhuǎn)換的常見示例,在實(shí)際的工作中會(huì)經(jīng)常會(huì)用到to_char()、to_date()函數(shù)來對(duì)時(shí)間、日期進(jìn)行處理,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2024-02-02Navicat連接Oracle數(shù)據(jù)庫的詳細(xì)步驟與注意事項(xiàng)
Navicat是一套可創(chuàng)建多個(gè)連接的數(shù)據(jù)庫管理工具,用以方便管理各種數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于Navicat連接Oracle數(shù)據(jù)庫的詳細(xì)步驟與注意事項(xiàng),文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04Plsql Developer連接Oracle時(shí)出現(xiàn)Could not initialize oci.dll解決方案
這篇文章主要介紹了Plsql Developer連接Oracle時(shí)出現(xiàn)Could not initialize oci.dll解決方案,需要的朋友可以參考下2017-03-03在Oracle數(shù)據(jù)庫中同時(shí)更新兩張表的簡(jiǎn)單方法
這篇文章主要介紹了在Oracle數(shù)據(jù)庫中同時(shí)更新兩張表的簡(jiǎn)單方法,同時(shí)介紹了一種差異性合并更新的方法,需要的朋友可以參考下2015-11-11oracle 11g的安裝注意事項(xiàng)總結(jié)
這篇文章主要給大家介紹了關(guān)于oracle 11g的安裝注意事項(xiàng),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Oracle SQL tuning 數(shù)據(jù)庫優(yōu)化步驟分享(圖文教程)
SQL Turning 是Quest公司出品的Quest Central軟件中的一個(gè)工具。Quest Central是一款集成化、圖形化、跨平臺(tái)的數(shù)據(jù)庫管理解決方案,可以同時(shí)管理 Oracle、DB2 和 SQL server 數(shù)據(jù)庫2013-08-08Oracle to_char 日期轉(zhuǎn)換字符串語句分享
這篇文章主要介紹了Oracle to_char 日期轉(zhuǎn)換字符串語句,別處挖過來的,真是太長了,學(xué)習(xí)oracle的朋友可以收藏下2014-08-08