oracle00333,Oracle數據庫REDO損壞ora-00333修復手札

1.事情起因

接到電話,周日意外斷電,數據庫起不了,報REDO CRASH,ora-00333錯誤。

相關環境如下:RAC oracle_11.2.0.3,無備份,開歸檔。

2 處理

一到現場,既然對方沒有備份,那就做一個冷備份咯;oracle 11g嘛,把asm里datafile,logfile,controlfile(如果有必要spfile.ora)copy出來就可以了。拼的sql 如下:

select 'cp '||name ||' /databak/datafile/' fromv$datafile unionselect?'cp?'||member||'?/databak/logfile/'?from?v$logfile?union

select?'cp?'||name?||'?/databak/controlfile/'?fromv$controlfile;

轉到grid用戶下,asmcmd,執行就可以了。時間嘛,那就得看你的數據文件大小和存儲的IO速度了。

2.1修改隱含參數

由于有了冷備,可以參數(如果沒冷備,改這個參數,那再后面就沒那個磚家來陪你玩了)SQL>create?pfile=’/databak/pfile.ora’?from?spfile;

修改pfile.ora,增加如下部分

_allow_resetlogs_corruption=TRUE

*.undo_management='MANUAL'

*.rollback_segments='SYSTEM'

可能有人要問,你resetlogs,關undo啥事,但通常事情是這樣,redo出問題了,那就意味著有事務沒提交完,那undo必然不一致,所以干脆把undo也改了吧。

2.2 啟庫

改完了,重啟咯

SQL>shutdown immediate;

SQL>startup mount pfile=’/databak/pfile.ora’

SQL>RECOVERDATABASE until cancel;

這時數據庫會提示你輸入下一個logseq,這里沒有,直接輸cancel;這里你會很高興的看到那個壞的redo被清掉了,可以歡呼了,起來了,但是世界是非富多彩地,馬上就把你的高興打破:ORA-01555caused?by?SQL?statement?below?(SQL?ID:?4krwuz0ctqxdt,?SCN:?0x0db2.73a0c8cd):

select?ctime,mtime,?stime?from?obj$?where?obj#?=?:1

Errors?in?file/oracle/app/oracle/diag/rdbms/oradb/oradb1/trace/jmrk1_ora_4608.trc:

Errors?in?file/oracle/app/oracle/diag/rdbms/oradb/oradb1/trace/jmrk1_ora_4364.trc:

ORA-00704:bootstrap?process?failure

ORA-00704:bootstrap?process?failure

ORA-00604:error?occurred?at?recursive?SQL?level?1

ORA-01555:snapshot?too?old:?rollback?segment?number?20?with?name"_SYSSMU20_3214617278$"?too?small

這里一看,似乎和undo有關系,但看官莫急,仔細看一下

select ctime,mtime, stime from obj$ where obj# = :1這個語句好眼熟,不是初始化最早的語句么,那估計SCN有問題了。SQL>Selectcurrent_scn?from?v$database;

-------------------------------------------------------------------

0

為0.HOHO.

這里用兩種方法來解決啰:

1設置10046traceSQL>?oradebug?setmypidStatement?processed.SQL>?oradebug?EVENT?10046?TRACE?NAME?CONTEXT?FOREVER,?LEVEL?12Statement?processed.SQL>?oradebug?TRACEFILE_NAME

2 oradebugpoke推進scn

3設置隱含參數_minimum_giga_scn

我這里采用第三種:selectksppinm,ksppdesc?from?x$ksppi???whereksppinm?like?'%giga%'

KSPPINM????????????????????????KSPPDESC

---------------------------------------------------------------------------

_minimum_giga_scn??????????????Minimum?SCN?to?start?with?in?2^30units

selectto_char(checkpoint_change#,'99999999999999')?from?v$database;

TO_CHAR(CHECKPO---------------

15060095276784

selectdistinct(to_char(checkpoint_change#,'99999999999999'))??from?v$datafile_header;

(TO_CHAR(CHECKP

---------------

15060095276784

SQL>?select15060095276784/1024/1024/1024?from?dual;

15060095276784/1024/1024/1024

-----------------------------

14025.8067

修改pfile改修改:

_minimum_giga_scn=14026

現次啟動數據庫,順利open,但有一堆JOB報錯,估計掉電時正在跑JOB.也就解釋了為啥周日掉電也會把數據庫redo 搞垮。

SQL> alter system setjob_queue_processes=0;

導出全部做一個邏輯導出咯。expdp?system/systemdirectory=full?dumpfile=dump_%u.dmp?logfile=export.log?full=y?parallel=4

導出時也報了一個錯,說回滾段不可用,忘了把undo改成真正的undo了,SQL>?create?undotablespace??undotbs3?datafile'+ordata(datafile)'?size?8G;

修改pfile,改成成undotbs3;再次重啟,OK。

2.3 MOS _ALLOW_RESETLOGS_CORRUPTION說明

DB_Parameter _ALLOW_RESETLOGS_CORRUPTION

========================================

This documentation has been preparedavoiding the mention of the complex

structures from the code and to simply givean insight to the 'damage it could

cause'.?The usage of this parameter leads to an in-consistent Database with no

other alternative but to rebuild thecomplete Database.? This parameter could

be used when we realize that there are nostardard options available and are

convinced that the customer understands theimplications of using the Oracle's

secret parameter.? The factors to be considered are ;--

1. Customer does not have a good backup.

2. A lot of time and money has beeninvested after the last good backup and

there is no possibility for reproduction of the lost data.

3. The customer has to be ready to exportthe full database and import it

back after creating a new one.

4. There is no 100% guarantee that by usingthis parameter the database would

come up.

5. Oracle does not support the databaseafter using this parameter for

recovery.

6. ALL OPTIONS including the ones mentionedin the action part of the error

message have been tried.

簡單點來說,就是_ALLOW_RESETLOGS_CORRUPTION這個參數沒有100%保證,你redo壞了能用他來OPEN庫的,并且了用了這個后不支持恢復了(rman),僅僅支持export.

3總結:

沒啥好說的,有運氣成份在里面,如果datafile block有環塊那就更麻煩了,如果壞了一片也就沒得完了,沒事還是不要玩掉電吧,把UPS電池時間弄長一點,加個停電報警,省了一片心,再就是有空建個dataguard吧。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/528886.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/528886.shtml
英文地址,請注明出處:http://en.pswp.cn/news/528886.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle cannot allocate new log,Thread 1 cannot allocate new log

今天發現alter.log有以下信息:Thread 1 cannot allocate new log, sequence 6166Private strand flush not complete對于這個錯誤信息得解釋如下:當系統要重新利用某個日志文件的時候,系統需要將該日志文件所包括的buffer cache 中的dirty bl…

arduino tft 方向_ESP32在Arduino環境下玩轉 LVGL,ESP32移植LVGL詳細教程

微信關注 “DLGG創客DIY”設為“星標”,重磅干貨,第一時間送達。?轉載自慕容流年 https://me.csdn.net/qq_41868901?1. LVGL簡介LittlevGL是一個免費的開源圖形庫,提供了創建嵌入式GUI所需的一切,具有易于使用的圖形元素、漂亮的…

linux內核開文件系統,內核必須懂(二): Linux文件系統初探

目錄前言文件系統結構新建文件和inode文件創建過程inode解析打開文件參考最后前言這次來說文件系統. 文件系統是非常重要的, 提高磁盤使用率, 減小磁盤磨損等等都是文件系統要解決的問題. 市面上的文件系統也是數不勝數, 比較常用的像ext4, xfs以及ntfs等等, 國內的像鵝廠的tfs…

gps衛星位置計算程序matlab_科研項目 | BD/ GPS衛星導航仿真測試系統研究

一、項目背景在移動互聯和互聯網的時代,衛星導航定位已經成為生活中不可或缺的部分。目前,我國的交通、銀行、電力、采礦、測繪等部門以及大眾化市場都需要大量的定位、授時服務。許多企業也形成了覆蓋衛星導航相關材料及元器件、衛星導航芯片、衛星導航…

linux docker權限,linux - 如何解決ubuntu中的docker權限問題? - Ubuntu問答

問題描述我已經按照here的說明安裝了docker。我使用Ubuntu Trusty 14.04 (LTS) (64-bit)。安裝過程中的一切都很好。另外,命令$ sudo docker run -i -t ubuntu /bin/bash可以很好地完成(在打開的控制臺中鍵入”exit”之后。但是當我嘗試執行其他操作時,我…

python虛擬人臉生成_GitHub - 597111463/seeprettyface-generator-yellow: 這是一個用StyleGAN訓練出的黃種人人臉生成器...

黃種人人臉生成器注明:之前做的一些有意思的人臉生成器,現在全部開源分享出來。它的主要作用是可生成制作各類型的人臉素材,供我們任意使用且無須擔心人臉版權的問題。在定制人臉上,開源的全系列生成器包括:黃種人臉生…

Linux輸入密碼接口,Linux下搭建接口自動化測試平臺

前言我們今天來學習一下在Linux下如何搭建基于HttpRunner開發的接口自動化測試平臺吧!需要在Linux上提前準備的環境(下面是本人搭建時的環境):1,Python 3.6.8 (可參考隨筆:Linux學習6-安裝Python3.6)2,MySQL 5.7(可參考…

python構建字典實現英文大寫字母與ascii編碼的轉換_Python:將復雜的字符串字典從Unicode轉換為ASCII...

作為從JSON API調用解析的多級字典,我有很多輸入.字符串都是unicode,這意味著有很多ustuff like this.我正在使用jq來處理結果,需要將這些結果轉換為ASCII.我知道我可以編寫一個函數來像這樣轉換它:def convert(input):if isinstance(input, dict):ret {}for stuff in input:r…

linux下查看windows文件夾大小,如何從Windows命令行檢查文件夾的大小?

我意識到這個問題要求使用進行文件大小分析CMD line。但是,如果您愿意使用它,PowerQuery (Excel add-in, versions 2010)則可以創建一些非常引人注目的文件大小分析。下面的腳本可以粘貼到空白查詢中;您唯一需要做的就是添加一個名為“ param…

python多進程傳遞參數_急急急, Python 多進程,如何傳遞 epoll?

102019-06-16 15:39:41 08:00NoAnyLove 好的好的,我查了下,說 IPC 或向 worker 參數傳遞的東西必須要能 pickle,不然就報錯,那就是 select.epoll 是不支持的。error:TypeError: cant pickle select.epoll objects。代碼…

linux查看一小時之內的日志,linux – 在[timespan]內(例如最后一小時)查找日志文件中的條目...

我的服務器CPU使用率不高,我可以看到Apache正在使用太多的內存。我有一種感覺,我正在用一個IP進行DOS.-也許你可以幫我找到他?我已經使用以下行找到10個最“活躍”的IP:cat access.log | awk {print $1} |sort |uniq -c |sort -n …

圖像語義分割_圖像語義分割(9)-DeepLabV3: 再次思考用于圖像語義分割的空洞卷積...

論文地址 :Rethinking Atrous Convolution for Semantic Image Segmentation論文代碼:Github鏈接1. 摘要文章主要的工作:使用空洞卷積來調整濾波器的感受野并控制特征圖分辨率使用不同空洞率的空洞卷積的串聯或者并行操作來分割不同尺度的目標…

linux系統列表,Linux常用系統調用列表-20210415054405.docx-原創力文檔

LinuxLinux常用系統調用列表作者:雷震 2002年3月本文列出了大部分常見的Linux系統調用,并附有簡要中文說明。以下是Linux系統調用的一個列表,包含了大部分常用系統調用和由系統調用派 生出的的函數。按照慣例,這個列表以man pages…

sql replace 雙引號變單引號_sql-匯總、排序以及分析思路

一、匯總函數注:匯總函數,如果輸入是列名,計算會把null 排除在外,count(*)對所有的行進行計數二、如何用sql解決業務問題注1:空值(null)的排序,排序是最小的,例如select * from tea order by tea_name注2&a…

linux subversion 根目錄檢出,經驗總結:詳解Linux下Subversion的安裝配置記錄 下

上節介紹額Linux下Subversion的安裝問題,本節介紹Linux下Subversion配置問題,你可以和Windows下Subversion的安裝配置做一個對比,你就會發現在這兩種操作系統中Subversion的不同運行機制。第二章配置本系統采用為每個項目單獨建一版本庫的策略…

python用戶名密碼登錄退出_用戶登錄登出

一、功能需求分析1.登錄功能分析1.1登錄流程1.2功能(一個請求為一個功能)~登錄頁面~登錄功能~登出功能二、登錄頁面1.接口設計1.1.接口說明類目                  說明請求方式                GETurl定義…

openwrt是嵌入式linux,非常方便的OpenWrt的嵌入式Linux開發環境

今天聽中央經濟廣播電臺說,今年有559萬大學畢業生,大學生的就業形式嚴峻.我想那些精通Linux開發的畢業大學生們,估計一點也不用擔心,因為他們已經不再是一顆大白菜了.最近在幫一個朋友把OpenWrt移植到一塊單板上,有一些心得,分享給大家.OpenWrt是一個很好的學習Linux的平臺,而且…

linux添加有效群組,Linux中的有效群組和初始群組

在Linux中,每個賬號都可以加入多個群組,那用戶登錄后默認的用的是哪個群組呢?關于這個問題就要說說有效群組和初始群組了。在用戶賬號信息文件/etc/passwd中,那個由冒號分割的7個欄目中,第四個欄目是群組ID(GID)&#…

php多個表中查找數據_HeidiSQL 免費的可視化數據庫管理工具

HeidiSQL是一款免費的軟件,并且易于學習和使用。HeidiSQL讓你從數據庫內可視化的讀寫數據、結構體。它支持MariaDB、MySQL、Microsoft SQL、PostgreSQL等數據庫。功能免費且開源內置中文在同個窗口連接多個服務支持以命令行形式連接服務連接支持SSH、SSL創建修改表、…

嵌入式linux啟動根文件系統,嵌入式Linux根文件系統制作和掛載

嵌入式Linux系統由三部分組成: uboot、kernel、根文件系統, 還是這張老圖這里的根文件系統可以說是包含兩個部分: 一個是根,一個是文件系統那么什么是根呢?哈哈 其實根表示的就是第一個的意思下面貼張圖看看整個根文件…