DM 数据库包含以下几种状态:
- 配置状态(MOUNT):不允许访问数据库对象,只能进行控制文件维护、归档配置、数据库模式修改等操作;
- 打开状态(OPEN):不能进行控制文件维护、归档配置等操作,可以访问数据库对象,对外提供正常的数据库服务;
- 挂起状态(SUSPEND):与 OPEN 状态的唯一区别就是,限制磁盘写入功能;一旦修改了数据页,触发 REDO 日志、数据页刷盘,当前用户将被挂起。
OPEN 状态与 MOUNT 和 SUSPEND 能相互转换,但是 MOUNT 和 SUSPEND 之间不能相互转换。
select name,status$ from v$database;
status$的值及说明如下:
值为1:表示数据库正在启动
值为2:表示启动redo完成
值为3:表示启动到mount状态
值为4:表示为open状态
值为5:表示数据库为挂起状态
值为6:表示数据库为关闭状态
提示:可以直接查询v$instance视图,更直接地查看数据库的当前状态:
select instance_name,status$ from v$instance;
DM8 达梦数据库查看数据库版本号方法:
在DM7 中,查询数据库版本号的方法和Oracle 一样,通过v$version 视图可以查询。
[dmdba@dmdb ~]$ disql SYSDBA/SYSDBA@dmdb:5236
Server[dmdb:5236]:mode is normal, state is open
login used time: 9.988(ms)
disql V7.6.0.145-Build(2019.03.20-104220)ENT
SQL> select * from v$version;
LINEID BANNER
---------- ---------------------------------------------------------------
1 DM Database Server x64 V7.6.0.145-Build(2019.03.20-104220)ENT
2 DB Version: 0x7000a
used time: 7.566(ms). Execute id is 2107.
SQL>
在达梦8中,查看版本号的方法发生了变化,v$version 视图不能显示具体的版本号信息:
[root@dmdb ~]# su - dmdba
[dmdba@dmdb ~]$ disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 7.252(毫秒)
disql V8
SQL> select * from v$version;
行号 BANNER
---------- -------------------------
1 DM Database Server 64 V8
2 DB Version: 0x7000a
已用时间: 12.030(毫秒). 执行号:6222.
达梦DM8中,查看具体的版本号(准确说是发布日期)使用的是select id_code;命令,具体如下
SQL> select id_code;
行号 ID_CODE
---------- ---------------------------
1 1-1-48-19.11.29-116408-ENT
已用时间: 6.656(毫秒). 执行号:6223.
SQL>
其实通过对比,DM8里要想查清楚版本号,即达梦的大版本和发布日期需要结合 v$version 和select id_code;命令。
-
- DM DB的启动过程
DM的启动主要按如下三个步骤进行:
1.读取配置文件(.ini)
2.读取控制文件(dm.ctl)
3.读取重做日志文件(.log)和数据文件(*.DBF)
-
- DM DB的模式
DM 数据库包含以下几种模式:
- 普通模式(NORMAL):用户可以正常访问数据库,操作没有限制;
- 主库模式(PRIMARY):用户可以正常访问数据库,所有对数据库对象的修改强制生成 REDO 日志,在归档有效时,发送 REDO 日志到备库;
- 备库模式(STANDBY):接收主库发送过来的 REDO 日志并重做。数据对用户只读。
三种模式只能在 MOUNT 状态下设置,模式之间可以相互转换。
对于新初始化的库,首次启动不允许使用 mount 方式,需要先正常启动并正常退出,然后才允许 mount 方式启动。
一般情况下,数据库为 NORMAL 模式,如果不指定 MOUNT 状态启动,则自动启动到 OPEN 状态。
在需要对数据库配置时(如配置数据守护、数据复制),服务器需要指定 MOUNT 状态启动。当数据库模式为非 NORMAL 模式(PRIMARY、STANDBY 模式),无论是否指定启动状态,服务器启动时自动启动到 MOUNT 状态。
-
- DM DB的三种启动和关闭方式
- DM服务查看器
- DM DB的三种启动和关闭方式
Windows可以通过菜单目录查看。 Linux 平台需要运行/dm/dmdbms/tool/dmservice.sh 启动。 如下图:
-
-
- 系统服务
-
在实例安装结束之后会创建,在操作系统直接对实例服务进行操作。Windows 则是直接在服务窗口进行。
启动:systemctl start DmServicedmdb.service
关闭:systemctl stop DmServicedmdb.service
这里的测试平台是Linux7,Linux 6和7的在服务这块有一点区别:
在Linux 6中,服务是放在/etc/rc.d/init.d目录下,会有一个”DmService+实例名”的文件服务文件,启动和关闭是执行service“DmServer+实例名”stop|start。
在Linux 7中,服务文件存放在/usr/lib/systemd/system目录下,名称改成:DmServicedmdb.service。
如:
DmServicedmdb start
DmServicedmdb stop
-
-
- 命令行模式
-
命令行模式使用dmserver命令来启动和关闭实例。该命令在DM_HOME/bin目录下。
命令行方式启动参数如下:
dmserver [ini_file_path] [-noconsole] [mount]
说明:
1. Dmserver
命令行启动参数可指定
dm.ini
文件的路径,非控制台方式启动及指定数据库是否以
MOUNT
状态启动。
2. Dmserver
启动时可不指定任何参数,默认使用当前目录下的
dm.ini
文件,如果当前目录不存在
dm.ini
文件,则无法启动;
3. Dmserver
启动时可以指定
-noconsole
参数。如果以此方式启动,则无法通过在控制台中输入服务器命令。
当不确定启动参数的使用方法时,可以使用
help
参数,将打印出格式、参数说明和使用示例。使用方法如下:
dmserver help
当以控制台方式启动
Dmserver
时,用户可以在控制台输入一些命令,服务器将在控制台打印出相关信息或执行相关操作。
[dmdba@dmdb ~]$ dmserver help
format: ./dmserver [ini_file_path] [-noconsole] [mount] [path=ini_file_path] [dcr_ini=dcr_path]
example:
./dmserver path=/opt/dmdbms/bin/dm.ini
./dmserver /opt/dmdbms/bin/dm.ini
Keyword Explanation
--------------------------------------------------------------------------------
path the absolute path of dm.ini or the current directory
dcr_ini the absolute path of dmdcr.ini or the current directory
-noconsole start in service mode
mount start in mount status
help print help information
-
- 切换实例状态
SQL> select status$ from v$database;
Server[LOCALHOST:5236]:mode is normal, state is open
connected
LINEID STATUS$
---------- -----------
1 4
used time: 7.105(ms). Execute id is 3.
SQL> alter database mount;
executed successfully
used time: 00:00:01.878. Execute id is 0.
SQL> select status$ from v$database;
LINEID STATUS$
---------- -----------
1 3
used time: 2.155(ms). Execute id is 4.
SQL>