- 环境说明
配置环境说明:
主机名称 | IP地址 | 数据库名 | 实例名 | 操作系统 |
dscdb1 | 192.168.88.110(外部服务) 10.10.10.110(内部通信) | dscdb | dscdb1 | CentOS Linux release 7.7.1908 (Core) |
dscdb2 | 192.168.88.111(外部服务) 10.10.10.111(内部通信) | dscdb | dscdb2 | CentOS Linux release 7.7.1908 (Core) |
共享磁盘:
在虚拟机上创建5个共享磁盘,规划如下:
Dcr disk: 1G #生产环境可以设置2G即可,或是分5G或10G。
Voting disk: 1G #生产环境可以设置2G即可,或是分5G或10G。
Log disk: 2G #生成环境需要设置大些,如100G。
Data disk1: 3G #生成环境需要设置大些。如300G或500G一个盘。
Data disk2: 3G
- 系统环境准备
- 虚拟主机配置
虚拟机软件版本:
提示:由于需要搭建共享集群环境,所以需要配置共享存储。
虚拟机节点一配置信息:
虚拟机节点二配置信息:
-
- 操作系统安装
操作系统版本:CentOS Linux release 7.7.1908 (Core)
操作系统安装步骤:省略….
- DSC集群安装
- 系统配置
提示:所有节点执行。
安装 gcc 包:
yum install -y gcc
关闭防火墙和Selinux:
[root@dmdb ~]# systemctl stop firewalld
[root@dmdb ~]# systemctl disable firewalld
[root@dmdb ~]# vi /etc/selinux/config
[root@dmdb ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
修改/etc/hosts 文件:
节点一:
[root@dscdb1 ~]# cat /etc/hosts
127.0.0.1 localhost
192.168.88.110 dscdb1
节点二:
[root@dscdb2 ~]# vi /etc/hosts
127.0.0.1 localhost
192.168.88.111 dscdb2
配置系统限制,在/etc/security/limits.conf 文件中添加如下内容:
cat >> /etc/security/limits.conf << EOF
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft stack 65536
dmdba hard stack 65536
EOF
临时生效:
ulimit -n 65536
验证修改:
[root@dmdb ~]# ulimit -a
-
- 创建用户
提示:所有节点执行。
创建DM用户:
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
echo "dmdba" | passwd --stdin dmdba
创建DM数据库目录:
存储dm数据库文件的空间需要提前规划并挂载好,我这里放在/dm目录下:
mkdir -p /dm/{dmdbms,dmarch,dmbak,dmdata}
chown -R dmdba:dinstall /dm/
chmod -R 775 /dm/
配置环境变量:在dmdba用户的~/.bash_profile 里添加如下内容:
su - dmdba
cat >> ~/.bash_profile << EOF
export DM_HOME="/dm/dmdbms"
export LD_LIBRARY_PATH="/dm/dmdbms/bin:$LD_LIBRARY_PATH"
export PATH="/dm/dmdbms/bin:$PATH"
EOF
source ~/.bash_profile
注意,在DM 软件安装时会自动添加DM_HOME 和 LD_LIBRARY_PATH 变量,这里只需要添加PATH即可。
-
- 绑定UDEV
在之前步骤创建好raw设备之后,在操作系统层面可以直接看到这些硬盘:
节点一:
[root@dscdb1 ~]# fdisk -l|grep "Disk /dev/sd*"
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Disk /dev/sdc: 1073 MB, 1073741824 bytes, 2097152 sectors
Disk /dev/sdd: 2147 MB, 2147483648 bytes, 4194304 sectors
Disk /dev/sde: 3221 MB, 3221225472 bytes, 6291456 sectors
Disk /dev/sdf: 3221 MB, 3221225472 bytes, 6291456 sectors
节点二:
[root@dscdb2 ~]# fdisk -l|grep "Disk /dev/sd*"
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Disk /dev/sdd: 2147 MB, 2147483648 bytes, 4194304 sectors
Disk /dev/sde: 3221 MB, 3221225472 bytes, 6291456 sectors
Disk /dev/sdf: 3221 MB, 3221225472 bytes, 6291456 sectors
Disk /dev/sdc: 1073 MB, 1073741824 bytes, 2097152 sectors
因为划分了多个磁盘,这些盘符在每次系统启动后并不唯一,所以先使用UDEV绑定后,再绑定成raw设备。
查看磁盘的UUID:
for i in b c d e f;
do
echo "sd$i" "`/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`";
done
两个节点都需要查到相同的信息。
绑定祼设备
for i in b c d e f;
do
echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\",PROGRAM=\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\",SYMLINK+=\"dm-disk$i\",OWNER=\"dmdba\",GROUP=\"dinstall\",MODE=\"0660\"" >> /etc/udev/rules.d/99-dm-devices.rules
done
查看/etc/udev/rules.d/99-dm-devices.rules文件的内容:
cat /etc/udev/rules.d/99-dm-devices.rules
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29110d51f414c830b156d743302",SYMLINK+="dm-diskb",OWNER="dmdba",GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2958b32c22db7e7658b1dc04a97",SYMLINK+="dm-diskc",OWNER="dmdba",GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29661778ff80658771d89dd8f30",SYMLINK+="dm-diskd",OWNER="dmdba",GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2982270616b69e9b725e3aee7ae",SYMLINK+="dm-diske",OWNER="dmdba",GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c291d7f28b2870903839ec05987f",SYMLINK+="dm-diskf",OWNER="dmdba",GROUP="dinstall",MODE="0660"
为了以后方便清楚各个磁盘的用途,可以把相关的磁盘名称修改一下。
SYMLINK+="dm-diskb" 修改为:SYMLINK+="dm-dcr"
SYMLINK+="dm-diskc" 修改为:SYMLINK+="dm-votingdisk"
SYMLINK+="dm-diskd" 修改为:SYMLINK+="dm-log1"
SYMLINK+="dm-diske" 修改为:SYMLINK+="dm-data1"
SYMLINK+="dm-diskf" 修改为:SYMLINK+="dm-data2"
修改后如下:
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29110d51f414c830b156d743302",SYMLINK+="dm-dcr",OWNER="dmdba",GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2958b32c22db7e7658b1dc04a97",SYMLINK+="dm-votingdisk",OWNER="dmdba",GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29661778ff80658771d89dd8f30",SYMLINK+="dm-log1",OWNER="dmdba",GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2982270616b69e9b725e3aee7ae",SYMLINK+="dm-data1",OWNER="dmdba",GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c291d7f28b2870903839ec05987f",SYMLINK+="dm-data2",OWNER="dmdba",GROUP="dinstall",MODE="0660"
然后将/etc/udev/rules.d/99-dm-devices.rules文件直接复制到另一个节点,因为同一硬件设备UUID相同。
两个节点都配置好后,重新加载UDEV设备规则:(两个节点都需要执行)
/sbin/udevadm control --reload-rules
/sbin/udevadm trigger --type=devices --action=change
查看信息:
ll /dev/dm*
ll /dev/sd*
-
- 配置裸设备
在官方文档raw的配置是写入到/etc/udev/rules.d/60-raw.rules文件(如果不绑定UUID,会容易乱盘),但因为之前的UDEV规则顺序比60-raw低,所以这里把raw配置直接写入到/etc/rc.local中,以防映射失败。
在/etc/rc.local中添加如下内容:
#DCR
raw /dev/raw/raw1 /dev/dm-dcr
sleep 2
chown dmdba:dinstall /dev/raw/raw1
chmod 660 /dev/raw/raw1
#Votingdisk
raw /dev/raw/raw2 /dev/dm-votingdisk
sleep 2
chown dmdba:dinstall /dev/raw/raw2
chmod 660 /dev/raw/raw2
#LOG
raw /dev/raw/raw3 /dev/dm-log1
sleep 2
chown dmdba:dinstall /dev/raw/raw3
chmod 660 /dev/raw/raw3
#Data
raw /dev/raw/raw4 /dev/dm-data1
sleep 2
chown dmdba:dinstall /dev/raw/raw4
chmod 660 /dev/raw/raw4
raw /dev/raw/raw5 /dev/dm-data2
sleep 2
chown dmdba:dinstall /dev/raw/raw5
chmod 660 /dev/raw/raw5
touch /var/lock/subsys/local
#注意这里必须放在最后一行,否则开机不会自动映射raw设备。
chmod +x /etc/rc.d/rc.local #修改文件权限(必须修改文件的权限,否则系统重启后,无法正常绑定祼设备)
重启操作系统:
source /etc/rc.local #如果不重启操作系统,可以运行此命令,但生产环境中建议可以重启一下系统,看系统重启后能不能识别到祼设备。
reboot
查看裸设备:
ll /dev/raw/raw*
raw -qa
查看裸设备大小:
blockdev --getsize64 /dev/raw/raw1
-
- DM数据库软件安装
安装规则:
DM_HOME目录:/dm/dmdbms/
数据库SID:dscdb1,dscdb2
数据库名称:dscdb
数据库字符集:GB18030
数据库端口:5236
页大小:16K
日志组:3个256M
将DM的ISO上传到Linux系统,并挂载:
[root@dscdb1 ~]# mount -o loop /root/dm8_20200907_x86_rh7_64_ent_8.1.1.126.iso /mnt
[root@dscdb1 ~]# su - dmdba
[dmdba@dscdb1 ~]$ /mnt/DMInstall.bin -i #-i表示使方式进行安装
Please select the installer's language (E/e:English C/c:Chinese) [E/e]:c #选择中文语言安装
解压安装程序.........
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n #如果没有Key文件,可以输入n
否设置时区? (Y/y:是 N/n:否) [Y/y]:y #输入y,设置时区
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]: #默认选择21区,直接回车
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]: #直接按回车
所需空间: 1075M
请选择安装目录 [/home/dmdba/dmdbms]:/dm/dmdbms #DM数据库的安装目录,输入前面定义好的目录
可用空间: 13G
是否确认安装路径(/dm/dmdbms)? (Y/y:是 N/n:否) [Y/y]: y #输入y
安装前小结
安装位置: /dm/dmdbms
所需空间: 1075M
可用空间: 13G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否): y #输入y,确认安装
2021-10-11 05:31:32
[INFO] 安装达梦数据库...
2021-10-11 05:31:32
[INFO] 安装 基础 模块...
2021-10-11 05:31:36
[INFO] 安装 服务器 模块...
2021-10-11 05:31:36
[INFO] 安装 客户端 模块...
2021-10-11 05:31:39
[INFO] 安装 驱动 模块...
2021-10-11 05:31:39
[INFO] 安装 手册 模块...
2021-10-11 05:31:39
[INFO] 安装 服务 模块...
2021-10-11 05:31:40
[INFO] 移动ant日志文件。
2021-10-11 05:31:41
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/dm/dmdbms/script/root/root_installer.sh
安装结束
[dmdba@dscdb1 mnt]$
根据提示,使用root用户执行/dm/dmdbms/script/root/root_installer.sh脚本。如下:
[root@dscdb1 ~]# /dm/dmdbms/script/root/root_installer.sh
移动 /dm/dmdbms/bin/dm_svc.conf 到/etc目录
修改服务器权限
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
至此,DM数据库软件安装完成。
提示:确认两台主机的DM数据库软件都安装完成。
-
- DSC集群文件配置及搭建
创建存放DSC集群配置文件目录:
su - dmdba
mkdir -p /dm/dmdbms/data
-
-
- dmdcr_cfg.ini
-
提示:2个节点的/dm/dmdbms/data目录下创建配置文件dmdcr_cfg.ini。
文件路径 :/dm/dmdbms/data/dmdcr_cfg.ini
内容如下:
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2 #指定Votingdisk对应的裸设备
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 10.10.10.110 #指定的是内部网络的IP
DCR_EP_PORT = 9541
[GRP_CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 10.10.10.111
DCR_EP_PORT = 9542
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 10.10.10.110
DCR_EP_PORT = 9641
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM2
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 10.10.10.111
DCR_EP_PORT = 9642
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = DSCDB #指定数据库的名称
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[DSCDB]
DCR_EP_NAME = DSCDB1 #指定第一个节点的实例名
DCR_EP_SEQNO = 0 #第一个节点的编号为0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[DSCDB]
DCR_EP_NAME = DSCDB2 #指定第二个节点的实例名
DCR_EP_SEQNO = 1 #第二个节点的编号为2
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9742
提示:两个节点的内容一样。
-
-
- 使用DMASMCMD工具初始化
-
在任意一台节点上用dmasmcmd工具执行如下命令(提示:只需要在一个节点执行即可):
create dcrdisk '/dev/raw/raw1' 'dcr'
create votedisk '/dev/raw/raw2' 'vote'
create asmdisk '/dev/raw/raw3' 'log1'
create asmdisk '/dev/raw/raw4' 'data1'
create asmdisk '/dev/raw/raw5' 'data2'
init dcrdisk '/dev/raw/raw1' from '/dm/dmdbms/data/dmdcr_cfg.ini' identified by 'dmdba' #使用配置文件初始化dcr磁盘
init votedisk '/dev/raw/raw2' from '/dm/dmdbms/data/dmdcr_cfg.ini' #使用配置文件初始化votingdisk盘
操作输出日志如下:
[dmdba@dscdb1 ~]$
[dmdba@dscdb1 ~]$ dmasmcmd
DMASMCMD V8
ASM>create dcrdisk '/dev/raw/raw1' 'dcr'
[Trace]The ASM initialize dcrdisk /dev/raw/raw1 to name DMASMdcr
Used time: 5.112(ms).
ASM>create votedisk '/dev/raw/raw2' 'vote'
[Trace]The ASM initialize votedisk /dev/raw/raw2 to name DMASMvote
Used time: 4.484(ms).
ASM>create asmdisk '/dev/raw/raw3' 'log1'
[Trace]The ASM initialize asmdisk /dev/raw/raw3 to name DMASMlog1
Used time: 6.866(ms).
ASM>create asmdisk '/dev/raw/raw4' 'data1'
[Trace]The ASM initialize asmdisk /dev/raw/raw4 to name DMASMdata1
Used time: 4.952(ms).
ASM>create asmdisk '/dev/raw/raw5' 'data2'
[Trace]The ASM initialize asmdisk /dev/raw/raw5 to name DMASMdata2
Used time: 6.789(ms).
ASM>init dcrdisk '/dev/raw/raw1' from '/dm/dmdbms/data/dmdcr_cfg.ini' identified by 'dmdba'
[Trace]DG 126 allocate 4 extents for file 0xfe000002.
Used time: 44.725(ms).
ASM>init votedisk '/dev/raw/raw2' from '/dm/dmdbms/data/dmdcr_cfg.ini'
[Trace]DG 125 allocate 4 extents for file 0xfd000002.
Used time: 11.939(ms).
ASM>exit
[dmdba@dscdb1 ~]$
-
-
- 准备DMASM 的 MAL 配置文件(dmasvrmal.ini)
-
提示:所有节点都需要配置该文件。
文件路径 :/dm/dmdbms/data/dmasvrmal.ini
vi /dm/dmdbms/data/dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 10.10.10.110
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM2
MAL_HOST = 10.10.10.111
MAL_PORT = 7237
-
-
- 准备dmdcr.ini 配置文件
-
dmdcr.ini 是 dmcss、dmasmsvr、dmasmtool 工具的输入参数。记录了当前节点序列号以及 DCR 磁盘路径。
在2个节点的/dm/dmdbms/data目录下创建dmdcr.ini 配置文件,dmdcr_path 相同,dmasvrmal.ini 文件内容也相同,dmdcr_seqo 分别为 0 和 1。
节点一(192.168.88.110):
文件路径:/dm/dmdbms/data/dmdcr.ini
vi /dm/dmdbms/data/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm/dmdbms/data/dmasvrmal.ini
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm/dmdbms/bin/dmasmsvr dcr_ini=/dm/dmdbms/data/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm/dmdbms/bin/dmserver path=/dm/dmdbms/data/dscdb1_config/dm.ini dcr_ini=/dm/dmdbms/data/dmdcr.ini
节点二(192.168.88.111):
文件路径:/dm/dmdbms/data/dmdcr.ini
vi /dm/dmdbms/data/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm/dmdbms/data/dmasvrmal.ini
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm/dmdbms/bin/dmasmsvr dcr_ini=/dm/dmdbms/data/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm/dmdbms/bin/dmserver path=/dm/dmdbms/data/dscdb2_config/dm.ini dcr_ini=/dm/dmdbms/data/dmdcr.ini
-
-
- 启动DMCSS、DMASM 服务程序
- 分别在2个节点注册DMCSS和DMASM服务
- 启动DMCSS、DMASM 服务程序
-
节点一:(以root用户执行)
#DMCSS:
/dm/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb1
执行输出:
[root@dscdb1 ~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb1
Created symlink from /etc/systemd/system/multi-user.target.wants/DmCSSServicedscdb1.service to /usr/lib/systemd/system/DmCSSServicedscdb1.service.
创建服务(DmCSSServicedscdb1)完成
#DMASM
/dm/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb1 -y DmCSSServicedscdb1
执行输出:
[root@dscdb1 ~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb1 -y DmCSSServicedscdb1
依赖的服务文件(/usr/lib/systemd/system/DmCSSServicedscdb1)不存在!
[root@dscdb1 ~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb1 -y DmCSSServicedscdb1.service #加上最缀名(.service),注册成功。
Created symlink from /etc/systemd/system/multi-user.target.wants/DmASMSvrServicedscdb1.service to /usr/lib/systemd/system/DmASMSvrServicedscdb1.service.
创建服务(DmASMSvrServicedscdb1)完成
节点二:(以root用户执行)
#DMCSS:
/dm/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb2
执行输出:
[root@dscdb2 ~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb2
Created symlink from /etc/systemd/system/multi-user.target.wants/DmCSSServicedscdb2.service to /usr/lib/systemd/system/DmCSSServicedscdb2.service.
创建服务(DmCSSServicedscdb2)完成
#DMASM
/dm/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb2 -y DmCSSServicedscdb2
执行输出:
[root@dscdb2 ~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb2 -y DmCSSServicedscdb2
依赖的服务文件(/usr/lib/systemd/system/DmCSSServicedscdb2)不存在!
[root@dscdb2 ~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb2 -y DmCSSServicedscdb2.service #加上最缀名(.service),注册成功。
Created symlink from /etc/systemd/system/multi-user.target.wants/DmASMSvrServicedscdb2.service to /usr/lib/systemd/system/DmASMSvrServicedscdb2.service.
创建服务(DmASMSvrServicedscdb2)完成
-
-
-
- 启动DMCSS和DMASM 服务
-
-
节点1:(以dmdba用户执行)
systemctl start DmCSSServicedscdb1 #先启动CSS
systemctl start DmASMSvrServicedscdb1 #再启动ASM
或
su - dmdba
DmCSSServicedscdb1 start
DmASMSvrServicedscdb1 start
查看启动状态:
节点2:(以dmdba用户执行)
systemctl start DmCSSServicedscdb2
systemctl start DmASMSvrServicedscdb2
或
su - dmdba
DmCSSServicedscdb2 start
DmASMSvrServicedscdb2 start
查看启动状态:
-
-
- 创建DMASM磁盘组
-
在任意节点使用 dmasmtool 工具创建 DMASM 磁盘组。
提示:只需要在一个节点上执行即可,使用dmdba用户执行。
su - dmdba
dmasmtool DCR_INI=/dm/dmdbms/data/dmdcr.ini
ASM>create diskgroup 'LOGDG' asmdisk '/dev/raw/raw3'
ASM>create diskgroup 'DATADG' asmdisk '/dev/raw/raw4'
ASM> alter diskgroup 'DATADG' add asmdisk '/dev/raw/raw5'
执行输出:
[root@dscdb1 ~]# su - dmdba
Last login: Tue Oct 26 04:19:11 CST 2021 on pts/0
dmasmtool DCR_INI=/dm/dmdbms/data/dmdcr.ini
[dmdba@dscdb1 ~]$ dmasmtool DCR_INI=/dm/dmdbms/data/dmdcr.ini
DMASMTOOL V8
ASM>df
group VOTE include 1 disks......
NO.1 disk :
name: DMASMvote
path: /dev/raw/raw2
size: 1.00 GB
create_time: 2021-10-26 04:25:03
modify_time: 2021-10-26 04:25:03
belong group: VOTE
group DCR include 1 disks......
NO.1 disk :
name: DMASMdcr
path: /dev/raw/raw1
size: 1.00 GB
create_time: 2021-10-26 04:24:55
modify_time: 2021-10-26 04:24:55
belong group: DCR
total 3 disks unused......
NO.1 : name: DMASMdata2, path: /dev/raw/raw5, size: 3.00 GB
NO.2 : name: DMASMdata1, path: /dev/raw/raw4, size: 3.00 GB
NO.3 : name: DMASMlog1, path: /dev/raw/raw3, size: 2.00 GB
ASM>create diskgroup 'LOGDG' asmdisk '/dev/raw/raw3'
Used time: 13.115(ms).
ASM>create diskgroup 'DATADG' asmdisk '/dev/raw/raw4'
Used time: 9.211(ms).
ASM>alter diskgroup 'DATADG' add asmdisk '/dev/raw/raw5'
Used time: 10.553(ms).
ASM>ls
+
disk groups total [4]......
NO.1 name: LOGDG
NO.2 name: DATADG
NO.3 name: VOTE
NO.4 name: DCR
Used time: 1.006(ms).
-
-
- 准备dminit.ini 配置文件
-
准备数据库初始化配置文件。
在2个节点的/dm/dmdbms/data目录下创建 dminit.ini 配置文件,添加如下内容。 在2个节点都创建,且两个节点的内容一样。
vi /dm/dmdbms/data/dminit.ini
db_name = dscdb
system_path = +DATADG/data
system = +DATADG/data/dscdb/system.dbf
system_size = 128
roll = +DATADG/data/dscdb/roll.dbf
roll_size = 128
main = +DATADG/data/dscdb/main.dbf
main_size = 128
ctl_path = +DATADG/data/dscdb/dm.ctl
ctl_size = 8
log_size = 256
dcr_path = /dev/raw/raw1
dcr_seqno = 0
auto_overwrite = 1
[DSCDB1]
config_path = /dm/dmdbms/data/dscdb1_config
port_num = 5236
mal_host = 10.10.10.110
mal_port = 9340
log_path = +LOGDG/log/dscdb1_log01.log
log_path = +LOGDG/log/dscdb1_log02.log
[DSCDB2]
config_path = /dm/dmdbms/data/dscdb2_config
port_num = 5236
mal_host = 10.10.10.111
mal_port = 9341
log_path = +LOGDG/log/dscdb2_log01.log
log_path = +LOGDG/log/dscdb2_log02.log
提示:两个节点都需要创建该文件,且两个节点该文件的内容一样。
-
-
- 使用dminit 初始化 DB 环境
-
在任意节点启动dminit工具初始化数据库
dminit执行完成后,会在config_path目录(/dm/dmdbms/data/dscdb1_config 和/dm/dmdbms/data/dscdb2_config)下生成配置文件 dm.ini 和 dmmal.ini。
在第一个节点执行(以dmdba用户执行):
dminit control=/dm/dmdbms/data/dminit.ini
执行输出:
[dmdba@dscdb1 ~]$ dminit control=/dm/dmdbms/data/dminit.ini
initdb V8
db version: 0x7000b
file dm.key not found, use default license!
License will expire on 2021-11-09
log file path: +LOGDG/log/dscdb1_log01.log
log file path: +LOGDG/log/dscdb1_log02.log
log file path: +LOGDG/log/dscdb2_log01.log
log file path: +LOGDG/log/dscdb2_log02.log
write to dir [+DATADG/data/dscdb].
create dm database success. 2021-10-26 05:18:31
初始化完成后,把另第二个节点相关的目录及文件远程复制到第二个节点:
把dscdb2_config目录远程复制到第二个节点的相同目录下:
scp -r /dm/dmdbms/data/dscdb2_config 192.168.88.111:/dm/dmdbms/data/
-
-
- 启动数据库服务器
- 注册服务
- 启动数据库服务器
-
在2个节点分别注册DM 数据库服务。
节点一(以root用户执行):
/dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dmdbms/data/dscdb1_config/dm.ini -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb1 -y DmASMSvrServicedscdb1.service
执行输出:
[root@dscdb1 ~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dmdbms/data/dscdb1_config/dm.ini -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb1 -y DmASMSvrServicedscdb1.service
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServicedscdb1.service to /usr/lib/systemd/system/DmServicedscdb1.service.
创建服务(DmServicedscdb1)完成
节点二(以root用户执行):
/dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dmdbms/data/dscdb2_config/dm.ini -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb2 -y DmASMSvrServicedscdb2.service
执行输出:
[root@dscdb2 ~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dmdbms/data/dscdb2_config/dm.ini -dcr_ini /dm/dmdbms/data/dmdcr.ini -p dscdb2 -y DmASMSvrServicedscdb2.service
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServicedscdb2.service to /usr/lib/systemd/system/DmServicedscdb2.service.
创建服务(DmServicedscdb2)完成
-
-
-
- 启动数据库
-
-
节点一:
systemctl start DmServicedscdb1
查看启动状态:
systemctl status DmServicedscdb1
节点二:
systemctl start DmServicedscdb2
查看启动状态:
systemctl status DmServicedscdb2
提示:如果 DMCSS 配置有自动拉起 dmserver 的功能,可以等待 DMCSS 自动拉起实例,不需要手动启动。
-
-
- 连接数据库验证
- 登录测试
- 连接数据库验证
-
刚初始的数据库没有指定密码,所以当前数据库不需要指定用户名和密码就可以直接登录。
[dmdba@dscdb1 ~]$ disql
disql V8
用户名: #直接回车
密码: #直接回车
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 6.991(ms)
SQL>
设置数据库用户密码:
SQL> alter user sysdba identified by dameng123;
操作已执行
已用时间: 23.739(毫秒). 执行号:497.
SQL>select * from v$dsc_ep_info; #查看集群的相关信息
-
-
-
- 配置服务名文件
-
-
[dmdba@dscdb1 ~]$ vi /etc/dm_svc.conf
dscdb=(192.168.88.110:5236,192.168.88.111:5236)
SWITCH_TIME=(10000)
SWITCH_INTERVAL=(10)
TIME_ZONE=(480)
LANGUAGE=(cn)
-
-
-
- 连接RAC集群
-
-
[dmdba@dscdb1 ~]$ disql sysdba/dameng123@dscdb