Mat*_*ons 6 oracle sql database
IANADBA,但我正在编写一个脚本,只要尚未激活 oracle 备用数据库,该脚本就会采取行动。我正在寻找的是两个查询(或查询集,如有必要)。
1 - 数据库是否已挂载(例如,有人做过“更改数据库挂载备用数据库”)
2 - 如何判断数据库是否已激活(如“alter database activate standby database”)?
正如我所提到的,我正在寻找查询,但如果系统中有某种方法可以告诉我,我也愿意接受。谢谢!
更新
我接受了下面的建议(稍作修改,因为我正在处理 Oracle 8i,我得到了这个:
SQL> SELECT INSTANCE_NAME, DATABASE_STATUS, INSTANCE_ROLE from v$instance;
INSTANCE_NAME DATABASE_STATUS INSTANCE_ROLE
---------------- ----------------- ------------------
RGR01 ACTIVE PRIMARY_INSTANCE
Run Code Online (Sandbox Code Playgroud)
目前,此实例正在积极恢复存档日志,但不是“实时”的。我仍在寻找一种方法来判断它是否没有作为备用数据库安装。
我知道了!
来自 v$database 的 CONTROLFILE_TYPE 是关键
SQL> select CONTROLFILE_TYPE from v$database;
CONTROL
-------
CURRENT
Run Code Online (Sandbox Code Playgroud)
相对
SQL> select CONTROLFILE_TYPE from v$database;
CONTROL
-------
STANDBY
Run Code Online (Sandbox Code Playgroud)