首页 > 代码库 > ora-01033,ORA-16038

ora-01033,ORA-16038

ORA-01033: ORACLE initialization or shutdown in progress
1、进入CMD,执行set ORACLE_SID=fbms,确保连接到正确的SID;
2、运行sqlplus "/as sysdba"
SQL>shutdown immediate 停止服务
SQL>startup 启动服务,观察启动时有无数据文件加载报错,并记住出错数据文件标号
SQL>shutdown immediate 再次停止服务
SQL>startup mount
SQL> recover datafile 文件路径及文件名 恢复出错的数据文件
SQL>shutdown immediate 再次停止服务
SQL>startup 启动服务,此次正常。
3、进入PL/SQL Developer检查,没有再提示错误。

在启动数据库过程中报错:ORA-16038: 日志 3 序列号 1807 无法归档


出现ORA-16038 ORA-19809 ORA-00312 Oracle 归档日志所存放的盘符控件是不是已经满了,而默认安装的时候该区间选择了2G大小当归档日志超过2G的时候,空间不足,于是无法归档,当时手工删除归档日志文件,Oracle是无法识别空间是否释放, 导致数据库无法启动 .

解决办法:

                —————————————解决方法 (一)——————————————

1、清理该盘符,使其有足够的空间存放该日志文档。

2、重新关闭,启动数据库。问题解决。



————————————————解决方法 (二)——————————————

1、mount数据库

sql> startup mount (注意,这时候还会报错,但是可以更改系统参数)

2、 更改系统参数

sql> alter system set db_recovery_file_dest_size=2g scope=spfile;

参数db_recovery_file_dest_size的值根据磁盘剩余空间大小和实际需要来设置,没有定论

3、打开数据库

sql> alter database open 不会成功的

4、删除失效归档日志.

RMAN> connect target /

RMAN> crosscheck archivelog all;

RMAN> delete expired archivelog all;

RMAN> exit

5、重新启动数据库

sql> shutdown immediate

sql> startup  

-------------解决方法(三)-------------

oracle出现ORA-16038,ORA-19809,ORA-00312问题的解决方法

1:SQL> startup ORACLE 例程已经启动。

数据库装载完毕。

ORA-16038: 日志 3 序列号 46 无法归档

ORA-19809: 超出了恢复文件数的限制

ORA-00312: 联机日志 3 线程 1: ‘D:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOG‘

2:SQL> alter database clear unarchived logfile ‘D:ORACLEPRODUCT10.2.0ORADATAO RCLREDO03.LOG‘;

数据库已更改。

3:SQL> shutdown immediate

ORA-01109: 数据库未打开 已经卸载数据库。

ORACLE 例程已经关闭。

4:SQL> startup

ORACLE 例程已经启动。

数据库装载完毕。

数据库已经打开。

无法归档错误主要是因为数据库不正常关闭,SQL语句出错造成数据线程停止所因起。

-------------解决方法(四)-------------

 

还有就是设置归档日志的大小,设置为10G的时候,错误可解决,报错的时候系统ALERT日志里也提示有几种参考方法如下工作日志所示:

1:监控邮件监控到ALERT日志中的错误如下:

< ORA-19809: limit exceeded for recovery files
< ORA-19804: cannot reclaim 43570176 bytes disk space from 2147483648 limit
< ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available.

 

2:查看ALERT日志详细错误如下

ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available.

Tue May 31 14:57:42 2011

************************************************************************

You have following choices to free up space from flash 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.

************************************************************************

Tue May 31 14:57:42 2011

Errors in file /usr/app/db-server/ora_base/admin/gis/bdump/gis_arc1_3602.trc:

ORA-19809: limit exceeded for recovery files

ORA-19804: cannot reclaim 43570176 bytes disk space from 2147483648 limit

ARC1: Error 19809 Creating archive log file to ‘/usr/app/db-server/ora_base/flash_recovery_area/GIS/archivelog/2011_05_31/o1_mf_1_44477_0_.arc‘

Tue May 31 15:17:20 2011

Thread 1 advanced to log sequence 44479

  Current log# 3 seq# 44479 mem# 0: /usr/app/db-server/ora_base/oradata/gis/redo03.log

Tue May 31 15:17:20 2011

Errors in file /usr/app/db-server/ora_base/admin/gis/bdump/gis_arc0_3600.trc:

很明显的错误信息,说明归档空间满了

 

3:查看归档参数

 

SQL> show parameter rec

 

NAME                                 TYPE        VALUE

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

buffer_pool_recycle                  string

control_file_record_keep_time        integer     7

db_recovery_file_dest                string      /usr/app/db-server/ora_base/fl

                                                 ash_recovery_area

db_recovery_file_dest_size           big integer 2G

db_recycle_cache_size                big integer 0

ldap_directory_access                string      NONE

recovery_parallelism                 integer     0

recyclebin                           string      on

use_indirect_data_buffers            boolean     FALSE

 

4:查看使用率

SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

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

CONTROLFILE                   0                         0               0

ONLINELOG                     0                         0               0

ARCHIVELOG                99.99                         0               0

BACKUPPIECE                   0                         0               0

IMAGECOPY                     0                         0               0

FLASHBACKLOG                  0                         0               0

 

5:变更归档大小为10G

SQL> alter system set db_recovery_file_dest_size=10G scope=both;

System altered.

 

6:再次查看使用率

SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

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

CONTROLFILE                   0                         0               0

ONLINELOG                     0                         0               0

ARCHIVELOG                19.93                         0              49

BACKUPPIECE                   0                         0               0

IMAGECOPY                     0                         0               0

FLASHBACKLOG                  0                         0               0

 

6 rows selected.

 

ora-01033,ORA-16038