1、问题历程履历:
客户反映 数据库服务器断电后,导致无法正常毗邻,刚开始没有考虑到是oracle数据库归档日志满了造成了该缘故原由。
(1)、通过 Net Manager去测试,发现是ora-12514的问题,以为可能是监听服务异常导致的,然则发现oracleservice服务和listener监听服务都能够正常启动,于是沿着这个问题不停挖掘,修改NETWORK文件夹下的listener.ora和tnsnames.ora两个文件,追加了orcl的sid_desc
(2)、ora-12514问题解决后,幕后真凶显露了出来,“ORA-01034”和“ORA-27101”,如下图:
然后就就通过下令提示符去上岸Oracle,去查看怎么回事,然后问题进一步泛起,错误“ORA-03113:通讯通道的文件末端历程ID:6320 回话ID :191序列号:3”。
(3)问题泉源:Oracle泛起错误,于是去错误日志里去找问题泉源:F:\app\Administrator\diag\rdbms\orcl\orcl\trace文件夹下找到orcl_arc0_9552.trc文件,打开显示错误日志:
从这里我们发现了问题的泉源:“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
本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处理。