posts - 495,comments - 227,trackbacks - 0

 

1、删除多余的归档日志

在ORACLE10G中,默认的归档路径为$ORACLE_BASE/flash_recovery_area。对于这个路径,ORACLE有一个限制,就是默认只能有2G的空间给归档日志使用,可以使用下面两个SQL语句去查看它的限制:
1. select * from v$recovery_file_dest;
2. show parameter db_recovery_file_dest(这个更友好直观一些)
当归档日志数量大于2G时,那么就会由于没有更多的空间去容纳更多的归档日志会报无法继续归档的错误。
如:“RA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 10017792 bytes disk space from 2147483648 limit
ARC0: Error 19809 Creating archive log file to '/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2007_04_30/o1_mf_1_220_0_.arc' ”这时我们可以修改它的默认限制,比如说将它增加到5G或更多,也可以将归档路径重新置到别的路径,就不会有这个限制了。

  更改限制语句如下:
alter system set db_recovery_file_dest_size=5368709102  (这里为5G 5x1024x1024x1024=5G)
alter system set db_recovery_file_dest_size=10737418240



进入

rman target username/password@database

 

执行下边的交叉校验

crosscheck archivelog all;

此时可能会提示校验失败,类似下边的提示:

RMAN> crosscheck archivelog all;

释放的通道: ORA_DISK_1

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=14 devtype=DISK

对归档日志的验证失败

…………….

这时,需要执行exit退出rman

在命令提示符窗口下执行下边的字符集设置

C:>set nls_lang=american_america.zhs16gbk

然后再进入rman  ,再执行crosscheck archivelog all;一般不会再出现这样的问题了。

 

在命令窗口里面执行

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

说明

SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。

同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库

DELETE ARCHIVELOG FROM TIME 'SYSDATE-7';

 

UNIX/LINUX下也可以通过FIND找到7天前的归档数据,使用EXEC子操作删除

find /oraarchive -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ;

这样做仍然会在RMAN里留下未管理的归档文件

仍需要在RMAN里执行下面2条命令

crosscheck archivelog all;

delete expired archivelog all;

所以还不如上面的方法好用,不过用FIND的好处就是,可以在条件上,和EXEC子项上做很多操作,实现更复杂的功能

 

2report obsoletedelete obsolete删除过期备份命令

使用report obsolete命令报告过期备份

RMAN> report obsolete;

RMAN retention policy will be applied to the command

RMAN retention policy is set to redundancy 1

Report of obsolete backups and copies

Type                 Key    Completion Time    Filename/Handle

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

Backup Set           125    01-NOV-04

Backup Piece       125    01-NOV-04          /data1/oracle/orabak/full_1_541045804

Backup Set           131    04-NOV-04

Backup Piece       131    04-NOV-04          /data1/oracle/orabak/full_AVATAR2_20041104_131

....

 

使用delete obsolete命令删除过期备份:

RMAN> delete obsolete;

RMAN retention policy will be applied to the command

RMAN retention policy is set to redundancy 1

using channel ORA_DISK_1

Deleting the following obsolete backups and copies:

Type                 Key    Completion Time    Filename/Handle

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

Backup Set           125    01-NOV-04

Backup Piece       125    01-NOV-04          /data1/oracle/orabak/full_1_541045804

....

Archive Log          2704   17-DEC-04          /opt/oracle/oradata/avatar2/archive/1_2716.dbf

Archive Log          2703   17-DEC-04          /opt/oracle/oradata/avatar2/archive/1_2715.dbf

Archive Log          2702   17-DEC-04          /opt/oracle/oradata/avatar2/archive/1_2714.dbf

Do you really want to delete the above objects (enter YES or NO)? yes

deleted backup piece

backup piece handle=/data1/oracle/orabak/full_AVATAR2_20041206_173 recid=173 stamp=544156241

.....

 

注:在执行删除的时候,可能会提示下边的报错信息:

ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:

ORA-27211: 未能加载介质管理库

 

解决方法,运行下边的命令:

RMAN> allocate channel for maintenance type disk;

RMAN> crosscheck archivelog all;

RMAN> delete obsolete;

 

 

3Oracle RMANshow,list,crosscheck,delete

 

Oracle RMANshow,list,crosscheck,delete 命令整理

1SHOW命令:

   显示rman配置: RMAN> show all;

2REPORT命令:

   2.1RMAN> report schema                        报告目标数据库的物理结构;

   2.2RMAN>report need backup days=3;            报告最近3天没有被备份的数据文件;

   2.3RMAN> report need backup days 3 tablespace users;   USERS表空间上3天未备份的数据文件;

   2.4RMAN> report need backup incremental 3;    报告恢复数据文件需要的增量备份个数超过3次的数据文件;

   2.5RMAN> report need backup redundancy 2 database;           报告备份文件低于2份的所有数据文件;

        RMAN>report need backup redundancy=2;

   2.6RMAN> report need backup recovery window of 6 days;    报告文件报表的恢复需要超过6天的归档日志的数据文件;

   2.7RMAN> report unrecoverable;      报告数据库所有不可恢复的数据文件;

   2.8RMAN> report obsolete redunndancy 2; 报告备份次数超过2次的陈旧备份;

   2.9RMAN>report obsolete;          报告多余的备份;

3LIST命令:列出备份信息

   3.1、列出数据文件备份集

        RMAN>list backup         列出详细备份;

        RMAN>list expired backup     列出过期备份;

        RMAN> list backup of database;     列出所有数据文件的备份集;

        RMAN> list backup of tablespace user01; 列出特定表空间的所有数据文件备份集;

   3.2RMAN> list backup of controlfile     列出控制文件备份集;

   3.3RMAN> list backup of archivelog all      列出归档日志备份集详细信息;

        RMAN>list archivelog all;      列出归档日志备份集简要信息

   3.4RMAN> list backup of spfile              列出SPFILE备份集;

   3.5RMAN> list copy of datafile 5        列出数据文件映像副本;

   3.6RMAN> list copy of controlfile           列出控制文件映像副本;

   3.7RMAN> list copy of archivelog all    列出归档日志映像副本;

   3.8RMAN> list incarnation of database       列出对应物/列出数据库副本;

   3.9RMAN>list backup summary;    概述可用的备份;

                B表示backup

                F表示FULL

                A表示archive log

                0 1表示incremental backup

                S说明备份状态(A AVAILABLE   X EXPIRED )

    

   3.10RMAN>list backup by file    按备份类型列出备份;

                    按照数据文件备份,归档日志备份,控制文件备份,服务器参数文件备份 列出

4CROSSCHECK命令:校验备份信息

   4.1RMAN> crosscheck backup             核对所有备份集;  

   4.2RMAN> crosscheck backup of database      核对所有数据文件的备份集;  

   4.3RMAN> crosscheck backup of tablespace users      核对特定表空间的备份集;  

   4.4RMAN> crosscheck backup of datafile 4    核对特定数据文件的备份集;  

   4.5RMAN> crosscheck backup of controlfile   核对控制文件的备份集;  

   4.6RMAN> crosscheck backup of spfile    核对SPFILE的备份集;  

   4.7RMAN> crosscheck backup of archivelog sequence 3 核对归档日志的备份集;  

   4.8RMAN> crosscheck copy               核对所有映像副本;  

   4.9RMAN> crosscheck copy of database       核对所有数据文件的映像副本;  

   4.10RMAN> crosscheck copy of tablespace users       核对特定表空间的映像副本;  

   4.11RMAN> crosscheck copy of datafile 6        核对特定数据文件的映像副本;  

   4.12RMAN> crosscheck copy of archivelog sequence 4  核对归档日志的映像副本;  

   4.13RMAN> crosscheck copy of controlfile       核对控制文件的映像副本; 

   4.14RMAN> crosscheck backup tag='SAT_BACKUP';

   4.15RMAN> crosscheck backup completed after 'sysdate - 2'

   4.16RMAN> crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '

   4.17RMAN> crosscheck backup device type sBT;

   4.18RMAN> crosscheck archivelog all;

   4.19RMAN> crosscheck archivelog like '%ARC00012.001'

   4.20RMAN> crosscheck archivelog from sequence 12;

   4.21RMAN> crosscheck archivelog until sequence 522;

5DELETE:删除备份

   5.1RMAN> delete obsolete;      删除陈旧备份;

   5.2RMAN> delete expired backup; 删除EXPIRED备份    

   5.3RMAN> delete expired copy;   删除EXPIRED副本;

   5.4RMAN> delete backupset 19;   删除特定备份集;

   5.5RMAN> delete backuppiece ''d:\backup\DEMO_19.bak''   删除特定备份片;

   5.6RMAN> delete backup      删除所有备份集;

   5.7RMAN> delete datafilecopy ''d:\backup\DEMO_19.bak''  删除特定映像副本;

   5.8RMAN> delete copy   删除所有映像副本;

   5.9RMAN> delete archivelog all delete input;

        RMAN> delete backupset 22 format = ''d:\backup\%u.bak'' delete input

                       在备份后删除输入对象;

   5.10RMAN> delete backupset id;

 

 

4em控制台对备份的操作

使用sys用户的sysdba权限进入em控制台

在“维护”模块下,点击进入到“管理当前备份”操作选项。

 在“管理当前备份”选项中可以列出所有的备份集

如果要删除备份,可以在下边的列表中选中要删除的备份集,执行“删除”命令,这时会有一个确认提示的页面:

点击“是”按钮,进行删除操作。如果提示操作“删除”失败,可以将上一步要执行的命令在命令提示符下使用rman命令来执行。

 

5、小结

像归档日志之类的备份,备份的文件夹是在一个叫flash_recovery_area的目录下边。

1、归档日志备份在ARCHIVELOG 这个文件夹下边,上边对归档日志的操作基本上是对这个文件夹下的文件进行操作。

2obsolete删除操作基本上是对AUTOBACKUP这个文件夹下的文件进行操作。(不是十分的确定)

3delete backup操作基本上是对BACKUPSET文件夹和DATAFILE文件夹的内容进行操作的。

4、在em管理后台,最下边有一个“相关链接”模块,下有“作业”选项链接,可以看到所有数据库备份操作历史作业记录,在此可以对相应的备份作业进行修改操作。

另外如果要添加备份操作作业时,需要在“维护”模块下找到“调试备份”链接,推荐使用“Oracle 建议的备份”来添加备份操作作业。


Linux下查看文件夹大小的命令du -sh docname

 

posted on 2010-11-05 11:08 SIMONE 阅读(3957) 评论(0)  编辑  收藏 所属分类: oracle

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问