1. 程式人生 > >Oracle叢集斷電恢復

Oracle叢集斷電恢復

這是前段時間遇到的,今天有時間把它記錄下來。

情況是這樣的,使用者的OracleRAC叢集機房沒有安裝UPS,而且供電不穩定,因此總是突然斷電,前面幾次還可以,供電後集群就自動恢復了,但到最後還是出問題了,現象就是例項啟動不了。

經過幾次恢復,發現大概可以分為以下幾種情況,現分別描述如下。

情況一:可直接從redo日誌中恢復

[[email protected] ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Mon Jul 11 10:29:04 2016

Copyright (c) 1982, 2013
, Oracle. All rights reserved. Connected to an idle instance. SQL> startup mount ORACLE instance started. Total System Global Area 1.0796E+11 bytes Fixed Size 2266024 bytes Variable Size 5.9861E+10 bytes Database Buffers 4.8050E+10 bytes Redo Buffers 50450432
bytes Database mounted. SQL> alter database open; alter database open * ERROR at line 1: ORA-00600: internal error code, arguments: [kcrfr_read_5], [63], [674817], [], [], [], [], [], [], [], [], []

此時的情況是例項無法開啟,報600錯誤,其實就是有操作日誌沒有commit成功,查詢一下當前的日誌情況

SQL> select group#,sequence#,status,first_time,next_change# from v$log;

    GROUP
# SEQUENCE# STATUS FIRST_TIME NEXT_CHANGE# ---------- ---------- -------------------------------- ------------ ------------ 5 63 CURRENT 28-MAY-16 2.8147E+14 2 62 INACTIVE 25-MAY-16 22437896 1 61 INACTIVE 22-MAY-16 21890487 4 68 INACTIVE 24-MAY-16 22317178 6 69 CURRENT 27-MAY-16 2.8147E+14 3 67 INACTIVE 21-MAY-16 21837803 6 rows selected.

OK,是Group5的時間最新,然後到ASM中去查一下group5日誌檔案的具體路徑,在恢復的時候需要手工輸入。

[grid@db01 ~]$ asmcmd
ASMCMD> ls DATA/例項名/ONLINELOG/
group_1.261.898205699
group_2.262.898205705
group_3.267.898205911
group_4.268.898205917
group_5.263.898205713
group_6.269.898205925

好,用查到的日誌來恢復資料吧!

SQL> recover database until cancel using backup controlfile;
ORA-00279: change 22771825 generated at 05/30/2016 11:21:44 needed for thread 2
ORA-00289: suggestion : /work/11.2.0.4/oracle/db/dbs/arch2_69_898205698.dbf
ORA-00280: change 22771825 for thread 2 is in sequence #69

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
+DATA/例項名/ONLINELOG/group_5.263.898205713
Log applied.
Media recovery complete.

運氣不錯,日誌只是沒有commit,而不是損壞丟失,然後就可以open例項了,記得帶上resetlogs引數。

SQL> alter database open resetlogs;

Database altered.

SQL> quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, Oracle Label Security,
OLAP, Data Mining, Oracle Database Vault and Real Application Testing options

例項能夠啟動後,還需要使用叢集命令來檢查一下狀態,不行的話,還可以重新用叢集命令啟動一下

crs_stat –t
srvctl start database -d 例項名

今天先到這裡,下次繼續講如果日誌損壞丟失情況下如何恢復。

相關推薦

Oracle叢集斷電恢復

這是前段時間遇到的,今天有時間把它記錄下來。 情況是這樣的,使用者的OracleRAC叢集機房沒有安裝UPS,而且供電不穩定,因此總是突然斷電,前面幾次還可以,供電後集群就自動恢復了,但到最後還是出問題了,現象就是例項啟動不了。 經過幾次恢復,發現大概可以分

叢集斷電恢復

需要刪除每個節點的pid檔案,node.conf,rdb和dump檔案,再挨個啟動每個節點,重新建立叢集。 將所有節點的aof拿出來,用命令 redis-cli --pipe < appendonly.aof 載入到一個單臺的,用 save 命令寫到aof和du

異常斷電mysql叢集資料庫恢復

說明:專案相關,有些命令不一定適用於其他場景,僅供參考20180121日,xxxx專案,超融合異常掉電,導致資料庫啟動不了。 首先要備份/var/lib/mysql資料夾!!!!恢復:1)不強制恢復180121 20:00:37 mysqld_safe WSREP: Runn

Oracle備份與恢復

ron 還原 類型 修改 文件拷貝 per esp 主機數 segment 步驟:(面試) 1,在新主機DBCA建庫,實例名和原主機數據庫名一致2,在新主機創建用戶3,dbms_metadata.get_ddl導出表空間生成語句4,在新主機創建表空間5,exp導出原庫全部數

關於oracle實例恢復的前滾和回滾的理解

關於oracle實例恢復的前滾和回滾的理解關於oracle實例恢復的一些理解,一直都有誤區,今天通過查看相關資料和與同學探討,發覺了自己的錯誤,探討結果如下:實例恢復:當數據庫非正常關閉的時候(斷電或者shu abort等等非一致性關閉),當你從新啟動數據庫的時候,數據庫相關進程自動進行實例恢復,無須人工幹

Oracle RMAN 自動恢復

oracle rman recover 歸檔日誌 自動在日常工作中,有時會需要進行Oracle數據庫恢復,比如搭建測試環境、查找歷史數據、恢復測試等.可以通過計劃任務或nohup等方式來執行恢復腳本從而提高整個操作的效率,特此記錄.這裏使用的測試環境如下:OS PlatformRed Hat Enterpri

Oracle備份與恢復(五)

備份 oracle 恢復 備份: 定義: 把數據庫復制到轉儲設備的過程。 轉儲設備: 放置數據庫副本的磁帶或磁盤。 原數據庫的備份: 存放於轉儲設備中的數據庫的副本。 分類: 物理與邏輯角度: 物理備份:

Oracle備份和恢復(RMAN篇)

RMAN ORACLE 張晨 前言:歡迎加QQ交流1445696451微博地址http://blog.51cto.com/13434336~~~~~~~分割~~~~~~數據庫備份與恢復是數據庫管理員必須掌握的。沒有任何系統能免遭硬盤物理損壞、粗心用戶的錯誤操作、或一些可能會威脅到存儲數據的潛在災難

在異機實現 Oracle 不完全恢復

otg art set med resetlogs 和數 to_date 數據庫 over 1、將數據庫完全備份集和歸檔日誌備份集傳到執行恢復的 Oracle 服務器# 傳到中轉服務器 scp -P 2222 database.20181030.5* 218.17.56.5

Oracle 備份與恢復基礎

  Oracle 備份與恢復基礎 :三思筆記  備份與恢復 A whole database backup is either a consistent backup or an inconsistent backup. Whether a backup is consiste

oracle備份與恢復--rman

(一)、建立恢復目錄1、建立恢復目錄資料庫#mkdir -p /u01/app/oracle/oradata/rmandb#chown -R oracle /u01/app/oracle/oradata/rmandb[[email protected] ~]#su - oracle[[email&#

oracle備份與恢復--閃回技術

一•啟用閃回資料庫1.啟用歸檔模式sql>shutdown immediate;sql>startup mount;sql>alter database archivelog;2.建立閃回區sql>alter system set db_recovey_file_dest='/opt/

ORACLE叢集配置(注:根據網上資料自行搭建成功步奏總結)

一、   安裝前準備 1.     2臺或多臺linux伺服器 2.     每臺伺服器一個公用ip一個私有ip 3.     公

oracle 11G dataguard 恢復

檢查主備機的sys 密碼是否一致,忘記密碼可以修改,同步 。alter user sys identified by xxx; orapwd file=oraxxx.ora password=admin entries=40 force=y;  檢查靜態tnsnames.ora 和

ORACLE用RMAN恢復可能用到的命令

SQL>startup force 強制重啟 SQL>select checkpoint_change# from vKaTeX parse error: Expected 'EOF', got '#' at position 53: …ec

Oracle 11gR2 RAC恢復OCR和VOTE DISK

Oracle 11gR2 RAC恢復OCR和VOTE DISK 原文連結: http://www.askmaclean.com/archives/11-2-lost-ocr-votedisk-group-recovery.html        

oracle path路徑恢復及開啟

之前搞eclipse時不小心把path刪除了,真是作死,導致oracle無法用cmd登入了,今天終於找了oracle的bin目錄:D:\app\orcl\product\12.1.0\dbhome_1\BIN 當然每個人裝的盤不一樣,會有一些改變,不過後面的路徑應該都差不多吧,刪除的可憐蟲們

通過Oracle的回收站恢復被刪除的表淺談

在實際的工作中我們可能會因為一些誤操作刪除一些表。這個時候可以通過Oracle的回收站來恢復被刪除的表、 一、建立測試表A: create table A ( id VARCHAR2(20), name VARCHAR2(20), addres

RabbitMQ叢集故障恢復

原文 http://www.cnblogs.com/zhjh256/p/6475898.html RabbitMQ的mirror queue(映象佇列)機制是最簡單的佇列HA方案,它通過在cluste

RabbitMQ叢集故障恢復詳解

RabbitMQ的mirror queue(映象佇列)機制是最簡單的佇列HA方案,它通過在cluster的基礎上增加ha-mode、ha-param等policy選項,可以根據 需求將cluster中的佇列映象到多個節點上,從而實現高可用,消除cluster模式中佇列內容單點