点击上方“IT那活儿”,关注后了解更多精彩内容!!!


2. 软件需求

1. 关闭透明大页
cp /etc/default/grub /etc/default/grub.bak.`date +%Y%m%d`echo 'GRUB_CMDLINE_LINUX="transparent_hugepage=never"' >> /etc/default/grubcp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak.`date +%Y%m%d`grub2-mkconfig -o /boot/grub2/grub.cfgreboot # 适合的时候重启,重启后⽤下⾯命令检查验证是否成功关闭透明⼤⻚cat /sys/kernel/mm/transparent_hugepage/enabled
2. 修改内核参数
vi /etc/sysctl.conf增加以下内容fs.aio-max-nr=1048576fs.file-max=76724600fs.nr_open=20480000kernel.sem=4096 2147483647 2147483646 512000kernel.shmall=107374182kernel.shmmax=274877906944kernel.shmmni=819200net.core.netdev_max_backlog=10000net.core.rmem_default=262144net.core.rmem_max=4194304net.core.somaxconn=4096net.core.wmem_default=262144net.core.wmem_max=4194304net.ipv4.ip_local_port_range=40000 65535net.ipv4.tcp_fin_timeout=5net.ipv4.tcp_keepalive_intvl=20net.ipv4.tcp_keepalive_probes=3net.ipv4.tcp_keepalive_time=60net.ipv4.tcp_max_syn_backlog=4096net.ipv4.tcp_max_tw_buckets=262144net.ipv4.tcp_mem=8388608 12582912 16777216net.ipv4.tcp_rmem=8192 87380 16777216net.ipv4.tcp_synack_retries=2net.ipv4.tcp_syncookies=1net.ipv4.tcp_timestamps=1net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_wmem=8192 65536 16777216vm.dirty_background_bytes=409600000vm.dirty_expire_centisecs=3000vm.dirty_ratio=80vm.dirty_writeback_centisecs=100vm.mmap_min_addr=65536vm.nr_hugepages=0vm.nr_overcommit_hugepages=1000000vm.overcommit_memory=0vm.overcommit_ratio=90vm.swappiness=0vm.zone_reclaim_mode=0sysctl -p使之生效
3. 关闭SELINUX服务
vi /etc/selinux/configSELINUX=disabledroot执行setenforce 0
4. 修改用户资源限制
* soft nofile 655360* hard nofile 655360* soft nproc 655360* hard nproc 655360* soft memlock unlimited* hard memlock unlimited* soft core unlimited* hard core unlimited
5. yum安装依赖包
挂载对应的yum源后,安装必要的依赖包。
yum install -y openssh-server openssh-clients firewalld vim python sudo dnf-data dnf-plugins-core dnf-automatic libdnf python-devel.x86_64
6. 主备数据节点和日志节点配置root免密
ssh-keygen -t dsassh-keygen -t rsa
scp 192.168.0.2:/root/.ssh/id_dsa.pub /root/.ssh/id_dsa.pub.2scp 192.168.0.3:/root/.ssh/id_dsa.pub /root/.ssh/id_dsa.pub.3scp 192.168.0.2:/root/.ssh/id_rsa.pub /root/.ssh/id_rsa.pub.2scp 192.168.0.3:/root/.ssh/id_rsa.pub /root/.ssh/id_rsa.pub.3
cat /root/.ssh/id_dsa.pub >>/root/.ssh/authorized_keyscat /root/.ssh/id_dsa.pub.2>>/root/.ssh/authorized_keyscat /root/.ssh/id_dsa.pub.3>>/root/.ssh/authorized_keyscat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keyscat /root/.ssh/id_rsa.pub.2>>/root/.ssh/authorized_keyscat /root/.ssh/id_rsa.pub.3>>/root/.ssh/authorized_keysscp 192.168.0.1:/root/.ssh/authorized_keys /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keysssh 192.168.0.x date检测互通性
1. 集群管理工具安装
/u01/softwarepdbcli-0.5.1-SNAPSHOT-asset-202111190226.tar.gzpdbcli-0.5.1-SNAPSHOT-bin-202111190226.tar.gz
export version=0.5.1mkdir -p pdbcli-${version}/
tar -C pdbcli-${version}/ -xf pdbcli-0.5.1-SNAPSHOT-asset-202111190226.tar.gztar -C pdbcli-${version}/ -xf pdbcli-0.5.1-SNAPSHOT-bin-202111190226.tar.gz
cd pdbcli-${version}/ && ./scripts/install.sh
pdbcli version
2. 集群管理工具配置
all:## 填写所有主机的信息,包括主机名称、IP地址等。需确保各主机之间可以使⽤SSH通过root⽤⼾免密码登录。hosts:## 主机名称按照 hostNN 来命名,例如host01。host01:ansible_host: 10.XX.XX.1host02:ansible_host: 10.XX.XX.2host03:ansible_host: 10.XX.XX.3vars:## 如下为具体的集群配置。## 设置PolarDB-O数据库引擎的安装根⽬录,默认为:/var/local/polardb# polardb_data_root_dir: /var/local/polardb## 设置PolarDB-O CM(Cluster Manager)的安装根⽬录,默认为:/var/local/polardb# polardb_cm_root_dir: /var/local/polardb_cluster_manager## 【必填】设置cluster_id,即集群ID。该设置会影响安装⽂件夹。## 警告:在数据库集群创建后,请勿修改该ID。cluster_id: mycluster## 【必填】设置external_storage_path,即数据存储路径。## 填写绝对路径,该⽬录必须不存在或者为空。数据库集群创建后,请勿修改该外部存储路径。external_storage_path: /mnt/polardb_cluster_mycluster## 设置主库节点。如果未指定,则默认指定all.children.db[0]作为主库。primary_db_host: host01## 系统参数设置## 开启或关闭firewalld防⽕墙服务,默认为false,即关闭状态。如果开启,则还需要⼿动打开服务对应端⼝。firewalld_enabled: false## 数据库参数设置## 设置监听端⼝,默认值为1521。# polardb_port: 1521## 设置最⼤连接数,默认为2048。# polardb_max_connections: 2048## PolarDB replication账⼾设置## 警告:数据库集群创建后,请勿修改该账⼾设置。## 设置PolarDB replication⽤⼾名,默认为user_rep。# polardb_rep_username: user_rep## 设置PolarDB replication密码,默认为pgsql。# polardb_rep_password: pgsq## CM参数设置## CM服务 HTTP 监听端⼝,默认为5000。# cm_service_port: 5500## CM服务 HTTPS 监听端⼝,默认为5001。# cm_tls_service_port: 5501## CM consensus服务监听端⼝,默认为5002。# cm_consensus_port: 5502## CM是否开启TLS,默认不开启,即false。当前版本暂不⽀持开启。# cm_tls_enabled: false## proxy参数设置## PolarDB Proxy⼯作并发数,默认为2。# polardb_proxy_concurrency: 2## PolarDB Proxy服务端⼝,默认为12366。# polardb_proxy_port: 12366## PolarDB Proxy管理服务端⼝,默认为12367。# polardb_proxy_admin_port: 12367## RW_TYPE为1时有效。主节点是否参与读请求的负载均衡。默认为true。如果设置为false,则读请求不发往主库。# polardb_proxy_master_accept_ready: true## 是否开启事务拆分。默认为true。如果设置为false,事务所有请求路由到主库;如果设置为true,则事务中写之前的读请求可以路由到只读库。写之后的读还是路由到主库。# polardb_proxy_trx_split: true## 是否开启会话⼀致性。默认为true。如果设置为false,不保证会话内读写⼀致性;如果设置为true,保证会话⼀致性。效果为同⼀个连接内,读请求⼀定能读到这个连接之前写⼊的数据。# polardb_proxy_casual_reads: true## 是否开启读写分离。设置为false时,所有请求路由到主库# polardb_proxy_rw_split: true## agent参数设置## Node Driver服务端⼝,默认为12355。# ue_node_driver_service_port: 12355## 为主机列表中的主机设置不同的⻆⾊。children:## db:数据库集群主机的分组## cm:Cluster Manager集群管理主机的分组## proxy:Proxy集群主机的分组db hosts:## db host可包含以下选项:# 【必填】polardb_polar_hostid, 保证主机索引唯⼀# external_storage_path:# polardb_proxy_aux_db_readonly:enable readonly for aux db instance# polardb_dma_node_type:logger or learnerhost01:polardb_polar_hostid: 1host02:polardb_polar_hostid: 2# host03:polardb_polar_hostid: 2vars:## polardb_custom_params为⽤⼾⾃定义参数。格式为:'<key> = <value>'。等号前后必须各有⼀个空格。value若为字符串类型,则必须使⽤单引号。## 例如:polar_datadir = '/1739656-1/data'## 如果⽆需配置⾃定义参数,可留空(polardb_custom_params: []),或者使⽤注释符号将其屏蔽。# polardb_custom_params: []# - archive_mode = off# - archive_command = ''## CM节点分组。将要安装CM服务的节点列在此处。当前仅⽀持配置为1个或3个节点作为CM节点。cm:## 若此处CM节点分组包含三个主机,则会配置为三节点⾼可⽤模式。hosts:host01:host02:host03:var:## proxy节点分组。将要安装proxy服务的节点列在此处。proxy:## proxy节点分组中,建议包含⾄少两个节点以保障⾼可⽤及负载均衡。如果不需要proxy组件,hosts设置为空即可。hosts:host01:host02:var:
3. 安装和部署PolarDB-O数据库集群
pdbcli install/uninstall cluster --config=config.yaml
pdbcli create/delete cluster --config=config.yaml
4. 集群状态检查
pdbcli status --config=config.yaml


本 文 原 创 来 源:IT那活儿微信公众号(上海新炬王翦团队)


文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




