ORA-16558: database specified for switchover is not a standby database
Cause: An attempt was made to switchover to a database that was not a standby database.
Action: Locate an enabled standby database and select that database as the target of the switchover.
ORA-16558 错误是由于在切换函数中指定的数据库不是备用数据库所引起的。
ORA-16558 是一个诊断信息, 表示被指定的数据库不是备用数据库, 无法对其进行切换操作。
当指定主数据库(即主机数据库)作为切换操作的参数时,我们可能会收到这个错误。
1. 检查所指定数据库是否是一个真正的备用数据库,如果不是则应指定一个备用数据库。
2. 检查备用数据库的连接状态,具体如下:
SQL> SELECT DATABASE_ROLE FROM V$DATABASE;
输出应该是: ‘PHYSICAL STANDBY’。
3. 如果此时备用数据库仍未状态开放,那么可以尝试重新启动几个任务来确保它正常运行:
SQL> alter database recover managed standby database using current logfile;
SQL> alter database open;