磁盘空间不足(二)

来源:互联网 发布:mac队残存陆上基地 编辑:程序博客网 时间:2024/04/28 15:22

今天早上刚到公司,就被分公司的抓到说不能通过pl/sql登陆数据库,我马上问他们加磁盘空间没有,他们说还没有,这里真想BS一下电信的工作效率。好啦回归正题,我马上登陆系统查看情况,再一次提示磁盘空间满,并且查看数据库status为mount,根本无法启动数据库。我分析了一下这次磁盘占用空间的情况,前一次已经查看了tablespace使用情况很正常,并且挂在另外一个盘的tempspace也有剩余,查看了一下整个磁盘的使用情况,发现出了数据文件,就指剩下归档日志文件占用最多(占用300多G)。我的思路是想把归档日志文件转存,然后清理剩余的空间,但是后来我想了一下。这样操作会有一定的风险,只有寻找另外一条出路。

进入rman查看是否存在冗余的和过期的备份。

C:\Documents and Settings\Administrator>rman target /

恢复管理器: Release 10.2.0.1.0 - Production on 星期二 11月 29 11:26:45 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

连接到目标数据库: ORCL (DBID=1214563011)

RMAN> report obsolete
2> ;

使用目标数据库控制文件替代恢复目录
RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 5
未找到已废弃的备份
RMAN> list expired backup;
RMAN>

发现即没有废弃的归档也没有过期的归档,但是这里我查找到了关键点,备份策略中保留设置为5。这样我想可不可以通过减少备份归档日期来减少磁盘空间的开销,通过跟分公司协商,他们答应可以这么操作,并且在新增磁盘之后也可以从新设置备份策略。通过计算归档日志的增量,每天增量大约在100G左右(其实主要是最近使用数据库非常频繁,很多的transaction导致日志增加),通过修改策略能够实现数据库归档日志的稳定增长,于是决定使用这种方法。

RMAN> show all;
RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\S
NCFORCL.ORA'; # default

RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 3;

旧的 RMAN 配置参数:
CONFIGURE RETENTION POLICY TO REDUNDANCY 3;
新的 RMAN 配置参数:
CONFIGURE RETENTION POLICY TO REDUNDANCY 3;
已成功存储新的 RMAN 配置参数
RMAN>alter system archive log current;
RMAN>crosscheck archivelog all;
RMAN>delete expired archivelog all;

RMAN>DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-3'
RMAN>delete obsolete;

修改备份策略之后,删除过期的归档日志。再次查看磁盘空间,发现磁盘空间可以剩下200G左右。这样在不增加磁盘空间的情况下能够使系统正常运行。

最后一定得记住修改每天定时的备份策略,因为我看到备份策略里面还是把归档日志保留5天,并且删除归档日志也是5天前的。

原创粉丝点击