千家信息网

DM7 使用dminit工具创建数据库

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,1 功能简介dminit是DM数据库初始化工具。在安装DM的过程中,用户可以选择是否创建初始数据库。如果当时没有创建,那么在安装完成之后,可以利用创建数据库工具dminit来创建。系统管理员可以利用d
千家信息网最后更新 2024年11月23日DM7 使用dminit工具创建数据库

1 功能简介
dminit是DM数据库初始化工具。在安装DM的过程中,用户可以选择是否创建初始数据库。如果当时没有创建,那么在安装完成之后,可以利用创建数据库工具dminit来创建。

系统管理员可以利用dminit工具提供的各种参数,设置数据库存放路径、段页大小、是否对大小写敏感、以及是否使用UNICODE等,创建出满足用户需要的数据库。该工具位于安装目录的/bin目录下。

2 使用dminit
dminit工具需要从命令行启动。找到dminit所在安装目录/bin,输入dminit和参数后回车。参数在下一节详细介绍。
语法如下:
dminit KEYWORD=value { KEYWORD=value }
KEYWORD:dminit参数关键字。多个参数之间排列顺序无影响,参数之间使用空格间隔。value:参数取值。

dminit如果没有带参数,系统会引导用户进行设置。参数、等号和值之间不能有空格,例如PAGE_SIZE=16。HELP参数的后面不用添加"="号。

例如,初始化一个数据库,放在/home/test/dmdbms目录下,数据页PAGE_SIZE大小为16K。

./dminit PATH=/home/test/dmdbms PAGE_SIZE=16

如果创建成功,则屏幕显示如下:

initdb V7.1.5.22-Build(2015.11.17-62910trunc)db version: 0x70009create dm database success. 2015-12-21 15:46:27

此时在/home/test/dmdbms目录下会出现一个DAMENG文件夹,内容包含初始数据库DAMENG的相关文件和DM数据库启动所必须的配置文件dm.ini。

3 查看dminit参数
dminit使用较为灵活,参数较多。用户可使用"dminit HELP"快速查看各参数。

[dmdba@ora19c bin]$ ./dminit helpinitdb V7.1.6.46-Build(2018.02.08-89107)ENT db version: 0x7000afile dm.key not found, use default license!License will expire on 2020-06-05Format:  ./dminit         KEYWORD=valueExample: ./dminit         PATH=/public/dmdb/dmData PAGE_SIZE=16Keyword                     Explanation(default value)--------------------------------------------------------------------------------INI_FILE                    dm.ini pathPATH                        database pathCTL_PATH                    control file pathLOG_PATH                    log file pathEXTENT_SIZE                 extent size of data file(16), optional value: 16,32, unit: PAGEPAGE_SIZE                   page size(8), optional value: 4,8,16,32, unit: KLOG_SIZE                    log file size(256), unit: M, range: 64M ~ 2GCASE_SENSITIVE              whether case is sensitive(Y), optional value: Y/N or 1/0CHARSET/UNICODE_FLAG        CHARSET(0), optional value:0[GB18030],1[UTF-8],2[EUC-KR]LENGTH_IN_CHAR              whether LENGTH for VARCHAR is in characters(N), optional value: Y/N, 1/0SYSDBA_PWD                  set SYSDBA password(SYSDBA), password length must between 9 and 48SYSAUDITOR_PWD              set SYSAUDITOR password(SYSAUDITOR), password length must between 9 and 48DB_NAME                     database name(DAMENG)INSTANCE_NAME               instance name(DMSERVER)PORT_NUM                    listener port(5236)TIME_ZONE                   set time zone(+08:00)PAGE_CHECK                  page check mode(0), optional value: 0/1/2EXTERNAL_CIPHER_NAME        set default encrypt/decrypt algorithmEXTERNAL_HASH_NAME          set default hash algorithmEXTERNAL_CRYPTO_NAME        set crypto name to encrypt svr keyRLOG_ENC_FLAG               whether encrypt redo log(N), optional value: Y/N, 1/0USBKEY_PIN                  set usbkey pinENCRYPT_NAME                set algorithm for encrypt the whole databaseBLANK_PAD_MODE              set blank padding mode(0), optional value:0/1SYSTEM_MIRROR_PATH          mirror path of system data fileMAIN_MIRROR_PATH            mirror path of main fileROLL_MIRROR_PATH            mirror path of roll fileMAL_FLAG                    MAL_INI flag(0) in dm.iniARCH_FLAG                   ARCH_INI(0) flag in dm.iniMPP_FLAG                    MPP_INI(0) flag in dm.iniCONTROL                     control file path!AUTO_OVERWRITE              whether overwrite all files with the same name(0) 0: no 1: part 2: allUSE_NEW_HASH                whether use new hash algorithm for string. (default 1)DCP_MODE                    whether is DM CLUSTER PROXY mode(default 0)DCP_PORT_NUM                in DCP mode, set dcp_port_numELOG_PATH                   set the path of log file recording the contents during initializationHELP                        print help information

4 dminit初始化数据库
CONTROL参数是dminit工具的高级功能,用于初始化数据库时指定初始化配置文件。初始化配置文件是一个保存了各数据文件路径和大小设置、所有dminit工具的命令行参数设置等信息的文本,名称由用户自己选取,例如:dminit.ini 、abc.txt、dminit.ctl等。

dminit工具使用CONTROL参数,就不能再指定其他参数,CONTROL参数只能单独使用。

DM既支持初始化单机数据库,又支持初始化RAC集群的数据库。操作非常简单,只要在使用dminit工具创建数据库的时候,使用CONTROL参数指定初始化配置文件即可。

例如:初始化配置文件为dminit.ini。

./dminit CONTROL=/home/data/dminit.ini

初始化配置文件(本章统一命名为dminit.ini)内容如何书写,单机和RAC环境下略有不同,下面分别详细介绍。

4.1 初始化单机数据库
DM支持初始化数据库到一个普通机器上或是一个共享存储上。本节以文件系统为例,初始化单机数据库。涉及路径和文件大小的参数配置。

例如,在文件系统上创建数据库。参数path、main、system、roll、ctl_path、log01、log02都指定了文件系统,单机配置文件(命名dminit.ini)书写如下:

[dmdba@ora19c dm7]$ cat dminit.ini[jy] --实例名使用control配置文件指定实例不能使用instance_name参数db_name = jypath =/dm7/datamain = /dm7/data/jy/main.dbfmain_size = 256system = /dm7/data/jy//system.dbfsystem_size = 256roll = /dm7/data/jy//roll.dbfroll_size = 256ctl_path = /dm7/data/jy/dm.ctllog_path = /dm7/data/jy/log01.loglog_path = /dm7/data/jy/log02.loglog_size = 128auto_overwrite = 2初始化数据库[dmdba@ora19c bin]$ ./dminit control=/dm7/dminit.iniinitdb V7.1.6.46-Build(2018.02.08-89107)ENT db version: 0x7000afile dm.key not found, use default license!License will expire on 2020-06-05 log file path: /dm7/data/jy/log01.log log file path: /dm7/data/jy/log02.logwrite to dir [/dm7/data/jy].create dm database success. 2020-05-22 22:36:10注册数据库服务[root@ora19c root]# ./dm_service_installer.sh -t dmserver -p jy -i /dm7/data/jy/dm.ini -m openln -s '/usr/lib/systemd/system/DmServicejy.service' '/etc/systemd/system/multi-user.target.wants/DmServicejy.service'Finished to create the service (DmServicejy)[root@ora19c root]# systemctl start DmServicejy[root@ora19c root]# ps -ef | grep dmserverdmdba    31843     1 21 01:29 ?        00:00:05 /dm7/bin/dmserver /dm7/data/jy/dm.ini -noconsoleroot     31901  3225  0 01:30 pts/2    00:00:00 grep --color=auto dmserver连接数据库[dmdba@ora19c ~]$ disql SYSDBA/SYSDBA@10.13.13.140:5236Server[10.13.13.140:5236]:mode is normal, state is openlogin used time: 10.975(ms)disql V7.1.6.46-Build(2018.02.08-89107)ENT Connected to: DM 7.1.6.46SQL> select * from v$version;LINEID     BANNER                                                       ---------- -------------------------------------------------------------1          DM Database Server x64 V7.1.6.46-Build(2018.02.08-89107)ENT  2          DB Version: 0x7000aused time: 3.827(ms). Execute id is 807.

4.2初始化RAC集群的数据库
DM RAC是一个单数据库、多实例的集群系统,数据库部署在共享存储上,供所有节点访问,具有高可用性、高性能、低成本等特性。DM支持在RAC环境下创建数据库。RAC的初始化库配置文件dminit.ini中涉及到的参数,是在单机dminit.ini基础上,增加了RAC节点信息。同时,把单机dminit.ini中node_instance参数去掉,log_size,log_path二个参数下放到每个RAC节点里。

准备dminit.ini 配置文件
在2个节点的/dm/dmdbms/data目录下创建 dminit.ini 配置文件,添加如下内容。 在2个节点都创建。

[dmdba@dmrac1 data]$ vi dminit.inidb_name = racsystem_path = +DMDATA/datasystem = +DMDATA/data/rac/system.dbfsystem_size = 128roll = +DMDATA/data/rac/roll.dbfroll_size = 128main = +DMDATA/data/rac/main.dbfmain_size = 128ctl_path = +DMDATA/data/rac/dm.ctlctl_size = 8log_size = 256dcr_path = /dev/raw/raw1 #dcr 磁盘路径,目前不支持 asm,只能是裸设备dcr_seqno = 0auto_overwrite = 1[RAC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应config_path = /dm7/data/rac0_configport_num = 5236mal_host = 10.10.10.161mal_port = 9340log_path = +DMLOG/log/rac0_log01.loglog_path = +DMLOG/log/rac0_log02.log[RAC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应config_path = /dm7/data/rac1_configport_num = 5236mal_host = 10.10.10.162mal_port = 9341log_path = +DMLOG/log/rac1_log01.loglog_path = +DMLOG/log/rac1_log02.log[dmdba@dmrac2 data]$ vi dminit.inidb_name = racsystem_path = +DMDATA/datasystem = +DMDATA/data/rac/system.dbfsystem_size = 128roll = +DMDATA/data/rac/roll.dbfroll_size = 128main = +DMDATA/data/rac/main.dbfmain_size = 128ctl_path = +DMDATA/data/rac/dm.ctlctl_size = 8log_size = 256dcr_path = /dev/raw/raw1 #dcr 磁盘路径,目前不支持 asm,只能是裸设备dcr_seqno = 0auto_overwrite = 1[RAC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应config_path = /dm7/data/rac0_configport_num = 5236mal_host = 10.10.10.161mal_port = 9340log_path = +DMLOG/log/rac0_log01.loglog_path = +DMLOG/log/rac0_log02.log[RAC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应config_path = /dm7/data/rac1_configport_num = 5236mal_host = 10.10.10.162mal_port = 9341log_path = +DMLOG/log/rac1_log01.loglog_path = +DMLOG/log/rac1_log02.log

使用dminit初始化数据库
在任意节点启动 dminit 工具初始化数据库。dminit 执行完成后,会在 config_path 目录(/dm7/data/rac0_config 和/dm7/data/rac1_config)下生成配置文件 dm.ini 和 dmmal.ini。

[dmdba@dmrac1 data]$ dminit control=/dm7/data/dminit.iniinitdb V7.1.6.46-Build(2018.02.08-89107)ENTdb version: 0x7000afile dm.key not found, use default license!License will expire on 2020-05-08 log file path: +DMLOG/log/rac0_log01.log log file path: +DMLOG/log/rac0_log02.log log file path: +DMLOG/log/rac1_log01.log log file path: +DMLOG/log/rac1_log02.logwrite to dir [+DMDATA/data/rac].create dm database success. 2020-04-24 16:39:03

将节点一的配置文件复制到节点二:

[dmdba@dmrac1 data]$ scp -r rac1_config 10.13.13.162:`pwd`The authenticity of host '10.13.13.162 (10.13.13.162)' can't be established.RSA key fingerprint is 89:fc:3e:e3:2d:27:94:07:0e:6b:fc:c5:e8:89:44:1f.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '10.13.13.162' (RSA) to the list of known hosts.dmdba@10.13.13.162's password:sqllog.ini                                                                                                                                                                                                100%  479     0.5KB/s   00:00dm.ini                                                                                                                                                                                                    100%   40KB  39.8KB/s   00:00dmmal.ini                                                                                                                                                                                                 100%  204     0.2KB/s   00:00[dmdba@dmrac1 data]$

启动数据库服务器
1、在2个节点分别注册DM 数据库服务:
节点一:

[root@dmrac1 init.d]# /dm7/script/root/dm_service_installer.sh -t dmserver -i /dm7/data/rac0_config/dm.ini -d /dm7/data/dmdcr.ini -p rac1Move the service script file(/dm7/bin/DmServicerac1 to /etc/rc.d/init.d/DmServicerac1)Finished to create the service (DmServicerac1)节点二:[root@dmrac2 ~]# /dm7/script/root/dm_service_installer.sh -t dmserver -i /dm7/data/rac1_config/dm.ini -d /dm7/data/dmdcr.ini -p rac2Move the service script file(/dm7/bin/DmServicerac2 to /etc/rc.d/init.d/DmServicerac2)Finished to create the service (DmServicerac2)

2、启动数据库

[root@dmrac1 init.d]# service DmServicerac1 startStarting DmServicerac1: [ OK ][root@dmrac2 ~]# service DmServicerac2 startStarting DmServicerac2: [ OK ]

手工启动命令如下,手工启动后窗口不能关闭,所以

./dmserver /dm7/data/rac0_config/dm.ini dcr_ini=/dm7/data/dmdcr.ini./dmserver /dm7/data/rac1_config/dm.ini dcr_ini=/dm7/data/dmdcr.ini

连接数据库验证
1 配置服务名文件

[dmdba@dmrac1 ~]$ vi /etc/dm_svc.confTIME_ZONE=(480)rac=(10.13.13.161:5236,10.13.13.162:5236)SWITCH_TIME=(10000)SWITCH_INTERVAL=(10)TIME_ZONE=(480)LANGUAGE=(en)[dmdba@dmrac2 ~]$ vi /etc/dm_svc.confTIME_ZONE=(480)rac=(10.13.13.161:5236,10.13.13.162:5236)SWITCH_TIME=(10000)SWITCH_INTERVAL=(10)TIME_ZONE=(480)LANGUAGE=(en)

2连接RAC集群

[dmdba@dmrac1 ~]$ disql SYSDBA/SYSDBA@racServer[10.13.13.161:5236]:mode is normal, state is openlogin used time: 10.365(ms)disql V7.1.6.46-Build(2018.02.08-89107)ENTConnected to: DM 7.1.6.46SQL> select instance_name from v$instance;LINEID     INSTANCE_NAME---------- -------------1          RAC0used time: 18.248(ms). Execute id is 807.SQL> select * from v$rac_ep_info;LINEID     EP_NAME EP_SEQNO    EP_GUID              EP_TIMESTAMP         EP_MODE EP_STATUS---------- ------- ----------- -------------------- -------------------- ------- ---------1          RAC0    0           2067076818           2067077298           MASTER  OK2          RAC1    1           2067098084           2067098537           SLAVE   OKused time: 2.741(ms). Execute id is 808.
0