文档地址
https: //eco.dameng.com/document /dm/zh -cn/start/
https: //eco.dameng.com/document /dm/zh -cn/pm/installation-introduction.html
https: //www.cnblogs.com/rbcd /articles/ 18563615
忘记管理员密码重置
/ usr/ openv/ dmdbms/ bin/ dmserver / usr/ openv/ dm7data/ DAMENG/ dm.ini - noconsole
在文件中/ usr/ openv/ dm7data/ DAMENG/ dm.ini最后追加配置:ENABLE_LOCAL_OSAUTH= 1
service DmServiceDMSERVER restart
/ usr/ openv/ dmdbms/ bin/ disql / as sysdba
ALTER USER SYSDBA IDENTIFIED BY "123456";
启动命令
在/etc/rc.d/init.d中有名称为DmService开头的文件,文件全名为DmService+实例名(例:如果实例名为DMSERVER,则相对应的服务文件为DmServiceDMSERVER)。
以实例名为DMSERVER为例,在终端输入./DmServiceDMSERVER start 或者 service DmServiceDMSERVER start 即可启动DM数据库。
在终端进入DM安装目录下的bin目录,执行./dmserver启动DM数据库,参数选项同Windows DM Service Viewer
nohup dmdba/bin/dmserver dmdba/dmdata/DAMENG/dm.ini -noconsole > /dev/null 2>&1 &
/dm8/dmdbms/tool/dmservice.sh
/appdata/dmdba/dmdbms/bin/DmServiceDMSERVER stop
/appdata/dmdba/dmdbms/bin/DmServiceDMSERVER start
数据迁移问题
需要临时解决:把长字段类型varchar 改成text类型
对于varchar 类型,pg和达梦对汉字的占用空间不一样,例如:1 个汉字在pg占用1 个长度,在达梦需要占用3 个长度;
字典表
从数据库维护的角度来说,尤其对于初学者最重要也是最需要熟悉掌握的数据字典和动态视图有3个,
分别是 SYSOBJECTS ,V$DYNAMIC_TABLES ,和V$IFUN 。
第一个,SYSOBJECTS,记录系统中所有对象的信息
第二个,V$DYNAMIC_TABLES 视图,可以通过查询V$DYNAMIC_TABLES 获得所有的动态性能视图名称。
第三个,V$IFUN ,显示数据库提供的所有函数
常用命令
select * from v$instance;
alter database mount;
alter database suspend;
alter database open ;
select * from v$version;
create user "userName" IDENTIFIED BY "123456";
alter user "userName" IDENTIFIED BY "123456";
drop user "userName" cascade;
grant dba to userName;
grant soi to userName; #授权具有查询系统表的权限
grant create table to userName;
grant create view to userName;
grant create procedure to userName;
grant create sequence to userName;
grant create trigger to userName;
grant create index to userName;
grant create context index to userName;
grant create package to userName;
revoke dba from userName;
revoke soi from userName;
revoke create table from userName;
revoke create view from userName;
revoke create procedure from userName;
revoke create sequence from userName;
revoke create trigger from userName;
revoke create index from userName;
revoke create context index from userName;
revoke create package from userName;
数据库给其他用户授权(V8第版本)
#dm8低版本给用户授权的2种方式
#方式1:把单个对象(表、视图、存储过程)授权给用户
grant <特权> on [<对象类型>] <对象> to <用户或角色>{,<用户或角色>}
#示例
grant select ,insert,delete,update on dbName.objectName to userName;
grant all privileges on dbName.objectName to userName;
revoke all privileges on dbName.objectName from userName;
#方式2:把角色授权给用户(角色也需要单个对象授权给角色)
create role <roleName>;
drop role <roleName>;
grant select on dbName.objectName to <roleName>;
grant <角色名>{, <角色名>} to <用户或角色>{,<用户或角色>}
revoke <角色名>{,<角色名>} from <角色名或用户名>
内置函数的应用
TO_CHAR(SYSDATE(), 'YYYY-MM-DD HH24:MI:SS' )
TO_DATE('2024-11-15 16:33:47' ,'YYYY-MM-DD HH24:MI:SS' )
select from_unixtime(1681871428 ), from_unixtime(1681871428 ,'YYYY-MM-DD' ), from_unixtime(1681871428 ,'YYYY-MM-DD HH24:MI:SS' ) from dual;
select unix_timestamp(SYSDATE) from dual;
wm_concat(user_name)
listagg (to_char(user_id), '-' ) within group (order by user_id)
达梦sql查询
WITH cte(id,pid,dept_name) AS (
SELECT id, pid, dept_name FROM meta_dept_info WHERE pid IS NULL AND is_delete= '0'
UNION ALL
SELECT t1.id, t1.pid, t1.dept_name FROM meta_dept_info t1
JOIN cte t2 ON t1.pid = t2.id
)
SELECT * FROM cte;
函数的创建
create [or replace] function funName([p1,p2...pn])
return datatype
is | as
begin
end
1 、开启打印:DBMS_OUTPUT.ENABLE();
2 、添加打印语句:DBMS_OUTPUT.PUT_LINE('abc' );
CREATE OR REPLACE FUNCTION fun_name_1(p1 varchar )
RETURN varchar
AS TypeName varchar ;
BEGIN
select dict_name into TypeName from tableName where name= p1;
return TypeName;
END ;
create or replace TYPE type_name_record IS RECORD(name varchar );
create or replace TYPE type_name_table IS table of type_name_record;
CREATE OR REPLACE FUNCTION regexp_split_to_table(strIn varchar , delim varchar )
RETURN type_name_table
AS v_tab type_name_table; new_delim varchar ;
BEGIN
new_delim = concat('[^' ,delim,']+' );
SELECT regexp_substr(strIn, new_delim, 1 , level) as name bulk collect into v_tab FROM dual
CONNECT BY regexp_substr(strIn, new_delim, 1 , level) IS NOT NULL ;
return v_tab;
END ;
CREATE OR REPLACE FUNCTION fun_name_3(userId varchar )
RETURN varchar
AS UserName varchar ;
BEGIN
select listagg (to_char(g.user_name), ',' ) within group (order by g.user_id) INTO UserName
from (SELECT p.user_name,p.user_id from tableName p
where p.user_id in (select * from table (regexp_split_to_table(USERID,',' ))))g;
return UserName;
END ;
CREATE OR REPLACE FUNCTION split_part(strIn varchar , delim varchar , indexOf int )
RETURN varchar
AS strOut,new_delim varchar ;startNo int ;
BEGIN
startNo = indexOf - 1 ;
new_delim = concat('[^' ,delim,']+' );
SELECT regexp_substr(strIn, new_delim, 1 , level) into strOut FROM dual
CONNECT BY regexp_substr(strIn, new_delim, 1 , level) IS NOT NULL
limit 1 offset startNo;
return IFNULL(strOut,'' );
END ;
select split_part('a,b,c,d' ,',' ,3 );
达梦的一些初始化参数设置
declare
v_mem_mb int ;
v_cpus int ;
mem_per int := 100 ;
begin
SELECT TOP 1 N_CPU,TOTAL_PHY_SIZE/ 1024 / 1024 INTO v_cpus,v_mem_mb FROM V$SYSTEMINFO;
print v_cpus;
print v_mem_mb;
SP_SET_PARA_VALUE(2 ,'WORKER_THREADS' ,v_cpus);
SP_SET_PARA_VALUE(2 ,'TASK_THREADS' ,v_cpus/ 2 );
SP_SET_PARA_VALUE(2 ,'IO_THR_GROUPS' ,v_cpus/ 2 );
v_mem_mb := v_mem_mb * (mem_per/ 150.0 );
SP_SET_PARA_VALUE(2 ,'MAX_OS_MEMORY' , 90 );
SP_SET_PARA_VALUE(2 ,'MEMORY_POOL' , cast (v_mem_mb * 0.015 as int ));
SP_SET_PARA_VALUE(2 ,'BUFFER' , cast (v_mem_mb * 0.5 as int ));
SP_SET_PARA_VALUE(2 ,'MAX_BUFFER' , cast (v_mem_mb * 0.5 as int ));
SP_SET_PARA_VALUE(2 ,'BUFFER_POOLS' , 11 );
SP_SET_PARA_VALUE(2 ,'RECYCLE' , cast (v_mem_mb * 0.032 as int ));
SP_SET_PARA_VALUE(2 ,'RECYCLE_POOLS' , 3 );
SP_SET_PARA_VALUE(2 ,'HJ_BUF_GLOBAL_SIZE' , cast (v_mem_mb * 0.0625 as int ));
SP_SET_PARA_VALUE(2 ,'HJ_BUF_SIZE' , cast (v_mem_mb * 0.004 as int ));
SP_SET_PARA_VALUE(2 ,'HAGR_BUF_GLOBAL_SIZE' ,cast (v_mem_mb * 0.05 as int ));
SP_SET_PARA_VALUE(2 ,'HAGR_BUF_SIZE' , cast (v_mem_mb * 0.004 as int ));
SP_SET_PARA_VALUE(2 ,'SESS_POOL_SIZE' , cast (v_mem_mb * 0.004 as int ));
SP_SET_PARA_VALUE(2 ,'CACHE_POOL_SIZE' , cast (v_mem_mb * 0.016 as int ));
SP_SET_PARA_VALUE(2 ,'SORT_BUF_SIZE' , 10 );
SP_SET_PARA_VALUE(2 ,'DICT_BUF_SIZE' , 50 );
SP_SET_PARA_VALUE(2 ,'USE_PLN_POOL' , 1 );
SP_SET_PARA_VALUE(2 ,'ENABLE_MONITOR' , 1 );
SP_SET_PARA_VALUE(2 ,'SVR_LOG' , 0 );
SP_SET_PARA_VALUE(2 ,'TEMP_SIZE' , 1024 );
SP_SET_PARA_VALUE(2 ,'TEMP_SPACE_LIMIT' , 102400 );
SP_SET_PARA_VALUE(2 ,'MAX_SESSIONS' , 1500 );
SP_SET_PARA_VALUE(2 ,'MAX_SESSION_STATEMENT' , 20000 );
SP_SET_PARA_VALUE(2 ,'PK_WITH_CLUSTER' , 0 );
SP_SET_PARA_VALUE(2 ,'ENABLE_ENCRYPT' ,0 );
SP_SET_PARA_VALUE(2 ,'OLAP_FLAG' ,2 );
SP_SET_PARA_VALUE(2 ,'VIEW_PULLUP_FLAG' ,1 );
SP_SET_PARA_VALUE(2 ,'OPTIMIZER_MODE' ,1 );
SP_SET_PARA_VALUE(2 ,'ADAPTIVE_NPLN_FLAG' ,0 );
SP_SET_PARA_VALUE(2 ,'TOP_DIS_HASH_FLAG' ,0 );
SP_SET_PARA_VALUE(2 ,'TOP_ORDER_OPT_FLAG' ,1 );
SP_SET_PARA_VALUE(2 ,'COMPATIBLE_MODE' , 0 );
end ;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2022-11-22 JVM
2022-11-22 常用
2022-11-22 Hbase
2022-11-22 Zookeeper
2022-11-22 Docker
2022-11-22 Hive
2022-11-22 Idea