数据库处于正常提供服务的状态,但不能进行归档配置等操作
数据库在mount状态下,不能修改数据等,但可以执行修改归档配置、控制文件和修改数据库模式等操作。由于mount状态不生成PWR日志,因此数据页可以正常刷盘,也正常推进检查点。
系统从open状态切换为mount状态时,会强制回滚所有活动事务,但不会强制清理已提交事务,不会强制断开用户连接,也不会强制buffer中的脏页刷盘。
数据库在suspend状态下,可以访问数据库对象,甚至可以修改数据,但限制redo日志刷盘,一旦执行commit等触发redo日志刷盘的操作时,当前操作将被挂起。
实时归档失败时(比如网络故障导致),Primary 实例将试图切换成 Suspend 状态,防止后续的日志写入。因为一旦写入,主备切换时有可能备库没有收到最后那次的 RLOG_PKG,导致主库上多一段日志,很容易造成主备数据不一致。当实例成功切换为 SUSPEND 状态时,可直接退出,强制丢弃多余的日志,避免主备数据不一致。
数据库状态如图:
SQL> select status$ from v$instance;
行号 STATUS$
---------- -------
1 OPEN
已用时间: 1.101(毫秒). 执行号:600.
SQL> alter database mount;
操作已执行
已用时间: 49.388(毫秒). 执行号:0.
SQL>
SQL> select status$ from v$instance;
行号 STATUS$
---------- -------
1 MOUNT
SQL> select status$ from v$instance;
行号 STATUS$
---------- -------
1 MOUNT
已用时间: 0.419(毫秒). 执行号:601.
SQL> alter database suspend;
alter database suspend;
第1 行附近出现错误[-510]:系统处于MOUNT状态.
已用时间: 0.217(毫秒). 执行号:0.
SQL> alter database open;
操作已执行
已用时间: 3.875(毫秒). 执行号:0.
SQL> select status$ from v$instance;
行号 STATUS$
---------- -------
1 OPEN
SQL> alter database suspend;
操作已执行
已用时间: 100.286(毫秒). 执行号:0.
SQL> select status$ from v$instance;
行号 STATUS$
---------- -------
1 SUSPEND
已用时间: 0.391(毫秒). 执行号:603.
suspend状态下提交的事务都会被挂起:
文章
阅读量
获赞