DSC+DW自动安装工具

DSC+DW自动安装工具

本次进行DSC+DW的自动安装工具的使用,这里先安装一份两节点的DSC集群。

1.前期准备

1.1环境准备

数据库安装
  • 两个节点上都得安装好DM数据库,暂时不用初始化实例,版本、安装路径都要一致
操作系统
  • 两个都是使用的CentOS7

1.2端口规划

实例名 DB_INST_PORT DB_MAL_PORT DCR_CHECK_PORT ASM_MAL_PORT ASM_DCR_EP_PORT CSS_DCR_EP_PORT MAL_DW_PORT MAL_INST_DW_PORT
DSC1 5236 1246 1256 1266 1276 1286 3567 2176
DSC2 5236 1246 1256 1266 1276 1286 3567 2176

1.3服务器规划

实例名 公网IP 内网IP 安装路径
DSC1 192.168.19.130 10.10.10.7 /home/dmdba/config_dsc
DSC2 192.168.19.137 10.10.10.4 /home/dmdba/config_dsc

1.4共享磁盘规划

2.自动化工具部署

2.1上传部署工具

  • 上传到第一个节点上,解压,并将所属用户修改为dmdba

2.2配置文件dm8_dsc.conf

  • 打开dm8_dsc.conf,修改相应的内容

    shell 复制代码
    #groupadd dinstall
    #useradd -m -s /bin/bash -g dinstall dmdba
    #passwd dmdba
    #配置文件
    
    [GLOBAL]
    DM_PATH          = /home/dmdba/dmdbms               	  #指dmdbms的安装路径,如/home/dmdba/dmdbms 
    DB_PATH          = /home/dmdba/config_dsc		        #DSC 节点的目录,里面存放控制文件、配置文件等
    TEMP_PATH        =                                        #DSC 临时表空间目录,里面存放节点的临时表空间;若该值为空,则表示临时表空间存储在ASM上。
    ARCH_PATH        = /home/dmdba/dmdsc/dmarch/CNDT               #本地归档、远程归档路径。当ARCH_INI_OPEN=1时指DSC的本地归档。当ARCH_INI_OPEN=3时,指备机DW的归档
    BAK_PATH         = /home/dmdba/dmdsc/dmbak/CNDT                #DSC 节点数据库备份的默认路径
    DCR_ASM_PATH     = /dev/raw/raw1                        #操作系统绑定的dcr路径,建议三层路径,第二层路径名称独立不重复
    VOTE_ASM_PATH    = /dev/raw/raw2                       #操作系统绑定的vote路径,建议三层路径,第二层路径名称独立不重复
    LOG_ASM_PATH     = /dev/raw/raw3                       #操作系统绑定的redo日志路径,对应磁盘组DMLOG,建议三层路径,第二层路径名称独立不重复
    DATA_ASM_PATH    = /dev/raw/raw4			     #操作系统绑定的数据库数据文件路径,对应磁盘组DMDATA,建议三层路径,第二层路径名称独立不重复
    ARCH_ASM_PATH    = /dev/raw/raw4                    #操作系统绑定的本地归档存储路径,只有ARCH_INI_OPEN=2/3时生效,其对应的磁盘组DMARCH,如值与DATA_ASM_PATH完全一致,归档将存储在磁盘组DMDATA上。
    
    [ARCH]
    ARCH_INI_OPEN    = 2                                      #是否开启DSC节点的本地归档,0不开启,1开启本地归档且放在本地,2开启本地归档且放在ASM,3:DSC+备机,并且dsc归档放在asm上。
    ARCH_SPACE_LIMIT = 10240                                 #单个节点的本地归档或远程归档的大小空间限制,如是4节点DSC,则需要预留4*ARCH_SPACE_LIMIT的空间。
    
    SSH_PORT         = 22                                     #远程Linux服务器的ssh端口号,一般为22,某些客户出于安全考虑,会更改ssh的默认连接端口
    
    [DSC_DMINIT]                                              #初始化DSC实例的一些参数
    DB_NAME             = CNDT                                #实例名称
    SYS_PATH            = data                                #在ASM存储中的数据文件路径,注意大小写
    SYSTEM_SIZE         = 1024                                #SYSTEM.dbf的大小
    ROLL_SIZE           = 10000                               #Roll表空间的大小
    MAIN_SIZE           = 1024                                #MAIN表空间的大小
    CTL_SIZE            = 8                                   #dm.ctl文件的大小
    LOG_SIZE            = 2048                                #redo文件的大小,搭建集群完成后,通过17步骤扩大集群的redo文件到log_size大小。
    AUTO_OVERWRITE      = 1                                   #ASM中的同名文件是否覆盖
    PAGE_SIZE           = 16                                  #初始化实例时的页大小
    EXTENT_SIZE         = 16                                  #初始化实例时的簇大小
    DB_SYSDBA_PWD       = 1314520dsy                          #初始化数据库时的SYSDBA密码,包括后续修改SYSDBA密码后的一些运维操作
    DB_INIT_PARA        = CASE_SENSITIVE=1,UNICODE_FLAG=0     #其它初始化参数,需要什么参数按格式增加即可,多个参数以逗号隔开
    
    [DSC_CONF]
    DCR_OGUID           = 240830                              #DCR的oguid,取6位数字即可,常用规律为当前日期
    
    [DSC_PORT]                               #搭建集群时所用到的各个端口号
    DB_INST_PORT                = 5236       #DSC实例端口号,端口号建议4位
    DB_MAL_PORT                 = 1246       #DSC实例的MAL通信端口号,端口号建议4位
    DCR_CHECK_PORT              = 1256       #DCR 检查端口号。检查实例是否活动的时候用,各实例不能冲突,故该端口会随着实例自动+1,端口号建议4位
    ASM_MAL_PORT                = 1266       #ASM 通信的端口号,端口号建议4位
    ASM_DCR_EP_PORT             = 1276       #ASM 节点 TCP 监听端口。各实例不能冲突,故该端口会随着实例自动+1,端口号建议4位
    CSS_DCR_EP_PORT             = 1286       #CSS 节点 TCP 监听端口,端口号建议4位
    
    [DSC_TIME]                                 #DSC集群一些心跳故障认证时间
    DB_DCR_GRP_DSKCHK_CNT       = 57           #心跳,DSC DB 故障认定时间
    ASM_DCR_GRP_DSKCHK_CNT      = 61           #心跳,DSC ASM 故障认定时间
    CSS_DCR_GRP_DSKCHK_CNT      = 65           #心跳,DSC CSS 故障认定时间
    DMDCR_ASM_RESTART_INTERVAL  = 71           #DMCSS 认定 DMASM 节点故障重启的时间间隔(取值 0~86400s),0则不会执行拉起
    DMDCR_DB_RESTART_INTERVAL   = 0            #DMCSS 认定 DMDSC 节点故障重启的时间间隔(取值 0~86400s),0则不会执行拉起
    DMDCR_AUTO_OPEN_CHECK       = 111          #指定时间内如果节点实例未启动,DMCSS 会自动将节点踢出集群环境,单位为秒
    MAL_CHECK_INTERVAL          = 87           #MAL 链路检测时间间隔,取值范围(0s-1800s)为了防止误判,DMDSC 集群中,建议将配置值>= DB_DCR_GRP_DSKCHK_CNT。
    MAL_CONN_FAIL_INTERVAL      = 33           #判定 MAL 链路断开的时间,取值范围(2s-1800s)
    
    
    [ASM]
    DCR_EP_SHM_KEY              = 42424       #共享内存标识,不同实例的该值不一样,故该端口会随着实例自动+1
    DCR_EP_SHM_SIZE             = 200         #共享内存大小
    ASM_DCR_PWD                 = 1314520dsy    #初始化DCR时的密码
    
    [DataWatcher]                                                   #该组参数只有在ARCH_INI_OPEN=3时生效,表示搭建DSC+单机备机
    DW_PATH                     = /home/dmdba/dmdbms                #备机的DM路径
    DATA_PATH                   = /home/dmdba/dmdbms/data/DSC                #备机数据库数据文件路径,根据实际修改,但要确保该目录只为该集群所用。
    MAL_DW_PORT                 = 3567                              #dmmal.ini中的MAL_DW_PORT端口,用于集群中所有守护进程、监视器的通信,端口号建议4位
    MAL_INST_DW_PORT            = 2176                              #DM8的参数,数据守护4.0,端口号建议4位
    DB_OGUID                    = 1000                            #建议修改#OGUID,代表集群的唯一标识,表示数据库的OGUID
    DW_TYPE                     = REALTIME                          #搭建的集群类型:即时归档:TIMELY;实时归档:REALTIME,如无特殊需求,建议用REALTIME
    DW_MODE                     = MANUAL                            #集群的故障切换模式:自动切换(AUTO),非自动切换(MANUAL)                         
    ASYNC_NODE                  = 1                                 #异步备机的数量,取值0-8。始终从最后的NODE为异步备机,如只有2NODE,则表示1主1异步备机。
    AUTO_RESTART                = 1                                 #实例自动重启,1表示自动重启,0表示不自动重启,仅针对备机有效,对DSC无效
    INST_RECOVER_TIME           = 60                                #主库守护进程启动恢复的间隔时间
    INST_ERROR_TIME             = 120                               #本地数据库故障认定时间
    DW_ERROR_TIME               = 120                               #远程主(备)机守护进程故障认定时间
    ARCH_WAIT_APPLY             = 0                                 #高性能模式为0,事务强一致模式为1
    ARCH_FLUSH_BUF_SIZE         = 0                                 #写本地归档时,合并rlog为多少M再写。202009月度版才支持,之前版本该值需要设置为0.
    
    [MAIL]#一般不用改参数,以128GB内存为例
    MAL_SYS_BUF_SIZE=6000
    MAL_BUF_SIZE=3000
    MAL_VPOOL_SIZE=5000
    MAL_COMPRESS_LEVEL=0
    
    #各节点配置
    [DSC1]
    DSC_MAL_HOST = 10.10.10.7     #内网IP
    DSC_INST_HOST = 192.168.19.130   #外网IP
    DSC_INST_UID  = dmdba
    DSC_INST_PWD  = 1314520dsy
    
    [DSC2]
    DSC_MAL_HOST = 10.10.10.4
    DSC_INST_HOST = 192.168.19.137
    DSC_INST_UID  = dmdba
    DSC_INST_PWD  = 1314520dsy
    
    #[NODE]、[MONITOR]在ARCH_INI_OPEN=3时生效,表示搭建DSC+单机备机
    [NODE1]
    DB_MAL_HOST = 10.10.10.2   #内网IP
    DB_INST_HOST = 192.168.19.139   #外网IP
    DB_INST_UID  = dmdba
    DB_INST_PWD  = 1314520dsy
    
    [NODE2]
    DB_MAL_HOST = 10.10.10.8
    DB_INST_HOST = 192.168.19.142
    DB_INST_UID  = dmdba
    DB_INST_PWD  = 1314520dsy
    
    [MONITOR]  #确认监视器,需要独立的机器
    MON_MAL_HOST = 192.168.18.21   #内网IP
    MON_INST_HOST = 192.168.104.21  #外网IP
    MON_INST_UID  = dmdba
    MON_INST_PWD  = hust44001

2.3部署过程

  • 使用Python启动程序,输入配置文件进行部署执行

    shell 复制代码
    [dmdba@192 4_dm8_dsc_dw]$ python dm8_dsc.py 
    请输入配置文件:
    dm8_dsc.conf
    部署集群:2节点DSC环境,本地归档存储在ASM。
    DM8_DSC>
  • 执行步骤h查看帮助信息

  • 执行步骤01,SSH连接各机器

    • 这里注意,输入完01后弹出(y/n)不要输入任何东西;在完成后再输入一次01才算是成功连接
  • 执行步骤02,测试网络互通

  • 执行步骤03,搭建DSC

    • 报错:启动服务器失败

      • 原因:这里我发现是在创建数据库时,ROLL表空间创建失败

        • 然后我去配置文件看了下,是我给ROLL表空间的空间太大,直接超过了磁盘的大小,所以创建失败。
      • 解决方法:调整ROLL表空间大小,给到适量的大小即可,然后重新执行步骤03

        • 成功启动
  • 执行步骤07,一键关闭集群

  • 执行步骤06,一键启动集群(这么做是看集群是否真的配置好了,不至于关了之后就用不了了)

  • 执行步骤q退出部署工具

3.测试集群功能可用性

  • 在节点DSC1中创建表test,并插入数据,提交

    SQL 复制代码
    SQL> create table test(id number ,name varchar2(20));
    SQL> insert into test values(1,'dmdsc');
    SQL> insert into test values(2,'dmdw');
    SQL> commit;
  • 在节点DSC2中查询表test

    SQL 复制代码
    SQL> select * from test;

自此,使用自动安装工具进行DSC集群搭建成功!

参考

相关推荐
虾球xz2 分钟前
游戏引擎学习第55天
学习·游戏引擎
m0_7482448312 分钟前
StarRocks 排查单副本表
大数据·数据库·python
oneouto18 分钟前
selenium学习笔记(二)
笔记·学习·selenium
C++忠实粉丝23 分钟前
Redis 介绍和安装
数据库·redis·缓存
sealaugh3223 分钟前
aws(学习笔记第十九课) 使用ECS和Fargate进行容器开发
笔记·学习·aws
wmd1316430671238 分钟前
将微信配置信息存到数据库并进行调用
数据库·微信
炭烤玛卡巴卡1 小时前
学习postman工具使用
学习·测试工具·postman
是阿建吖!1 小时前
【Linux】基础IO(磁盘文件)
linux·服务器·数据库
凡人的AI工具箱1 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
ClouGence1 小时前
Redis 到 Redis 数据迁移同步
数据库·redis·缓存