首页 > 数据库 > 国内数据库 > YashanDB实例启停
本文将介绍单机及分布式部署的实例启停方式,分别为SQL命令方式及yasboot工具方式,如需了解共享集群的实例启停方式请查阅 共享集群启停。
数据库实例从关闭启动到正常使用,要经过NOMOUNT、MOUNT和OPEN三个阶段。

YashanDB支持通过yasboot工具直接将数据库实例调整至NOMOUNT、MOUNT和OPEN三个阶段的任意一个,也支持通过ALTER DATABASE语句将数据库实例从NOMOUNT阶段调整到MOUNT阶段和OPEN阶段。
ALTER DATABASE语句仅适用于单机数据库对单个实例节点执行启动实例操作,即仅改变语句执行所在节点的实例。
yasboot工具支持进行如下粒度的启动实例操作:
可通过执行如下命令将数据库启动到NOMOUNT阶段:
操作成功后,可查询数据库状态已更新为STARTED。
Note:
数据库实例启动到NOMOUNT状态后,查看V$INSTANCE视图的STATUS状态值为STARTED,而不是NOMOUNT。
支持通过yasboot工具将数据库实例从任意阶段调整至MOUNT阶段,或通过SQL命令方式将数据库实例从NOMOUNT阶段调整至MOUNT阶段。
可通过执行如下命令将数据库实例启动到MOUNT阶段:
操作成功后,可查询数据库状态已更新为MOUNTED。
支持通过yasboot工具将数据库实例从任意阶段调整至OPEN阶段,或通过SQL命令方式将数据库实例从NOMOUNT或MOUNT阶段调整至OPEN阶段。
可通过执行如下命令将数据库实例启动到OPEN阶段:
操作成功后,可查询数据库状态已更新为OPEN。
以下为YashanDB实例成功启动的三个关键环境变量,设置错误将导致无法启动到NOMOUNT及之后阶段,请根据实际情况将环境变量调整至正确值:
YashanDB在实例启动时进行控制文件校验,出现如下情况时,实例将无法启动到MOUNT及之后阶段:
控制文件实际路径与CONTROL_FILES参数配置路径不一致
出现此种情况时,解决方法如下:
控制文件中的数据库版本与实例版本不一致
此种情况启动实例将提示 database version x.x.x incompatible with YashanDB version x.x.x错误,请根据实际情况选择是否进行版本升级。
控制文件组成员的数据库ID不一致
此种情况多是由于一台服务器存在多个数据库实例时,CONTROL_FILES参数配置了不同数据库的控制文件,将其修改为正确的控制文件路径即可。
内置表空间数据文件丢失或损坏
如出现内置表空间数据文件丢失或损坏的情况,实例将无法启动到MOUNT及之后阶段。
此种情况下,通常可以通过 恢复最新的可用备份集解决,若不存在备份集则只能通过找回文件、物理恢复等方式解决。
用户数据文件丢失或损坏
当用户表空间挂载的数据文件出现丢失或损坏时,通常可以通过 恢复最新的可用备份集解决,若不存在备份集则可通过YashanDB提供的逃生通道进行应急处理,保证数据库能正常启动、打开和运行,具体操作见 数据文件管理章节中数据文件损坏后的应急处理相关描述。
如出现redo文件丢失或损坏的情况,实例将无法启动到MOUNT及之后阶段。
此种情况下,可通过 恢复最新的可用备份集解决。
使用yasboot工具调整数据库实例时须确保yasom和yasagent进程处于开启状态,否则将提示 connect: connection refused错误。服务器重启时,yasom和yasagent进程会自动关闭,可通过注册开机自启动功能于服务器重启时自动拉起yasom和yasagent进程,具体操作见 初始数据库章节描述。
YashanDB在MOUNT或NOMOUNT阶段下,准备调整至OPEN阶段时,可以通过SQL命令方式根据不同场景配置数据库的打开模式为READWRITE、RESETLOGS或者UPGRADE。
语法为:
ALTER DATABASE OPEN [READWRITE|RESETLOGS|UPGRADE]
可通过数据库视图V$DATABASE查看数据库打开模式。
其中,主备模式下还需要关注主备角色的DATABASE_ROLE字段。
Caution:
如果执行的是完全恢复操作,此时如果使用RESETLOGS模式打开,数据库会报YAS-02184错误并关闭实例,请慎重使用该模式打开数据库。
YashanDB支持通过执行SHUTDOWN语句或使用yasboot工具关闭数据库实例。
SHUTDOWN语句仅适用于单机/分布式数据库对单个实例节点执行关闭实例操作,即仅改变语句执行所在节点的实例。
yasboot工具支持进行如下粒度的关闭操作:
可在SQL命令行中指定如下三种方式关闭数据库实例:
示例
可通过使用yasboot工具关闭数据库实例:
其中,
-s参数用于指定关库方式,可指定为NORMAL/IMMEDIATE/ABORT方式,省略则默认为IMMEDIATE方式。
Caution:
一般当服务器宕机、断电,或者人为强制关库时才建议使用ABORT方式,否则应避免使用这种方式停止实例,防止出现数据丢失,或者数据库损坏。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3075342/ ,如需转载,请注明出处,否则将追究法律责任。