Oracle啟動報錯ORA-03113解決
環境:RHEL6.4 + Oracle 11.2.0.4
步驟摘要:
1.啟動報錯ORA-03113
2.查看alert日誌尋找原因
3.根據實際情況採取合理的措施,這裡我們先增加閃回區大小,把庫啟動起來
4.制定對應的歸檔日誌刪除策略
1.啟動報錯ORA-03113
$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on 星期六 2月 28 13:56:44 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup mount
ORACLE instance started.
Total System Global Area 3206836224 bytes
Fixed Size 2257520 bytes
Variable Size 2365590928 bytes
Database Buffers 822083584 bytes
Redo Buffers 16904192 bytes
Database mounted.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-03113: 通訊通道的檔案結尾
進程 ID: 13501
會話 ID: 853 序號: 5
SQL>
2.查看alert日誌尋找原因
Sat Feb 28 13:56:52 2015
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Initial number of CPU is 8
CELL communication is configured to use 0 interface(s):
CELL IP affinity details:
NUMA status: non-NUMA system
cellaffinity.ora status: N/A
CELL communication will use 1 IP group(s):
Grp 0:
Picked latch-free SCN scheme 3
Using LOG_ARCHIVE_DEST_1 parameter default value as USE_DB_RECOVERY_FILE_DEST
Autotune of undo retention is turned on.
IMODE=BR
ILAT =249
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options.
ORACLE_HOME = /opt/app/oracle/product/11.2.0.4/dbhome_1
System name: Linux
Node name: JJFAB01
Release: 2.6.32-358.el6.x86_64
Version: #1 SMP Tue Jan 29 11:47:41 EST 2013
Machine: x86_64
VM name: Xen Version: 4.1 (PVM)
Using parameter settings in server-side spfile /opt/app/oracle/product/11.2.0.4/dbhome_1/dbs/spfileJJFAB.ora
System parameters with non-default values:
processes = 1500
sessions = 2272
memory_target = 3G
control_files = "/opt/oradata/gxwj/control01.ctl"
control_files = "/opt/app/oracle/fast_recovery_area/gxwj/control02.ctl"
db_block_size = 8192
compatible = "11.2.0.0.0"
db_recovery_file_dest = "/opt/app/oracle/fast_recovery_area"
db_recovery_file_dest_size= 4122M
undo_tablespace = "UNDOTBS1"
remote_login_passwordfile= "EXCLUSIVE"
db_domain = ""
dispatchers = "(PROTOCOL=TCP) (SERVICE=gxwjXDB)"
audit_file_dest = "/opt/app/oracle/admin/gxwj/adump"
audit_trail = "DB"
db_name = "JJFAB"
open_cursors = 300
diagnostic_dest = "/opt/app/oracle"
Sat Feb 28 13:56:54 2015
PMON started with pid=2, OS id=13461
Sat Feb 28 13:56:54 2015
PSP0 started with pid=3, OS id=13463
Sat Feb 28 13:56:55 2015
VKTM started with pid=4, OS id=13465 at elevated priority
VKTM running at (1)millisec precision with DBRM quantum (100)ms
Sat Feb 28 13:56:55 2015
GEN0 started with pid=5, OS id=13469
Sat Feb 28 13:56:55 2015
DIAG started with pid=6, OS id=13471
Sat Feb 28 13:56:55 2015
DBRM started with pid=7, OS id=13473
Sat Feb 28 13:56:55 2015
DIA0 started with pid=8, OS id=13475
Sat Feb 28 13:56:55 2015
MMAN started with pid=9, OS id=13477
Sat Feb 28 13:56:55 2015
DBW0 started with pid=10, OS id=13479
Sat Feb 28 13:56:55 2015
LGWR started with pid=11, OS id=13481
Sat Feb 28 13:56:55 2015
CKPT started with pid=12, OS id=13483
Sat Feb 28 13:56:55 2015
SMON started with pid=13, OS id=13485
Sat Feb 28 13:56:55 2015
RECO started with pid=14, OS id=13487
Sat Feb 28 13:56:55 2015
MMON started with pid=15, OS id=13489
starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
Sat Feb 28 13:56:55 2015
MMNL started with pid=16, OS id=13491
starting up 1 shared server(s) ...
ORACLE_BASE from environment = /opt/app/oracle
Sat Feb 28 13:56:56 2015
ALTER DATABASE MOUNT
Successful mount of redo thread 1, with mount id 3498004520
Database mounted in Exclusive Mode
Lost write protection disabled
Completed: ALTER DATABASE MOUNT
Sat Feb 28 13:57:48 2015
alter database open
Sat Feb 28 13:57:48 2015
LGWR: STARTING ARCH PROCESSES
Sat Feb 28 13:57:48 2015
ARC0 started with pid=20, OS id=13553
ARC0: Archival started
LGWR: STARTING ARCH PROCESSES COMPLETE
ARC0: STARTING ARCH PROCESSES
Sat Feb 28 13:57:49 2015
ARC1 started with pid=21, OS id=13555
Sat Feb 28 13:57:49 2015
ARC2 started with pid=22, OS id=13557
Errors in file /opt/app/oracle/diag/rdbms/jjfab/JJFAB/trace/JJFAB_ora_13501.trc:
ORA-19815: 警告: db_recovery_file_dest_size 位元組 (共 4322230272 位元組) 已使用 100.00%, 尚有 0 位元組可用。
************************************************************************
You have following choices to free up space from recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating
system command was used to delete files, then use RMAN CROSSCHECK and
DELETE EXPIRED commands.
************************************************************************
ARCH: Error 19809 Creating archive log file to '/opt/app/oracle/fast_recovery_area/JJFAB/archivelog/2015_02_28/o1_mf_1_130_%u_.arc'
Errors in file /opt/app/oracle/diag/rdbms/jjfab/JJFAB/trace/JJFAB_ora_13501.trc:
ORA-16038: 日誌 1 sequence# 130 無法歸檔
ORA-19809: 超出了恢複檔案數的限制
ORA-00312: 聯機日誌 1 線程 1: '/opt/oradata/gxwj/redo01.log'
Sat Feb 28 13:57:49 2015
ARC3 started with pid=23, OS id=13559
USER (ospid: 13501): terminating the instance due to error 16038
Sat Feb 28 13:57:50 2015
System state dump requested by (instance=1, osid=13501), summary=[abnormal instance termination].
System State dumped to trace file /opt/app/oracle/diag/rdbms/jjfab/JJFAB/trace/JJFAB_diag_13471_20150228135750.trc
Dumping diagnostic data in directory=[cdmp_20150228135750], requested by (instance=1, osid=13501), summary=[abnormal instance termination].
Instance terminated by USER, pid = 13501
發現警示日誌中已經明確給出了原因和建議。
3.根據實際情況採取合理的措施,這裡我們先增加閃回區大小,把庫啟動起來。
SQL> startup mount
ORA-24324: 未初始化服務控制代碼
ORA-01041: 內部錯誤, hostdef 副檔名不存在
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on 星期六 2月 28 14:05:59 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup mount
ORACLE instance started.
Total System Global Area 3206836224 bytes
Fixed Size 2257520 bytes
Variable Size 2365590928 bytes
Database Buffers 822083584 bytes
Redo Buffers 16904192 bytes
Database mounted.
SQL> show parameter db_recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /opt/app/oracle/fast_recovery_
area
db_recovery_file_dest_size big integer 4122M
SQL> !
$ df -h /opt/
檔案系統 容量 已用 可用 已用%% 掛載點
/dev/mapper/vg_extend-lv_opt
493G 423G 45G 91% /opt
$ exit
exit
SQL> alter system set db_recovery_file_dest_size=10G;
System altered.
SQL> alter database open;
Database altered.
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL>
4.制定對應的歸檔日誌刪除策略
SQL> set linesize 120
SQL> select * from v$flash_recovery_area_usage;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------- ------------------ ------------------------- ---------------
CONTROL FILE 0 0 0
REDO LOG 0 0 0
ARCHIVED LOG 41.54 0 133
BACKUP PIECE 0 0 0
IMAGE COPY 0 0 0
FLASHBACK LOG 0 0 0
FOREIGN ARCHIVED LOG 0 0 0
rows selected.
可以rman直接刪除不再需要的歸檔,比如刪除1天之前的歸檔
RMAN> delete noprompt archivelog until time 'sysdate-1';
此處省略刪除歸檔的輸出..
RMAN> exit
Recovery Manager complete.
SQL> select * from v$flash_recovery_area_usage;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------- ------------------ ------------------------- ---------------
CONTROL FILE 0 0 0
REDO LOG 0 0 0
ARCHIVED LOG .35 0 1
BACKUP PIECE 0 0 0
IMAGE COPY 0 0 0
FLASHBACK LOG 0 0 0
FOREIGN ARCHIVED LOG 0 0 0
rows selected.
當然還可以設定crontab定時每天刪除1天前的歸檔:
$ crontab -l
04 * * * /opt/shell/del_arch.sh
$ more /opt/shell/del_arch.sh
#!/bin/bash
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=/opt/app/oracle/product/11.2.0.4/dbhome_1
export ORACLE_SID=JJFAB
export NLS_LANG="simplified chinese_china.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY -MM-DD HH24:Mi:SS"
export PATH=.:/opt/app/oracle/product/11.2.0.4/dbhome_1:/usr/sbin:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
rman target / log=/opt/backup/del_arch.log <<EOF
list archivelog all;
delete noprompt archivelog until time 'sysdate-1';
show all;
list archivelog all;
EOF
Oracle 入門之Oracle啟動報錯“ORA-03113”