达梦数据库基础运维(非常详细)零基础入门到精通,收藏这篇就够了
这一点和Oracle不同,Oracle使用专用的监听进程(默认使用1521端口)供客户端连接,不同的数据库可以注册到同一个监听程序内,区分不同数据库的手段是service_name或者SID。达梦数据库的安装过程相比Oracle快很多,本文的所有操作加在一起不超过10分钟,使人感觉达梦是一款“轻量级”的数据库。SYSTEM表空间存放数据字典, TEMP表空间存储临时段,MAIN表空间等于Oracl
1. 连接达梦数据库
使用disql工具连接达梦数据库。类似于Oracle的sqlplus工具,达梦数据库的连接工具是disql。该工具位于$DM_HOME/bin目录里,连接数据库的基本语法格式是:
disql 数据库用户名/密码@数据库IP地址:端口号
2. 查看与修改数据库参数
##查看实例名
select instance_name from v$instance;
##查看达梦版本
select * from v$version;
##查看达梦有无开启兼容mysql语法
select para_name,para_value,file_value from v$dm_ini where para_name='COMPATIBLE_MODE';
达梦数据库的参数文件(配置文件)在数据文件所在目录。在数据库内部可以使用SQL查看动态性能视图v$dm_ini。如下示例,查询compatible_mode参数的SQL语句是:
select PARA_NAME,PARA_VALUE,PARA_TYPE from v$dm_ini where para_name like 'COMPA%';
参数类型分为四种,read only、sys、in file、session
select para_type from v$dm_ini group by para_type;
read only参数无法在数据库内部修改,只能直接修改参数文件,重启数据库后生效。
sys、session参数可以在数据库内部修改,并且立即在全局级别、会话级别生效。
in file参数可以在数据库内部修改,但无法立即生效,只能重启数据库后生效。
参数修改的方法有两种:“达梦模式”和“Oracle模式”
所谓“达梦模式”,即使用达梦系统过程修改,具体的用法是
sp_set_para_value(scope,para_name,para_value)
scope=1表示内存和参数文件同时修改(both)
scope=2表示只修改参数文件(spfile)
示例:将compatible_mode参数为2
sp_set_para_value(2,'COMPATIBLE_MODE',2)
因为该参数是in file类型,所以需要重启数据库生效,查看参数修改结果,compatible_mode参数已经修改为2。
“Oracle模式”,即使用oracle原生命令“alter system set”修改参数。但是达梦对这个命令做过变化,和oracle有所不同:参数名称必须加英文单引号,spfile前不用加scope=
alter system set ‘COMPATIBLE_MODE’=271 spfile;
推荐使用达梦的系统过程修改参数。
3. 查杀数据库会话
达梦是一种单进程多线程数据库。主要的线程功能如下:
监听线程、工作线程、调度线程、IO线程、重做日志刷新线程、检查点线程等。其中监听线程的主要作用是检测外部会话连接,可以查询v$sessions视图。与Oracle不同的是,达梦的v$sessions仅能查看到用户会话,没有后台连接。
select *from v$sessions;
可以查到系统内部有两个会话,并且看到每个会话运行SQL
达梦使用系统过程sp_close_session('会话ID')杀会话.
达梦没有Oracle的”alter system kill session”命令。
4. 数据文件和表空间管理
数据文件中存储了用户的实际数据。因此管理好数据文件至关重要。查看数据文件和表空间的视图或数据字典名称和Oracle一致,都是dba_data_files、v$datafile、dba_tablespaces。
select tablespace_name from dba_tablespaces;
SYSTEM表空间存放数据字典, TEMP表空间存储临时段,MAIN表空间等于Oracle的USER表空间,ROLL表空间等于Oracle的UNDO表空间,达梦没有SYSAUX表空间。
创建表空间的语句和Oracle类似:
创建一个表空间chkov
create tablespace chkov datafile '/dm8data/test/test/chkov01.dbf' size 32 autoextendon maxsize 1024;
给chkov表空间添加两个数据文件:
alter tablespace chkov add datafile '/dm8data/test/test/chkov02.dbf' size 32 autoextend on;
alter tablespace chkov add datafile '/dm8data/test/test/chkov03.dbf' size 32 autoextend on;
注意:数据文件大小后不能写单位,默认单位是M,即32M。
查看表空间文件:
select GROUP_ID,ID,PATH from v$datafile
GROUP_ID是表空间号码,ID是表空间内部的文件号。
模式操作
##创建模式并授权给用户
CREATE SCHEMA ywzl AUTHORIZATION ywzl;
##级联删除库
DROP SCHEMA ywzl CASCADE;
##进入模式
SET SCHEMA ywzl;
##查看用户所有那些库
SELECT t.name schname, t.id, t.pid, b.name username FROM sysobjects t, sysobjects b WHERE t.pid = b.id AND t.type$='SCH' ;
表操作
##查看所属库的表
select owner,TABLE_NAME from dba_tables where owner='chkov';
##查看有无表
select owner,TABLE_NAME from dba_tables where TABLE_NAME='IDS';
##查看表列信息
DESC TABLE_NAME
##查看创建表的语句
SELECT DBMS_METADATA.GET_DDL('TABLE', 'KNOWLEDGE_FAULT') FROM DUAL;
select dbms_metadata.get_ddl('TABLE',table_name,owner) from dba_tables limit 10; ##查看建表结构
##修改表的结构
ALTER TABLE reinsurance_publish_info MODIFY file_upload_url VARCHAR(32767);
##删除某条数据
delete from chkov.FLYWAY_SCHEMA_HISTORY_PMC where INSTALLED_RANK=2;
##跟新某条数据
UPDATE SNC_WORK_BENCH.FLYWAY_SCHEMA_HISTORY SET SUCCESS =1 WHERE script ='V1.0.0.202408291730__create_subscribe_table.sql';
5.管理日志文件
达梦的重做日志文件不存在Oracle中“group和member”的概念。Redo文件就是单独的个数,没有成组的成员。
添加日志文件的语法和Oracle类似,只是去掉了group关键字:
alter database add logfile '/dm8data/test/test/test03.log' size 256;
注意:日志文件大小后不能写单位,默认单位是M,即256M。
Redo文件的状态通过查询v$rlogfile视图获取,如下:
desc v$rlogfile
6. 用户管理
和Oracle一样,查询用户使用dba_users数据字典。
select username,account_status from dba_users;
达梦数据库的默认用户只有四个,比Oracle的少了很多。
sysdba是数据库管理员
sys是内置管理员,数据字典和视图的所有者,不能直接登录数据库
syssso是安全管理员,配置安全策略
sysauditor是审计员,配置审计策略
新建、修改、删除用户的语法和Oracle完全一致,。给用户赋权的DCL语句和Oracle也完全一致。一般初始用户赋予resource角色,即可满足绝大多数使用场景:
create user chkov identified by "chkov@2024" default tablespace chkov temporary tablespace TEMP; #需要执行上面的表空间
grant resource,public,vti,dba to "chkov";
##查看用户所有角色
select grantee,granted_role from dba_role_privs where grantee='chkov';
默认创建的角色:
DBA:管理员,几乎拥有创建数据库的所有权限,但没有审计数据库和指定强制访问控制的权限。
RESOURCE:具有在自己模式下创建表、视图等对象的权限,也具有操作自己模式下对象数据的权限。
PUBLIC:具有在自己模式下操作数据的权限。
SOI:查询系统表的权限。
VTI:具有查询动态视图。
修改数据库帐号的口令复杂度
达梦数据库没有profile概念。
对口令复杂度的设置由PWD_POLICY参数决定。PWD_POLICY参数定义如下:
0:无策略
1:禁止口令与用户名相同
2:口令长度不小于9
4:至少包含一个大写字母
8:至少包含一个数字
16:至少包含一个特殊符号(除"和空格外的所有符号均可)
如果想混搭以上口令策略,需把对应策略的参数值相加即可:例如PWD_POLICY=3(1+2=3)表示口令不能与用户名相同且口令长度大于等于9。
如下图所示,PWD_POLICY=2,表示口令长度必须大于等于9。新建用户chkov,口令为12345678时,系统检测到口令长度不符合要求;当口令是123456789时,chkov帐号方可成功创建。
select para_name,para_value,para_type from v$dm_ini where para_name='PWD_POLICY';
create user chkov identified by 123456789;
达梦可以使用Oracle类似的语法格式修改参数值。本实验中修改PWD_POLICY=31,即1+2+4+8+16=31,启用了所有口令策略。
alter system set 'PWD_POLICY'=31 deferred both;
因为PWD_POLICY是sys型参数,因此可以使用“both”,表示内存和配置文件同步修改。“deferred”表示当前会话不生效,后续会话才生效。但对于sys全局性参数,该设置未必有实际意义,有待进一步研究。此处完全可以不加“deferred”,在此示例中是为了展现一个修改参数的有趣的特性——参数延期(后续会话)生效。
参数修改为31后,新建chkov用户,直至口令为“1aB-456789”时才可创建用户,由此验证了该口令满足PWD_POLICY规定的所有条件,设定的参数值生效了。
7. 冷备数据库
达梦有一个进程“DmAPService”。这个进程就是负责数据库备份的。
所谓冷备,就是把数据库一致性关闭(和平非暴力地、正常地关闭)后,备份数据库的方法。达梦数据库冷备要使用DMRMAN工具。冷备的必要条件是一致性关库、DmAPService进程启动。
DMRMAN工具所在位置$DM_HOME/bin,使用时必须加./
DmAPServicetest stop
cd $DM_HOME/bin
./dmrman
backup database '/dm8data/test/test/dm.ini' backupset'/dm8data/testbak';
备份完成,生成一个.bak文件和一个.meta文件。bak是数据备份,meta是元数据信息。
语法释义:
backup database '数据库配置文件绝对路径' backupset '备份集目录绝度路径';
8. 开启归档
由于在线重做日志(Redo日志)是循环复写的,因此把Redo日志都以“另存为”的方式永久记录下来(归档),对于数据恢复有重要意义。把日志归档也是关系数据库的通用机制。
那么如何开启归档呢?
首先查看归档状态:
select ARCH_MODE from v$database;
select * from v$dm_arch_ini;
结果返回N表示未开启归档。
切换到mount模式
alter database mount;
配置归档参数
alter database 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视图,归档参数已经成功配置。
开启归档模式
alter database archivelog;
切换到OPEN模式
alter database open;
9. 热备数据库
热备数据库,就是在数据库打开的状态下,备份数据。热备在实际生产中更有意义。热备的必要条件是:DmAPService要启动、开启归档。
检查ps-ef|grep dmap,如果DmAPService没有启动,使用如下命令启动进程:
systemctl restart DmAPService
检查归档是否打开
select ARCH_MODE from v$database;
结果返回Y表示开启归档。
热备数据库直接在DISQL中完成:
backup database backupset '/dm8data/testbak2';
backupset 是'备份集目录绝对路径'。
热备份输出备份文件和元数据文件。相比Oracle热备,达梦的热备过程几乎没有输出过程信息,只给出备份结果。
10. 导入导出工具
达梦数据库的导入导出工具是dimp和dexp,基本相当于Oracle的imp/dmp。功能简单,能做简单的逻辑备份。dimp和dexp工具用法也基本和Oracle相同,在此仅举两个简单的示例。
按用户导出数据:
dexp chkov/123456789@10.168.2.100:5237 file=/dm8data/testexp/test.dmp schemas=chkov
按用户导入数据:
dimp sysdba/sysdba@10.168.2.100:5237 file=/dm8data/testexp/test.dmp schemas=chkov
11.常用工具(tools)
达梦数据库自带了一些好用工具,放在软件安装目录下的tool目录
1)manager.exe:DM 管理工具,类似oracle的pl/sql dev,可以方便快捷的对数据进行管理。在网络允许的条件下,可通过单个管理工具,对多个数据实例进行管理,方便简化 DBA 对数据库的日常运维操作要求。
2)dts.exe:是DM数据迁移工具,可以通过该工具导入导出数据到其他的数据库中
总结
达梦数据库的版本分为四种:
开发版:官网可以自由下载的版本,有使用时间的限制和并发等限制。
标准版:不支持集群,商务渠道获取。
企业版:支持集群,不支持安全高级特性,商务渠道获取。
安全版:支持其他版本的所有特性,支持高级安全特性,商务渠道获取。
达梦数据库相比Oracle数据库而言,安装方法简单,中文界面友好。尤其在安装数据库软件时使用CLI字符交互模式友好方便,无需调用图形模式,这一点是达梦数据库的先进之处。达梦数据库的安装过程相比Oracle快很多,本文的所有操作加在一起不超过10分钟,使人感觉达梦是一款“轻量级”的数据库。
同一台主机可以安装多套单实例的达梦数据库。不同的数据库使用不同的端口对外服务,如5236、5237等。不同的数据库在$DM_HOME/bin目录下会有对应的程序,程序名为“DmService数据库名”,该程序可以用于数据库的启停。这一点和Oracle不同,Oracle使用专用的监听进程(默认使用1521端口)供客户端连接,不同的数据库可以注册到同一个监听程序内,区分不同数据库的手段是service_name或者SID。
达梦数据库是一种“单进程、多线程”的数据库,即一套数据库在一个操作系统内部只有一个进程,并且可以把达梦数据库进程注册到系统服务中随机启动。这一点和Oracle不同,Oracle的前后台进程可能多达几十个,体现出两种数据库管理系统的差异。
达梦数据库不支持多值参数,即一个参数只能有唯一值;Oracle的某些参数可以有多个值。强烈建议在数据库内部使用系统过程修改参数,不要直接修改dm.ini文件。因为修改配置文件容易手误或者输入一些未知字符,从而导致数据库产生莫名的错误很难排查。但是对于read only类型的参数而言,只能修改配置文件后重启生效,这恐怕是达梦需要改进之处吧。
达梦数据库不支持定义其他临时表空间,所有schema只能使用TEMP表空间,这可能会造成TEMP表空间争用从而影响性能。
达梦数据库定义文件大小不写单位(如数据文件、日志文件),默认单位是M(兆字节)。
达梦“alter system switch logfile”命令不是切换日志,而是把没有归档的在线日志归档,而且归档日志和Redo日志是同时写的。
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模式(alter database mount),无需重启数据库,这一点是oracle做不到的。
达梦数据库和Oracle数据库相比,没有nomount模式和read only模式。
35岁+运维人员的发展与出路
经常有人问我:干网工、干运维多年遇瓶颈,想学点新技术给自己涨涨“身价”,应该怎么选择?
聪明人早已经用脚投票:近年来,越来越多运维的朋友寻找新的职业发展机会,将目光聚焦到了网络安全产业。
1、为什么我建议你学习网络安全?
有一种技术人才:华为阿里平安等大厂抢着要,甚至高薪难求——白帽黑客。白帽黑客,就是网络安全卫士,他们“低调”行事,同时“身价”不菲。
根据腾讯安全发布的《互联网安全报告》,目前中国**网络安全岗位缺口已达70万,缺口高达95%。**而与网络安全人才需求量逐年递增局面相反的是,每年高校安全专业培养人才仅有3万余人,很多企业却一“将”难求,网络安全人才供应严重匮乏。
这种供求不平衡直接反映在安全工程师的薪资上,简单来说就是:竞争压力小,薪资还很高。
而且安全行业就业非常灵活,既可以就职一家公司从事信息安全维护和研究,也可以当作兼职或成为自由职业者,给SRC平台提交漏洞获取奖金等等。
随着国家和政府的强监管需求,一线城市安全行业近年来已经发展的相当成熟工作机会非常多,二三线城市安全也在逐步得到重视未来将有巨大缺口。
作为运维人员,这几年对于安全的技能要求也将不断提高,现阶段做好未来2到3年的技术储备,有非常大的必要性
2、运维转型成为网络安全工程师,是不是很容易?
运维转安全,因为本身有很好的Linux基础,相对于其他人来说,确实有一定的优势,入门会快一些。
系统管理经验
运维对服务器、网络架构的深度理解,可直接迁移到安全防护场景。例如,熟悉Linux/Windows系统漏洞修补、权限管控,能快速上手安全加固工作。
网络协议与架构知识
运维日常接触TCP/IP、路由协议等,有助于分析网络攻击路径(如DDoS防御、流量异常检测)。
自动化与脚本能力
运维常用的Shell/Python脚本技能,可无缝衔接安全工具开发(如自动化渗透脚本、日志分析工具)。
平滑过渡方向
从安全运维切入,逐步学习渗透测试、漏洞挖掘等技能,利用现有运维经验快速上手。
学习资源丰富
可复用运维工具(如ELK日志分析、Ansible自动化)与安全工具(如Nessus、Metasploit)结合学习,降低转型成本。
3. 转型可以挖漏洞搞副业获取收益挖SRC漏洞
-
合法挖洞:在合法的平台上挖掘安全漏洞,提交后可获得奖励。这种方式不仅能够锻炼你的技能,还能为你带来额外的收入。
-
平台推荐:
补天:国内领先的网络安全漏洞响应平台。
漏洞盒子:提供丰富的漏洞挖掘任务。
CNVD:国家信息安全漏洞共享平台。
关于我
有不少阅读过我文章的伙伴都知道,笔者曾就职于某大厂安全联合实验室。从事网络安全行业已经好几年,积累了丰富的技能和渗透经验。
在这段时间里,我参与了多个实际项目的规划和实施,成功防范了各种网络攻击和漏洞利用,提高了互联网安全防护水平。
为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
黑客/网络安全学习包
资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
**
**
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
更多内容为防止和谐,可以扫描获取~
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
更多推荐
所有评论(0)