主頁(yè) > 知識(shí)庫(kù) > DBF 文件恢復(fù) ORACLE 數(shù)據(jù)庫(kù)的方法

DBF 文件恢復(fù) ORACLE 數(shù)據(jù)庫(kù)的方法

熱門標(biāo)簽:百度競(jìng)價(jià)排名 網(wǎng)站排名優(yōu)化 Linux服務(wù)器 鐵路電話系統(tǒng) 服務(wù)外包 AI電銷 地方門戶網(wǎng)站 呼叫中心市場(chǎng)需求

清·魏源《庸易通義》:“至道問學(xué)之有知無(wú)行,分溫故為存心,知新為致知,而敦厚為存心,崇禮為致知,此皆百密一疏?!?/p>

起因

在我們的生產(chǎn)活動(dòng)中,意外總是在不經(jīng)意間發(fā)生。那天一個(gè)安裝有 oracle 數(shù)據(jù)庫(kù)的盤符不小心被格式化了,好幾個(gè)項(xiàng)目都炸了。不過還好有備份,不過只有 .DBF 文件和幾個(gè)日志文件:

//數(shù)據(jù)庫(kù)系統(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ù)庫(kù)版本、實(shí)例名都和之前的一致;編寫創(chuàng)建控制文件 CONTROLFILE 的命令。

控制文件(Control File)是Oracle的物理文件之一,它記錄了數(shù)據(jù)庫(kù)的名字、數(shù)據(jù)文件的位置等信息??刂莆募闹匾栽谟?,一旦控制文件損壞,數(shù)據(jù)庫(kù)將會(huì)宕機(jī)。如果沒有數(shù)據(jù)庫(kù)的備份和歸檔日志文件,數(shù)據(jù)庫(kù)將無(wú)法恢復(fù)。因此,我們應(yīng)該多路鏡像控制文件(Multiplex Control Files),并把每個(gè)鏡像的控制文件分布在不同的物理磁盤。根據(jù)經(jīng)驗(yàn),控制文件多路鏡像以后,幾個(gè)控制文件同時(shí)壞掉的可能性幾乎為零??刂莆募芾淼闹匦氖侵卦陬A(yù)防,而不是亡羊補(bǔ)牢!

控制文件實(shí)例:

CREATE CONTROLFILE REUSE DATABASE "數(shù)據(jù)庫(kù)名(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ù)庫(kù)管理員身份登錄系統(tǒng),輸入:

sys / as sysdba

輸入命令回車,下一步輸入密碼即可進(jìn)入到數(shù)據(jù)庫(kù)命令行模式。
2.備份控制文件到 trace 文件,輸入命令:

alter database backup controlfile to trace;

3.停止數(shù)據(jù)庫(kù),輸入命令:

shutdown immediate;

4.以 nomount 狀態(tài)啟動(dòng)數(shù)據(jù)庫(kù),輸入命令:

startup nomount;

5.執(zhí)行創(chuàng)建控制文件的命令,輸入前期準(zhǔn)備好的創(chuàng)建控制文件的命令:
6.恢復(fù)數(shù)據(jù)庫(kù),輸入命令:

recover database;

7.將數(shù)據(jù)庫(kù)從 mount 狀態(tài)切換到 open 狀態(tài),這時(shí)就是使用數(shù)據(jù)庫(kù)了,輸入命令:

alter database open;

oracle數(shù)據(jù)庫(kù)啟動(dòng)分三個(gè)步驟 nomount mount open startup是數(shù)據(jù)庫(kù)從開始階段的啟動(dòng)du,需要經(jīng)過上述zhi三個(gè)步dao驟 alter database open是數(shù)據(jù)庫(kù)處于mount狀態(tài),從mount狀態(tài)打開數(shù)據(jù)庫(kù)的命令

至此,dbf 文件恢復(fù) oracle 數(shù)據(jù)庫(kù)就完成了。祝君好運(yùn)!

期間遇到的問題

有問題不要害怕,一個(gè)一個(gè)去解決它,從中汲取養(yǎng)料,相信自己。

問題一

數(shù)據(jù)庫(kù)恢復(fù)成功后,連接數(shù)據(jù)庫(kù)遇到

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(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 中無(wú)法提供 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ù)庫(kù)現(xiàn)有的進(jìn)程(process)數(shù)是否已經(jīng)達(dá)到參數(shù) processes 的大小;當(dāng)前會(huì)話數(shù)量(session)是否達(dá)到參數(shù) sessions 的大小。

//獲取當(dāng)前數(shù)據(jù)庫(kù)所有的進(jìn)程數(shù)量
select count(*) from v$process;
//獲取當(dāng)前數(shù)據(jù)庫(kù)所有會(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ù)庫(kù)生效

shutdown immediate; or shutdown
startup

到此這篇關(guān)于DBF 文件 ORACLE 數(shù)據(jù)庫(kù)恢復(fù)的文章就介紹到這了,更多相關(guān)DBF 文件 ORACLE 數(shù)據(jù)庫(kù)恢復(fù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Oracle dbf文件移動(dòng)的方法
  • Oracle誤刪除表數(shù)據(jù)后的數(shù)據(jù)恢復(fù)詳解
  • 最簡(jiǎn)單的Oracle數(shù)據(jù)恢復(fù) select as of使用方法
  • oracle如何恢復(fù)被覆蓋的存儲(chǔ)過程
  • oracle冷備份恢復(fù)和oracle異機(jī)恢復(fù)使用方法
  • rman恢復(fù)方案和oracle異機(jī)恢復(fù)

標(biāo)簽:湘潭 衡水 黃山 湖南 蘭州 崇左 銅川 仙桃

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《DBF 文件恢復(fù) ORACLE 數(shù)據(jù)庫(kù)的方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266