注册
达梦数据库-基础运维
培训园地/ 文章详情 /

达梦数据库-基础运维

高朝家 2022/11/16 2729 3 0
  1. 连接达梦数据库的方法
    使用disql工具连接达梦数据库。类似于Oracle的sqlplus工具,达梦数据库的连接工具是disql。该工具位于$DM_HOME/bin目录里,连接数据库的基本语法格式是:disql 数据库用户名/密码@数据库IP地址:端口号
    本文中sxzq数据库的端口号是5237,连接数据库的用户是sysdba,密码是sysdba,因此连接数据库的语法是disql sysdba/sysdba@192.168.132.100:5237
  2. 数据库参数的查看与修改。
    达梦数据库的参数文件(配置文件)在数据文件所在目录。在数据库内部可以使用SQL查看动态性能视图v$dm_ini。如下示例,查询compatible_mode参数的SQL语句是:
    selectPARA_NAME,PARA_VALUE,PARA_TYPE from v$dm_ini where para_name like ‘COMPA%’;

达梦数据库的参数类型分为四种,read only、sys、in file、session
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 systemset‘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”命令。

  1. 数据文件和表空间管理
    数据文件中存储了用户的实际数据。因此管理好数据文件至关重要。查看数据文件和表空间的视图或数据字典名称和Oracle一致,都是dba_data_files、v$datafile、dba_tablespaces。

SYSTEM表空间存放数据字典, TEMP表空间存储临时段,MAIN表空间等于Oracle的USER表空间,ROLL表空间等于Oracle的UNDO表空间,达梦没有SYSAUX表空间。
创建表空间的语句和Oracle类似:
创建一个表空间liubin
createtablespace liubin datafile ‘/dm8data/sxzq/sxzq/liubin01.dbf’ size 32 autoextendon maxsize 1024;给liubin表空间添加两个数据文件:
altertablespace liubin add datafile ‘/dm8data/sxzq/sxzq/liubin02.dbf’ size 32autoextend on;altertablespace liubin add datafile ‘/dm8data/sxzq/sxzq/liubin03.dbf’ size 32autoextend on;

注意:数据文件大小后不能写单位,默认单位是M,即32M。
select GROUP_ID,ID from v$datafile

GROUP_ID是表空间号码,ID是表空间内部的文件号。
 5.日志文件管理
达梦的重做日志文件不存在Oracle中“group和member”的概念。Redo文件就是单独的个数,没有成组的成员。
添加日志文件的语法和Oracle类似,只是去掉了group关键字:
alterdatabase add logfile ‘/dm8data/sxzq/sxzq/sxzq03.log’ size 256;
注意:日志文件大小后不能写单位,默认单位是M,即256M。
Redo文件的状态通过查询v$rlogfile视图获取,如下图。

  1. 用户管理
    和Oracle一样,查询用户使用dba_users数据字典。

达梦数据库的默认用户只有四个,比Oracle的少了很多。
sysdba是数据库管理员
sys是内置管理员,数据字典和视图的所有者,不能直接登录数据库
syssso是安全管理员,配置安全策略
sysauditor是审计员,配置审计策略
新建、修改、删除用户的语法和Oracle完全一致,此处不赘言。给用户赋权的DCL语句和Oracle也完全一致。一般初始用户赋予resource角色,即可满足绝大多数使用场景:grant resource to 新用户名。
 7. 总结
达梦数据库不支持多值参数,即一个参数只能有唯一值;Oracle的某些参数可以有多个值。强烈建议在数据库内部使用系统过程修改参数,不要直接修改dm.ini文件。因为修改配置文件容易手误或者输入一些未知字符,从而导致数据库产生莫名的错误很难排查。但是对于read only类型的参数而言,只能修改配置文件后重启生效,这恐怕是达梦需要改进之处吧。
达梦数据库不支持定义其他临时表空间,所有schema只能使用TEMP表空间,这可能会造成TEMP表空间争用从而影响性能。
达梦数据库定义文件大小不写单位(如数据文件、日志文件),默认单位是M(兆字节)。
达梦“altersystem switch logfile”命令不是切换日志,而是把没有归档的在线日志归档,而且归档日志和Redo日志是同时写的。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服