达梦8——单机上线


零、准备工作

向客户询问

  • 环境相关:生产环境还是测试环境;硬软件信息;
  • 初始化实例相关:页大小设置为多少、大小写是否敏感、字符集、char 按字节还是字符存储等;
  • 修改参数相关:是否兼容oracle数据库等;
用户无明确要求时:默认页大小 PAGE_SIZE 为 32K

 

一、安装

1.无secadm用户

无secadm用户,说明不需要签名,直接在root用户下使用命令:

rpm -ivh 软件包名

就可以直接安装,更加方便;安装完后,即可初始化实例等后面步骤;

2.有secadm用户

    • 传文件到/opt目录下,因为这个目录,secadm用户和root用户都可以访问到
    • 切换到secadm用户,打开专用机自带的 ‘配置管理工具’,添加签名文件
    • 切换到root用户,打开  ‘配置管理工具’  ,添加apm包或者deb包,等待添加完成后,直接一键安装即可。专用机安装软件时间较长,请耐心等待;

 

二、初始化实例

  • 安装好后,去/opt/dmdbms/bin/bin目录下,初始化实例,如果不知道参数例如case_sensitive怎么写,可以输入./dminit help
  • 初始化实例后,记得正常启停一次数据库服务;./DmServiceDMSERVER start  stop

三、注册服务

注意:zjy安装好达梦数据库后,由于zyj的特殊性,在第一次初始化实例时,会自动注册服务;

但是,初始化第二个实例的时候,如果还想注册服务,就必须打包了或者迁移数据文件了;

(1)打包服务方式

打包服务,目的就是用来给zyj注册服务的。

(2)不打包迁移数据文件方式

下面介绍的是单机数据库实例不在默认路径下,不采用打包方式,用迁移数据文件的方式,还是使用默认的启动脚本启动数据库。

①先初始化数据文件到默认路径下/opt/dmdbms/data下

./dminit path=/opt/dmdbms/data   page_size=32 log_size=2048 case_sensitive=y charset=1

②修改dm.ini文件里面的路径,将/opt/dmdbms/data改为根目录下的/data,如下:

sed -i "s#/opt/dmdbms/data#/data#g" dm.ini

 

③去/opt/dmdbms/bin/bin目录下,利用dmctlcvt转换工具,将dm.ctl文件转换成txt类型进行修改,修改里面的路径,如下:

./dmctlcvt TYPE=1 SRC=/opt/dmdbms/data/DAMENG/dm.ctl DEST=/opt/dmdbms/data/dmctl.txt

修改路径:sed -i "s#/opt/dmdbms/data#/data#g" dmctl.txt

 

④修改完成之后,再将dmctl.txt转换成dm.ctl格式

./dmctlcvt TYPE=2 SRC=/opt/dmdbms/data/dmctl.txt DEST=/opt/dmdbms/data/dm.ctl

 

 

⑤将DAMENG下的原来的dm.ctl 备份成dmbak.ctl

cd /opt/dmdbms/data
cp dm.ctl dmbak.ctl

将新生成的拷贝到DAMENG下,

cp dm.ctl  ./DAMENG/dm.ctl

然后将整个DAMENG目录中除了dm.ini,其他都拷贝到/data下,

mv DAMENG/ /data/
mkdir DAMENG

  mv /data/DAMEG/dm.ini ./DAMENG/

/opt/dmdbms/data/DAMENG目录下只保留dm.ini文件,如下:

cd DAMENG/;ll

 

⑥之后启动服务得时候,

还是用/opt/dmdbms/bin/bin目录下的DmServiceDMSERVER脚本即可,


cd /opt/dmdbms/bin/bin .
/DmServiceDMSERVER start|stop|restart

 

 

 

四、数据库参数调整

1、常见参数配置

打开disql,默认用户应该是SYSDBA/SYSDBA123

declare
v_mem_mb int;
v_cpus int;
mem_per int:=80;
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;
    
    --修改线程数
    IF v_cpus < 8  THEN v_cpus := 8;  END IF;
    IF v_cpus > 64 THEN v_cpus := 64; END IF;
    SP_SET_PARA_VALUE(2,'WORKER_THREADS',v_cpus);
    SP_SET_PARA_VALUE(2,'TASK_THREADS',v_cpus);
    
    v_mem_mb := v_mem_mb * (mem_per/100.0);
    --修改内存
    SP_SET_PARA_VALUE(2,'MAX_OS_MEMORY',       100);
    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',        67);        --只能为质数7,11,19,37,67,101 (4G-128G) 需要保证BUFFER/BUFFER_POOLS>=500MB ;
    SP_SET_PARA_VALUE(2,'RECYCLE',               cast(v_mem_mb * 0.032 as int));    
    SP_SET_PARA_VALUE(2,'RECYCLE_POOLS',       11);        --需要保证RECYCLE/RECYCLE_POOLS>=500MB
    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,'USE_PLN_POOL',        1);
    SP_SET_PARA_VALUE(2,'OLAP_FLAG',           2);
    SP_SET_PARA_VALUE(2,'VIEW_PULLUP_FLAG',    1);
    SP_SET_PARA_VALUE(2,'SORT_BUF_SIZE',       10);
    SP_SET_PARA_VALUE(2,'TEMP_SIZE',           1024);
    SP_SET_PARA_VALUE(2,'MAX_SESSIONS',        500);       --询问客户,每秒500的连接数能否处理应用并发。有效值(1-65000)
    SP_SET_PARA_VALUE(2,'MAX_SESSION_STATEMENT', 2000);    
    SP_SET_PARA_VALUE(2,'DICT_BUF_SIZE',       50);
    SP_SET_PARA_VALUE(1,'PK_WITH_CLUSTER',        0);   
    SP_SET_PARA_VALUE(2,'COMPATIBLE_MODE',        2);      --根据客户要求修改;这个和客户要从哪个数据库迁移到dm有关。
end;

这几个参数需要去dm.ini文件手动修改;

  • vm_pool_size                        64    256
  • MEMORY_MAGIC_CHECK  2     2
  • OPTIMIZER_MODE              0      1
  • ENABLE_MONITOR             2      0
  • SVR_LOG                             0            0

最后,

参数修改完有些参数可能是静态参数,所以要重启一次数据库服务;

脚本文件不能留在客户机器里,所以在DM管理工具执行完后需删除,如果无法删除,取/tool/workspace里删除;

2、其他参数配置

  • REDO 日志:一般应用将两个 REDO 都扩展到 2GB 即可
  • 表空间 :建议用户使用的表空间不要使用 main 表空间,新建一个表空间
  • 用户权限:一般分配 resource 的权限即可。
  • 归档日志大小限制:大于 2048,但不可以不设置或者超过磁盘大小
  • 口令有效期:不建议设置口令有效期,或者 DBA 设置有效期
  • 备份:确认备份策略,开启定时备份
  • Ha 环境部署:HA 要配置 IP 互斥(HA_INST_CHECK_IP,HA_INST_CHECK_PORT)

 

五、管理工具调整

去掉管理工具配置上的“自动保存”

 

问题:

如何查询初始化实例时指定的字符集、大小写是否敏感等参数?

方法一:打开DM管理工具,右键连接,有一个查询服务器,这里面有;

方法二:打开disql,

--获得系统建库时指定字符集
SELECT SF_GET_UNICODE_FLAG ();
--0 表示 GB18030,1 表示 UTF-8,2 表示 EUC-KR

--获得系统建库时指定的页大小
SELECT SF_GET_PAGE_SIZE ();

--获得系统建库时指定的簇大小
SELECT SF_GET_EXTENT_SIZE ();

--获得大小写敏感信息
SELECT SF_GET_CASE_SENSITIVE_FLAG();
--1:敏感 0:不敏感

 

 

 

posted @ 2020-08-24 15:52  Eric-Shen  阅读(912)  评论(0编辑  收藏  举报