开始新对话

此帖子已超过 5 年

Solved!

Go to Solution

3634

2013年12月16日 07:00

请教rman备份到client/storage node上的disk volume上导致index不能成功备份的问题。

server的主机名是mgtserver。在client(主机名dbserver1)上建立了一个disk volume(FULL.001),并分配给媒体池pooldbserver1。如图:

建立了媒体池Index,指定存储集是Bootstrap和index,如图:

Index媒体池内有一盘A00001的磁带,如图:

客户机备份属性如图:

客户机属于“zqsbdb1 full on disk”组,对于此组,若在属性中不勾选“No Index save”,则备份失败。反之,若勾选,则备份成功。

失败信息如下:

在networker上是新手,对一些基本概念不甚明了,翻了下精华合集,也没找到答案,求各路高手指导。

1.2K 消息

2013年12月16日 18:00

从报错来看,应该是index备份找不到可用的磁带。

从图上看,你已经建了index池并且index池中有一盘状态为“可追加”的磁带A00001。

但是在第二个截图中,我看到“设备”下面勾选了\\:\Tape0和rd=dbserver1:/dev/rmt/0cbn。这样的话,index只会备份到\\:\Tape0和rd=dbserver1:/dev/rmt/0cbn这两个设备中。请问这两个设备是A00001吗?如果不是,那么index就无法备份到A00001中了,所以会报错。我建议你把“设备”下所有设备前的勾都去掉,然后再测试下。如果还有问题,请问“基本”标签下的Groups里面你是否有勾选?

3.2K 消息

2013年12月16日 18:00

只要Rman沒有問題就好解決。

4 消息

2013年12月16日 19:00

感谢您的回复和指导!

\\:\Tape0和rd=dbserver1:/dev/rmt/0cbn这两个设备是带库里的磁带机,前者是mgtserver上的,后者是dbserver1上的。

现在改来改去不知道哪里搞错了,连rman备份都执行不下去了。提示在等待dbserver1上的default池里有可用的磁盘或磁带。

如图:

而且,在出现报错后,我已经把备份任务停掉了,这个错误还一直在报。

很奇怪,在rman的脚本里已经指定send 'ENV=(NSR_DATA_VOLUME_POOL=pooldbserver1,NSR_SERVER=mgtserver)';

pooldbserver1媒体池的“组”里也勾选了“zqsbdb1 full on disk”,其它客户机、存储集、级别都是空,那备份应该去找pooldbserver1媒体池啊,怎么去找default去了?

目标设备那里的rd=dbserver1:/oraclebackup就是pooldbserver1里的Full.001卷。如图:

其它可能有用的信息是:主机dbserver1上有两个oracle数据库实例,分别是zqsbdb1和dbzqsi1,当zqsbdb1的rman备份跑不下去时(前述等待default池的错误),我把“zqsbdb1 full on disk”这个组复制并命名为“dbzqsi1 full on disk”,把客户机“dbserver1"复制并继续命名为”dbserver1“,修改备份属性,将实例名(Net Service Name)从zqsbdb1改成dbzqsi1,并把新的客户机放到新组(dbzqsi1 full on disk)里去,该组的rman备份可以成功写到pooldbserver1中,而不是去找default池。

1.2K 消息

2013年12月16日 21:00

既然dbzqsi1备份正常,你再仔细检查下zqsbdb1的dbserver1客户机设置和dbzqsi1的dbserver1客户机设置有没有不一样的地方?或者试试把zqsbdb1的dbserver1客户机资源删了,重新从dbzqsi1的dbserver1客户机资源再复制过来(就像你之前从zqsbdb1复制到dbzqsi1一样)?

从报错来看,是在等待Default Pool中的磁带。NetWorker如果从指定pool中找不到可用的设备,就会尝试去Default pool中去找可用的设备,如果Default pool中也没有任何可用的设备,就会报错说“等待Default pool中的磁带”。所以,造成这个问题的原因还是备份zqsbdb1 full on disk组时从pooldbserver1中找不到可用的磁带。

1.8K 消息

2013年12月16日 22:00

如果您通过复制然后改属性等信息后可以执行,主要就是要检查,里面成员所绑定的池和驱动器,这两点。

1.8K 消息

2013年12月16日 22:00

备份任务停掉了,这个错误还一直在报。

就算备份失败,也会写index等信息, 所以还是会等磁带。

1.8K 消息

2013年12月16日 22:00

我记得指定了存储节点,数据写入存储节点的介质后,index默认还是找备份服务器的存储卷的,除非手工指定了驱动器和池。

LZ报这个错的时候,绑定的那2个驱动器,是否不是空闲状态,比如被mgtserver、后者是dbserver1正在使用?

4 消息

2013年12月18日 17:00

感谢各位的回复和指导!终于搞定了。

对于后来发生的zqsbdb1不能备份而dbzqsi1可以备份的问题,在客户机(dbserver1)重启之后,问题消失。尚不知是数据库的事还是nsr客户端的事,亦或是其它的什么原因。。。

对于最初的index不能备份的问题,在媒体池pooldbserver1中取消勾选备份组(zqsbdb1 full on disk)、目标设备取消勾选所有设备后,问题解决。

后来试验了下,如果媒体池pooldbserver1中勾选备份组(zqsbdb1 full on disk),那么即使媒体池Index中设定了存储集是Bootstrap和index,在备份时index也不会写到Index媒体池中,而是写到pooldbserver1中。

还是源于对基本概念和流程的不理解造成的。

弱弱的再问个问题,媒体池中的目标设备是做什么用的?

1.2K 消息

2013年12月18日 18:00

恭喜楼主问题解决。

弱弱的再问个问题,媒体池中的目标设备是做什么用的?

如果媒体池中的目标设备里面有被勾选的设备,那么就只有被勾选的设备才有资格被使用。如果目标设备里面所有设备都没有被勾选,那么所有设备都有资格被使用。注意仅是有资格被使用,是否真的能被使用还要看pool的类型。比如设备A和B都被勾选了,但是A属于backup pool,B属于clone pool,那么做备份的时候只有设备A会被使用。

1.8K 消息

2013年12月18日 18:00

在客户机(dbserver1)重启之后,问题消失。

可能是这个客户机和备份介质之间的通讯连接问题,重启之后重新加载驱动。

4 消息

2013年12月19日 04:00

OK,暂时搞清楚了,不知将来还会不会碰到问题。

感谢Tim Quan和born_chen的耐心回复和指导!谢谢!

1.8K 消息

2013年12月19日 20:00

不管有问题还是平时技术讨论,都欢迎多点来论坛发言、探讨。

找不到事件!

Top