您的位置:首页 > 数据库 > Oracle

Oracle 10g启动后报ORA-16038错误的解决方法

2013-12-18 18:49 387 查看
1 基本信息
摘要:Oracle 10g启动后报ORA-16038错误的解决方法
作者:宋潇男
2 Oracle 10g启动后报ORA-16038错误的解决方法
一般ORA-16038、ORA-19809、ORA-00312这三个错误会同时出现,如:

1.
[oradb@instant archivelog]$ sqlplus "/ as sysdba"

2.

3.
SQL*Plus: Release 10.1.0.2.0 - Production on Mon May 31 19:50:20 2004

4.

5.
Copyright (c) 1982, 2004, Oracle. All rights reserved.

6.

7.
Connected to:
8.
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production

9.
With the Partitioning, Oracle Label Security, OLAP and Data Mining options

10.

11.
SQL> startup mount
12.
ORACLE instance started.
13.

14.
Total System Global Area 620756992 bytes
15.
Fixed Size 780104 bytes
16.
Variable Size 316938424 bytes
17.
Database Buffers 301989888 bytes
18.
Redo Buffers 1048576 bytes
19.
Database mounted.
20.

21.
SQL> alter database open;
22.
alter database open
23.
*
24.
ERROR at line 1:
25.
ORA-16038: log 1 sequence# 230 cannot be archived

26.
ORA-19809: limit exceeded for recovery files
27.
ORA-00312: online log 1 thread 1: '/oradata/10g/db/instant/redo01.log'

28.

29.
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=4294967296 SCOPE=BOTH;

30.

31.
System altered.
32.

33.
SQL> shutdown immediate
34.
ORA-01109: database not open
35.

36.
Database dismounted.
37.
ORACLE instance shut down.

  引起这种问题的原因一般是:
  该数据库打开了闪回功能并且闪回区已满;
  仅仅删除无用的归档文件是不会解决问题的,因为rman controlfile记录了闪回区的使用情况,并且认为该闪回区以满;
解决方法:
这里提供几种解决方法以供选择:

1. 提高参数db_recovery_file_dest_size

2. 关闭闪回功能(如果你确实不再需要该功能)

3. 删除无用的归档文件并更新rman记录
下面对方法3进行详细说明:

1. 使用rm命令删除闪回区中的无用归档文件

2. 连接到rman,使用命令RMAN> connect target /

3. 使用命令RMAN> crosscheck archivelog all,该操作将标明哪些归档文件已被删除

4. 使用命令RMAN> delete expired archivelog all,该命令将删除rman controlfile中相应的记录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐