注册
达梦数据库dm_ini参数以及常用DDLSQL语句总结
培训园地/ 文章详情 /

达梦数据库dm_ini参数以及常用DDLSQL语句总结

Sr 2023/03/31 1887 1 0

达梦数据库dm_ini参数以及常用DDLSQL语句总结

1、达梦数据库参数

1.1 数据库实例dm.ini配置文件说明
  .../[实例名]/dm.ini文件配置达梦数据库启动所必须的参数的配置文件。dm.ini中主要配置了两种类型的参数:功能配置参数、性能调优参数。通过配置该文件可以设置达梦数据库服务器的各种功能和性能选项。dm.ini参数文件中的参数(MAL_INI、ARCH_INI、MPP_INI、TIMER_INI)可以控制达梦数据库对于其他参数文件的读取。
  dm.ini中的参数有必须配置与可选配置项。
必配置项如下:

参数名称 描述
CTL_PATH 实例控制文件路径。
SYSTEM_PATH 系统表空间路径。
TEMP_PATH 临时表空间路径。
BAK_PATH 数据库备份默认路径。
INSTANCE_NAME 数据库实例名称。
比较关键的几个可选配置项如下:
参数名称 描述
:----- :-----
ARCH_INI 选配项,REDO日志本地归档开关,如不配置,无法进行数据库备份。
MAL_INI 集群必配项,MAL通信开关
DW_PORT 集群必配项,数据库和守护进程的TCP通信端口
TIMER_INI 选配,异步备机开关,异步备机必须配置
MPP_INI 选配,MPP集群开关,MPP集群必须配置

1.2 数据库实例参数属性特点
INI参数属性分为静态、动态和手动三种类型,分别与动态性能视图V$PARAMETER中TYPE字段的对应关系如下:

类型 对应字段值
静态 IN_FILE
动态 SYS和SESSION
手动 READ ONLY

(1)动态参数(SYS和SESSION): ini 文件和内存同时可修改,修改后即时生效。
动态参数又分为会话级和系统级。
SESSION: 会话级参数被修改后,新参数值只会影响新创建的会话
SYS: 系统级参数修改后,将会影响所有的会话
(2)静态参数(IN FILE): 只能修改 ini 文件,修改后重启DB才能生效,为系统级参数,生效后会影响所有的会话
(3)手动参数(READ ONLY): 在运行过程中不能被修改,必须手动修改 dm.ini 参数文件,然后重启才能生效。

1.3 数据库实例参数的查看
  查看方式
(1)直接查看参数文件,如:dm.ini
(2)通过动态性能视图v$PARAMETER,该视图显示ini参数和dminit建库参数的类型及参数值信息(当前会话值、系统值及dm.ini文件中的值)

select name,type,value,sys_value,file_value from v$parameter;

VALUE表示当前会话值,SYS_VALUE表示系统值,FILE_VALUE表示dm.ini文件中值。

(3)通过动态性能视图v$DM_INI可以查看所有ini参数和dminit建库参数信息。也提供了分类的视图查看相关的配置,如:V$DM_ARCH_INI

select para_name, para_value from v$dm_ini where (para_name|para_type|...) (|=|[like]|...); select * from V$DM_ARCH_INI;

(4)通过函数查看参数值,其中SCOPE参数值为1:表示获取INI文件中配置参数的值,值为2:表示获取内存中配置参数的值

--配置参数为数值类型时使用该函数来获取当前值 SF_GET_PARA_VALUE(scope int, paraname varchar(256)) --配置参数为浮点型时使用该函数来获取当前值 SF_GET_PARA_DOUBLE_VALUE(scope int, paraname varchar(8187)) --配置参数为字符串类型时用该系统函数来获取当前值 SF_GET_PARA_STRING_VALUE (scope int, paraname varchar(8187)) --获得当前会话的某个会话级 INI 参数的值 SF_GET_SESSION_PARA_VALUE (paraname varchar(8187))
  1. 4 数据库实例参数修改方式
    (1)通过图形化界面./manager或者。./console
    配置好vnc工具,保证root与dmdba的DISPLAY变量值一致,保证达梦数据库安装目录下的文件权限都为(dmdba:dinstall),使用dmdba用户进入安装目录的tool目录下执行./manager或者执行。./console。
    (2)通过直接编辑参数配置文件,如:dm.ini
    进入对应的实列的目录下,通过vi进行修改
    (3)通过SQL语句修改参数
    修改全局参数
    通过ALTER SYSTEM语法修改静态或动态(系统级、会话级)参数值,使修改之后的参数值能够在全局范围内起作用。
ALTER SYSTEM SET '<参数名称>'=<参数值> [DEFERRED] [MEMORY|BOTH|SPFILE]; --DEFERRED: 只适用于动态参数。指定DEFERRED时,参数值延迟生效,对当前session不生效,只对新创建的会话生效;缺省为立即生效,即对当前会话和新创建的会话都生效。

(4)通过系统函数修改参数

--该过程用于修改整型静态配置参数和动态配置参数 SP_SET_PARA_VALUE (scope int, paraname varchar(256), value int64) --该过程用于修改浮点型静态配置参数和动态配置参数 SP_SET_PARA_DOUBLE_VALUE (scope int, paraname varchar(8187),value double) --该过程用于修改 int、double、varchar 类型的静态配置参数或动态配置参数。当DEFERRED 参数值为 0 表示当前 session 修改的参数立即生效;值为 1 表示当前 session不生效,后续再生效,默认为 0。 SF_SET_SYSTEM_PARA_VALUE (paraname varchar(256), value int64\double\varchar256),deferred int, scope int64) --设置字符串型参数值 SP_SET_PARA_STRING_VALUE (scope int, ini_param_name varchar(256) ,value varchar(8187)) --设置某个会话级 INI 参数的值,设置的参数值只对本会话有效 SF_SET_SESSION_PARA_VALUE (paraname varchar(8187), value bigint) --重置某个会话级INI参数的值,使得这个INI参数的值和系统INI参数的值保持一致 SP_RESET_SESSION_PARA_VALUE (paraname varchar(8187)) --设置服务器日志相关 INI 参数 SVR_LOG 和 SQL_TRACE_MASK SF_SET_SQL_LOG (svrlog int,svrmsk varchar(1000))

(备注在创建数据库时设置的页大小和簇大小,一旦创建实例,则不能被改变)

常用DDLSQL语句总结

--通过查询建表 create TABLE test1 as select * from EMPLOYEE WHERE (SALARY > 30000); alter table test1 MODIFY employee_id INT DEFAULT 0 NOT NULL check(employee_id < 100000); --执行成功 --修改原字段名name为name_tmp alter table tb rename column name to name_tmp; alter table test1 rename column employee_id to id; -- 修改test1表格中的employee_id为id,执行成功 alter table test1 rename column id to employee_id; -- 将id列修改回employee_id --增加一个和原字段名同名的字段name alter table tb add name varchar2(40); alter table test1 add test_id INT check(test_id < 1000000); --将原字段name_tmp数据更新到增加的字段name update tb set name=trim(name_tmp); update test1 set test_id=trim(employee_id) --更新完,删除原字段name_tmp alter table tb drop column name_tmp; 分类总结: --修改原字段 T_CONTENT 为 T_CONTENT_TEMP 注T_CONTENT类型为varchar(4000) alter table "数据库名"."表名" rename column T_CONTENT to T_CONTENT_TEMP; --增加一个和原字段名称相同的字段 T_CONTENT alter table "数据库名"."表名" add T_CONTENT varchar(8000); --将原字段 T_CONTENT_TEMP数据更新到增加的字段 T_CONTENT中 update "数据库名"."表名" set T_CONTENT =trim(T_CONTENT_TEMP); update test1 set test_id = trim(employee_id); --更新完,删除原字段 T_CONTENT_TEMP alter table "数据库名"."表名" drop column T_CONTENT_TEMP; -- 补充达梦其他sql --创建索引(单字段) create index "索引名" on 表名("索引字段"); --创建索引(多字段) create index "索引名" on 表名("索引字段1","索引字段2"); --添加主键 alter table "数据库名"."表名" add PRIMARY KEY ("主键字段"); --增加一个字段 varchar类型等 alter table "数据库名"."表名" add "字段名" NVARCHAR2(8000) not null; --修改字段类型长度 varchar类型等 alter table "数据库名"."表名" modify "字段名" NVARCHAR2(8000);
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服