关键词:rman, snapshot controlfile, AMB1 exiting with error,failed to register AMB1 with ASM instance
☆场景还原
最近只要一有时间就会去研究研究Oracle 19c,除了新特性以外,还要去看看有没有什么坑,这不就又一次赶上了。
服务器OS版本RHEL 7.4
数据库版本:Oracle 19.5.0.0.0
我们默认在安装好数据库的时候,都会配置一下RMAN。比如以下这几位
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'xxx';复制
尤其是CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'xxx';,对于RAC而言,我们都会合理的将其放到ASM上,这样可以避免备份时出现报错。这也是标题中提及的快照控制文件路径。
而我这次的操作,是在没有检查ASM路径的情况下,直接按照默认路径进行了修改,比如,默认情况下,我们在设置ASM磁盘组时,数据磁盘组为+DATA,出于规划考虑,后面我们做了调整,根据划分的磁盘的大小,将磁盘组命名与磁盘大小有关。
举个栗子:
为数据库划分的裸盘为100g,且磁盘组中不允许混用不同大小的裸盘,那么我们将这个磁盘组命名为:+DATALUN100G。

现在的名字是+DATALUN100G,而我误以为还是+DATA,所以......
没错,路径错写成CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DATA/<DB_NAME>/snapcf_<DB_NAME>.f';
OMG...此时告警日志开始出现监听异常连接刷屏(平时我在操作时,都喜欢开一个告警日志的窗口,所以会很即时知道有什么问题)
Fatal NI connect error 12514, connecting to:
(DESCRIPTION=(TCP_USER_TIMEOUT=1)(RECV_TIMEOUT=10)(CONNECT_TIMEOUT=60)(EXPIRE_TIME=1)(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=tcp)(HOST=私网IP)(PORT=1526))(ADDRESS=(PROTOCOL=tcp)(HOST=私网IP)(PORT=1526)))(CONNECT_DATA=(SERVICE_NAME=+ASM_DATALUN100G)(CID=(PROGRAM=oracle)(HOST=xxx2)(USER=oracle))))
VERSION INFORMATION:
TNS for Linux: Version 19.0.0.0.0 - Production
TCP/IP NT Protocol Adapter for Linux: Version 19.0.0.0.0 - Production
Version 19.4.0.0.0
Time: 17-DEC-2019 11:17:00
Tracing not turned on.
Tns error struct:
ns main err code: 12564
TNS-12564: TNS:connection refused
ns secondary err code: 12560
nt main err code: 524
TNS-00524: Current operation is still in progress
nt secondary err code: 115
nt OS err code: 0
2019-12-17T11:17:00.862296+08:00
WARNING: failed to register AMB1 with ASM instance
WARNING: AMB1 exiting with error
2019-12-17T11:17:03.866595+08:00
Starting background process AMB1
2019-12-17T11:17:03.906249+08:00
AMB1 started with pid=569, OS id=41733复制
重点看一下红色字部分,AMB1进程出现错误,导致数据库无法注册到ASM实例中。
AMBn
(ASM Background Process)
In a database instance, the ASMB and AMBn processes enable the database instance to connect to an Oracle ASM instance in order to access Oracle ASM disk groups. Possible processes are ASMB and AMB1-AMB3.
同样的情况,在19.4.0.0.0也一样发生。12.2没有环境,所以没测试是否也是这样的效果,我猜也会发生。
我们在12c之前的RAC版本中,去改SNAPSHOT CONTROLFILE NAME配置,不会对数据库产生影响。
☆解决方法?
首先我尝试了等待,结果20分钟过去了,依然没有自动恢复,遇到这个情况的亲,就不要浪费时间了。
其次尝试再次登陆RMAN,出于HUNG状态,虽然可以用ctrl+c后可以进入RMAN命令提示符,依然无法操作
为什么是再次登陆呢?原来那个窗口无法使用,即使ctrl+c也不管用
^C
user interrupt received
^C
user interrupt received
^C
user interrupt received复制
我目前尝试的解决方法是,将操作节点数据库实例停掉,然后重启即可。
重启以后数据库可以正常工作,即使快照控制文件路径还没有改对。接下来,就是将参数改对吧。
注:请不要在生产上尝试上面的错误操作,一切后果自负。
另外,如果这个问题,我没有提SR,哪个朋友如果不嫌麻烦,可以提一下SR。这个问题,我相信是一个BUG。