国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

DBA工作備忘錄-陣列損壞解決方法

2024-07-21 02:06:52
字體:
供稿:網(wǎng)友

問題描述:
下午現(xiàn)場人員說產(chǎn)品庫意外中止,緊接著說可能是陣列損壞,因為燈都不亮了。
于是緊急撥號到遠(yuǎn)程,檢查數(shù)據(jù)庫,5分鐘以后,數(shù)據(jù)庫重新啟動成功。
問題其實非常簡單,但是后來看alertlog,發(fā)現(xiàn)從陣列失效一直到給我打電話,中間有將近1個小時的時間,這段時間里面,因為現(xiàn)場人員不知道問題所在,所以反復(fù)切換cluster,試圖讓數(shù)據(jù)庫能夠啟動成功,汗!

問題解釋:
產(chǎn)品庫中控制文件總共三份,分別保存在/global/oracle, /global/backup1, /global/backup2
下。重作日志和歸檔日志各兩份,分別保存在/global/backup1, /global/backup2
下。
/global/oracle, /global/backup1, /global/backup2是三個獨立的陣列。
由于控制文件對于oracle必須保持一致,所以三份控制文件中的任何一份無法讀取
,數(shù)據(jù)庫都會關(guān)閉。而重作日志和歸檔日志,只要有一份可以正常讀寫,那么數(shù)據(jù)
庫還可以繼續(xù)正常運行。
所以,如果任何一個陣列失效,那么由于控制文件的問題,數(shù)據(jù)庫都會意外中止。

解決流程:
1。數(shù)據(jù)庫意外中止

2。檢查$oracle_home/admin/dpshdb/bdump/alert_dpshdb.log文件,確認(rèn)意外中
止的原因,比如今天的內(nèi)容是:
tue oct 26 16:36:40 2004
errors in file /export/oracle/product/817/admin/dpshdb/bdump/dpshdb_ckpt_16541.trc:
ora-00206: error in writing (block 3, # blocks 1) of controlfile
ora-00202: controlfile: '/global/backup1/oradata/dpshdb/control02.ctl'
ora-27063: skgfospo: number of bytes read/written is incorrect
svr4 error: 6: no such device or address
additional information: -1
additional information: 8192
tue oct 26 16:36:40 2004
errors in file /export/oracle/product/817/admin/dpshdb/bdump/dpshdb_lgwr_16539.trc:
ora-00345: redo log write error block 38713 count 2
ora-00312: online log 1 thread 1: '/global/backup1/oradata/dpshdb/redo1b.log'
ora-27063: skgfospo: number of bytes read/written is incorrect
svr4 error: 5: i/o error
additional information: -1
additional information: 1024
第一部分是指出control02.ctl控制文件無法讀取,第二部分是指出redo1b.log重
作日志無法讀取。
然后數(shù)據(jù)庫自動關(guān)閉,如下顯示,是16:36:43發(fā)生的,也就是在16:36:40首次發(fā)現(xiàn)
陣列失效的3秒以后(我們知道ckpt的timeout值是3秒):
tue oct 26 16:36:43 2004
errors in file /export/oracle/product/817/admin/dpshdb/udump/dpshdb_ora_10206.trc:
ora-00221: 寫入控制文件出錯
instance terminated by ckpt, pid = 16541
從這些log中我們可以知道/global/backup1陣列失效了。

3。修改初始化參數(shù)文件$oracle_home/dbs/initdpshdb.ora,忽略失效的控制文件
和失效的歸檔路徑
原內(nèi)容:
control_files = ("/global/oracle/oradata/dpshdb/control01.ctl",
"/global/backup1/oradata/dpshdb/control02.ctl",
"/global/backup2/oradata/dpshdb/control03.ctl")
log_archive_dest_1 = "location=/global/backup1/oradata/dpshdb/arch"
修改后的內(nèi)容:
control_files = ("/global/oracle/oradata/dpshdb/control01.ctl",
"/global/backup2/oradata/dpshdb/control03.ctl")
#log_archive_dest_1 = "location=/global/backup1/oradata/dpshdb/arch"

4。啟動數(shù)據(jù)庫,此時數(shù)據(jù)庫已經(jīng)可以正常使用了。

5。為了保證重作日志文件始終保持2份,所以在數(shù)據(jù)庫啟動以后,我們需要刪除掉
原來失效的文件,添加新的重作日志文件。這部分操作可以在數(shù)據(jù)庫啟動以后再作
,但是最好不要有大量的更新操作,是為了防止重作日志切換過快,導(dǎo)致刪除重作
日志的操作失敗。
alter database drop logfile member
'/global/backup1/oradata/dpshdb/redo1b.log';
alter database add logfile member
'/global/oracle/oradata/dpshdb/redo1c.log' to group 1;
alter database drop logfile member
'/global/backup1/oradata/dpshdb/redo2b.log';
alter database add logfile member
'/global/oracle/oradata/dpshdb/redo2c.log' to group 2;
alter database drop logfile member
'/global/backup1/oradata/dpshdb/redo3b.log';
alter database add logfile member
'/global/oracle/oradata/dpshdb/redo3c.log' to group 3;
alter database drop logfile member
'/global/backup1/oradata/dpshdb/redo4b.log';
alter database add logfile member
'/global/oracle/oradata/dpshdb/redo4c.log' to group 4;
在執(zhí)行alter database drop logfile member之前要檢查v$log視圖,確認(rèn)該文件
所屬的重作日志組的status字段不是current,不是active,而是inactive。否則
刪除會報錯,如果刪除報錯,那么運行兩次如下語句:
alter system swtich logfile;
然后再重新執(zhí)行刪除舊日志和添加新日志的操作。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 舒城县| 宽城| 大余县| 盐城市| 新河县| 东兰县| 镇赉县| 平舆县| 连平县| 施甸县| 内江市| 高密市| 六安市| 蒙城县| 曲周县| 邹城市| 庄河市| 江城| 定结县| 卫辉市| 正宁县| 余姚市| 衡山县| 双柏县| 微博| 黑龙江省| 淄博市| 通许县| 兖州市| 武冈市| 永康市| 衡东县| 静乐县| 青龙| 高唐县| 榆社县| 宿松县| 滨州市| 宝丰县| 松溪县| 夏邑县|