达梦数据库的使用与维护

本文是从安装达梦库到使用维护的过程。

1.达梦库的安装

1.1收集软硬件信息

我是用的是本地虚拟机,操作系统是中标麒麟6.0,数据库版本为dm7_setup_rh6_64_ent_7.6.0.197_20190917。安装前需确认下机器的cpu,系统版本,空间存储等等是否跟安装包匹配,对于系统而言需确认是否有glibc包,避免版本问题导致出错。
在这里插入图片描述
在这里插入图片描述

1.2 规划安装路径和用户

装库时不建议直接使用root用户,这里创建了dmdba作为安装用户
在这里插入图片描述
创建dm7为安装路径,并授权给dmdba
在这里插入图片描述

1.3安装软件

首先挂载准备好的安装包,安装文件是DMInstall.bin,可以选择图形化安装或静默安装,图形化几乎是默认下一步即可,此处我选择静默安装。
此处记得一定要切换为之前建好的安装用户dmdba!!!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时会提示:可打开文件数过少,建议至少设置为65536或更多。
因为我这里是单机操作,可不修改,如果是集群或生产环境建议更改为65536。key文件此处可先跳过。
接下来就是各项基础参数设置,选择时区,选择安装类型和目录。
在这里插入图片描述
安装结束可以看到上面有提示以root执行/dm7/script/root/root_installer.sh,新建终端,执行即可。
在这里插入图片描述
至此安装完毕,回到/dm7下可以看到相关配置文件。
在这里插入图片描述

1.4 卸载软件

由于此时只安装了软件并未创建数据库,所以直接执行/dm7/uninstall.sh即可。若已创建数据库,则需先停止库服务,再卸载软件。

1.5创建数据库

一个数据库可以创建多个实例,而达梦则以端口号来区分各个实例,默认是5236。

1.5.1 dbca.sh

执行tool下的dbca.sh以启动图形化界面在这里插入图片描述
此处可设置数据库的名字端口信息
在这里插入图片描述
此处可看到数据文件、控制文件等位置
在这里插入图片描述
注意此处内容设置错误不能修改只能重新初始化实例
在这里插入图片描述

  • 字符集:gbk,utf-8
  • 时区:默认东八区
  • page大小(数据块,存放数据的最小逻辑单位):默认8k,如果有大字段(clob,blob等)建议设置32k
  • 簇(表空间默认申请的最小逻辑单位):默认16,大字段建议32

最后确认一遍自己设置的数据库信息是否有误
在这里插入图片描述
确认无误点完成,此时出现
在这里插入图片描述
同之前的操作新打开终端执行脚本即可
在这里插入图片描述
创建成功
在这里插入图片描述
连接disql即可查看本库信息
在这里插入图片描述

1.5.2 命令行

利用命令行创建注册语句,此方法需注意默认不会把数据库实例注册到OS,还需要手动注册数据库服务到OS。此处不再演示。
cd /dm7/bin
./dminit path=/dm7/data db_name=DM01 instance_name=TEST1 port_num=5237
利用脚本(root用户执行脚本注册服务到os)
/dm7/script/root/dm_service_installer.sh -t dmserver -p TEST1 -i /dm7/data/DM01/dm.ini

2 数据库实例的管理

2.1 实例的状态

达梦数据库有四种状态:shutdown,mount(配置模式),open(打开),suspend(挂起)
查看数据库状态:
SQL> select status$ from v$instance;
在这里插入图片描述
修改数据库状态:
在这里插入图片描述

2.2 启动实例

cd /etc/rc.d/init.d
service DmServiceTEST1 start 启动服务
service DmServiceTEST1 restart 重启服务
service DmServiceTEST1 stop 停止服务
service DmServiceTEST1 status 查看服务状态

3 表空间和用户

3.1 查看表空间

打开达梦管理工具(tool下的manager)
在这里插入图片描述
可以看到当前存在的五个(SYSTEM、ROLL、TEMP、MAIN、大表空间 )系统表空间,其中DMHR为建库时选择创建的实示例库可忽略。

在这里插入图片描述
现在我们来使用管理工具新创建一个表空间TBS1
在这里插入图片描述
注意添加数据文件的路径,大小,是否自动扩充已以及扩充上限是多少。
在这里插入图片描述
接下来用disql对刚创建的表空间TBS1添加一个数据文件
SQL> alter tablespace TBS1 add datafile ‘/dm7/data/DAMENG/tbs1_02.dbf’ size 32 autoextend on next 1 maxsize 50;
通过管理工具可以看到两个数据文件创建成功
在这里插入图片描述

3.2 用户

通过管理工具查看本库的用户,系统默认的管理员用户为SYSDBA
在这里插入图片描述
此处我们新建一个用户USER1,密码设置dameng123。表空间栏默认MAIN,此处我选定刚才创建的TBS1
在这里插入图片描述
资源限制这一栏,注意可以设置登陆失败次数和失败以后锁定时间
在这里插入图片描述

4 表

创建一个简单的包含学号、姓名、性别的学员表,注意表字段类型,长度的设置,并添加注释,对表进行增加列、修改列、删除列等操作均在此处,如图所示
在这里插入图片描述
建表语句如下:
create table “USER1”.“STU_INFO”
(
“STU_ID” CHAR(3),
“STU_NAME” VARCHAR2(50),
“STU_SEX” CHAR(1)
)
storage(initial 1, next 1, minextents 1, fillfactor 0)
;

comment on table “USER1”.“STU_INFO” is ‘学生信息表’;

comment on column “USER1”.“STU_INFO”.“STU_ID” is ‘学号’;

comment on column “USER1”.“STU_INFO”.“STU_NAME” is ‘姓名’;

comment on column “USER1”.“STU_INFO”.“STU_SEX” is ‘性别’;

5 视图

把刚才创建的学员表封装成视图,显示列为汉字
CREATE VIEW “USER1”.“V_STU”
AS
SELECT
STU_ID “学号”,
STU_NAME “姓名”,
STU_SEX “性别”
FROM
USER1.STU_INFO;
在这里插入图片描述

6 同义词

创建STU_INFO 表的同义词AAA
CREATE SYNONYM “USER1”.“AAA” FOR “USER1”.“STU_INFO”;
直接查询AAA会报错说无效的表或视图名,因为此处直接在USER1内创建同义词是属于普通同义词,仅限本用户使用,SYSDBA不可以查询,可以切换用户查询,或直接创建公共同义词供所有用户使用。

在这里插入图片描述

7.索引

为了加快表的查询,在对数据库做DML操作的时候,数据库会自动维护索引。索引是一棵倒置的多叉树,使用索引就是对索引树进行遍历。
给学生表STU_INFO的学号列STU_ID创建索引
需注意建完索引后最好重新收集一下统计信息,以确保新建的索引生效,可通过查看执行计划来确认。

在这里插入图片描述

8 数据库的备份与还原

8.1 备份

为了安全起见数据库需要定期做备份,达梦库支持冷备和热备两种方式。由于冷备需要停止数据库服务,因此备份过程容易丢失数据,所以相比之下更推荐热备的方式。
(1)确认数据库服务和dmap服务是打开的
/etc/rc.d/init.d/DmAPService start
/etc/rc.d/init.d/DmServiceDMSERVER start

在这里插入图片描述
(2) 开启归档
查看是否开启归档:
SQL>select arch_mode from v$database;
在这里插入图片描述
右键管理服务器,切换数据库为mount状态(或者用语句切换)
在这里插入图片描述
添加归档日志文件的路径,并切换为归档模式
在这里插入图片描述
注意查看此时数据库mount状态下是无法对表视图进行操作的
在这里插入图片描述
切换数据库为open状态,再次查看是否开启归档
在这里插入图片描述
(3)创建备份
完全备份:backup database full backupset ‘/dm7/backup/full_bak_1028’;
在这里插入图片描述
在备份目录下也可以看到备份文件
在这里插入图片描述
数据库备份无比重要,可定期做全量备份,不方便的话也可定期做增量备份:backup database increment backupset ‘/dm7/backup/incr_bak_1028’;

8.2 还原

现将刚才创建的数据文件损坏,并用刚才的全量备份对数据库进行还原
在这里插入图片描述
重启数据库,可以看到数据库已不正常,处于mount状态
手动open后,查看表空间状态,可以看到tbs1_01为离线状态
在这里插入图片描述
下面利用备份文件进行恢复
在这里插入图片描述
重新使tbs1在线,alter tablespace tbs1 online;
在这里插入图片描述
数据文件目录下也重新生成了数据文件
在这里插入图片描述

9 作业

在生产环境中,我们会有定期备份数据库或定期收集索引统计信息等需求,作业就可以定期帮助我们执行某项任务。

9.1 代理环境

打开管理工具,连接本地库,点创建代理环境
在这里插入图片描述

9.2 创建作业

环境创建好后,右键新建作业,选择作业类型,此处我选择的是备份数据库
在这里插入图片描述

9.3 设置调度

现在对创建好的作业设置调度,每周日23点备份一次数据库
在这里插入图片描述
创建完成点确认,报错
在这里插入图片描述
这里我发现作业的调度名必须和该作业名一致,不能单独起名
在这里插入图片描述
在这里插入图片描述
至此作业创建成功,日后可通过
select * from sysjob.sysjobs; 按时巡检作业是否正常执行

10 存储过程

针对STU_INFO表建立两个简单的存储过程。
STU_INFO表,对表进行更新或插入操作,此处需要注意单引号的作用:call DDD(004,‘参数’,1)和call DDD(‘004’,‘参数’,‘1’)会出现两种不同的结果。
在这里插入图片描述
带返回值的存储过程,STU_INFO表根据学号查姓名
在这里插入图片描述

11 触发器

触发器不需要调用,在执行某些操作的时候,就会自动执行。一般当表或者视图执行 增,删,改操作的时候,就会自动执行触发器中的语句。
现在新建STU_INFO的备份表STU_INFO_BAK,建立触发器当STU_INFO的数据删除时,STU_INFO_BAK的数据同步删除。
删除刚才学号为4的测试数据,操作如下图:
在这里插入图片描述
以上,为本人安装并使用数据库的过程!感谢阅读~( ̄▽ ̄~)(~ ̄▽ ̄)~

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值