0
点赞
收藏
分享

微信扫一扫

Rman备份-大表空间(Bigfile Tablespace)备份时间过长处理

近期处理过一个rman备份的问题,数据库数据量大概在2.5T左右,由于在巡检过程中发现客户对数据库没有备份,从数据安全角度出发,为客户设置了rman定时备份。但是通过备份日志查看备份整库需要需要20多个小时,和预期严重不符。而且比较奇怪的是发现通道数设置的是4,但是日志体现出基本上用的是单通道在执行备份。通过查看数据库发现工程师当时业务表空间使用的是Bigfile Tablespace,由于大表空间至少就有一个文件,即使设置了并行参数默认情况下也不会按照并行参数执行。查询表空间类型脚本如下:

SQL> select TABLESPACE_NAME, BIGFILE from DBA_TABLESPACES;

    TABLESPACE_NAME                BIG

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

    ...

    USERS                                  NO

    XIAOZC01                             YES

大表空间(Bigfile Tablespace)在oracle10g被引入,解决了单个数据文件在默认DB_BLOCK_SIZE=8k的情况下最大32gb的限制,Bigfile Tablespace只允许有一个数据文件存在。创建大表空间的语法如下:

CREATE BIGFILE TABLESPACE XIAOZC DATAFILE '/DATA/XIAOZC/XIAO.dbf' size 1M AUTOEXTEND ON; --XIAOZC为表空间名

通过大表空间Oracle 将数据文件中的最大块数从 400 万个块增加到最大 40 亿个块,也就是说同样DB_BLOCK_SIZE=8k的情况下单个数据文件最大可以增长到32TB。

接下来的内容将是整个处理过程进行记录

1、对于大表空间并行的备份方式是采用MultiSection方式进行备份,于是进行备份尝试,但是触发报错,执行的脚本如下:

allocate channel ch1 type disk;

allocate channel ch2 type disk;

allocate channel ch3 type disk;

allocate channel ch4 type disk;

backup as compressed backupset section size 32G database format 'Q:\dbbak\xiaozc_%U.bak';

报错提示section size部分有错误,更改语法发现还是报错,不能识别section字段,从官方文章中查到如下:

A description of the MultiSection Backup feature introduced in Oracle11G.MultiSection备份特性从11g才开始支持,客户的环境是oracle10.2.0.5,除了升级没有特别好的方式,于是沟通数据库升级。

2、对数据库进行升级,升级过程省略。

3、对升级的数据库进行备份操作,全库备份时间由原来的20多个小时直接降低到2.5小时,备份脚本如下:

rman target /

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 4;

RMAN> backup as compressed backupset section size 32G database format 'Q:\dbbak\xiaozc_%U.bak';

Rman备份-大表空间(Bigfile Tablespace)备份时间过长处理_bigfile tablespace

将测试脚本修改成bat文件在定时任务中调用,bat文件内容如下:

run{

allocate channel ch1 type disk;

allocate channel ch2 type disk;

allocate channel ch3 type disk;

allocate channel ch4 type disk;

backup as compressed backupset section size 32G database format 'Q:\dbbak\xiaozc_%U.bak';

SQL 'alter system archive log current';

SQL 'alter system archive log current';

SQL 'alter system archive log current';

backup archivelog all format 'Q:\dbbak\arch_%U.bak';

backup current controlfile format 'Q:\dbbak\ctrl_%U.bak';

backup spfile format 'Q:\dbbak\spfile_%U.bak';

release channel ch1;

release channel ch2;

release channel ch3;

release channel ch4;

}

4、对归档日志进行定期维护,维护脚本如下:

run{

allocate channel ch1 type disk;

allocate channel ch2 type disk;

SQL 'alter system archive log current';

backup archivelog all format 'Q:\dbbak\arch_%U.bak' delete input;

backup current controlfile format 'Q:\dbbak\ctrl_%U.bak';

crosscheck backup;

crosscheck archivelog all;

delete noprompt obsolete device type disk;

delete noprompt expired backup;

delete noprompt archivelog all;

release channel ch1;

release channel ch2;

}

5、创建定时备份任务,至此达到数据库定时备份的目的。

6、总结

small tablespace和bigfile tablespace各有利弊,在选择采用何种方式创建表空间时需要根据实际情况评估,如果数据库比较小而且增长不快小表空间就完全够用。



举报

相关推荐

0 条评论