暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

达梦数据库初探(三)——安全与备份

山西证券IT服务 2021-07-22
2286

本文是《达梦数据库初探》系列的最后一篇。这三篇文章简明扼要地阐述了达梦数据库基础知识和基础运维技能。限于篇幅,本系列文章并未阐述达梦的基础架构和运行原理,而仅仅给出了务实的基础运维操作方法。然而作者认为,对一款新产品的学习一定要先研读官方文档,知其然知其所以然,做到原理通透,才能有的放矢。

本篇讲解达梦数据库的基础口令安全和数据备份方法,包括配置口令复杂度、配置归档、如何使用DMRMAN工具备份数据以及导入导出工具的基本使用方法。

1. 修改数据库帐号的口令复杂度

达梦数据库没有profile概念。

对口令复杂度的设置由PWD_POLICY参数决定。PWD_POLICY参数定义如下:

0:无策略

1:禁止口令与用户名相同

2:口令长度不小于9

4:至少包含一个大写字母

8:至少包含一个数字

16:至少包含一个特殊符号(除"和空格外的所有符号均可)

如果想混搭以上口令策略,需把对应策略的参数值相加即可:例如PWD_POLICY=3(1+2=3)表示口令不能与用户名相同且口令长度大于等于9。

如下图所示,PWD_POLICY=2,表示口令长度必须大于等于9。新建用户liubin,口令为12345678时,系统检测到口令长度不符合要求;当口令是123456789时,liubin帐号方可成功创建。

达梦可以使用Oracle类似的语法格式修改参数值。本实验中修改PWD_POLICY=31,即1+2+4+8+16=31,启用了所有口令策略。

alter systemset 'PWD_POLICY'=31 deferred both;

因为PWD_POLICY是sys型参数,因此可以使用“both”,表示内存和配置文件同步修改。“deferred”表示当前会话不生效,后续会话才生效。但对于sys全局性参数,该设置未必有实际意义,有待进一步研究。此处完全可以不加“deferred”,在此示例中是为了展现一个修改参数的有趣的特性——参数延期(后续会话)生效。

参数修改为31后,新建liubin用户,直至口令为“1aB-456789”时才可创建用户,由此验证了该口令满足PWD_POLICY规定的所有条件,设定的参数值生效了。

2. 冷备数据库

在第一篇中,提到一个进程“DmAPService”。这个进程就是负责数据库备份的。

所谓冷备,就是把数据库一致性关闭(和平非暴力地、正常地关闭)后,备份数据库的方法。达梦数据库冷备要使用DMRMAN工具。冷备的必要条件是一致性关库、DmAPService进程启动。

DMRMAN工具所在位置$DM_HOME/bin,使用时必须加./

cd $DM_HOME/bin

./dmrman

backup database '/dm8data/sxzq/sxzq/dm.ini' backupset'/dm8data/sxzqbak';

语法释义:

backup database '数据库配置文件绝对路径' backupset '备份集目录绝度路径';

备份完成,生成一个.bak文件和一个.meta文件。bak是数据备份,meta是元数据信息。

3. 开启归档的方法

由于在线重做日志(Redo日志)是循环复写的,因此把Redo日志都以“另存为”的方式永久记录下来(归档),对于数据恢复有重要意义。把日志归档也是关系数据库的通用机制。

那么如何开启归档呢?

首先查看归档状态:select ARCH_MODE from v$database;结果返回N表示未开启归档。

切换到mount模式
alterdatabase mount;
配置归档参数
alterdatabase add archivelog'dest=/dm8data/sxzqarc,type=local,file_size=64,space_limit=0';
file_size是归档日志文件大小(单位是M),space_limit=0表示不限制归档空间大小,type=local表示本地归档。
查看v$dm_arch_ini视图,归档参数已经成功配置。
select *from v$dm_arch_ini;
开启归档模式
alterdatabase archivelog;
切换到OPEN模式
alterdatabase open;

4. 热备数据库
所谓热备数据库,就是在数据库打开的状态下,备份数据。热备在实际生产中更有意义。热备的必要条件是:DmAPService要启动、开启归档。
检查ps-ef|grep dmap,如果DmAPService没有启动,使用如下命令启动进程:

systemctlrestart DmAPService

检查归档是否打开

selectARCH_MODE from v$database;结果返回Y表示开启归档。

热备数据库直接在DISQL中完成:backup database backupset'/dm8data/sxzqbak2';

backupset 是'备份集目录绝对路径'。

热备份输出备份文件和元数据文件。相比Oracle热备,达梦的热备过程几乎没有输出过程信息,只给出备份结果。

 

5. 导入导出工具

达梦数据库的导入导出工具是dimp和dexp,基本相当于Oracle的imp/dmp。功能简单,能做简单的逻辑备份。dimp和dexp工具用法也基本和Oracle相同,在此仅举两个简单的示例。

按用户导出数据:

dexpliubin/123456789@192.168.132.100:5237 file=/dm8data/sxzqexp/liubin.dmpschemas=liubin

导出成功。

由于liubin用户下只有一张liubin表,该表有131072行数据。由上下图对比可知,数据成功导出。

按用户导入数据:

dimpsysdba/sysdba@192.168.132.100:5237 file=/dm8data/sxzqexp/liubin.dmpschemas=liubin

6. 总结

Oracle的口令复杂度由@?/rdbms/admin/utlpwdmg.sql脚本生成的密码函数决定,该脚本可以配置口令复杂度的方方面面,灵活度高。达梦的口令复杂度统一由一个参数PWD_POLICY就能决定,简单易用配置方便,但对口令复杂度的设定已经固化,无法突破。两种数据库的口令配置方法各有特色,若能彼此取长补短,则尽善尽美。

达梦的备份工具“DMRMAN”的功能相比Oracle RMAN少很多,可进步的空间还很大。达梦热备份不使用DMRMAN,而要使用DISQL工具,这一点和Oracle是不同的。抛砖引玉:Oracle冷备时,只需要一致性关闭数据库,然后将数据库文件所在文件夹直接tar包即可。达梦数据库是否可以这样做呢?感兴趣的读者自己测试恢复一下吧。

达梦数据库的启动模式有三种:mount模式、open模式、suspend模式。mount模式在达梦数据库中被称为“配置模式”,如本文中配置归档的相关操作,都是在mount模式下进行的。open模式是正常的读写模式,数据库可以正常对外提供服务。suspend模式是“挂起”模式,该模式只有在DMDSC集群中才涉及到,本文不做讨论。

达梦数据库在启动过程中,由shutdown启动到mount时,启动后台进程和线程,分配共享内存,打开控制文件;由mount启动到open时,根据控制文件信息打开所有的数据文件和重做日志文件。达梦数据库可以由open模式直接切换到mount模式(alterdatabase mount),无需重启数据库,这一点是oracle做不到的。

达梦数据库和Oracle数据库相比,没有nomount模式和read only模式。


文章转载自山西证券IT服务,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论