您的位置:首页 > 数据库

Windows 2008 R2 做RMAN定时自动备份;日期格式影响日志文件生成

2016-09-07 15:59 573 查看
                             
编写的脚本
Level0备份脚本

run{
backup incremental level 0 database format 'H:\backup\db_level0_%d_%s_%Y%M%D.bak';
sql 'alter system archive log current';
backup archivelog all format'H:\backup1\arch_%d_%s_%Y%M%D_%U.bak' delete all input;

backup current controlfile format 'H:\backup1\control_%d_%s_%Y%M%D_%U.bak';

}
Level1备份脚本

run{

backup incremental level 1 database format 'H:\backup\db_level1_%d_%s_%Y%M%D_%U.bak';

sql 'alter system archive log current';

backup archivelog all format 'H:\backup1\arch_%d_%s_%Y%M%D_%U.bak' delete all input;

backup current controlfile format 'H:\backup1\control_%d_%s_%Y%M%D_%U.bak';

}
check检查清理脚本

run{

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 15 DAYS;

crosscheck backup of database;

crosscheck archivelog all;

delete noprompt expired backup;

delete noprompt expired archivelog all;

delete noprompt obsolete;

delete noprompt backup completed before 'sysdate-15';

delete noprompt archivelog until time 'sysdate-15';

}
Windows命令bat文件

Rman0.bat

@echo off

set ORACLE_SID=xcky

set oraclepath="D:\app\Administrator\product\11.2.0\dbhome_1\BIN"

%oraclepath%\rman target / cmdfile=H:\Rman备份脚本\level0.txt
msglog=H:\Rman备份脚本\%date:~0,10%.log
Rman1.bat

@echo off

set ORACLE_SID=xcky

set oraclepath="D:\app\Administrator\product\11.2.0\dbhome_1\BIN"

%oraclepath%\rman target / cmdfile=H:\Rman备份脚本\level1.txt
log=H:\Rman备份脚本\%date:~0,10%.log
Rmanchk.bat

@echo off

set ORACLE_SID=xcky

set oraclepath="D:\app\Administrator\product\11.2.0\dbhome_1\BIN"

%oraclepath%\rman target / cmdfile='H:\Rman备份脚本\check.sql'
msglog='H:\Rman备份脚本\chk_%date:~0,10%.log'
 

将以上bat文件添加到定时计划任务里就可以。添加完毕使用schtasks
/query查看计划任务状态。


 

1、遇到的问题

A、测试执行脚本,发现不按着指定的日志格式产生备份日志。
chk_%date:~0,10%.log

报错信息是~无法打开指定的日志文件。

尝试按着报错格式创建好文件名称chk_2015/08/19.log再重新尝试,但是报错:

原来date日期格式是yyyy/MM/dd格式的,系统无法生成含有‘/’的log文件:

修改日期格式yyyy-MM-dd,测试能正常生成日志:
 

B、进入cmd命令行,使用schtasks
/query|more
命令查看任务计划状态时,

报错:无法加载列资源。

解决:

查看cmd编码,用chcp命令,如果是936,代表中文GBK编码,

Windows 2008 R2使用schtasks
/query 会报错,错误内容便是:无法加载列资源。


 

调整 936为
437美国编码则可以运行,但是无法打印出非ascii字符。


(非ascii字符都显示为‘?’)

 

调整方法:chcp 437,换回去,就用chcp
936或者退出。


(xp/windows7/window 8没这个问题)
开启块跟踪服务:

1、 查看是否开启

SQL> select status,filename from v$block_change_tracking;

STATUS    FILENAME

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

DISABLED

2、开启块跟踪(BLKTRK.BLK文件不能手工创建,并且D:\APP\DATA\BLK.TRK\要存在)(RAC的块跟踪文件要放到共享存储)

SQL> alter database enable block change tracking

using file ' D:\APP\DATA\BLK.TRK\BLKTRK.BLK';

Database altered.

 

如果更改跟踪文件所在的路径:

 

SQL> select status ,filename from v$block_change_tracking;

STATUS    FILENAME

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

ENABLED D:\APP\DATA\BLK.TRK\BLKTRK.BLK

SQL> shutdown immediate;

D:\APP\DATA\BLK.TRK\BLKTRK.BLK复制到D:\app\data\trckblk.trc\BLKTRK.BLK

SQL> startup mount;

SQL> alter database rename file

'D:\app\data\blk.trk\blktrk.blk' to
'D:\app\data\trckblk.trc\BLKTRK.BLK';


SQL> alter database open ;

SQL> select status ,filename from v$block_change_tracking;

STATUS    FILENAME

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

ENABLED   D:\APP\DATA\TRCKBLK.TRC\BLKTRK.BLK
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息