达梦数据库体系学习分享


          随着IT科技的发展,数据逐渐成为社会和企业的核心资产,面对纷繁复杂的社会环境,国产化数据库越来越流行,达梦作为国产数据库的佼佼者,深受传统行业和广大金融客户的喜爱。它有着40年深厚的技术沉淀,相信在不久的将来,它将在国产化进程中国脱颖而出,成为国货代表,期待那一天的到来。 今日将个人的学习心得成文发布共享,希望能给你带来一点帮助。   目录 1、达梦数据库软件安装 2、初始化数据库实例 3、归档配置 4、修改参数 5、表空间、用户、角色、权限管理 6、备份与还原 7、作业管理 8、安装配置ODBC     一、DM数据库软件安装 01:新建文件夹(root),下述文件夹在考试时可能不用全部使用 mkdir /dm8 --数据库软件安装目录 mkdir /dmdata --实例安装目录 mkdir /dmarch --归档日志存放目录 mkdir /dmbak --备份文件存放目录   02: 新建组及用户 DM 数据库不应该使用 root 用户安装和维护。需要在安装之前为 DM 数据库创建一个专用的系统用户 (dmdba) 和用户组 (dinstall)。 执行以下命令,新建用户组 dinstall: groupadd dinstall 执行以下命令,新建用户 dmdba: useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba 执行以下命令,修改 dmdba 用户密码: passwd dmdba 输入密码并确认。   03:修改属主(root) chown dmdba:dinstall /dm8 chown dmdba:dinstall /dmdata chown dmdba:dinstall /dmarch chown dmdba:dinstall /dmbak   04:用户资源限制(使用root)--注:考试时如不能copy命令就不用配置 执行以下命令,修改 dmdba 用户资源限制: vim /etc/security/limits.conf 文件末尾添加如下内容: dmdba soft core unlimited dmdba hard core unlimited dmdba soft nofile 65536 dmdba hard nofile 65536 dmdba soft nproc 65536 dmdba hard nproc 65536 dmdba soft stack 65536 dmdba hard stack 65536   05:用户环境变量 执行以下命令,修改 dmdba 用户环境变量: vi /home/dmdba/.bash_profile 文件末尾添加如下内容:(安装路径有变化的话需进行修改/dm8) export DM_HOME=/dm8 export PATH=$PATH:$DM_HOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin   06:安装数据库(脚本) 1、安装数据库软件 将安装包上传到服务器后使用 root 用户挂载 iso 安装包文件到 /mnt 目录下(使用root): --切换到程序安装包所在目录 cd /opt --挂载iso,主要安装包文件名可能不同 mount -oloop dm8_20200930_x86_rh6_64_ent_8.1.1.134.iso /mnt   5.选择软件安装目录,为之前规划的目录 /dm8。 6.确认安装目录。 7.确认安装概要。 注意 初始化参数中除了 path 参数必须指定,其它参数都有默认值,如果需求与默认值不同,初始化的时候请指定需要的值。因为部分参数初始化后是无法修改的例如:page_size(页大小),charset(字符集),case_sensitive(大小写敏感)等。更多参数./dminit help 查看,是否无法修改的参数可以查询 v$dm_ini 视图,para_type=’READ ONLY’ 表示无法修改。 2、实例注册与启动 以系统服务方式启动实例,DM 提供脚本将数据库实例注册为操作系统服务。 root 用户下切换到 /dm8/script/root/: cd /dm8/script/root/ 注册服务:(DAMENG为实例名称) ./dm_service_installer.sh -t dmserver -p dmserver -dm_ini /dmdata/DAMENG/dm.ini tips: -t 指服务类型是 dmserver;-p 为服务名的后缀;-dm_ini 为实例的 dm.ini 文件的绝对路径。 启动实例: systemctl start DmServicedmserver   扩展: systemctl stop DmServicedmserver systemctl restart DmServicedmserver systemctl status DmServicedmserver   建议 每个实例都建议注册为操作系统服务,这样不仅方便启动和关闭实例,而且注册为服务后,在服务器重启时,实例将随系统启动而自动启动。   3、连接数据库 执行以下命令,切换到 /dm8/bin 目录:   cd /dm8/bin   执行以下命令,使用 disql 工具连接数据库:   ./disql SYSDBA/SYSDBA@localhost:5236   登录成功,如下图所示: 至此,数据库归档界面配置结束。   四、修改参数   readonly:只读参数,只能通过dm.ini方式修改 需要重启才能生效。不能联机修改 sys:动态参数(系统级)参数 session:动态(会话级)参数 in-file:静态参数,可以在数据库运行时修改,只能修改配置文件中的值,不能修改内存中的值,。需要重启生效。   示例参数
参数名称 参数含义 参数默认值 参数建议
BUFFER 系统缓冲区大小,以 MB 为单位 100 系统物理内存的 60%~80%
BUFFER_POOLS BUFFER 系统分区数 19 物理内存 64 GB 以下 53 GB 以上
MAX_SESSIONS 系统允许同时连接的最大数 100 1000
HJ_BUF_SIZE 单个 HASH 连接操作符的数据总缓存大小,以 MB 为单位 50 500
DICT_BUF_SIZE 字典缓冲区大小,以 MB 为单位 5 100
TASK_THREADS 任务线程个数 4 CPU 核数
修改方式: 方式一:参数设置函数 使用函数SP_SET_PARA_VALUE进行参数设置 SP_SET_PARA_VALUE:修改整型参数。 SP_SET_PARA_DOUBLE_VALUE:修改浮点型参数: SP_SET_PARA_STRING_VALUE:修改字符型参数: 参数值解释: 首位标识: memory:0更新内存中的值,重启后失效 both:1为内存和文件 spfile :2为配置文件,需重启生效 示例: SP_SET_PARA_VALUE (0,'HJ_BUF_GLOBAL_SIZE',5000); SP_SET_PARA_VALUE (1,'HJ_BUF_SIZE',500); SP_SET_PARA_VALUE (2,'MAX_SESSIONS',1000); SP_SET_PARA_VALUE (2,'MAX_SESSION_STATEMENT',20000); SP_SET_PARA_VALUE (2,'CACHE_POOL_SIZE',200); SP_SET_PARA_VALUE (2,'DICT_BUF_SIZE',100);   方式二:alter方式 alter system set 参数 memory|spfile|both(三种指定方式) 示例: alter system set 'PWD_POLICY'=31 memory alter system set 'PWD_POLICY'=31 spfile alter system set 'PWD_POLICY'=31 both   五、创建表空间、用户、角色、权限管理   ***参考手册《DM8_SQL语言使用手册.pdf》安装完dm后在dm8/doc下面***   (一)脚本方式:   1、表空间(使用disql登录数据库执行,32后面没有单位,默认MB,但不能写成32M)   --创建表空间 create tablespace TS1 datafile '/dmdata/zttest01.dbf' size 32; --修改表空间 --重命名表空间 ALTER TABLESPACE TS1 RENAME TO TS2; --修改增长方式 ALTER TABLESPACE TS1 DATAFILE 'd:\TS1.dbf' AUTOEXTEND ON NEXT 10 MAXSIZE 1000; --新增数据文件 ALTER TABLESPACE TS1 ADD DATAFILE 'd:\TS1_1.dbf' SIZE 128; --调整数据文件大小 ALTER TABLESPACE TS1 RESIZE DATAFILE 'd:\TS1.dbf' TO 200; --变更表空间数据文件位置及名称 ALTER TABLESPACE TS1 OFFLINE; ALTER TABLESPACE TS1 RENAME DATAFILE 'd:\TS1.dbf' TO 'e:\TS1_0.dbf'; ALTER TABLESPACE TS1 ONLINE; --删除表空间 drop tablespace TS1;   2、用户   --创建用户 CREATE USER Ztuser IDENTIFIED BY password123456; --授权 grant resource,select ,update,delete,insert on sunyf to Ztuser; --回收权限 revoke select on sunyf from Ztuser; --删除用户 drop user Ztuser cascade; 3、角色 --创建角色 create role ztrole; --给角色授权 grant select on sunyf to ztrole; grant resource,dba on sunyf to ztrole; --将role授予用户 grant ztrole to Ztuser; --角色禁用与启用 sp_set_role('ztrole',0) --角色禁用 sp_set_role('ZTROLE',1) 角色启用 --删除用户和角色 drop role ztrole 删除角色   (二)界面方式:   参考链接:https://eco.dameng.com/docs/zh-cn/start/dm-user-tablespace.html   六、创建表、索引、视图、批量插入数据、约束 1.表 --创建表 --参考语句 CREATE TABLE PRODUCTION.PRODUCT_REVIEW ( PRODUCT_REVIEWID INT IDENTITY(1,1), PRODUCTID INT NOT NULL, NAME VARCHAR(50) NOT NULL, REVIEWDATE DATE NOT NULL, EMAIL VARCHAR(50) NOT NULL, RATING INT NOT NULL, COMMENTS TEXT, PRIMARY KEY(PRODUCT_REVIEWID), FOREIGN KEY(PRODUCTID) REFERENCES PRODUCTION.PRODUCT(PRODUCTID), CHECK(RATING IN(1,2,3,4,5)) ); 注:外键约束需确保PRODUCTION.PRODUCT表存在方可。 示例: create table sunyf(id int,name varchar(32)); 2、批量插入数据

方案二:脚本方式(脱机) 使用 dmrman 工具可以脱机备份与还原、恢复(待补充) dmrman在安装路径bin下   1、脱机备份 库备份(冷备) RMAN> backup database '/dm8/data/DM/dm.ini'; 2、脱机恢复 (1)还原数据库完整备份
  • 01数据库还原
restore database '/dmdata/zt/dm.ini' from backupset '/dmdata/zt/bak/DB_zt_FULL_2022_04_27_16_41_52'

  感谢与你一起学习达梦数据库,支持国产,与达梦一起成长!