收费。达梦数据库是一款商业性质的数据库产品,任何项目需要收费才能使用,由于不同的版本和功能模块,收费标准也不同。达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。
达梦数据库update提示转换失败因为启动数据库后数据库没有正常停止(mount下停止数据库时会dmsever对数据文件的修改 *** 作没有写入到数据文件导致数据文件写坏)。达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。
~
关注
达梦数据库常见报错及解决办法 原创
2021-09-13 16:53:28

果味怪叔叔~ 
码龄3年
关注
在达梦数据库的日常使用中我们可能会遇到很多问题,今天我将自己近期常遇到的错误进行总结汇总。
1、连接数据库报错:网络通信异常
解决方法:
数据库连接报网络通信异常原因通常只有两个,数据库服务启动异常或者数据库服务器网络通信异常
1 登录数据库服务器检查数据库进程是否存在ps –ef|grep dmserver
2 检查数据库服务器网络通信ping数据库服务器地址
3 检查数据库服务器数据库端口号通信是否正常telnet数据库服务器ip数据库端口号
2、数据库启动报错:dmserver startup failed, code = -104 [Invalid INI file]
解决方法:
数据库正常启动需要有数据文件,该类报错一般存在如下两方面原因:
1)数据文件不存在;
2)启动数据库的用户没有读写数据文件的权限。
3、数据库连接报错:用户名或密码错误
解决方法:
此类错误只需输入正确的密码即可。
如果忘记密码,以管理员登录数据库后修改该用户的密码:
alter user USERNAME identified by “PASSWD”
前面的USERNAME是用户名,后面的PASSWD是密码。
需要注意用户名不区分大小写,密码区分大小写。
4、登录数据库时报错“用户已被锁”
解决方法:
使用SYSDBA登录到数据库后,鼠标右键在对应“登录”名上单击“解锁”,此时“登录名”上的小锁符号消失;
或使用SYSDBA登录后手动调用存储过程call SP_UNLOCK_LOGIN(‘登录名‘)解锁;
通常是用户多次尝试登录但密码错误导致,有时候应用系统配置了数据库连接池,应用启动时初始化连接池会多次连接数据库,如用户名密码不对,则很快就会锁住该用户。
5、执行update,insert,delete语句完成后程序或其他数据库连接查不到改变后的数据
解决方法:
造成此类现象的原因单条sql或者sql脚本执行完上述语句后没有进行commit *** 作导致。
数据库的执行单元是事务,事务如果没有commit或者rollback,仍处于未完成状态,根据事物ACID特性中的隔离性,其他数据库连接无法看到未完成的数据库事务对数据的改变
6、数据库语句长时间不能执行完成,类似卡住的状态
解决方法:
1)对于select等查询语句,需要对sql语句进行分析优化,提升查询效率
2)update,insert,delete语句执行慢可能的原因为数据库阻塞导致,需要查找出导致阻塞的语句,并对语句进行处理
7、执行语句报错“字符串截断”
解决方法:
修改的数据,超过了数据库中字符类型(VARCHAR,CHAR)定义的长度,如VARCHAR(64),插入的数据字节长度超过64就会报错
8、执行语句报错“数据溢出”
解决方法:
修改的数据,超过了数据库中数值类型(int,number,decimal)定义的长度,如decimal(6,2),插入1000000,插入的数据超过定义的范围就会报错。
9、执行语句报错 “不能修改或删除聚集索引的列”或“试图删除聚集主键”
解决方法:
若想对有聚聚索引的列进行修改,可以重建表,或者重新在别的列上建立一个聚集索引。该列上的索引就变成非聚集了,就可以修改了。
很多时候是因为创建表时指定的主键被自动创建为聚集索引了,可以修改ini参数,将PK_WITH_CLUSTER设为0,则默认创建主键时为非聚集型。
达梦数据库导入dmp文件时间时间是5分钟或者10分钟以上。根据查询相关资料信息,速度比是1:2以上,也就是说,导出时间是5分钟或者导入10分钟以上,达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统的最新版本是80版本,简称DM8。
方式一
当然是windows电脑安装达梦管理工具,直接把脚本贴进去执行,但避免不了出现误 *** 作
在这里插入描述
方式二
使用shell脚本执行sql
1 先找到达梦数据库安装位置吧
[root@localhost ~]# ss -nlp |grep 5236
tcp LISTEN 0 128 [::]:5236 [::]: users:(("dmserver",pid=103380,fd=4))
[root@localhost ~]# ps -ef|grep dmserver
root 85093 66993 0 17:56 pts/6 00:00:00 grep --color=auto dmserver
dmdba 103380 1 8 13:36 00:23:18 /home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/DAMENG_JW/dmini -noconsole
1
2
3
4
5
1
2
3
4
5
2 直接在linux上执行shell命令执行sql脚本
21 # disql username/password:port
使用这个命令可以进入sql控制台
[root@localhost sql]# /home/dmdba/dmdbms/bin/disql cpuser/cpuser123:5236
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 5524(ms)
disql V8
SQL>
进入SQL>后:
直接输入sql语句,使用英文分号结尾,回车执行。
使用“`sql文件路径”,可以执行sql脚本文件,注意前面有一个小撇(esc和tab中间的键)
使用“start sql文件路径”,可以执行sql脚本文件。
22 # disql username/password:port `sql文件位置
使用这个命令可以执行sql脚本
[root@localhost sql]# /home/dmdba/dmdbms/bin/disql cpuser/cpuser123:5236 \`sql/testsql
[root@localhost sql]#
1
2
1
2
但需注意
这个脚本执行完sql会停留在sql执行行,如需执行完返回到shell命令行,则需要在sql文件结尾添加:exit; 。
这个shell语句不能用start执行sql文件,只能使用“`”,并且前面需要添加转义字符“\”。
23 达梦sql脚本注意事项
目前发现-创建schema语句以及执行过程结尾,都需要添加“/”结束
例如执行以下语句,回车执行,一直在输出数字,直到输入“/”,再回车执行,才执行成功。
[root@localhost sql]# /home/dmdba/dmdbms/bin/disql cpuser/cpuser123:5236
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 6121(ms)
disql V8
SQL> create schema test;
2
3 /
*** 作已执行
已用时间: 26698(毫秒) 执行号:700604
SQL>
sql脚本示例:
-- 创建schema
CREATE SCHEMA DB_ZFBA_MOBILE;
/
-- 执行过程
begin
if exists(select 1 from DBA_TAB_COLUMNS where OWNER='DB_ZFBA_MOBILE' AND TABLE_NAME='T_ZJTQD') then
EXECUTE immediate 'drop table DB_ZFBA_MOBILET_ZJTQD';
end if;
end;
/
create table DB_ZFBA_MOBILET_ZJTQD
(
"C_BH" char(32) NOT NULL, -- 主键
"C_BH_AJ" varchar2(32) NULL, -- 案件编号
……
"DT_ZHXGSJ" datetime NULL, -- 最后修改时间
constraint PK_T_ZJTQD primary key( C_BH )
);
sql文件结尾添加exit;,保证多个sql文件执行不会中断
3 编写shell脚本
注意:shell脚本一定在linux中编写,windows编写的有些语句执行不成功(目前原因未知)
例如: a=a b=b c=$a$b echo $c 在windows下编写,linux中执行完会输出b
#!/bin/bash
# 请先配置数据库连接信息,再执行此脚本
DM_PATH=/home/dmdba/dmdbms #达梦数据库的安装位置
USERNAME=cpuser #达梦数据库连接用户名
PASSWORD=cpuser123 #达梦数据库连接密码
PORT=5236 #达梦数据库连接端口号
# 下面的信息请不要随意修改
CONNECT_INFO=$USERNAME/$PASSWORD:$PORT
echo "连接信息:"$CONNECT_INFO
# STEP 1
echo "开始执行---- sql/02_创建数据库对象/00CS_GSYSsql"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/02_创建数据库对象/00CS_GSYSsql >> DB_DMlog
echo "执行完成---- sql/02_创建数据库对象/00CS_GSYSsql"
# STEP 2
echo "开始执行---- sql/02_创建数据库对象/01CT_GSYSsql"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/02_创建数据库对象/01CT_GSYSsql >> DB_DMlog
echo "执行完成---- sql/02_创建数据库对象/01CT_GSYSsql"
# STEP 3
echo "开始执行---- sql/02_创建数据库对象/02CC_GSYSsql"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/02_创建数据库对象/02CC_GSYSsql >> DB_DMlog
echo "执行完成---- sql/02_创建数据库对象/02CC_GSYSsql"
# STEP 4
echo "开始执行---- sql/02_创建数据库对象/03CI_GSYSsql"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/02_创建数据库对象/03CI_GSYSsql >> DB_DMlog
echo "执行完成---- sql/02_创建数据库对象/03CI_GSYSsql"
# STEP 5
echo "开始执行---- sql/03_初始化数据/02I_T_Aty_CodeType_GSYSsql"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/03_初始化数据/02I_T_Aty_CodeType_GSYSsql >> DB_DMlog
echo "执行完成---- sql/03_初始化数据/02I_T_Aty_CodeType_GSYSsql"
# STEP 6
echo "开始执行---- sql/03_初始化数据/02I_T_Aty_Code_GSYSsql"
$DM_PATH/bin/disql $CONNECT_INFO \`sql/03_初始化数据/02I_T_Aty_Code_GSYSsql >> DB_DMlog
echo "执行完成---- sql/03_初始化数据/02I_T_Aty_Code_GSYSsql"
# Complete
echo "SQL全部执行完成---- 日志请查看DB_DMlog"
执行完成后,通过shell控制台和DB_DMlog日志可以分析sql脚本是否执行成功。
disql使用问题:当执行disql提示
-bash: disql: 未找到命令
是因为没有配置环境变量,需要指定路径。需执行vi ~/bash_profile添加
export PATH=“$PATH:$DM_HOME/bin:$DM_HOME/tool”配置环境路径,或者执行
cd $DM_HOME/tool/
/disql conn sysdba/dameng123
即可。
以上就是关于达梦数据库按照项目收费么全部的内容,包括:达梦数据库按照项目收费么、达梦数据库update提示转换失败、达梦数据库varchar改为number报错等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)