Quantcast
Channel: DBA Sky » rman
Viewing all articles
Browse latest Browse all 16

年关将近,忙!

$
0
0

快过年了,工作却越来越忙,刚给小弟们培训完,这边系统又出问题了,先处理了一个阵列挂在双机上,导致两边读取同样数据文件报600错的问题,这边NBU归档备份又出错了,一查是由于前段时间系统切过一次,导致主机上归档有短缺导致的。而且还发现了一个问题:主机归档目的地有两个,由于nbu备份脚本的问题,每次备归档都会导致备两份,这个以前还真没注意过,但是这样容易有一些问题。还有几个知识点加深了一下:

1.备归档的时候,如果不加delete all input,那么会在下一次backup archivelog all的时候继续备上一次备过的,即从第一个没有delete all input的日志开始备,这样如果一直不删,那么我们的归档备份就相当于一个累计增量备份。如果你手工删除过归档,会报找不到那个归档文件的错。如果备归档的时候加上了delete all input,那么下次就不会再备delete掉的那些归档了,即使你把它删除的归档文件,手工再拷回去,也不会备。所以它备归档不是说归档目的地下所有的归档都不会备,可以说是只备没有delete all input的。

2.如果你手工删除了一些没有备份的归档,导致备份的时候报找不到错,那么可以crosscheck archivelog all,然后delete noprompt expired。这样再备份归档可以正常,但是要注意,丢失的这些归档没有备份,如果需要使用备份来恢复的时候,是有问题的。

3.expired是找不到实际文件的情况,包括归档或者备份,如果找不到了crosscheck之后会标记为expired,obsolete是按照保留规则不再需要保留的备份,这些备份都是好的,只是不再需要。

4.10g中如果你的归档目的地不存在,归档的时候不会报错,oracle会在你的目的地的上层目录存放归档,如果你有n个归档目的地,执行类似:backup archivelog all format ‘f:\oracle\bak\arch_%U_%T_%d’ delete all input;语句的时候只备份一份,会删除所有归档目的地下的归档,不要求所有归档目的地下都有完全相同的归档文件,比如你/arch1下有1,2,然后你更改了归档路径为/arch2,/arch2下有归档文件3,4,然后你将/arch1,/arch2都设为归档路径,又生成了归档5,6,这样/arch1下有1,2,5,6,/arch2下有3,4,5,6.那么备份的时候oracle会在这些目的地下自动寻找,只要有一个目的地有需要的归档日志就可以,删除的时候,所有规定那个目的地下的都会被删除。


Viewing all articles
Browse latest Browse all 16

Trending Articles