达梦的key 如何更换 以及如何配置 dmpyton 在windows 端
##sample 1
方法1: 手工执行方法
步骤:
1. 修改模板文件sample.txt,从第二行开始按需要修改,第一行不动
2. 把要更新的dm.key文件拷贝到当前目录,替换测试的dm.key
3. 执行命令: sh replace_dmkey.sh
cd /ddd/dm
\cp /opt/newkey/dm.key ./a/bin/
\cp /opt/newkey/dm.key ./b/bin/
SELECT EXPIRED_DATE FROM V$LICENSE;
CALL SP_LOAD_LIC_INFO();
方法2:脚本修改方法
脚本使用方法:
1. 修改模板文件sample.txt,从第二行开始按需要修改,第一行不动
2. 把要更新的dm.key文件拷贝到当前目录,替换测试的dm.key
3. 执行命令: sh replace_dmkey.sh
在10.241.*.*服务器上
cd /opt/newkey/replace_dmkey
1)配置sample.txt文件:
服务器IP|数据库bin目录|数据库OS用户|数据库实例端口|数据库管理员|数据库管理员密码
10.241.*。*|/ddd/dm/db1/bin|dmdba|5257|DBA|DDD
2)把要更新的dm.key文件拷贝到当前目录,替换
3)执行命令:
chmod +x *.sh
sh replace_dmkey.sh
##sample 2
Python
本章主要介绍在 Python 开发的时候,如何使用 Python 快速连接达梦数据库。
dmPython 简介
dmPython 是 DM 提供的依据 Python DB API version 2.0 中 API 使用规定而开发的数据库访问接口。
使用 Python 连接达梦数据库时需要安装 dmPython。安装完 DM 数据库软件后,在安装路径下的 drivers 目录下,可以找到 dmPython 的驱动源码,由于提供的是源码,需要自己编译安装,下面分别介绍如何在 Windows 和 Linux 环境下编译安装 dmPython。
Windows 环境编译安装 dmPython
安装 DM 数据库软件并设置 DM_HOME 环境变量
dmPython 源码依赖 DM 安装目录中提供的 include 头文件,编译安装前需要检查是否安装 DM 数据库软件,并设置 DM_HOME 环境变量。
可访问达梦云适配中心下载试用,下载 DM8 数据库试用版并安装,请参考 DM 数据库安装。
设置 DM_HOME 环境变量
安装编译工具 Microsoft Visual C++ Build Tools
编译安装 dmPython
安装完 DM 数据库软件后,在安装路径下的 drivers 目录下,找到 dmPython 的驱动源码。
进入到 dmPython 驱动源码目录
cd D:\dmdbms\drivers\python\dmPython
编译安装 dmPython
python setup.py install
编译安装结束后使用 pip list 命令查看是否安装成功
查看搜索路径并将 dpi 目录文件拷贝到搜索路径下
dmPython 通过调用 DM DPI 接口完成 Python 模块扩展。在其使用过程中,除 Python标准库以外,还需要 DPI 的运行环境。
进入 python 解释器查看搜索路径
python
import sys
sys.path
C:\Users\Admin\AppData\Local\Programs\Python\Python39\lib\site-packages\dmpython-2.3-py3.9-win-amd64.egg
编写测试代码
import dmPython
conn=dmPython.connect(user='SYSDBA',password='SYSDBA',server= '192.168.201.118',port=5236)
cursor = conn.cursor()
cursor.execute('select username from dba_users')
values = cursor.fetchall()
print(values)
cursor.close()
conn.close()
输出数据库中的用户名则表示连接数据库成功。
常见问题处理见:https://eco.dameng.com/document/dm/zh-cn/faq/faq-python.html
###sample 3:重装dm客户端导致dmpython无法识别
报错: 1.windows
>>> import dmPython
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: DLL load failed: 找不到指定的模块。
检查方法:检查目录path 路径
>>>
>>>
>>> import sys
>>> sys.path
['', 'C:\\Python37\\python37.zip', 'C:\\Python37\\DLLs', 'C:\\Python37\\lib', 'C:\\Python37', 'E:\\db\\test_py\\magic_box_37\\venv', 'E:\\db\\test_py\\magic_box_
37\\venv\\lib\\site-packages']
>>> import dmPython
>>>
解决方法:
copy 新达梦home 目录下 的所有文件 E:\dba\dm8\app2023\drivers\dpi
到 dmpython 的path 目录下即可
E:\\db\\test_py\\magic_box37\\venv\\lib\\site-packages']
####windows python console 无法打印中文
https://www.jb51.net/article/267528.htm
pycharm console 打印中文为乱码问题及解决
console 打印乱码
1.File Encoding设置项目编码为GBK (注意将 project encoding 修改成GBK ,console 可以打印中文了,但是print 无法打印中文)
(注意将 project encoding 修改成UTF-8 ,console 不可以打印中文了,但是print 可以打印中文)
2.文件模板设定python脚本为# -*- coding: utf-8 -*-
3.重启pycharm
正常
pycharm乱码解决大全
运行项目时控制台乱码
在Settings的Editor里点击FileEncoding,在下图中三个位置修改编码一致(一般为UTF-8或者GBK)
最后Apply并确认后重新运行项目即可
如果上述方法解决不了,可能是字体问题,解决方法如下
找到Editor ->Color Scheme ->Console Font,修改设置如下图所示:
项目名中文乱码
我这里项目名中间没有中文,因此就没有中文乱码了,所以还是尽量多用英文来命名
但如果乱码,可以参考下图修改项目名的字体为微软雅黑即可显示中文(原字体不支持中文)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
#######sample 3 普罗米修斯和dmpython
一.环境准备
1.CPU: Intel x86
2.OS: Centos7
3.安装包
软件 版本 备注
Python 3.9.13 导入模块:
prometheus_client
dmPython
Grafana 9.1.0 页面展现平台
prometheus 2.38.0 监控数据存储
dm8_exporter.py 达梦数据库监控采集agent
dmdb_dashborad-v3.10.json Grafana 页面看板
Prometheus server http://ip:3000
http://ip:9090/
Prometheus client http://ip:8000/
二.Python 环境安装
1.python3.9安装(达梦数据库服务器)
[root@localhost Python-3.9.13]# yum -y install zlib zlib-devel bzip2 bzip2-devel ncurses openssl openssl-devel openssl-static xz lzma xz-devel sqlite sqlite-devel gdbm gdbm-devel tk tk-devel libffi-devel gcc
[root@localhost Python-3.9.13]# tar -zxvf Python-3.9.13.tgz
[root@localhost Python-3.9.13]# cd Python-3.9.13/
[root@localhost Python-3.9.13]#./configure --prefix=/usr/local/python3 &&make &&make install
[root@localhost Python-3.9.13]# ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3.9
[root@localhost Python-3.9.13]# python3.9 --version
Python 3.9.13
2.依赖包安装
1)拷贝dmPython驱动目录至服务器
[root@localhost opt]# cd dmPython/
[root@localhost dmPython]# python3.9 setup.py install
[root@localhost dmPython]# python3.9
Python 3.9.13 (main, Aug 25 2022, 23:47:20)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dmPython
>>>
2)拷贝prometheus_client-0.14.1.tar.tar至服务器
[root@localhost prometheus_client-0.14.1]# tar -xvf prometheus_client-0.14.1.tar.tar
[root@localhost prometheus_client-0.14.1]# cd prometheus_client-0.14.1/
[root@localhost prometheus_client-0.14.1]# python3.9 setup.py install
[root@localhost prometheus_client-0.14.1]# python3.9
Python 3.9.13 (main, Aug 25 2022, 23:47:20)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import prometheus_client
>>>
三.Grafana环境安装(监控服务器)
1.安装
[root@localhost opt]# yum -y install grafana-enterprise-9.1.1-1.x86_64.rpm
2.启动服务并加入开机启动
[root@localhost opt]# systemctl start grafana-server.service
[root@localhost opt]# systemctl enable grafana-server.service
3.检查服务状态(默认使用3000端口)
[root@localhost opt]# systemctl status grafana-server.service
[root@localhost opt]# netstat -lnptu | grep 3000
4.开放端口并访问
http://ip:3000
admin/admin
四.Prometheus环境安装(监控服务器)
1.解压
[root@localhost opt]# tar -zxvf prometheus-2.38.0.linux-amd64.tar.gz
2.配置
[root@localhost opt]# mv prometheus-2.38.0.linux-amd64 /usr/local/prometheus
[root@localhost opt]# cd /usr/local/prometheus/
[root@localhost prometheus]# vim prometheus.yml
(scrape_config 章节配置的是采集node export 的数据)
可以先保持默认,后面添加客户端监控
3.启动
nohup ./prometheus --config.file="prometheus.yml" &
或者
pkill prometheus
systemctl start prometheus
4.访问
http://localhost:9090/
五.启动dmdb_exporter(达梦数据库服务器)
1.拷贝dm8_exporter.py文件至达梦数据库服务器
2.修改要监控的数据库连接信息
cp dm8_exporter.py /opt/dm8_exporter.py
vim /opt/dm8_exporter.py
3.启动监控项目
方法1:手工启动(本地监控)
cd /opt
[root@localhost opt]# python3.9 dm8_exporter.py
可以放于后台(nohup python3.9 dm8_exporter.py &)
方法2:服务方式启动(本地监控单个达梦数据库)
在/usr/lib/systemd/system目录新增1个配置文件,分别为:
1. vi /usr/lib/systemd/system/dm_exporter.service文件,内容如下:
[Unit]
Description=Prometheus dameng Exporter
After=network.target
[Service]
Environment="LD_LIBRARY_PATH=/dm/bin:/usr/lib64:/usr/bin"
ExecStart=/usr/bin/python3.9 /opt/dm/dm8_exporter_cloudwise.py
ExecStop=kill -9 `ps -ef|grep 'dm8_exporter'|grep -v 'grep'|awk '{print $2}'`
Execenable=/usr/bin/python3.9 /opt/dm8_exporter.py
User=root
[Install]
WantedBy=multi-user.target
2.systemctl命令
重载配置:
systemctl daemon-reload
3.开启服务:
systemctl start dm_exporter
3.停止服务:
systemctl stop dm_exporter
如果systemctl status dm_exporter遇到这个报错:
● dm_exporter.service - Prometheus dameng Exporter
Loaded: loaded (/usr/lib/systemd/system/dm_exporter.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Sat 2022-10-08 11:24:08 CST; 9s ago
Process: 1554225 ExecStart=/usr/bin/python3.9 /opt/dm/dm8_exporter_cloudwise.py (code=exited, status=1/FAILURE)
Main PID: 1554225 (code=exited, status=1/FAILURE)
10月 08 11:24:07 dmperfdw1 systemd[1]: Started Prometheus dameng Exporter.
10月 08 11:24:08 dmperfdw1 python3.9[1554225]: Traceback (most recent call last):
10月 08 11:24:08 dmperfdw1 python3.9[1554225]: File "/opt/dm/dm8_exporter_cloudwise.py", line 8, in <module>
10月 08 11:24:08 dmperfdw1 python3.9[1554225]: import dmPython
10月 08 11:24:08 dmperfdw1 python3.9[1554225]: ImportError: libdmdpi.so: cannot open shared object file: No such file or directory
10月 08 11:24:08 dmperfdw1 systemd[1]: dm_exporter.service: Main process exited, code=exited, status=1/FAILURE
解决方法:
配置文件加入参数Environment
[Service]
Environment="LD_LIBRARY_PATH=/dm/bin:/usr/lib64:/usr/bin"
方法3:服务方式启动(本地监控多个达梦数据库)
3.查看客户端采集页面
http://ip:8000/
六.添加prometheus配置(监控服务器)
1.修改 /usr/local/prometheus/prometheus.yml文件
- job_name: 'dmdb1'
static_configs:
- targets: ['192.168.163.137:8000']
- targets: ['192.168.163.138:8000']
2.重启prometheus
-》方法1:手工重启方法
[root@localhost prometheus]# ps -ef|grep prometheus
root 2183 1964 0 Aug26 pts/0 00:00:04 ./prometheus --config.file=prometheus.yml
root 3810 2997 0 00:11 pts/1 00:00:00 grep --color=auto prometheus
[root@localhost prometheus]#
[root@localhost prometheus]#pkill prometheus
[root@localhost prometheus]# kill 2183
cd /usr/local/prometheus
[root@localhost prometheus]# nohup ./prometheus --config.file="prometheus.yml" &
-》方法2:服务方式重启方法:
在/usr/lib/systemd/system目录新增1个配置文件,分别为:
1. /usr/lib/systemd/system/prometheus.service文件,内容如下:
[Unit]
Description=Prometheus Service
After=network.target
[Service]
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml
ExecStop=kill -9 `ps -ef|grep 'prometheus.yml'|grep -v 'grep'|awk '{print $2}'`
User=root
[Install]
WantedBy=multi-user.target
2.systemctl命令
重载配置:
systemctl daemon-reload
3.开启服务:
systemctl start prometheus
4.停止服务
systemctl stop prometheus
https://blog.csdn.net/qq_20042935/article/details/124324441
后继可以使用该方法将监控client也写成服务
3.查看status/ targets ,看看达梦数据库state 是否up
http://ip:9090/targets?search=
http://10.241.133.78:8000/metrics
http://ip:9090/targets?search=
查看graph界面,搜索关键字 tbs
http://10.241.133.150:9090/graph?g0.expr=&g0.tab=1&g0.stacked=0&g0.show_exemplars=0&g0.range_input=1h
七.Grafana导入看板(监控服务器)
1.添加数据源
选择prometheus
2.导入看板json文件
选择图标-> import ->upload json file
3.至此完成,查看监控面板
问题:1如果图标里数据没有展示。
1.解决办法,以此选中这些图标的名字,那么可以直接编辑
2.选中data source , 选择 prometheus, 然后选择右上角的 刷新按钮
问题2
#######错误1
Warning:?Error fetching server time: Detected 542.3980000019073 seconds time difference between your browser and the server. Prometheus relies on accurate time and time drift might cause unexpected query results.
调整本地时间,正确跟系统时间误差在5-10秒以内
问题3 python 3.9安装第三方依赖包dmPython 报错
##
python3.9 setup.py install
distutils.errors.DistutilsSetupError: cannot locate an Dameng software installation
解决办法
Root 用户profile 加入
DM_HOME=/opt/dmdbms
LD_LIBRARY_PATH=:/opt/dmdbms/bin
#########sample 4
https://blog.csdn.net/weixin_44224529/article/details/120276522?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-120276522-blog-126231762.235^v27^pc_relevant_default_base1&spm=1001.2101.3001.4242.1&utm_relevant_index=3
Microsoft Visual C++ 14.0 is required 的终极解决办法
在python 安装包的过程中可能遇到Microsoft Visual C++ 14.0 is required 的报错,原因是使用pip install 安装的过程中需要c++ 编译,而且有些对编译器依赖有比较高。所以解决这种问题有两种方法。
方法一
也是比较快的方法,直接下载编译好的python包,也叫轮子包,也就是这样的包 xxx.whl 。这样能解决80% 的包的问题,因为有些包在编译的时候会丢文件。
whl 包的下载地址
https://www.lfd.uci.edu/~gohlke/pythonlibs/
https://pypi.org/project/
1
2
方法二
编译安装,但是编译器版本有不支持。那就升级编译器,但是这个c++14 的编译在安装过程中老是安装失败,包丢失。所以说直接安装高版本的编译就可以解决问题,编译安装的好处就是,包安装比较全,而且包中有bug的化,你到github 中下载最新的源码,可以减少你在使用过程中出现意想不到的bug.
升级编译器的方法
一 、到微软官网下载visual studio2019如图
https://visualstudio.microsoft.com/zh-hans/downloads/
二 、下载完安装,安装完后选择单个组件如图
然后在选c++14如图
安装完之后,就可以pip install 安装python 包了 或者使用 python setup.py install (提前是你在下源码包)
————————————————
版权声明:本文为CSDN博主「go_flush」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44224529/article/details/120276522
##samlpe 3 达梦安装脚本 单机版本
#!/bin/sh
#------------------------------------------------|
#Date: 2023-03-17 Test Successful
#Author:
#Da Meng Database Installation and Initialization
#------------------------------------------------|
echo -e "*********************************************************"
echo -e "******************达梦数据库安装开始*********************"
echo -e "**************请根据下列提示输入对应内容*****************"
echo -e "*********************************************************"
read -p "请输入数据库SID:" dmsid
read -p "请输入数据库字符集(1'UTF8' or 0'GB18030):" dmchar
read -p "请输入数据库大小写是否敏感(1'是' or 0'否'):" dmcase
read -p "请输入数据库varchar类型以字符为单位(1'是' or 0'否'):" dmchvar
read -p "请输入数据库簇大小:" dmex
read -p "请输入数据库页大小:" dmpage
read -p "请输入数据库端口号:" dmport
read -p "请输入数据库dm.ini文件参数(COMPATIBLE_MODE=?)" dmcom
add_group() {
grep -Ei "dinstall|dmdba" /etc/group | grep -iE "2003|2002" &> /dev/null
if [ $? -ne 0 ]
then
groupadd dinstall -g 2003
groupadd dmdba -g 2002
else
echo -e "\033[32m DM_Group Creare [Successd] \033[0m"
fi
}
add_user() {
id dmdba | grep dinstall &> /dev/null
if [ $? -ne 0 ]
then
useradd -g dinstall -G dmdba dmdba
echo -e "\033[32m DM_User Creare [Successd] \033[0m"
fi
}
dm_mount() {
df -Th | grep dmiso &> /dev/null
if [ $? -eq 0 ]
then
echo -e "\033[32m DMiso mount [Successd] \033[0m"
else
mkdir -p /dmiso
mount -o loop dm8_20220928_x86_kylin10_64_ent_8.1.2.138_pack3.iso /dmiso &> /dev/null
echo -e "\033[32m DMiso mount [Successd] \033[0m"
fi
}
dm_install() {
if [ -d /ddd/dm/${dmsid} ]
then
echo -e "\033[32m DM directories creating [Successd] \033[0m"
else
mkdir -p /ddd/dm/${dmsid} && chown -R dmdba:dinstall /ddd/dm/${dmsid}
echo -e "\033[32m DM directories creating [Successd] \033[0m"
fi
if [ -f /dmiso/DMInstall.bin ]
then
echo -e "\033[32m********************************************************* \033[0m"
echo -e "\033[32m达梦数据库安装程序启动中.............. \033[0m"
echo -e "\033[31m安装路径请输入/ddd/dm/${dmsid} \033[0m"
su - dmdba -c "/dmiso/DMInstall.bin -i"
else
echo -e "\033[31m 达梦数据库安装程序不存在!!!!!!! \033[0m"
fi
#install_path="/ddd/dm/${dmsid}"
#{
#spawn su - dmdba -c "/dmiso/DMInstall.bin -i"
#expect {
# "(E/e:English C/c:Chinese)" { send "e\r";exp_continue }
# "Continue? (Y/y:Yes N/n:No) [Y/y]:" { send "Y\r" }
#}
#expect "Key File? (Y/y:Yes N/n:No) [Y/y]:"
#send "Y\r"
#}
#"TimeZone? (Y/y:Yes N/n:No) [Y/y]:" { send "Y\r" }
#"Please Select the TimeZone [21]:" { send "21\r" }
#"Please Input the number of the Installation Type [1 Typical]:" { send "2\r" }
#"Please Input the install path [/home/dmdba/dmdbms]:" { send "${install_path}\r" }
#"Please Confirm the install path(/ddd/dm/sdss)? (Y/y:Yes N/n:No) [Y/y]:" { send "Y\r" }
#"Confirm to Install? (Y/y:Yes N/n:No):" { send "Y\r" }
#"File /etc/dm_svc.conf exist, replace it? (Y/y,N/n) [Y/y]:" { send "Y\r" }
}
dm_installs() {
sh /ddd/dm/${dmsid}/script/root/root_installer.sh
}
dm_example() {
mkdir -p /dmdata/${dmsid} && chown -R dmdba:dinstall /dmdata/${dmsid}
su - dmdba -c "/ddd/dm/${dmsid}/bin/dminit path=/dmdata/${dmsid} page_size=${dmpage} port_num=${dmport} extent_size=${dmex} log_size=2048 db_name=${dmsid}uat instance_name=${dmsid}uat case_sensitive=${dmcase} charset=1 LENGTH_IN_CHAR=${dmchvar}"
}
regis_servuce() {
/ddd/dm/${dmsid}/script/root/dm_service_installer.sh -t dmserver -p ${dmsid}uat -dm_ini /dmdata/${dmsid}/${dmsid}uat/dm.ini
}
dmserver() {
if [ -f /ddd/dm/${dmsid}/bin/DmService* ]
then
systemctl start DmService${dmsid}uat &> /dev/null
if [ $? -eq 0 ]
then
echo -e "\033[32m DmService${dmsid}uat [Successd] \033[0m"
else
echo -e "\033[31m DmService${dmsid}uat [Faild] \033[0m"
fi
else
echo "\033[31m DmService${dmsid}uat File does not exist \033[0m"
fi
}
set_profile() {
setnum=`cat -n /home/dmdba/.bash_profile | grep db | tail -1 | awk -F' ' '{print $1}'`
dbnum=`cat -n /home/dmdba/.bash_profile | grep db | wc -l`
sed -i "${setnum}a db${dbnum} ${dmsid} port ${dmport} , systemctl start DmService${dmsid}uat" /home/dmdba/.bash_profile
sed -i "/^db${dbnum}/s/^/\t/g" /home/dmdba/.bash_profile
}
initial_dmdata() {
su - dmdba -c "disql SYSDBA/SYSDBA@localhost:${dmport}<<!
sp_set_para_value(2,'ENABLE_ENCRYPT',0);
alter system set 'COMPATIBLE_MODE'=4 spfile;
exit
!
"
}
create_tablespace() {
dmpass='"'${dmsid}opr@1234'"'
su - dmdba -c "disql SYSDBA/SYSDBA@localhost:${dmport}<<!
create tablespace ${dmsid}_DATA datafile '/dmdata/${dmsid}/${dmsid}uat/${dmsid}_DATA_TS.dbf' size 175 autoextend on maxsize 124431 CACHE = NORMAL;
create user ${dmsid}DATA identified by ${dmpass} limit failed_login_attemps 3,password_lock_time 1, password_grace_time 10 default tablespace ${dmsid}_DATA default index tablespace ${dmsid}_DATA;
grant RESOURCE,VTI,PUBLIC to ${dmsid}DATA;
exit
!
"
}
create_dmopruser() {
oprpass='"'${dmsid}opr@1234'"'
su - dmdba -c "disql SYSDBA/SYSDBA@localhost:${dmport}<<!
create user ${dmsid}OPR identified by ${oprpass} limit failed_login_attemps 3,password_lock_time 1, password_grace_time 10 default tablespace ${dmsid}_DATA default index tablespace ${dmsid}_DATA;
grant RESOURCE,VTI,PUBLIC to ${dmsid}OPR;
exit
!
"
}
create_dmetluser() {
etlpass='"'${dmsid}etl@1234'"'
su - dmdba -c "disql SYSDBA/SYSDBA@localhost:${dmport}<<!
create user ${dmsid}ETL identified by ${etlpass} limit failed_login_attemps 3,password_lock_time 1, password_grace_time 10 default tablespace ${dmsid}_DATA default index tablespace ${dmsid}_DATA;
grant RESOURCE,VTI,PUBLIC to ${dmsid}ETL;
exit
!
"
}
modfiy_com() {
if [ -f /dmdata/${dmsid}/${dmsid}uat/dm.ini ]
then
sed -i "s/COMPATIBLE_MODE.*=.*#Server/COMPATIBLE_MODE = ${dmcom} #Server/g" /dmdata/${dmsid}/${dmsid}uat/dm.ini
elif [ $? -eq 0 ]
then
echo -e "\033[32m dm.ini文件参数COMPATIBLE_MODE [Successd] \033[0m"
else
echo -e "/dmdata/${dmsid}/${dmsid}uat/dm.ini 文件不存在!!! \033[0m"
fi
}
output_info() {
ipinfo=`ip address |grep 10.241 | awk -F '\\/' '{print $1}'`
echo -e "SID: \t ${dmsid}" >> /root/${dmsid}
if [ ${dmchar} -eq 0 ]
then
echo -e "字符集: \t\t\t\t GB18030" >> /root/${dmsid}
else
echo -e "字符集: \t\t\t\t UTF8" >> /root/${dmsid}
fi
echo -e "簇大小: \t\t\t\t ${dmex}" >> /root/${dmsid}
echo -e "页大小: \t\t\t\t ${dmpage}" >> /root/${dmsid}
echo -e "端口号: \t\t\t\t ${dmport}" >> /root/${dmsid}
if [ ${dmcase} -eq 0 ]
then
echo -e "大小写是否敏感: \t\t\t\t 否" >> /root/${dmsid}
else
echo -e "大小写是否敏感: \t\t\t\t 是" >> /root/${dmsid}
fi
if [ ${dmchvar} -eq 0 ]
then
echo -e "Varchar类型以字符为单位: \t\t\t\t 否 " >> /root/${dmsid}
else
echo -e "Varchar类型以字符为单位: \t\t\t\t 是 " >> /root/${dmsid}
fi
echo -e "Dm Ini文件参数: \t\t\t\t COMPATIBLE_MODE=${dmcom}" >> /root/${dmsid}
echo -e "测试版本:\t\t\t\t ${ipinfo} -03134283914-20220927-170566-20009 Pack3" >> /root/${dmsid}
echo -e "测试用户和表空间:\t\t\t\t ${ipinfo} ${dmport} , ${ipinfo} ${dmport} 表空间名${dmsid}_DATA 用户${dmsid}data 密码${dmsid}@1234 用户${dmsid}opr 密码${dmsid}opr@1234 用户${dmsid}etl 密码${dmsid}etl@1234" >> /root/${dmsid}
}
#下面是shell脚本执行的开始
add_group
add_user
dm_mount
dm_install
dm_installs
dm_example
regis_servuce
dmserver
set_profile
initial_dmdata
systemctl start DmService${dmsid}uat &> /dev/null
if [ $? -eq 0 ]
then
create_tablespace &> /dev/null
create_dmopruser &> /dev/null
create_dmetluser &> /dev/null
echo -e "\033[32m ${dmsid} User Authorization [Successd] \033[0m"
fi
ss -utnlp | grep -iE ${dmport} &> /dev/null
if [ $? -eq 0 ]
then
echo -e "\033[32m ${dmsid} Database instance [Successd] \033[0m"
modfiy_com
systemctl restart DmService${dmsid}uat &> /dev/null
output_info
else
echo -e "\033[31m ${dmsid} Database instance [Faild] \033[0m"
fi
echo -e "\033[32m 达梦数据库安装 [Successd] \033[0m"
echo -e "\033[32m 对应用户密码文件在/root/${dmsid} \033[0m"
总结如下:
-
大小写敏感:
- 创建表时,如果未添加双引号,表名和列名会自动转换为大写形式。 -包括表空间名字,不加双引号,自动转成大写
- DML或DDL操作时,需要利用双引号指定表名和字段名。
- 查询时,使用双引号包围的查询条件会区分大小写。
-
大小写不敏感:
- 创建表时,表名和列名的大小写形式不会发生变化。 。 -包括表空间名字,不加双引号,不变化
- DML或DDL操作时,不需要利用双引号指定表名和字段名。
- 查询时,使用单引号(')包围的查询条件不区分大小写。