一、数据库状态
达梦数据库实例存在三种主要状态
1、配置状态(mount)
在该状态下不允许访问数据库对象,只能进行控制文件的维护、归档配置和修改数据库模式等状态。
我们打开DM管理工具,右键实例,选择管理服务器,可以看到,当我们将数据库的状态切换为配置之后,可以进行模式的切换,而左侧的实例管理不再可以访问数据库对象,也不可对表空间进行修改等操作。平常我们在搭建达梦数据库的集群时,修改OGUID值时需要以mount方式登录实例,否则会对表空间进行修改,破坏主备库的数据一致性。
处于mount状态的数据库实例可以切换为open(打开)状态,不可挂起。
2、打开状态(open)
打开状态是数据库最常用的状态,该状态下不能进行控制文件维护、归档配置等操作,可以访问数据库对象,对外提供正常的数据库服务;
打开状态下不可以进行模式切换,可以自由对数据库实例进行操作,包括增删改查。在数据库集群中,数据库以mount方式启动,守护进程(dmwatcher)会自动将实例拉起,进入open状态,进行数据库对象的读写操作。
3、挂起状态(suspend)
挂起状态与open状态类似,唯一区别就是,限制磁盘写入功能;一旦修改了数据页,触发REDO 日志、数据页刷盘,当前用户将被挂起。
挂起状态同样可以进行数据库数据的查询,但是限制了写入功能。如下图:
在挂起状态下, 我们向表中添加数据,可以看到commit提交事务之后并没有立即执行成功,说明此时数据库实例对象的写入功能被限制了。
执行select语句,发现insert语句并没有执行成功。此时再切换到open状态,执行select语句,在挂起状态下的insert语句被执行了,说明数据库切换到open状态之后,之前在挂起状态未提交的事务会全部提交。
挂起状态下的数据库实例可以向打开状态进行转化。
二、数据库模式
当数据库处于配置状态时,可以进行数据库模式的切换,达梦数据库共有三种模式。
1、普通模式(NORMAL)
普通模式下的数据库提供正常的服务,操作没有限制。
2. 主库模式(PRIMARY):用户可以正常访问数据库,所有对数据库对象的修改强制生成REDO 日志,在归档有效时,发送 REDO日志到备库。
3. 备库模式(STANDBY):接收主库发送过来的 REDO 日志并重做。数据对用户只读。
主库模式(PRIMARY)和备库模式(STANDBY)顾名思义,在配置数据守护时,需要指定主库的状态为PRIMARY,备库的状态为STANDBY。
模式切换的SQL语句:
#将数据库切换为 Primary 模式:
ALTER DATABASE PRIMARY;
#将数据库切换为 Standby 模式:
ALTER DATABASE STANDBY;
#将数据库切换为 Normal 模式:
ALTER DATABASE NORMAL;
想了解更多关于达梦数据库的相关信息,欢迎访问达梦云适配中心https://eco.dameng.com/