写点什么

“程”风破浪的开发者|国产数据库 --- 达梦应用技巧及使用案例

作者:向阳逐梦
  • 2022-10-20
    四川
  • 本文字数:3936 字

    阅读完需:约 13 分钟

“程”风破浪的开发者|国产数据库---达梦应用技巧及使用案例
  • 操作系统:Redhat 7

  • 实验环境:VMware Workstation 15 Pro

  • 数据库:DM8 企业版

达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称 DM。达梦数据库管理系统的最新版本是 8.0 版本,简称 DM8。

一、DM8 的安装

第一步:DM8 数据库的.iso 镜像文件上传到 redhat 7 操作系统的 /opt/dm8.iso 目录下

[root@localhost ~]# ll /opt总用量 660224-rwxrw-rw-. 1 root root 676069376 8月  20 2020 dm8_setup_rh7_64_ent_8.1.1.88_20200629.iso[root@localhost ~]# mv /opt/dm8_setup_rh7_64_ent_8.1.1.88_20200629.iso /opt/dm8.iso[root@localhost ~]# ll /opt总用量 660224-rwxrw-rw-. 1 root root 676069376 8月  20 2020 dm8.iso
复制代码

注:修改文件名所用到的命令是 mv

第二步:创建挂载目录

mkdir /mnt/dm8

[root@localhost ~]# mkdir /mnt/dm8
复制代码

第三步:挂载

mount /opt/dm8.iso /mnt/dm8

[root@localhost ~]# mount /opt/dm8.iso /mnt/dm8mount: /dev/loop0 写保护,将以只读方式挂载
复制代码

第四步:创建 DM 用户组和个人用户 dinstall、dmdba,并将 dmdba 添加到 dinstall 中

groupadd dinstall

[root@localhost ~]# groupadd dinstall
复制代码

useradd -g dinstall dmdba

[root@localhost ~]# useradd -g dinstall dmdba

第五步:进入被挂载目录 /mnt/dm8 ,执行 ./DMInstall.bin,解压完成后将会弹出图形化安装界面

[root@localhost dm8]# ./DMInstall.bin 解压安装程序..........
复制代码

1、点击确定

(因为我之前在中标麒麟和 centos 7 都不会弹出图形化安装界面,需要进行如下操作 )

注意:此时会启动图形化界面失败,需要进行如下操作:

1、在 root 用户下输入 echo $DISPLAY ,将其结果:0 复制;

2、执行 xhost +,检查 xclock 是否安装,没有安装则 yum install -y xclock;

3、切换到 dmdba,执行 export DISPLAY=:0,也可直接添加到环境变量中 vim .bash_profile,完成后刷新环境变量 source .bash_profile;

  • 点击下一步

  • 勾选接受,点击下一步

  • 有条件的可以去达梦购买安全版体验安全特性,也可以不选择 key 文件直接下一步

  • 默认典型安装,下一步

第六步:创建 DM 安装目录/dm8 将其拥有者改为指定的用户 dmdba 和组 dinstall,并赋予改目录权限为 755,然后在图形化界面选择该目录为数据库的安装目录

[root@localhost ~]# chown dmdba:dinstall /dm8[root@localhost ~]# chmod 755 /dm8
复制代码
  • 选择我们之前创建的/dm8 目录,点击下一步,在弹出的窗口点击确定

  • 确认安装信息后点击安装

  • 安装成功,点击完成

  • 这里我们不勾选初始化数据库,点击完成,至此,dm8 数据库就安装完成了

一些常用的脚本启动工具:

1、 ./DMInstall.bin:可执行的安装文件

2、./uninstall.sh:安装目录中的软件卸载脚本

3、./dbca.sh:安装目录的 tool 目录下,数据库配置助手:创建、删除数据库实例,注册、删除数据库服务

4、./dmservice.sh:安装目录的 tool 目录下,DM 服务查看器:启动和停止数据库服务

5、./manager:DM 管理工具

6、./console:控制台工具(参数,备份与还原,系统信息)

7、./nca.sh:网络配置助手,用于 disql 连接数据库的 ip 对应别名,配置文件在/etc/dm_svc.conf,disql 用法格式:disql

用户名/密码 @别名:端口

8、./disql:安装目录的 bin 目录下;用于连接数据库,用法:./disql

用户名/密码 @localhost:端口号

9、./dts:数据库迁移工具

10、./dminit:命令行创建数据库实例

11、./dmserver:用于启动命令行创建的数据库实例,exit 或 Ctrl+C 终止服务

2、命令行安装

前五步同上;在命令行输入 ./DMInstall.bin -i,根据提示一步一步进行安装操作

二、初始化数据库

1、图形化创建 DM 数据库

第一步:执行./dbca.sh 数据库配置助手脚本进行配置

第二步:创建数据库实例模板

第三步:指定数据库目录

第四步:设置数据库名、实例名、端口号标识

第五步:初始化参数,簇大小只能是 16 页、32 页或 64 页,默认 16 页;页大小可以为 4k、8k、16k 或 32k,默认 8k;日志文件大小 64-2048,默认是 64M

第六步:设置密码和创建示例库

2、命令行创建 DM 数据库

工具:dminit(安装目录的 bin 目录下)

例子:dminit path=/dm8/data db_name=DMTEST instance_name=DMTESTSERVER port_num=5237

三、注册数据库服务

该功能服务于用 dminit 工具创建的数据库实例,目的是为了 DM 服务查看器统一管理 DM 数据库实例

1、图形化界面注册

打开 DM 数据库配置工具./dbca.sh;选择注册数据库服务

2、命令行界面注册

在 DM 安装目录下 script/root/dm_service_installer.sh 执行脚本文件并指定参数

例子:./dm_service_installer.sh -t dmserver -p DMTESTSERVER -dm_ini /dm8/data/DMTEST/dm.ini

四、启动数据库服务

DM 非 root 用户启动数据库服务的两种方式:

1、/dm8/bin/DmServiceDMSERVER start

问题:在图形化界面显示停止状态,点启动会报错

解答:此方式不会更新 DM 服务查看器中服务状态


2、dmserver /dm8/data/DAMENG/dm.ini

DMroot 用户启动数据库服务的两种方式:

  • 图形化界面启动 ./dmservice.sh

  • 命令行启动 systemctl start dmservice.sh

五、数据库状态

MOUNT:配置状态,在该状态下进行重做日志文件的迁移

OPEN:打开状态

SUSPEND:挂起状态

命令行修改数据库状态:alter database 状态

六、表空间

五个默认创建的表空间:SYSTEM TEMP ROLL MAIN HMAIN 表空间状态

脱机 offline:不能查看表空间内容;可以将数据文件进行迁移(修改数据文件路径)

联机 online:对表空间数据文件进行相关操作

SYSTEM、ROLL 和 TEMP 表空间不允许脱机。当表空间有未提交事务时,不能脱机联机状态下可以对表空间进行重命名;用户自定义表空间可以重命名,SYSTEM、ROLL、TEMP、MAIN 和 HMAIN 表空间不支持重命名操作。

创建表空间:create tablespace XXX datafile ‘xxx/xxx/xxx.dbf’ size xx;

删除表空间:drop tablespace XXX;

修改表空间名:alter tablespace XXX rename to YYY;

修改表空间脱机状态:alter tablespace XXX offline;

修改表空间联机状态:alter tablespace XXXonline;

查询所有表空间的信息:select * from v$tablespace

修改表空间数据文件大小:alter tablespace XXX resize datafile ‘xxx/xxx/xxx.dbf’ to aa;(注意:不能将数据文件的大小变小,例如:256M.dbf==>128M.dbf)

修改表空间数据文件路径:alter tablespace XXX rename datafile ‘xxx/xxx/xxx.dbf’ to ‘yyy/yyy/yyy.dbf’;

一个表空间可以包含多个数据文件,一个数据文件只能归属一个表空间。

七、联机重做日志文件

将数据库切换到 MOUNT 状态下,然后可以对重做日志文件进行路径修改。

第一步:在数据库管理工具选择数据库,右键选择管理服务器,点击系统管理,可对数据库状态进行转换

第二步:在管理服务器选择日志文件(注意:如果用 root 用户创建的文件夹,则需要给登入数据库的用户对该文件夹的权限或者直接修改文件夹的所属)

八、数据文件

层次关系:

数据库==》表空间==》数据文件==》段==》簇==》页

添加表空间数据文件:

alter tablespace XXX add datefile ‘XXX/XXX/XXX.dbf’ size xx;

扩展数据文件大小:

alter tablespace XXX resize datafile ‘XXX/XXX/XXX.dbf’ to yy;

自动扩展数据文件大小:

1、在添加表空间数据文件时指定参数 autoextend on 或者 autoextend off

2、在创建表空间时指定可扩展数据文件的大小范围

autoextend on next xx maxsize xx;

修改数据文件路径:(此操作表空间必须处于脱机状态)

alter tablespace XXX rename datafile ‘XXX/XXX/XXX.dbf’ to ‘YYY/YYY/YYY.dbf’;

九、用户、角色和权限的管理

权限、角色、用户的关系:

  • 权限==》用户

    权限==》角色==》用户

用户与模式的关系:

  • 归属关系,创建用户的同时会在模式下创建同名文件

权限分类:

系统权限:全局,所有表的操作

对象权限:局部,对具体的表操作

授予权限:grant

例子:

grant create table to user;(直接赋予权限)

grant resource to user;(赋予角色)

回收权限:revoke

例子:

revoke create table form user;(直接回收权限)

revoke resource from user;(回收角色)

用户的锁定与解锁:lock unlock

例子:

alter user testuser account lock;(锁定)

alter user testuser account unlock;(解锁)

十、事务的提交与回退


  • commint:对表进行的操作,需要提交

  • rollback:回滚,在数据库中发生了数据修改的操作,但是没有 commint,可以使用 rollback 恢复数据到修改之前的状态

十一、数据库文本导入

首先用(ROOT 用户登入)DM./dts 数据迁移工具进行数据库表迁移成 sql 文件【DM==》SQL】登入需要导入表数据的用户下执行命令 start /XXX/XXX/XXX.sql 例子:start /dm8/data/DAMENG/backup/dmhr.sql

补充:视图可以用来保护数据,将用户不敏感的数据保存在视图中,而敏感信息则保存在表中,只提供视图给查询用户即可;简单的视图可以进行增加、删除、修改操作,而复杂的函数视图则不能进行以上操作;

十二、数据库备份与还原

物理备份与还原:脱机备份(冷备)


  • 工具:./console:DM 控制台工具==》备份还原==》新建备份

  • 流程: 准备工作:首先需要关闭备份和还原的数据库服务

第一步:点击新建备份;选择需要备份的数据库文件 dm.ini;自动在 bak 目录下生成备份文件

第二步:点击还原;选择需要还原的数据库目录下的数据库文件 dm.ini;如果提示已存在,则勾选覆盖数据库文件;

第三步:点击恢复;选择需要恢复的数据库目录下的数据库文件 dm.ini;

第四步:点击更新数据库魔数;选择需要更新的数据库目录下的数据库文件 dm.ini;

总结:数据库备份还原成功;需要注意一点:备份还原后的数据库口令已不是本身的口令,而是备份数据库的口令;

逻辑备份与还原:导入与导出

方式:图形化管理工具和命令行导出(dexp)导入(dimp)命令

步骤:

第一步:在 DM 图形化管理工具选择需要备份导出的数据库

第二步:指定导出文件目录及文件

第三步:在 DM 图形化管理工具选择需要还原导入的数据库

第四步:选择导入文件所在的目录及文件

第五步:逻辑备份还原操作完成


发布于: 2022-10-20阅读数: 37
用户头像

向阳逐梦

关注

人生享受编程,编程造就人生! 2022-06-01 加入

某公司芯片测试工程师,嵌入式开发工程师,InfoQ签约作者,阿里云星级博主,华为云·云享专家。座右铭:向着太阳,追逐梦想!

评论

发布
暂无评论
“程”风破浪的开发者|国产数据库---达梦应用技巧及使用案例_数据库_向阳逐梦_InfoQ写作社区