达梦8单机的部署

安装前信息

查看信息

--CPU型号
[root@dmdb116 ~]# cat /proc/cpuinfo | grep name | sort | uniq
model name      : Intel(R) Xeon(R) CPU E5-2696 v2 @ 2.50GHz
--物理CPU个数
[root@dmdb116 ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
1
--核心数
[root@dmdb116 ~]# cat /proc/cpuinfo | grep "core id" | sort | uniq | wc -l
2
[root@dmdb116 ~]# cat /proc/cpuinfo | grep "processor" | sort | uniq | wc -l
2
--网速
[dmdba@dmdb111 bin]$ ethtool ens32
        Speed: 1000Mb/s

安装前设置

##关闭Selinux
# tail -2 /etc/selinux/config 
SELINUX=disabled
SELINUXTYPE=targeted
##生效
setenforce 0

关闭防火墙

– linux7 防火墙

# systemctl stop firewalld.service 
# systemctl disable firewalld.service 
  • linux6 防火墙
##临时关闭
service iptables stop
service ip6tables stop
##开机时也禁用
chkconfig iptables off
chkconfig ip6tables off
##刷新防火墙
chkconfig --level 35 iptables off

查看时区

##时区及NTP设置
[root@dmdb116 ~]# timedatectl | grep "Time zone"
Time zone: Asia/Shanghai (CST, +0800)
# timedatectl set-timezone Asia/Shanghai

系统设置

创建用户

# groupadd dinstall -g 2001
# useradd  -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba 
# passwd dmdba
dmdba

路径规划

mkdir /dmdata
chown -R dmdba:dinstall /dmdata
chmod -R 775 /dmdata

磁盘测速(示例是1.5MB/s)

···
cd /dmdata
dd if=/dev/zero of=test bs=8k count=64k oflag=dsync
···

修改参数

# sysctl -p
# vi /etc/sysctl.conf
kernel.shmall = 4294967296
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
##kernel.core_pattern = /dmdata/core.%p
vm.swappiness=10
vm.dirty_background_ratio = 0
vm.min_free_kbytes = 2097152

修改资源限制参数

# ulimit -a
# vim /etc/security/limits.conf
dmdba  soft      nice       0
dmdba  hard      nice       0
dmdba  soft      as         unlimited
dmdba  hard      as         unlimited
dmdba  soft      fsize      unlimited
dmdba  hard      fsize      unlimited
dmdba  soft      nproc      65536
dmdba  hard      nproc      65536
dmdba  soft      nofile     65536
dmdba  hard      nofile     65536
dmdba  soft      core       unlimited
dmdba  hard      core       unlimited
dmdba  soft      data       unlimited
dmdba  hard      data       unlimited
dmdba  soft      stack      65536
dmdba  hard      stack      65536

查看安装包的完整性

sha256sum dm8_20220314_FTarm_kylin10_sp1_64.iso 

安装包的准备

# mkdir -p /dmiso
# mount -o loop dm8_20200930_x86_rh6_64_ent_8.1.1.134.iso /dmiso
# cp /dmiso/DMInstall.bin /home/dmdba
# chown -R dmdba:dinstall /home/dmdba/DMInstall.bin
# chmod -R 775 /home/dmdba/DMInstall.bin

用dmdba用户执行安装

$ ./DMInstall.bin -i
# /home/dmdba/dmdbms/script/root/root_installer.sh

检查dmap进程是否启动,没启动要手动启动

ps -ef | grep dmap

初始化实例

$ cd /home/dmdba/dmdbms/bin
--oracle
$ ./dminit path=/dmdata page_size=32 extent_size=32 case_sensitive=1 charset=1 log_size=1024 db_name=dmdb instance_name=dmdb BLANK_PAD_MODE=1 LENGTH_IN_CHAR=0
--mysql
$ ./dminit path=/dmdata page_size=32 extent_size=32 case_sensitive=0 charset=1 log_size=1024 db_name=dmdb instance_name=dmdb  LENGTH_IN_CHAR=1

注册服务

# cd /home/dmdba/dmdbms/script/root/
# ./dm_service_installer.sh -t dmserver -p dmdb -dm_ini /dmdata/dmdb/dm.ini

数据库服务启动脚本里面,都加这个:export MALLOC_ARENA_MAX=1
94版本之后的都先搜下,是否存在了,但是它的值是4

系统用户的命令不齐问题

usermod -s /bin/bash name
[root@dl2 home]$ cp /etc/skel/.bash_logout  /home/hx/  
[root@dl2 home]$ cp /etc/skel/.bash_profile /home/hx
[root@dl2 home]$ cp /etc/skel/.bashrc  /home/hx 

添加变量

$ vim ~/.bash_profile 
##DM8
export DM_HOME=/home/dmdba/dmdbms
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
$ source ~/.bash_profile 

启动服务

$ DmServicedmdb start
Starting DmServicedmdb:    [ OK ]

登陆数据库,可以根据实际情况修改密码

[dmdba@mdb165 dmdata]$ cd /home/dmdba/dmdbms/bin
[dmdba@mdb165 bin]$ ./disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.572(ms)
disql V8
SQL> alter user SYSDBA identified by "Hn@dameng123";

开归档:路径要有权限,根据实际情况修改路径

alter database mount;
alter database add archivelog 'dest=/dmdata/dmarch,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=102400';
alter database archivelog;
alter database open;

优化参数

start /home/dmdba/AutoParaAdj2.6.sql
alter system set 'SORT_FLAG'=0 both;
alter system set 'ENABLE_ENCRYPT' = 0 spfile;
alter system set 'MAX_SESSIONS'=5000 spfile;
alter tablespace "MAIN" datafile 'MAIN.DBF' autoextend on maxsize 10240;
alter tablespace "MAIN" datafile "MAIN.DBF" autoextend on next 128 maxsize 10240;
alter tablespace "ROLL" datafile 'ROLL.DBF' autoextend on maxsize 512000;
select * from v$parameter where name = 'ENABLE_ENCRYPT';
  • ORACLE兼容参数
select * from v$parameter where name in ('ORDER_BY_NULLS_FLAG','USE_PLN_POOL','CALC_AS_DECIMAL','COMPATIBLE_MODE','NUMBER_MODE');
alter system set 'USE_PLN_POOL'=1 spfile;
alter system set 'CALC_AS_DECIMAL'=1 spfile;
alter system set 'ORDER_BY_NULLS_FLAG'=1 both;
alter system set 'COMPATIBLE_MODE' = 2 spfile;
alter system set 'NUMBER_MODE'=1 spfile;--解决float聚合SUM函数小数太长问题
  • MYSQL兼容参数
SP_SET_PARA_VALUE(1,'ORDER_BY_NULLS_FLAG',2);
SP_SET_PARA_VALUE(2,'MY_STRICT_TABLES',1);
sp_set_para_value(2,'COMPATIBLE_MODE',4) ;

慢SQL日志

[dmdba@dmdb116 DAMENG]$ cat sqllog.ini 
BUF_TOTAL_SIZE          = 10240         #SQLs Log Buffer Total Size(K)(1024~1024000)
BUF_SIZE                = 1024          #SQLs Log Buffer Size(K)(50~409600)
BUF_KEEP_CNT            = 6             #SQLs Log buffer keeped count(1~100)
[SLOG_ALL]
    FILE_PATH    = ../log
    PART_STOR    = 1
    SWITCH_MODE  = 2
    SWITCH_LIMIT   = 512
    ASYNC_FLUSH   = 1
    FILE_NUM = 5
    ITEMS    = 0 
    SQL_TRACE_MASK  = 2:3:25
    MIN_EXEC_TIME = 1500
    USER_MODE   = 0 
    USERS =

刷新慢sql日志配置文件,以下查询的名字要与上面配置的一至

alter system set 'SVR_LOG'=1 both;
SP_REFRESH_SVR_LOG_CONFIG();
select VALUE,SYS_VALUE,FILE_VALUE from v$parameter where name in('SVR_LOG_NAME');

慢日志产生的路径

[dmdba@dmdb116 log]$ pwd
/home/dmdba/dmdbms/log
[dmdba@dmdb116 log]$ ls dmsql*
dmsql_DMSERVER_20220715_123031.log  dmsql_DMSERVER_uSYSDBA_20220715_123307.log
dmsql_DMSERVER_20220715_123252.log

查看版本

select id_code;
-- 新的版本用这个查
select * from v$version;
select BUILD_VERSION from v$instance;
select expired_date,max_cpu_num,cluster_type,PROJECT_NAME from v$license;

重启一下服务

$ ./DmServicedmdb restart
Stopping DmServicedmdb:     [ OK ]
Starting DmServicedmdb:     [ OK ]

生产环境一定要做备份

备份创建

##路径:注意权限、要开归档才能做备份
[dmdba@dmdb116 dmdata]$ ll /dmdata/dmbak -d 
drwxrwxr-x. 2 dmdba dmdba 4096 7月  15 12:37 /dmdata/dmbak

##做一次全备,确保全备成功后才能做增备
sp_init_job_sys(1);
call sp_create_job('bakfull',1,0,'',0,0,'',0,'');
call sp_job_config_start('bakfull');
call SP_ADD_JOB_STEP('bakfull', 'bak1', 6, '01020000/dmdata/dmbak', 3, 3, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakfull', 'std1', 1, 2, 1, 64, 0, '23:59:00', NULL, sysdate, NULL, '');
call SP_JOB_CONFIG_COMMIT('bakfull');
select id,name from sysjob.sysjobs;
call SP_DBMS_JOB_RUN(1659688280);
[dmdba@dmdb116 dmbak]$ pwd
/dmdata/dmbak
[dmdba@dmdb116 dmbak]$ ls
DB_DAMENG_FULL_2022_07_15_12_45_40

##做增备,确保增备也能生成
call SP_CREATE_JOB('bakincr',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakincr');
call SP_ADD_JOB_STEP('bakincr', 'bak2', 6, '41010000/dmdata/dmbak|/dmdata/dmbak', 3, 3, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakincr', 'std2', 1, 2, 1, 63, 0, '23:59:00', NULL, sysdate, NULL, '');
call SP_JOB_CONFIG_COMMIT('bakincr');
select id,name from sysjob.sysjobs;
call SP_DBMS_JOB_RUN(1659688281);
[dmdba@dmdb116 dmbak]$ ls
DB_DAMENG_FULL_2022_07_15_12_45_40  DB_DAMENG_INCREMENT_CUMULATIVE_2022_07_15_12_47_55

##定期删除备份
call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('delbak');
--以下两行是一个语句
call SP_ADD_JOB_STEP('delbak', 'bak1', 0, 'sf_bakset_backup_dir_add(''disk'',''/dmdata/dmbak'');
call sp_db_bakset_remove_batch(''disk'',now()-14);', 3, 3, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('delbak', 'del01', 1, 1, 1, 0, 0, '23:59:00', NULL, sysdate, NULL, '');
call SP_JOB_CONFIG_COMMIT('delbak');

备份报错:

-8003缺少本地或者远程归档:开归档
-718收集到的归档日志不连续
[dmdba@dmdb116 DAMENG]$ DmServicedmdb stop
Stopping DmServicedmdb:        [ OK ]
[dmdba@dmdb116 DAMENG]$ dmrman
RMAN> repair archivelog database '/dmdata/dmdb/dm.ini' ;

收集统计信息(不建议)

call SP_CREATE_JOB('statjob',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('statjob');
call SP_ADD_JOB_STEP('statjob', 'statjob', 3, '', 3, 3, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('statjob', 'test', 1, 2, 1, 64, 0, '23:59:00', NULL,sysdate, NULL, '');
call SP_JOB_CONFIG_COMMIT('statjob');

备份集的检验

RMAN> CHECK BACKUPSET '/dmdata/dmbak/bakfull' DATABASE '/dmdata/dmdb/dm.ini';
SQL> SELECT SF_BAKSET_CHECK('DISK','/dmdata/dmbak/bakfull');

作业检查

SELECT * FROM (
SELECT EXEC_ID, NAME,STEPNAME,START_TIME,END_TIME,ERRTYPE,ERRCODE,ERRINFO
FROM (SELECT EXEC_ID, NAME,STEPNAME,START_TIME,END_TIME,ERRTYPE,ERRCODE,ERRINFO,
ROW_NUMBER() OVER (PARTITION BY NAME ORDER BY EXEC_ID DESC) RN 
FROM SYSJOB.SYSSTEPHISTORIES2) WHERE RN<=10);

select * from SYSJOB.SYSSTEPHISTORIES2 ;
select * from "SYSJOB"."SYSJOBHISTORIES2";

select * from "SYSJOB"."SYSOPERATORS";
select * from "SYSJOB"."SYSMAILINFO";
select * from "SYSJOB"."SYSJOBSTEPS";
select * from "SYSJOB"."SYSJOBSCHEDULES";
select * from "SYSJOB"."SYSJOBS";
select * from "SYSJOB"."SYSJOBHISTORIES2";
select * from "SYSJOB"."SYSJOBHISTORIES";
select * from "SYSJOB"."SYSALERTS";
select * from "SYSJOB"."SYSALERTNOTIFICATIONS";
select * from "SYSJOB"."SYSALERTHISTORIES";
<think>我们正在处理用户关于达梦数据库8版本license激活方法和授权许可信息的查询。根据引用[1]的内容,我们了解到以下关键步骤:1.查看当前授权信息:执行SQL语句`SELECTseries_no,expired_dateFROMV$LICENSE;`-series_no:授权文件序列号-expired_date:授权有效期,如果返回值为null则为永久授权2.替换授权文件的步骤:a)将新的授权文件拷贝到数据库安装目录的bin目录下(即disql工具所在目录)。b)重命名bin目录下原有的dm.key为dm_old.key(备份)。c)将新的授权文件重命名为dm.key。3.激活授权文件:在数据库中执行存储过程`SP_LOAD_LIC_INFO();`然后提交事务`COMMIT;`4.再次执行查询授权信息的SQL语句以验证是否生效。另外,引用[3]中显示在初始化数据库时(dminit命令)如果找不到dm.key,会使用默认的license,并提示过期时间(例如2022-03-12)。因此,正确的授权文件对于数据库的正常运行至关重要。因此,我们可以总结出达梦数据库8的license激活方法如下:步骤1:获取新的授权文件(通常由达梦公司提供)。步骤2:将授权文件放置到正确的位置(数据库安装目录的bin目录下)。步骤3:备份并替换授权文件(将新授权文件重命名为dm.key)。步骤4:在数据库中执行激活命令。详细步骤如下:###达梦数据库8版本license激活方法1.**查看当前授权信息**在激活之前,可以先查看当前的授权信息,使用disql或其他客户端工具连接到数据库,执行:```sqlSELECTseries_no,expired_dateFROMV$LICENSE;```2.**替换授权文件**-找到数据库安装目录下的bin目录(例如:`/opt/dmdbms/bin`)。-将新的授权文件(假设文件名为`new_license.key`)拷贝到该目录下。-在bin目录下执行以下命令(需要操作系统文件操作权限,通常需要dmdba用户或root用户):```bashmvdm.keydm_old.key#备份原授权文件mvnew_license.keydm.key#将新授权文件重命名为dm.key```注意:确保新授权文件的文件名必须是`dm.key`,并且数据库对该文件有读取权限。3.**激活授权文件**再次使用disql或其他客户端工具连接到数据库,执行以下SQL命令:```sqlSP_LOAD_LIC_INFO();COMMIT;```这个存储过程会加载新的授权文件并进行校验。如果授权文件与当前数据库版本或运行环境不一致,数据库服务器可能会主动退出(根据引用[1]中说明)。4.**验证授权信息**执行第一步的查询语句,检查新的授权信息是否生效:```sqlSELECTseries_no,expired_dateFROMV$LICENSE;```注意事项:-在进行授权文件替换时,确保数据库处于运行状态,因为激活操作需要在数据库内执行。-如果替换授权文件后没有执行激活存储过程,则新的授权不会生效。-授权文件必须与数据库版本和运行环境(如操作系统、CPU架构等)匹配。如果激活过程中出现问题,可以查看数据库日志文件以获取更多信息。引用说明:[^1]:参考了DM8_SQL语言使用手册中关于系统存储过程和函数SP_LOAD_LIC_INFO()的说明,以及查看授权信息的SQL语句。[^2]:参考了达梦DM8数据库单机部署最佳实践中关于安装步骤的部分,但本问题主要涉及授权,因此仅作为环境参考。[^3]:实际操作演示中显示了在没有找到dm.key文件时使用默认授权的情况,提醒我们授权文件的重要性。根据上述步骤,用户可以完成达梦数据库8版本的license激活。生成相关问题:§§相关问题§§1.如何查看达梦数据库的安装目录?2.如果执行SP_LOAD_LIC_INFO()后数据库服务退出,可能的原因是什么?3.达梦数据库的授权文件(dm.key)有哪些获取途径?4.在替换授权文件时,数据库需要停止服务吗?</think>### 达梦数据库 8 版本授权许可信息与激活方法 #### 📄 一、查看当前授权信息 执行 SQL 查询获取授权状态: ```sql SELECT series_no, expired_date FROM V$LICENSE; ``` - **series_no**:授权文件序列号 - **expired_date**:授权有效期(`NULL` 表示永久授权)[^1] #### 🔧 二、激活/替换授权文件步骤 1. **准备授权文件** - 获取官方提供的有效 `dm.key` 授权文件 2. **替换操作** ```bash # 进入数据库安装目录的 bin 目录 cd /opt/dmdbms/bin # 示例路径,按实际安装目录调整 # 备份原授权文件 mv dm.key dm_old.key # 复制新授权文件并重命名 cp /path/to/new_license.key dm.key ``` > 📌 关键要求:新文件**必须命名为 `dm.key`** 且位于 `bin` 目录 3. **数据库加载授权** ```sql -- 在数据库执行激活命令 SP_LOAD_LIC_INFO(); COMMIT; ``` > ⚠️ 此过程会校验 LICENSE 与 DM 版本及系统环境的兼容性,失败将导致服务退出[^1] 4. **验证激活结果** ```sql SELECT series_no, expired_date FROM V$LICENSE; -- 确认新授权信息 ``` #### ⚠️ 三、注意事项 1. 授权文件需与**操作系统架构**(如 x86/ARM)和**数据库版本**严格匹配 2. 初始化时提示 `file dm.key not found` 表示使用默认临时授权(通常有期限限制)[^3] 3. 操作需 **dmdba 用户权限**(参考部署文档[^2]): ```bash chown dmdba:dinstall /opt/dmdbms/bin/dm.key chmod 755 /opt/dmdbms/bin/dm.key ``` #### 💻 四、系统环境检查(辅助排查) ```bash # 查看操作系统信息 uname -a # 查看处理器架构 lscpu # 确认数据库版本 disql -V ``` > 🔍 这些信息需与授权文件要求的运行环境一致[^1][^2] --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

很Man的DM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值