DM8管理员手册-基础数据库管理
1.数据库管理
1.1 数据库启动和关闭
启停案例中都以实例名为DMSERVER为例
1.1.1 Linux
系统服务方式(常用方式)
数据库安装完成后,需要在root用户下到数据库安装目录的script/root目录下执行dm_service_installer.sh服务创建脚本 ,脚本执行完成后会生成相应的系统服务:服务名为DmService+ 实例名(实例名为 DMSERVER,则相对应的服务文件为 DmServiceDMSERVER)
-
数据库启动
--启动数据库服务 systemctl start DmServiceDMSERVER --查看数据库状态 systemctl status DmServiceDMSERVER -
数据库停止
--关闭数据库服务 systemctl stop DmServiceDMSERVER
命令行方式
-
启动数据库
在终端进入 DM 安装目录下的 bin 目录,执行./dmserver 启动 DM 数据库
dmserver 相关参数介绍:
-
path:dm.ini 绝对路径。缺省为 DMSERVER 当前目录的 dm.ini;
-
dcr_ini:如果使用 css 集群环境,指定 dmdcr.ini 文件路径;
-
-noconsole:以服务方式启动。如果以此方式启动,则无法通过在控制台中输入服务器命令;
-
mount:以 MOUNT 配置状态启动,关于更多数据库状态见 7.2 数据库状态和模式介绍;
-
dpc_mode:指定 DPC 中的实例角色,缺省为 0。0:无;1:MP;2:BP;3:SP,取值 1/2/3 时也可以用 MP/BP/SP 代替;
-
upd_lic:是否升级服务器安全版本信息。
0:否;1:自动升级;2:强制升级。缺省为 0。
一般情况下无需使用该参数。取值 1 和 2 专门用于将非安全版的系统升级为安全版的特殊场景:
在当前非安全系统中放入安全版 dm.key 之后
以 upd_lic=1 方式启动服务器,系统会检查当前的版本信息,并将非安全版的系统升级为安全版,而对于已经是安全版的情况,检查版本标记后不会进行升级操作;
以 upd_lic=2 方式启动服务器,不管之前是否是安全版本,均会强制进行升级的相关操作,主要用于处理之前升级失败但却设置了版本标记的特殊错误情况。升级之后再次启动 DMSERVER 时无需再指定 upd_lic 参数;
-
recover_check:是否检查数据库启动前有没有执行更新 DB_MAGIC(即检查数据恢复状态,具体说明可以查看《DM8 备份与还原》)。
0:不检查;1:检查;缺省为 1。
当该参数设置为 0 时,允许在执行更新 DB_MAGIC 之前以备库配置状态启动数据库,并进行只读操作;
-
enable_mac:是否开启强制访问控制功能,仅在当前库是安全版时或者非安全版通过 upd_lic 升级为安全版时有效。
取值为 1 表示启用,此时参数 ENABLE_MAC 在系统中被赋值为 1;
取值为 0 表示不启用,此时参数 ENABLE_MAC 在系统中被赋值为 2。缺省值为 0。开启成功后后续启动无需再添加 enable_mac 参数;
-
listen_ipv6:是否监听 IPV6。0:否;1:是。缺省为 1;
-
help:打印帮助信息。
-
-
数据库停止
在启动数据库的命令工具中输入 exit,然后回车,退出 DM 数据库。关闭方式类似 Windows
1.1.2 Windows
菜单方式
-
数据库启动
安装 DM 数据库后(默认情况下安装成功后 DM 服务会自动启动),在 Windows 的开始菜单选项中选择菜单项中的
DM 服务查看器可以启动 DM 数据库点击 DM 服务查看器选项后会出现相应的服务名及服务状态
-
数据库停止
在 Windows 的开始->程序菜单中选择达梦数据库->DM 服务查看器,在弹出的界面中,选中要关闭的数据库,点击鼠标右键,在菜单栏中选择停止
服务方式
-
数据库启动
Windows 的服务中会自动增加一项和该实例名对应的服务,打开 Windows 的管理工具,选择服务,打开 Windows 服务控制台,如下图所示,选择“DmServiceDMSERVER”,用鼠标在工具栏点击启动按钮或者点击鼠标右键,在菜单栏中选择启动,启动 DM 数据库
2. 数据库停止
在菜单栏中选择停止,关闭 DM 数据库

命令行方式
-
数据库启动
在命令工具中执行命令进入 DM 服务器的目录,再执行 DMSERVER 的命令启动 DM 数据库,参数选项同 Linux
-
数据库停止
在启动数据库的命令工具中输入 exit,然后回车,关闭 DM 数据库
1.2License检查
DM 数据库在启动时都会进行 LICENSE 检查
LICENSE 内容包括许可证版本号、LICENSE 文件序列号、服务器版本类型、服务器发布类型、服务器版本号、有效日期等。可通过查看V$LICENSE 了解所安装的 DM 数据库的 LICENSE 信息。
LICENSE 文件为 dm.key
注: LICENSE 过期会导致 DM 服务器会强制退出
1.3 数据库状态和模式
DM 数据库包含以下几种状态:
- 配置状态(
MOUNT)
不允许访问数据库对象,只能进行控制文件维护、归档配置、数据库模式修改等操作; - 打开状态(
OPEN)
不能进行控制文件维护、归档配置等操作,可以访问数据库对象,对外提供正常的数据库服务; - 挂起状态(
SUSPEND):
与 OPEN 状态的唯一区别就是,限制磁盘写入功能;一旦修改了数据页,触发 REDO 日志、数据页刷盘,当前用户将被挂起。
OPEN 状态与 MOUNT 和 SUSPEND 能相互转换,但是 MOUNT 和 SUSPEND 之间不能相互转换。
DM 数据库包含以下几种模式:
- 普通模式(
NORMAL):
用户可以正常访问数据库,操作没有限制; - 主库模式(
PRIMARY):
用户可以正常访问数据库,所有对数据库对象的修改强制生成 REDO 日志,在归档有效时,发送 REDO 日志到备库; - 备库模式(
STANDBY):
接收主库发送过来的 REDO 日志并重做。数据对用户只读。
三种模式只能在 MOUNT 状态下设置,模式之间可以相互转换。
对于新初始化的库,首次启动不允许使用 mount 方式,需要先正常启动并正常退出,然后才允许 mount 方式启动。
一般情况下,数据库为 NORMAL 模式,如果不指定 MOUNT 状态启动,则自动启动到 OPEN 状态。
当数据库模式为非 NORMAL 模式(PRIMARY、STANDBY 模式),无论是否指定启动状态,服务器启动时自动启动到 MOUNT 状态
在需要对数据库配置时(如配置数据守护),服务器需要指定 MOUNT 状态启动
2.管理模式的对象空间
2.1 设置存储参数
2.1.1 普通表和索引
对于普通表和索引,DM8提供了以下存储参数:
-
初始簇数目 INITIAL:指建立表时分配的簇个数,必须为整数,最小值为 1,最大值为 256
- 默认值为1
-
下次分配簇数目 NEXT:指当表空间不够时,从数据文件中分配的簇个数,必须为整数,最小值为 1,最大值为 256
- 默认值为1
-
最小保留簇数目 MINEXTENTS:当删除表中的记录后,如果表使用的簇数目小于这个值,就不再释放表空间,必须为整数,最小值为 1,最大值为 256
- 默认值为 1
-
填充比例 FILLFACTOR:指定插入数据时数据页的充满程度,取值范围从 0 到 100。
- 默认值为 0,等价于 100,表示全满填充,未充满的空间可供页内的数据更新时使用
-
表空间名:在指定的表空间上建表或索引,表空间必须已存在
- 默认为用户缺省的表空间
例子:表 PERSON 建立在表空间 TS_PERSON 中,初始簇大小为 5,最小保留簇数目为 5,下次分配簇数目为 2,填充比例为 85
CREATE TABLE PERSON.PERSON
( PERSONID INT IDENTITY(1,1) CLUSTER PRIMARY KEY,
SEX CHAR(1) NOT NULL,
NAME VARCHAR(50) NOT NULL,
EMAIL VARCHAR(50),
PHONE VARCHAR(25))
STORAGE
( INITIAL 5,
MINEXTENTS 5,
NEXT 2,
ON TS_PERSON,
FILLFACTOR 85);
2.1.2 堆表
对于堆表可以指定并发分支 BRANCH 和非并发分支 NOBRANCH 的数目
取值范围是 (1=<BRANCH <= 64,1<=NOBRANCH<=64)
堆表最多支持 128 个链表
例 下例创建的 LIST_TABLE 表有并发分支 2 个,非并发分支 4 个。
CREATE TABLE LIST_TABLE(C1 INT) STORAGE(BRANCH (2,4)
2.1.3 HUGE表
HUGE表主要用于OLAP型业务

HUGE 表需要建立在混合表空间上。建立 HUGE 表如果不使用默认的混合表空间 MAIN,则必须要先创建一个混合表空间
混合表空间创建
CREATE TABLESPACE TS1 DATAFILE 'd:\dmdbms\data\DAMENG\TS1\TS1.dbf' SIZE 128 WITH HUGE PATH 'd:\dmdbms\data\DAMENG\TS1\HUGE1';
对于 HUGE 表可以指定如下参数:
-
区大小SECTION(一个区的数据行数)。 区大小可以通过设置表的存储属性来指定,区的大小必须是 2 的 n 次方,如果不是则向上对齐
- 取值范围:1024 行~1024*1024 行。默认值为 65536 行
-
是否记录区统计信息,即在修改时是否做数据的统计
- 默认做数据统计
-
所属的表空间:不指定则存储于默认表空间 MAIN 中
- HUGE 表指定的表空间只能是混合表空间
-
文件大小==FILESIZE:==创建 HUGE 表时可以指定单个文件的大小,
- 取值范围为 16M~1024*1024M。不指定则默认为 64M
- 文件大小必须是 2 的 n 次方,如果不是则向上对齐
-
日志属性:
- 1)LOG NONE:不做镜像
- 2)LOG LAST:做部分镜像
- 3)LOG ALL:全部做镜像
例子:
STUDENT 表的区大小为 65536 行,文件大小为 64M,指定所在的混合表空间为 TS1,做完整镜像,S_comment 列指定的区大小为不做统计信息,其它列(默认)都做统计信息。
CREATE HUGE TABLE STUDENT
(
S_NO INT,
S_CLASS VARCHAR,
S_COMMENT VARCHAR(79)
STORAGE(STAT NONE)
)STORAGE(SECTION(65536) , FILESIZE(64), ON TS1) LOG ALL;
2.2 多余空间回收
DM8 中表和索引对象的所占用的簇要么是全满的状态要么是半满的状态,空闲的簇会被系统自动回收。
2.3 用户和表的空间限制
2.3.1 用户空间的限制
用户占用的空间是该用户下所有对象的所占用空间的总和;对于用户能够使用的表空间大小限制能够通过设置表空间配置进行限制
例如:
指定TEST用户可以在TEST_TBS表空间使用的大小为50M
CREATE TABLESPACE TEST_TBS DATAFILE 'TEST_TBS.DBF' SIZE 128;
CREATE USER TEST IDENTIFIED BY TEST_pw_123 QUOTA 50M ON TEST_TBS;
修改TEST用户可以使用表空间大小为200M
ALTER USER TEST QUOTA 200M ON TEST_TBS;
2.3.2 表对象的空间限制
表对象占用的空间是其上所有数据和索引占用空间的总和,可以限制表对象使用的磁盘空间大小
如创建表 TEST 时可指定该表对象可使用的最大磁盘空间为 50M
CREATE TABLE TEST.TB_TEST1 (ID INT, NAME VARCHAR) DISKSPACE LIMIT 50;
修改表 TEST 的磁盘空间限制为 20M
ALTER TABLE TEST.TB_TEST1 MODIFY DISKSPACE LIMIT 20;
2.4 查看模式对象的空间使用
2.4.1 查看用户占用的空间
可以使用系统函数 USER_USED_SPACE 得到用户占用空间的大小
函数参数为用户名,返回值为占用的页的数目
SELECT USER_USED_SPACE('TEST'

最低0.47元/天 解锁文章
1461

被折叠的 条评论
为什么被折叠?



