Welcome 微信登录

首页 / 数据库 / MySQL / Oracle教程:ORA-16038 ORA-19809 ORA-00312 错误解决

出现ORA-16038 ORA-19809 ORA-00312 Oracle 10g默认的归档日志存放在flash_recovery_area,而默认安装的时候该区间选择了2G大小当归档日志超过2G的时候,空间不足,于是无法归档,当时手工删除归档日志文件,Oracle是无法识别空间是否释放, 导致数据库无法启动 .解决办法: 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 2011Errors in file /usr/app/db-server/ora_base/admin/gis/bdump/gis_arc1_3602.trc:ORA-19809: limit exceeded for recovery filesORA-19804: cannot reclaim 43570176 bytes disk space from 2147483648 limitARC1: 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 2011Thread 1 advanced to log sequence 44479  Current log# 3 seq# 44479 mem# 0: /usr/app/db-server/ora_base/oradata/gis/redo03.logTue May 31 15:17:20 2011Errors in file /usr/app/db-server/ora_base/admin/gis/bdump/gis_arc0_3600.trc:很明显的错误信息,说明归档空间满了

3:查看归档参数

SQL> show parameter recNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------buffer_pool_recycle                  stringcontrol_file_record_keep_time        integer     7db_recovery_file_dest                string      /usr/app/db-server/ora_base/fl                                                 ash_recovery_areadb_recovery_file_dest_size           big integer 2Gdb_recycle_cache_size                big integer 0ldap_directory_access                string      NONErecovery_parallelism                 integer     0recyclebin                           string      onuse_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               0ONLINELOG                     0                         0               0ARCHIVELOG                99.99                         0               0BACKUPPIECE                   0                         0               0IMAGECOPY                     0                         0               0FLASHBACKLOG                  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               0ONLINELOG                     0                         0               0ARCHIVELOG                19.93                         0              49BACKUPPIECE                   0                         0               0IMAGECOPY                     0                         0               0FLASHBACKLOG                  0                         0               06 rows selected.<!--EndFragment-->ORA-02291: 违反完整约束条件 (*) - 未找到父项关键字Oracle redo 和undo相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数