首页 > 数据库 >达梦数据库(DM8)安装

达梦数据库(DM8)安装

时间:2024-04-18 17:22:04浏览次数:27  
标签:dmdba log 数据库 dm8 sql DM8 data 达梦 define

达梦数据库(DM8)安装

一、安装部署

1.1 下载

本手册版本选择“DM8开发板”,CPU平台选择“X86”,操作系统选择“RedHat7”

下载地址:https://www.dameng.com/DM8.html
~]# wget https://download.dameng.com/eco/adapter/DM8/202401END/dm8_20240116_x86_rh7_64.zip

1.2 创建安装用户

不建议使用root用户直接安装,所以创建一个安装用户

~]# groupadd  dinstall
~]# useradd  -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
~]# echo "ECIDI@hc99" | passwd "dmdba" --stdin
~]# mkdir -p /data/dm8
~]# chown -R dmdba.dinstall /data/dm8

1.3 镜像挂载

将dm8_20240116_x86_rh7_64.zip文件传输到/home/dmdba

dmdba]# cd /home/dmdba
dmdba]# mkdir tmp
dmdba]# unzip dm8_20240116_x86_rh7_64.zip
dmdba]# mount dm8_20240116_x86_rh7_64.iso /home/dmdba/tmp/

1.4 安装

切换到dmdba用户设置环境变量

~]$ su - dmdba
~]$ vi .bash_profile
export DM_HOME="/data/dm8"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/data/dm8/bin"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
#加载
~]$ source .bash_profile

进入安装目录安装

~]$ cd /home/dmdba/tmp/

tmp]$ ./DMInstall.bin -i
请选择安装语言 [1]:1
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
请选择时区 [21]:21
请选择安装类型的数字序号 [1 典型安装]:1
请选择安装目录 [/home/dmdba/dmdbms]:/data/dm8
是否确认安装路径(/data/dm8)? (Y/y:是 N/n:否)  [Y/y]:y
是否确认安装? (Y/y:是 N/n:否):y

请以root系统用户执行命令:
/data/dm8/script/root/root_installer.sh

1.5 安装DmAPService服务

安装结束后按照提示使用root执行下面命令

tmp]$ exit
dmdba]# /data/dm8/script/root/root_installer.sh
移动 /data/dm8/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service → /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务

1.6 初始化数据库

切换到dmdba用户进行初始化

  • 配置大小写不敏感CASE_SENSITIVE=N

  • 长度以字符为单位LENGTH_IN_CHAR=1

  • 使用utf-8字符集CHARSET=1或者UNICODE_FALG=1

~]$ su - dmdba
~]$ /data/dm8/bin/dminit PATH=/data/dm8/data PAGE_SIZE=32 LOG_SIZE=2048 CHARSET=1 CASE_SENSITIVE=N LENGTH_IN_CHAR=1
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2024-07-03
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
 
 log file path: /data/dm8/data/DAMENG/DAMENG01.log
 log file path: /data/dm8/data/DAMENG/DAMENG02.log
write to dir [/data/dm8/data/DAMENG].
create dm database success. 2024-03-12 14:49:43

1.7 安装DmServiceDMSERVER实例

使用root用户创建实例并加入开机自启

~]$ exit
dm8]# /data/dm8/script/root/dm_service_installer.sh -t dmserver -dm_ini /data/dm8/data/DAMENG/dm.ini -p DMSERVER
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service → /usr/lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成

1.8 查看服务状态

启动实例查看服务状态及是否加入开机自启

dm8]# systemctl start DmServiceDMSERVER
dm8]# systemctl status DmAPService.service
dm8]# systemctl status DmServiceDMSERVER

二、基本使用

2.1 DM管理工具

需要再图形化界面。找到DM管理工具

端口5236,默认用户/密码:SYSDBA/SYSDBA

2.2 创建用户及密码

管理工具和disql命令行均可以执行sql语句,但是disql命令行执行有两点需要注意:

  • 关闭define后逐一执行sql文件,不然会出现字符转换

  • 创建schema的语句,需要在每行create schema后面一行添加'/'才可以识别,不然语法报错

#] /data/dm8/bin/disql
SQL> CREATE SCHEMA "test2";
2   /
操作已执行
已用时间: 12.887(毫秒). 执行号:79701.
#修改SYSDBA密码
ALTER USER SYSDBA IDENTIFIED BY "adminpasswd";
#创建testuser用户
create user testuser identified by "testuserpasswd"; 
#给testuser用户赋权,不然登录后无模式、schema及表权限
grant resource to testuser;
grant select any table to testuser;

#登录testuser用户创建testschema库并赋权给用户
CREATE SCHEMA "testschema" AUTHORIZATION "testuser";

2.3 sql文件导入

2.3.1 disql导入

将需要执行的test.sql文件导入/data/sql文件夹下

]# ll /data/sql
-rw-r--r-- 1 root root 22623008  4月  8 15:41 test.sql

disql命令行进入数据库,关闭define后逐一执行sql文件,不然会出现字符转换(只修改当前环境变量,退出后即失效)

]# cd /data/dm8/bin
bin]# ./disql
#关闭define
SQL> set define off
#参看define环境变量状态,OFF表示关闭
SQL> show define
DEFINE OFF 
#使用start sql文件进行导入
SQL> start /data/sql/test.sql
#使用` sql文件进行导入
SQL> ` /data/sql/test.sql

2.3.2工具导入

三、注意事项

3.1 执行sql时需要手动输入替代值

set define off 在数据库脚本中的作用
在SQLPlus中默认的"&"表示替代变量,也就是说,只要在命令中出现该符号,SQLPlus就会要你输入替代值。这就意味着你无法将一个含有该符号的字符串输入数据库或赋给变量,如字符串“SQL&Plus”系统会理解为以“SQL”打头的字符串,它会提示你输入替代变量Plus的值,如果你输入ABC,则最终字符串转化为“SQLABC”。

set define off 则关闭该功能,“&”将作为普通字符,如上例,最终字符就为“SQL&Plus”
set define off;关闭替代变量功能
set define on; 开启替代变量功能
set define * 将默认替代变量标志符该为“*”(也可以设为其它字符)
使用show+环境变量查看,使用set+环境变量修改

SQL> set define on
SQL> show define
DEFINE & (hex 26)
SQL> set define off
SQL> show define
DEFINE OFF

3.2 初始化配置

  • 配置大小写不敏感CASE_SENSITIVE=N

  • 长度以字符为单位LENGTH_IN_CHAR=1

  • 使用utf-8字符集CHARSET=1或者UNICODE_FALG=1

3.3 语法错误

在sql文件中最好不要添加创建schema的语句,否则会出现”The script file is not complete,last sql has not been executed.“的语法错误
如果要添加 的话就要在每行create schema后面一行添加'/'才可以识别

四、备份

4.1 备份脚本

编辑dm8_backup.sh

#!/bin/bash
DM_HOME=/data/dm8
backupDIR=/data/backup/dm8
runTime=`date +%Y%m%d_%H%M`
logFile=${backupDIR}/log/backup_${runTime}.log
deleteTime=30
user=sysdba
passwd=adminpasswd
port=5236

#删除30天前的备份文件
find ${backupDIR} -type f -name "*.dmp" -ctime +${deleteTime} -exec rm -f {} \; >> ${logFile} 2>&1
#删除30天前的日志
find ${backupDIR} -type f -name "*.log" -ctime +${deleteTime} -exec rm -f {} \; >> ${logFile} 2>&1

cd ${DM_HOME}/bin

#四种级别:full,owner,schemas,tables
#全库导出full
#./dexp ${user}/${passwd}:${port} DIRECTORY=${backupDIR} FILE=fullbak_${runTime}.dmp full=y LOG=exp_fullbak_${runTime}.log   >> ${logFile} 2>&1

#owner,schemas,tables
#遍历需要导出的数据库,导出命令中的SCHEMAS也可以是OWNER或TABLES,for循环中写要备份的内容
for line in testschema test2schema
do
mkdir -p ${backupDIR}/${runTime}
./dexp USERID=${user}/${passwd}:${port} DIRECTORY=${backupDIR}/${runTime} FILE=${line}_${runTime}.dmp SCHEMAS=${line} LOG=exp_${line}_${runTime}.log  >> ${logFile} 2>&1
done

#恢复schema=naco的schema的示例
#mkdir /data/backup/dm8/log/dimplog
#/data/dm8/bin/dimp USERID=SYSDBA/adminpasswd:5236 DIRECTORY=/data/backup/dm8/log/dimplog  file=/data/backup/dm8/20240409_1739/test_20240409_1739.dmp SCHEMAS=nacos LOG=dimp_test_20240409_1739.log table_exists_action=TRUNCATE

4.2 恢复

~]# mkdir /data/backup/dm8/log/dimplog
~]# /data/dm8/bin/dimp USERID=SYSDBA/adminpasswd:5236 DIRECTORY=/data/backup/dm8/log/dimplog  file=/data/backup/dm8/20240409_1739/test_20240409_1739.dmp SCHEMAS=nacos LOG=dimp_test_20240409_1739.log table_exists_action=TRUNCATE

五、参考文献

标签:dmdba,log,数据库,dm8,sql,DM8,data,达梦,define
From: https://www.cnblogs.com/wangyuanguang/p/18143996

相关文章

  • MSSQL 数据库服务器磁盘空间报警 -
    如服务器上有创建MSSQLReplication,则会自动创建distribution数据库,有时distribution数据库日志文件过大解决方案:1.第一种方案:查看日志大小, dbccsqlperf(logspace),查看哪个数据库日志文件过大,如果有数据库日志文件非常大,就需要通过检查日志的VLF使用情况来进行诊断,日志文件......
  • 数据库批量更新
    原文地址:https://www.cnblogs.com/exmyth/p/5757137.html mybatis实现批量更新 更新单条记录 1UPDATE course SET name = 'course1' WHERE id = 'id1';   更新多条记录的同一个字段为同一个值 1UPDATE course SET......
  • 构建RAG应用-day01: 词向量和向量数据库 文档预处理
    词向量和向量数据库词向量(Embeddings)是一种将非结构化数据,如单词、句子或者整个文档,转化为实数向量的技术。词向量搜索和关键词搜索的比较优势1:词向量可以语义搜索比如百度搜索,使用的是关键词搜索。而词向量搜索,是对句子的语义进行搜索,他会找到意思相近的前k个句子。优势2:词......
  • Centos系统彻底卸载MySQL数据库
    一、检查系统是否安装了MySQL数据库命令:rpm-qa|grep-imysql  二、关闭MySQL服务命令:servicemysqlstop三、卸载并删除MySQL(不检查依赖关系)卸载common命令:rpm-ev--nodepsmysql-community-common-8.0.29-1.el7.x86_64  卸载libs命令:rpm-ev--nodepsmysql-......
  • Go 单元测试之Mysql数据库集成测试
    目录一、sqlmock介绍二、安装三、基本用法四、一个小案例五、Gorm初始化注意点一、sqlmock介绍sqlmock是一个用于测试数据库交互的Go模拟库。它可以模拟SQL查询、插入、更新等操作,并且可以验证SQL语句的执行情况,非常适合用于单元测试中。二、安装gogetgithub.com/......
  • 快速测试连接SQLServer数据库的方法
    微软的SQLServer数据库应该是中小企业中使用最多的数据库,一般个人测试环境也都是用的它。下面介绍一种快速测试SQLServer数据库连接性的方法:1.新建一下记事本,将后缀名修改为udl;2.选中当前文件,右键打开文件属性,点选“提供程序”,选中MicrosoftOLEDBProviderforSQLServ......
  • 活动报名 | 如何进行全增量一体的异构数据库实时同步
    伴随着新技术的不断涌现,市场竞争也在不断开辟新的角斗场——新的业务需求,新的应用设想都在这里迸发。面对如此日新月异的竞争环境,企业的当务之急,是为新应用扎根准备好随时可取、准确一致的高质量数据土壤。在这样的背景下,很多传统关系型数据库的限制性开始显现。出于提高性能、......
  • mysql 数据库性能分析工具简介
    分析sql性能整体步骤观察服务器状态(系统性能),看是否存在周期性波动。如果存在波动,则可以增加缓存或修改缓存失效策略。如果没有周期性波动,而是不规则的延迟或卡顿,又或者是添加了缓存或修改了缓存失效策略之后问题仍然未解决,我们就可以开启慢查询功能,通过慢查询日志找到执行......
  • 解决C# 连接MYSQL数据库查询数据时 Unable to convert MySQL date/time value to Syst
    C#读取MySql时,如果存在字段类型为date/datetime时的可能会出现以下问题“UnabletoconvertMySQLdate/timevaluetoSystem.DateTime”原因:可能是该字段(date/datetime)的值默认缺省值为:0000-00-00/0000-00-0000:00:00,这样的数据读出来转换成System.DateTime时就会有问题;解......
  • 你的数据库用对索引了吗?一文揭秘PolarDB XPlan索引选择
    ​ 对于数据库来说,正确地选择索引是基本要求,选错索引轻则导致查询缓慢,重则导致数据库整体不可用。PolarDB分布式版存在多种不同的索引:局部索引、全局索引、列存索引、归档表索引。局部索引就是单机数据库上常用的索引,目的是避免全表扫描。全局索引是分布式数据库为了避免......