oracle 导库时日志满了,Oracle数据库归档日志满后造成系统宕机解决历程

1、问题历程履历:

客户反映 数据库服务器断电后,导致无法正常毗邻,刚开始没有考虑到是oracle数据库归档日志满了造成了该缘故原由。

(1)、通过 Net Manager去测试,发现是ora-12514的问题,以为可能是监听服务异常导致的,然则发现oracleservice服务和listener监听服务都能够正常启动,于是沿着这个问题不停挖掘,修改NETWORK文件夹下的listener.ora和tnsnames.ora两个文件,追加了orcl的sid_desc

6c33ba381949e754e24f5bc2e22b1ff7.png

(2)、ora-12514问题解决后,幕后真凶显露了出来,“ORA-01034”和“ORA-27101”,如下图:

115f2576969342b7fca4aaf1d0cf0283.png

然后就就通过下令提示符去上岸Oracle,去查看怎么回事,然后问题进一步泛起,错误“ORA-03113:通讯通道的文件末端历程ID:6320 回话ID :191序列号:3”。

83dec48d40349051dfe81d229d514862.png

(3)问题泉源:Oracle泛起错误,于是去错误日志里去找问题泉源:F:\app\Administrator\diag\rdbms\orcl\orcl\trace文件夹下找到orcl_arc0_9552.trc文件,打开显示错误日志:

21dd9cfe4b749c1afb55a113f2615db3.png

b01936dcdd45f0b015a81a85a1db0175.png

从这里我们发现了问题的泉源:“ORA-19815: 忠告: db_recovery_file_dest_size 字节 (共 4102029312 字节) 已使用100.00%, 尚有 0 字节可用。”是db_recovery_file_dest_size也叫归档日志空间不足导致的,既然找到问题的泉源,那解决起来也就容易了。

解决途径

空间小,那摆在我们眼前设施就是,一个是将空间设置大点,另一个就是将多余的文件删除掉即可,那么我们就将这两个设施都使用一下。

(1)、通过下令窗口:——–设置归档日志空间的巨细

使用sql下令查看:

Sql>sqlplus / as nolog;———————启动sql*Plus

Sql> connect sys/password@orcl as sysdba;

Sql> archive log list;

SQL> alter system set db_recovery_file_dest_size=10G scope=both; —增大闪回恢复区。

SQL> alter database open; 重新打开数据库

SQL> show parameter db_recovery_file_dest_size;

NAME                                 TYPE        VALUE

———————————— ———– ——————————

db_recovery_file_dest_size           big integer 3G

SQL>

/*————————-完毕————————*/

(2)、通过下令窗口:—通过rman工具窗口删除归档日志

1.指定数据库实例

C:/Documents and Settings/Administrator>SET ORACLE_SID =orcl

2.毗邻数据库

C:/Documents and Settings/Administrator>RMAN TARGET SYS/password@orcl

3.查看归档日志的状态

RMAN> list archivelog all; — 运行这个下令可以把无效的expired的archivelog标出来。

RMAN>delete expired archivelog all;  — 直接所有删除过时的归档日志。

RMAN>delete noprompt archivelog until time “sysdate -3”;  — 也可以直接用一个指定的日期来删除。

重新打开数据库:

SQL> alter database open;

Database altered.

(3)优化设置:指定retention的计谋,使得archivelog不至于这样增添

1)、RMAN>configure retention policy to recovery window of 7 days;– -即删除7天前的归档日志

2)、SQL>alter system set db_recovery_file_dest_size=10G scope=both; —增大闪回恢复区。

3)、把archivelog_dest指定到没有限制的地方

SQL>alter system log_archive_dest=’/home/oracle’;

SQL> alter database open;

然后重启数据库后,系统可以正常使用了。

归档日志实在是为了利便我们在恢复数据库时使用的,然则有时候这些归档日志有时确实会给我们带来一点点的小麻烦,以是这些归档日志照样需要我们去注重的。

4)、然则,由于启用了归档日志,即便设置成了200G的使用空间,根据天天2G的数据增长量,也就3个月数据就能达到了,需要定制义务准时清算归档日志,而删除归档日志只有在RMAN里才气举行,于是在数据库服务器上新建一个bat文件(文件名随意)

编辑此文件为:

rman target ‘sys/password’ cmdfile ‘d:\cmd.txt’―――此处路径、文件名随意

在下令中对应的路径下新建cmd.txt文件,打开编辑此文件,

DELETE ARCHIVELOG ALL COMPLETED BEFORE ‘SYSDATE-7’;

然后在Windows计划义务里添加义务,指定天天准时执行此bat文件。

经由一周的运行,归档日志天天准时被清算。系统正常。

原文链接:https://www.cnblogs.com/gotoschool/p/12890026.html

本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值