1.1 数据库的状态
DM 数据库包含以下几种状态:
1.配置状态(MOUNT):不允许访问数据库对象,只能进行控制文件维护、归档配置、数据库模式修改等操作;
2.打开状态(OPEN):不能进行控制文件维护、归档配置等操作,可以访问数据库对象,对外提供正常的数据库服务;
3.挂起状态(SUSPEND):与 OPEN 状态的唯一区别就是,限制磁盘写入功能;一旦修改了数据页,触发 REDO 日志、数据页刷盘,当前用户将被挂起。
OPEN 状态与 MOUNT 和 SUSPEND 能相互转换,但是 MOUNT 和 SUSPEND 之间不能相互转换。
数据库的状态是可以进行切换的,切换方式如下:
ALTER DATABASE <修改数据库语句>;
<修改数据库语句>::=
RESIZE LOGFILE <文件路径> TO <文件大小>|
ADD LOGFILE <文件说明项>{,<文件说明项>}|
RENAME LOGFILE <文件路径>{,<文件路径>} TO <文件路径>{,<文件路径>}|
MOUNT |
SUSPEND |
OPEN [FORCE] |
NORMAL |
PRIMARY|
STANDBY |
ARCHIVELOG |
NOARCHIVELOG |
<ADD|MODIFY|DELETE> ARCHIVELOG <归档配置语句> |
ARCHIVELOG CURRENT
<文件说明项> ::= <文件路径>SIZE <文件大小>
<归档配置语句>::= ‘DEST = <归档目标>,TYPE = <归档类型>‘
<归档类型>::=
LOCAL [<文件和路径设置>] |
REALTIME|
SYNC |
ASYNC ,TIMER_NAME = <定时器名称> |
REMOTE ,ARCH_INCOMING_PATH = <远程归档路径>[<文件和路径设置>]|
TIMELY
<文件和路径设置>::=[,FILE_SIZE = <文件大小>][,SPACE_LIMIT = <空间大小限制>]
具体参数参见达梦官方文档《DM7_SQL语言使用手册》中的3.1 数据库修改语句一节;
比如:
由mount切换到open:
alter database open ;
由open切换到mount:
alter database mount;
数据库的状态查看,可以通过如下SQL:
Select status$ from v$database;
[dmdba@dm3 桌面]$ disql sysdba/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 5.989(毫秒)
disql V7.6.0.171-Build(2019.07.02-109059)ENT
SQL> select status$ from v$database;
行号 status$
---------- -----------
1 4
已用时间: 2.039(毫秒). 执行号:4.
可以看到,这里的数据库状态是以数字方式进行显示的,数字的具体含义可以参考《DM7系统管理员手册》中附录2 动态性能视图中的18.v$database中的详细说明:
状态:
1:启动;2:启动,redo 完成;3:MOUNT;4:打开;5:挂起;6:关闭
1.2 数据库的模式
DM 数据库包含以下几种模式:
- 普通模式(NORMAL):用户可以正常访问数据库,操作没有限制;
- 主库模式(PRIMARY):用户可以正常访问数据库,所有对数据库对象的修改强制生成 REDO 日志,在归档有效时,发送 REDO 日志到备库;
- 备库模式(STANDBY):接收主库发送过来的 REDO 日志并重做。数据对用户只读。
三种模式只能在 MOUNT 状态下设置,模式之间可以相互转换。
对于新初始化的库,首次启动不允许使用 mount 方式,需要先正常启动并正常退出,然后才允许 mount 方式启动。
一般情况下,数据库为 NORMAL 模式,如果不指定 MOUNT 状态启动,则自动启动到 OPEN状态。
在需要对数据库配置时(如配置数据守护、数据复制),服务器需要指定 MOUNT 状态启动。当数据库模式为非 NORMAL 模式(PRIMARY、STANDBY 模式),无论是否指定启动状态,服务器启动时自动启动到 MOUNT 状态。1.3 数据库的启动过程
1.down->mount
此过程中会根据配置文件,分配共享内存,启动后台线程;同时根据配置文件(dm.ini dmarch.ini …)找到控制文件的,并打开控制文件。
2.mount->open
此时打开机器上所有的数据文件和重做日志文件,数据库进入open可用状态。二 数据库的启动
DM支持多种操作系统。常用的操作系统基本上可以划分为 Windows 操作系统和 Linux操作系统。下面分别介绍这两种操作系统下启动和关闭 DM 数据库的操作。
2.1 Windows平台
2.1.1 DM服务查看器
安装 DM 数据库后(默认情况下安装成功后 DM 服务会自动启动),在 Windows 的开始菜单选项中选择如下图所示的菜单项中的 DM 服务查看器可以启动 DM 数据库。
点击 DM 服务查看器选项后,会弹出如图所示的界面:
在弹出界面中选中所要启动的数据库,点击鼠标右键,在菜单栏中选择启动。2.1.2 服务方式
安装 DM 数据库并且新建一个 DM 实例后。Windows 的服务中会自动增加一项和该实例名对应的服务。例如新建一个实例名为 DMSERVER 的 DM 数据库,Windows 的服务中会增加一项名称为“DmServiceDMSERVER”的服务。打开 Windows 的管理工具,选择“服务”,打开 Windows 服务控制台,如图所示,选择“DmServiceDMSERVER”,用鼠标在工具栏点击启动按钮或者点击鼠标右键,在菜单栏中选择“启动”,启动 DM 数据库。
2.1.3 命令行方式
进入 DM 安装目录下的 bin 目录,直接打开应用程序 dmserver 就可以启动 DM 数据库。或者先打开 Windows 命令提示符工具,在命令工具中执行命令进入 DM 服务器的目录,再执行 dmserver 的命令启动 DM 数据库,如图所示。
命令行方式启动参数如下:
dmserver [ini_file_path] [-noconsole] [mount]
说明:
- Dmserver 命令行启动参数可指定 dm.ini 文件的路径,非控制台方式启动及指定
数据库是否以 MOUNT 状态启动。关于数据库状态见下一节介绍; - Dmserver 启动时可不指定任何参数,默认使用当前目录下的 dm.ini 文件,如果
当前目录不存在 dm.ini 文件,则无法启动; - Dmserver 启动时可以指定-noconsole 参数。如果以此方式启动,则无法通过在
控制台中输入服务器命令。
当不确定启动参数的使用方法时,可以使用 help 参数,将打印出格式、参数说明和使
用示例。使用方法如下:
dmserver help
当以控制台方式启动 Dmserver 时,用户可以在控制台输入一些命令,服务器将在控制
台打印出相关信息或执行相关操作。支持的命令见下表。
命令 操作
EXIT 退出服务器
LOCK 打印锁系统信息
TRX 打印等待事务信息
CKPT 设置检查点
BUF 打印内存池中缓冲区的信息
MEM 打印服务器占用内存大小
SESSION 打印连接个数
DEBUG 打开 DEBUG 模式2.2 Linux平台
2.2.1 DM服务查看器
安装 DM 数据库后(默认情况下安装成功后 DM 服务会自动启动),在 Linux 的开始菜单选项中选择启动服务器菜单项可以启动 DM 数据库。启动方式类似 Windows。
2.2.2 服务方式
安装 DM 数据库后,在/etc/rc.d/init.d 中有名称为 DmService 开头的文件,文件全名为 DmService+实例名(例:如果实例名为 DMSERVER,则相对应的服务文件为DmServiceDMSERVER )。 以 实 例 名 为 DMSERVER 为 例 , 在 终 端 输入./DmServiceDMSERVER start 或者 service DmServiceDMSERVER start 即可启动 DM 数据库。
2.2.3 命令行方式
在终端进入 DM 安装目录下的 bin 目录,执行./dmserver 启动 DM 数据库,参数选项同 Windows。
三 数据库的关闭
3.1 Windows平台
3.1.1 DM服务查看器
在 Windows 的开始->程序菜单中选择达梦数据库->DM 服务查看器,在弹出的界面中,选中要关闭的数据库,点击鼠标右键,在菜单栏中选择停止。
3.1.2 服务方式
安装 DM 数据库并且新建一个 DM 实例后。Windows 的服务中会自动增加一项和该实例名对应的服务。例如新建一个实例名为 DMSERVER1 的 DM 数据库,Windows 的服务中会增加一项名称为“DmServiceDMSERVER1”的服务。打开 Windows 的管理工具,选择服务,打开 Windows 服务控制台,如图所示,选择DmServiceDMSERVER1”,用鼠标在工具栏点击停止按钮或者点击鼠标右键,在菜单栏中选择停止,关闭 DM 数据库。
3.1.3 命令行方式
在启动数据库的命令工具中输入 exit,然后回车,关闭 DM 数据库。如图所示。
3.2 Linux平台
3.2.1 DM服务查看器
在 Linux 的开始菜单中选择关闭数据库的菜单项可以关闭 DM 数据库。关闭方式类似Windows。
3.2.2 服务方式
进入/etc/rc.d/init.d,以实例名为 DMSERVER 为例,在命令行工具中输入./DmServiceDMSERVER stop 即可关闭 DM 数据库。
3.2.3 命令行方式
在启动数据库的命令工具中输入 exit,然后回车,退出 DM 数据库。关闭方式类似Windows。