入门第三篇:虚谷数据库集群部署

环境准备

生产最小参考配置:(测试环境没要求)

安装版本

操作系统

内存

磁盘

网络

单机版

Windows/Linux等x64操作系统

8GB

100GB

数据访问网:千兆交换网络

双机版

Windows/Linux等x64操作系统

16GB

100GB

数据访问网:千兆交换网络

分布式版

Windows/Linux等x64操作系统

32GB

100GB

数据交换网:千兆以上交换网络
数据访问网:千兆交换网络

适配的操作系统和cpu:

适配项结果
cpu国外:ARM、X86等
国内:鲲鹏、龙芯、海光、飞腾等
操作系统都可以

资源检查配置:

检查项命令
操作系统

cat /etc/os-release

CPUlscpu
内存free -g
磁盘大小df -h
磁盘速度

dd  if=/dev/zero of=/data/test.log bs=8k count=20k oflag=dsync status=progress

网络

ip a

ethtool ens33

ping -c 4 -s 1500 192.168.159.22

ping -c 4 -s 9000 192.168.159.22

ping -c 4 -s 60000 192.168.159.22

 安装部署

安装部署步骤中如果没有指定是在哪个节点配置的话就表示每个节点都一样的配置

服务器环境配置:

cpu配置:

 1.关闭CPU超线程(在BIOS查找CPU Configuration –> Hyper-threading设置为Disable)

2.关闭节能模式(在BIOS查找System Profile Settings –> system profile设置为CPU Performance)

网络配置:

查看“/etc/sysctl.conf”中是否存在网络内核参数,如果不存在则在文件末尾添加下述参数。

net.core.rmem_default = 2097152

net.core.wmem_default = 2097152

net.core.rmem_max = 8388608

net.core.wmem_max = 8388608

参数添加完成后,执行sysctl -p /etc/sysctl.conf命令使参数立即生效。

说明:

如果配置多节点数据库集群,需要检查集群内部数据交换网(内部数据交换网各个节点之间互ping,万兆网不高于0.06ms,千兆网不高于 0.1ms),如果生产环境的网络延迟未达到最低要求,请联系硬件厂商进行性能调优。

运行环境和依赖:

yum install -y libaio

安装SNMP服务

数据库集群节点硬件资源监控依赖SNMP服务,设置为开机自启动

yum install -y net-snmp

-- 设置为开机自启动

sudo systemctl enable snmpd

安装NTP服务

保证数据库集群中各个节点时间一致,设置为开机自启动

1.下载ntp:

yum install -y ntp

注意:CentOS或RedHat等系统环境下,chronyd服务与ntpd服务冲突,因此chronyd、ntpd两种时间同步方式只能二选一。当使用ntpd服务时,需要禁用chronyd服务。

systemctl disable chronyd && systemctl stop chronyd

2.添加配置

如果已经存在ntp服务器,假如为192.168.159.22,可以配置所有节点指向该ntp服务器时间。编辑高可用集群中每个节点的/etc/ntp.conf文件:

server 192.168.159.22 prefer

driftfile /var/lib/ntp/drift

broadcastdelay 0.008

如果没有外部的时间服务器,可以选择集群中的某个节点作为时间服务器。选择一个节点为ntp服务器(以节点192.168.159.22为例)在选择的节点上配置/etc/ntp.conf文件:

server 127.127.1.0

fudge 127.127.1.0 stratum 10

driftfile /var/lib/ntp/drift

broadcastdelay 0.008

编辑高可用集群中其他节点的/etc/ntp.conf文件:

server 192.168.159.22 prefer

driftfile /var/lib/ntp/drift

broadcastdelay 0.008

3.启动各节点ntpd服务

systemctl start ntpd

systemctl enable ntpd

systemctl status ntpd

设置为开机自启动

sudo systemctl enable ntpd

防火墙:

systemctl status firewalld.service

systemctl stop firewalld

systemctl disable firewalld

或者开启数据库端口5138和集群通信端口(cluster.ini中配置的端口以及每个发送端口+20)

firewall-cmd --zone=public --permanent --add-port=5138/tcp

firewall-cmd --permanent --zone=public --add-port=50000/udp

firewall-cmd --permanent --zone=public --add-port=50020/udp

firewall-cmd --reload

firewall-cmd --list-ports

selinux设置:

1、查看是否开启SELINUX,如果是未开启则是diabled,已开启则是enforcing

# getenforce

2、临时关闭SELINUX

 setenforce 0

3、通过修改配置文件永久关闭SELINUX

(1)vim 编辑配置文件 /etc/selinux/config

(2)将SELINUX=enforcing修改为SELINUX=disabled

(3)重启系统reboot

内核参数配置:

ulimit -a

open files                         (-n) 10240

stack size                   (kbytes, -s) 20480

如果设置偏小,可以通过“/etc/profile”配置文件,在文件尾部追加下列两行参数

vim /etc/profile

ulimit -s 20480

ulimit -n 10240

source /etc/profile

安装数据库

准备安装包

创建数据库安装目录

mkdir -p /data/xugu/

上传安装包到安装目录并解压

tar -xvf  xugu-12.6.9-Linux-x86_64-20240924.tar.gz

将解压后将BIN目录的上一层目录移动到/data/xugu/下并重命名xugudb

mv Server xugudb

检查端口

检查外部连接端口

lsof -i:5138

检查内部通信端口

lsof -i:50000

lsof -i:50020

lsof -i:50001

lsof -i:50021

配置数据库参数

系统缓冲区

data_buff_mem = 20480;  数据缓冲区内存(单位:M)

swap_buff_mem = 512;  交换缓冲区内存(单位:M)

system_sga_mem = 4096;  系统全局区内存(单位:M)

max_hash_mem = 1024;  允许单个hash节点使用的最大内存量(单位:M)

hash_parti_num = 16;  Hash运算在内存不够时转入分组处理的分组数

max_malloc_once = 512;  最大单次分配内存块大小(单位:M)

max_task_mem = 0;  任务线程运行最大内存(单位:M,0表示不限制)

存贮子系统参数

def_data_space_size = 10240;  默认数据表空间的初始尺度(单位:M)

def_temp_space_size = 1024;  默认临时表空间的初始尺度(单位:M)

def_undo_space_size = 5120;  默认回滚表空间的初始尺度(单位:M)

def_redo_file_size = 10240;  默认重做日志文件尺度(单位:M)

def_file_step_size = 1024;  默认表空间文件的增长步长(单位:M)

集群配置文件

注意端口数MSG_PORT_NUM,和PORTS中配置的端口数保持一致,和每个节点MY_NID,MY_NID=0001表示节点1,MY_NID=0002表示节点2,各个参数的作用可以参考:集群文件配置 | 文档中心

#MAX_NODES=16    MASTER_GRPS=1    PROTOCOL='UDP'    MSG_PORT_NUM=2    MAX_SEND_WIN=510

 MSG_HAVE_CRC=0    MERGE_SMALL_MSG=1    MSG_SIZE=9000    TIMEOUT=20000    RPC_WINDOW=16

 EJE_WINDOW=16    MAX_SHAKE_TIME=1200    MY_NID=0001    CHECK_RACK=0

 NID=0001  RACK=0001  PORTS='192.168.159.21:50000,192.168.159.21:50001'  ROLE='MSQW'  LPU=3  STORE_WEIGHT=3  STATE=DETECT;

 NID=0002  RACK=0001  PORTS='192.168.159.22:50000,192.168.159.22:50001'  ROLE='MSQW'  LPU=3  STORE_WEIGHT=3  STATE=DETECT;

 NID=0003  RACK=0001  PORTS='192.168.159.23:50000,192.168.159.23:50001'  ROLE='MSQW'  LPU=3  STORE_WEIGHT=3  STATE=DETECT;

 NID=0004  RACK=0001  PORTS='192.168.159.24:50000,192.168.159.24:50001'  ROLE='MSQW'  LPU=3  STORE_WEIGHT=3  STATE=DETECT;

文件位置配置(可选)

文件位置默认放到数据库安装目录的XHOME下,如果使用迷人配置就不用修改,如果需要单独配置文件路径,可以通过mount.ini和datafile.ini文件修改data表空间、temp表空间、undo表空间三种类型文件目录

所有数据文件都放到指定目录下,只用修改mount.ini的路径,可以不用添加datafile.ini,比如将数据文件都放到/data/xugu/xugudb/DATA下就只有修改mount.ini中的/DATA 

vim mount.ini

/XGLOG      ./XGLOG

/CATA      ./XHOME/CATA

/DATA      /data/xugu/xugudb/DATA

/TEMP      ./XHOME/TEMP

/REDO      ./XHOME/REDO

/BACKUP      ./BACKUP

/ARCH      ./XHOME/ARCH

/UNDO      ./XHOME/UNDO

/MODI      ./XHOME/XMODI

数据文件放到指定的多个目录下,添加mount.ini的路径,不用删除默认路径,添加datafile.ini指定每个目录下的文件(datafile.ini中的注释不能随便写,否则无法识别是什么文件)

比如将数据文件分别指定路径:

vim mount.ini

/DATA1 /data/xugu/xugudb/data1

/DATA2 /data/xugu/xugudb/data1

/DATA3 /data/xugu/xugudb/data2

/DATA4 /data/xugu/xugudb/data2

/XGLOG      ./XGLOG

/CATA      ./XHOME/CATA

/DATA      ./XHOME/DATA

/TEMP      ./XHOME/TEMP

/REDO      ./XHOME/REDO

/BACKUP      ./XHOME/BACKUP

/ARCH      ./XHOME/ARCH

/UNDO      ./XHOME/UNDO

/MODI      ./XHOME/XMODI

vim datafile.ini

#DATA_FILES

/DATA1/DBDATA1.DBF

/DATA2/DBDATA2.DBF

/DATA3/dbdata3.DBF

/DATA4/dbdata4.DBF

启动数据库:

到数据库BIN目录下执行启动脚本或者命令

sh xugu_start.sh

或者

$PWD/xugu_linux_x86_64_20240924 -service

执行启动脚本或者命令后可以查看stdout.txt,如果打印出端口号表示启动成功

登录数据库

拷贝命令行工具xgconsole到/usr/bin下

cp -a xgconsole /usr/bin

使用命令行工具登录数据库

xgconsole nssl 127.0.0.1 5138 system sysdba SYSDBA

Show clusters;

创建数据库

创建数据库只能在system系统库下执行

create database yewuku char set ‘utf8’;

创建用户

每个数据库都是独立的,每个库下的对象都只能进入各个库后进行操作,比如在新建库下创建用户,必须先进入新建库再执行创建用户的命令

use yewuku;

create user yonghu identified by ‘yonghu@2024!’;

grant dba to yonghu;

这样分布式集群数据库就安装部署完成啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值