中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ORACLE 11G DB RAC ORA-00257archiver error解決辦法

發布時間:2020-07-30 17:49:01 來源:網絡 閱讀:8953 作者:翹楚秦歌 欄目:數據庫

ORA-00257archiver error解決辦法

1.之前有處理單機過oracle 11.2.0.4歸檔日志磁盤空間不足的問題 ,但是沒有處理過ORACLE RAC的歸檔日志磁盤空間不足的問題 

所以沒有預想到會是出現asm磁盤空間不足的議題


Oracle數據庫是目前業界最常用的大型數據庫系統,我在單機ORACLE的實際項目中有遇到出現ORA-00257錯誤(空間不足錯誤),

通過查找資料,發現絕大部分說這是由于歸檔日志太多,占用了全部的硬盤剩余空間導致的,可通過簡單刪除日志或加大存儲空間就能夠解決。但是我在Oracle11g RAC上兩個RAC節點發現,它們的存儲空間都還有很大,卻也報這個錯誤,經過大半天的折騰,發現原來是Oracle11g RAC中的ASM磁盤空間不足導致的。


操作系統CentOS 6.5 x86-64Linux

數據庫Oracle 11.2.0.4.0


2.問題現象

數據庫系統已經運行了一年多,在5月8號開發同事用應用賬號連接數據庫后,發現無法連接登入,并且出現ORA-00257:archive error.connect internal only,until freed 錯誤。

提示歸檔錯誤,通過查找ORACLE錯誤代碼,解釋為硬盤空間不足,需要刪除歸檔日志增加空間,但是服務器兩個節點可用空間都還有1.4T,目前只用了10GB左右,這是為什么呢?

且在5月8號用rman形式刪除清理系統100天以前的歸檔日志以后好了,沒想到第二天5月9號又出現了。沒有理由啊,一天的歸檔日志大過一百天的歸檔日志,所以我就質疑數據庫報錯的準確性,認為這只是表面的歸檔日志空間已滿,實質性的問題卻還不知道。


3.診斷過程: 

因為數據庫不是我架設的,對oracle也不太熟,所以不知道歸檔日志放置的路徑,通過語句查找也得到的是個+ARC/back/archivelog/**之類的,但是我就是想破腦袋,用find的方式也找不到具體存放路徑。


a.查看數據庫REDOLOG情況

[root@~]$ sqlplus / as sysdba

SQL> connect / as sysdba

SQL> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE#FIRST_TIME


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


1 1 101 52428800 1 NO CURRENT 3621973 9-5月 -17


2 1 99 52428800 1 NO INACTIVE 3600145 9-5月 -17


3 1 100 52428800 1 NO INACTIVE 3611932 9-5月 -17


發現ARC狀態為NO,表示系統沒法自動做歸檔。



b.查看Oracle數據庫后臺歸檔服務進程 

[oracle@~ ]ps -ef | grep oracle

發現grid       3081      1  0 10:14 ?        00:00:00 oracle+ASM1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

一個節點如上述服務正常,但另外一個節點卻LOCAL=NO的類似情況,反正服務不正常


c.查看FLASH_RECOVERY_AREA空間中各部分使用情況


SQL> select * from v$recovery_file_dest;


NAME

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

SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES

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

+BACKUP

 1.2885E+11  484442112       0       5

##注:空間大把的有

 

SQL> select * from v$flash_recovery_area_usage;


FILE_TYPE     PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE

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

NUMBER_OF_FILES

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

CONTROL FILE    .04 0 1


REDO LOG    .33 0 4


ARCHIVED LOG      0 0 0



FILE_TYPE     PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE

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

NUMBER_OF_FILES

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

BACKUP PIECE      0 0 0


IMAGE COPY      0 0 0


FLASHBACK LOG      0 0 0



FILE_TYPE     PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE

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

NUMBER_OF_FILES

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

FOREIGN ARCHIVED LOG      0 0 0

7 rows selected.

發現ARCHIVELOG、BACKUPPIRCR都不大,就是0,沒什么占用率,這樣FLASH_RECOVERY_AREA空間的空間還大把的有。


因為之前報錯時,不知道如何處理問題,就像直接shutdown immediate一個節點看看,沒想到半天沒任何反應,就直接使用shutdown abort強行關閉,該節點出現下列節點掛載實例報問題

d.故障節點掛載實例報錯:

SQL> startup  

ORACLE instance started.  

  

Total System Global Area  413372416 bytes  

Fixed Size                  2253784 bytes  

Variable Size             327158824 bytes  

Database Buffers           79691776 bytes  

Redo Buffers                4268032 bytes  

Database mounted.  

ORA-03113: end-of-file on communication channel  

Process ID: 2420  

Session ID: 1 Serial number: 5 


e.查找資料發現,下面做法可行:

SQL> conn / as sysdba  

Connected to an idle instance.  

SQL> startup nomount  

ORACLE instance started.  

  

Total System Global Area  413372416 bytes  

Fixed Size                  2253784 bytes  

Variable Size             327158824 bytes  

Database Buffers           79691776 bytes  

Redo Buffers                4268032 bytes  

SQL> alter database mount;  

  

Database altered.  


SQL> alter database open;

alter database open

*

ERROR at line 1:

ORA-01034: ORACLE not available

Process ID: 0

Session ID: 0 Serial number: 0 


發現在打開數據文件報錯


SQL> recover database until time '2017-05-09'

ORA-00283: recovery session canceled due to errors

ORA-01124: cannot recover data file 1 - file is in use or recovery

ORA-01110: data file 1: '+DATADG/fmall/datafile/system.259.907327891'

用覆蓋形式恢復也報錯


f.后面有資料提出可使用RMAN操作系統刪掉歸檔來解決問題

rman下crosscheck然后delete。

[oracle@~ ]rman target  sys/pass

RMAN > crosscheck archivelog all;

validation succeeded for archived log

archived log file name=+ARCH/fmall/archivelog/2017_03_08/thread_2_seq_6362.21528.938070989 RECID=43022 STAMP=938070990

validation succeeded for archived log

RMAN-06900: WARNING: unable to generate V$RMAN_STATUS or V$RMAN_OUTPUT row

RMAN-06901: WARNING: disabling update of the V$RMAN_STATUS and V$RMAN_OUTPUT rows

ORACLE error from target database: 

ORA-01089: immediate shutdown in progress - no operations are permitted

Process ID: 14578

Session ID: 235 Serial number: 2647

校驗日志的可用性,報錯或者等待很久沒有結果出來


RMAN > delete archivelog all completed before 'sysdate-30'; 

RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process

如果你刪除三十天前的歸檔日志,等待很久卻沒有結果,甚至像上面一樣報錯可以參考我下面的做法


RMAN > delete force noprompt archivelog until time 'sysdate-30'; 

強制性刪除三十天前的歸檔日志


網站異常告警解除,說明歸檔日志騰出空間,致使數據庫可正常提供應用連接。


g.實例證明,歸檔日志空間已滿導致應用無法連接數據庫

有經驗的DBA告訴我說,RAC會有一個ASM的磁盤空間議題,我經過查詢ASM磁盤空間發現,我的媽呀,ARCH的空間就才騰出282M。


SQL> select name,total_mb,free_mb from v$asm_disk;

NAME TOTAL_MB    FREE_MB

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

GRIDDG_0001           4768      4585

ARCH_0000           944137      282

DATADG_0000         1238390      1202771

GRIDDG_0000           4768      4553

BACKUP_0000          953675      949001


再次進入RMAN,使用delete archivelog的方式再刪除15天后,查看ASM磁盤空間大小:

SQL> select name,total_mb,free_mb from v$asm_disk;

NAME TOTAL_MB    FREE_MB

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

GRIDDG_0001            4768        4585

ARCH_0000             944137       716045

DATADG_0000            1238390      1202771

GRIDDG_0000            4768        4553

BACKUP_0000            953675       949001


空出了將近700多G的空間,太可怕了,短短十五天就能夠用掉將近七百多G的歸檔日志空間,我的數據庫大小才1.1G,歸檔日志就一天以十幾二十G的速度瘋長。一定是哪里出了問題,必須徹查。

當然首先要做的估計就是把清理歸檔日志命令寫成腳本納入crontab里,按一定時間進行處理。初步懷疑是應用程式sql語句中存在類似于死循環的東西,導致歸檔日志如此龐大,后續有什么發現,我將再次記錄下來。


致此,歸檔日志空間已滿議題是暫時解決了。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

晋中市| 临海市| 沾化县| 迭部县| 随州市| 泌阳县| 汽车| 柘荣县| 南开区| 沅江市| 柞水县| 孝感市| 香格里拉县| 馆陶县| 泰安市| 盐亭县| 华宁县| 长春市| 通州市| 丽水市| 内丘县| 陇南市| 陇西县| 新兴县| 台山市| 日照市| 曲周县| 昌都县| 金湖县| 吉木萨尔县| 张掖市| 连平县| 新建县| 荆州市| 侯马市| 阿克陶县| 沂水县| 黄陵县| 肇东市| 全州县| 论坛|