From c9694c7c6b8404dc7112a6029cd0ce191bd4bcb5 Mon Sep 17 00:00:00 2001 From: xue_meng_en <1836611252@qq.com> Date: Tue, 18 Jun 2024 09:46:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=B9=E5=99=A8=E5=8C=96=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=80=E4=B8=BB=E5=A4=9A=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/dockerfiles/5.0.0/entrypoint.sh | 4 +- docker/dockerfiles/create_master_slave.sh | 196 +++++++++++++++------- 2 files changed, 142 insertions(+), 58 deletions(-) diff --git a/docker/dockerfiles/5.0.0/entrypoint.sh b/docker/dockerfiles/5.0.0/entrypoint.sh index 70ddc1545..d79527781 100644 --- a/docker/dockerfiles/5.0.0/entrypoint.sh +++ b/docker/dockerfiles/5.0.0/entrypoint.sh @@ -274,13 +274,13 @@ opengauss_setup_postgresql_conf() { echo "password_encryption_type = 0" echo "wal_level = logical" fi + echo "application_name = '$NODE_NAME'" if [ -n "$SERVER_MODE" ]; then echo "listen_addresses = '0.0.0.0'" echo "most_available_sync = on" echo "remote_read_mode = non_authentication" echo "pgxc_node_name = '$NODE_NAME'" - # echo "application_name = '$NODE_NAME'" if [ "$SERVER_MODE" = "primary" ]; then echo "max_connections = 100" else @@ -313,7 +313,7 @@ docker_temp_server_start() { PGUSER="${PGUSER:-$GS_USER}" \ gs_ctl -D "$PGDATA" \ - -w start + -w start $@ } # stop postgresql server after done setting up user and running scripts diff --git a/docker/dockerfiles/create_master_slave.sh b/docker/dockerfiles/create_master_slave.sh index c72a7a498..f09f36ee4 100644 --- a/docker/dockerfiles/create_master_slave.sh +++ b/docker/dockerfiles/create_master_slave.sh @@ -24,53 +24,106 @@ #set OG_SUBNET,GS_PASSWORD,MASTER_IP,SLAVE_1_IP,MASTER_HOST_PORT,MASTER_LOCAL_PORT,SLAVE_1_HOST_PORT,SLAVE_1_LOCAL_PORT,MASTER_NODENAME,SLAVE_NODENAME -read -p "Please input OG_SUBNET (容器所在网段) [172.11.0.0/24]: " OG_SUBNET -OG_SUBNET=${OG_SUBNET:-172.11.0.0/24} +# Define default values +NETWORK_NAME="opengaussnetwork" +OG_SUBNET="172.11.0.0/24" +GS_PASSWORD="Enmo@123" +MASTER_IP="172.11.0.101" +MASTER_HOST_PORT="5432" +MASTER_NODENAME="dn_6001" +VERSION="5.0.0" +# Define default values for slaves +SLAVE_IP=("172.11.0.102" "172.11.0.103" "172.11.0.104" "172.11.0.105" "172.11.0.106" "172.11.0.107" "172.11.0.108" "172.11.0.109") +SLAVE_HOST_PORT=("6432" "7432" "8432" "9432" "10432" "11432" "12432" "13432") +SLAVE_NODENAME=("dn_6002" "dn_6003" "dn_6004" "dn_6005" "dn_6006" "dn_6007" "dn_6008" "dn_6009") +SLAVE_COUNT=1 + +ARGS=$(getopt -o h --long OG_SUBNET:,GS_PASSWORD:,MASTER_IP:,MASTER_HOST_PORT:,MASTER_LOCAL_PORT:,MASTER_NODENAME:,VERSION:,SLAVE_COUNT:,NETWORK_NAME: -- "$@") +if [ $? != 0 ]; then + echo "参数解析错误" + exit 1 +fi +eval set -- "$ARGS" + +# Use getopts to process command line arguments +while true; do + case "$1" in + -h) + echo "Usage: $0 [--OG_SUBNET value] [--GS_PASSWORD value] [--MASTER_IP value] [--MASTER_HOST_PORT value] [--MASTER_NODENAME value] [--VERSION value] [--SLAVE_COUNT value] [--SLAVE_NODENAME value] [--SLAVE_IP value] [--SLAVE_HOST_PORT value] [--NETWORK_NAME value]" + shift + ;; + --OG_SUBNET) + OG_SUBNET="$2" + shift 2 + ;; + --GS_PASSWORD) + GS_PASSWORD="$2" + shift 2 + ;; + --MASTER_IP) + MASTER_IP="$2" + shift 2 + ;; + --MASTER_HOST_PORT) + MASTER_HOST_PORT="$2" + shift 2 + ;; + --MASTER_LOCAL_PORT) + MASTER_LOCAL_PORT="$2" + shift 2 + ;; + --MASTER_NODENAME) + MASTER_NODENAME="$2" + shift 2 + ;; + --VERSION) + VERSION="$2" + shift 2 + ;; + --SLAVE_COUNT) + SLAVE_COUNT="$2" + shift 2 + ;; + --NETWORK_NAME) + NETWORK_NAME="$2" + shift 2 + ;; + --) + shift + break + ;; + *) + echo "Invalid option: -$OPTARG" >&2 + exit 1 + ;; + esac +done + +# Output the set values echo "OG_SUBNET set $OG_SUBNET" - -read -p "Please input GS_PASSWORD (定义数据库密码)[Enmo@123]: " GS_PASSWORD -GS_PASSWORD=${GS_PASSWORD:-Enmo@123} echo "GS_PASSWORD set $GS_PASSWORD" - -read -p "Please input MASTER_IP (主库IP)[172.11.0.101]: " MASTER_IP -MASTER_IP=${MASTER_IP:-172.11.0.101} echo "MASTER_IP set $MASTER_IP" - -read -p "Please input SLAVE_1_IP (备库IP)[172.11.0.102]: " SLAVE_1_IP -SLAVE_1_IP=${SLAVE_1_IP:-172.11.0.102} -echo "SLAVE_1_IP set $SLAVE_1_IP" - -read -p "Please input MASTER_HOST_PORT (主库数据库服务端口)[5432]: " MASTER_HOST_PORT -MASTER_HOST_PORT=${MASTER_HOST_PORT:-5432} echo "MASTER_HOST_PORT set $MASTER_HOST_PORT" - -read -p "Please input MASTER_LOCAL_PORT (主库通信端口)[5434]: " MASTER_LOCAL_PORT -MASTER_LOCAL_PORT=${MASTER_LOCAL_PORT:-5434} -echo "MASTER_LOCAL_PORT set $MASTER_LOCAL_PORT" - -read -p "Please input SLAVE_1_HOST_PORT (备库数据库服务端口)[6432]: " SLAVE_1_HOST_PORT -SLAVE_1_HOST_PORT=${SLAVE_1_HOST_PORT:-6432} -echo "SLAVE_1_HOST_PORT set $SLAVE_1_HOST_PORT" - -read -p "Please input SLAVE_1_LOCAL_PORT (备库通信端口)[6434]: " SLAVE_1_LOCAL_PORT -SLAVE_1_LOCAL_PORT=${SLAVE_1_LOCAL_PORT:-6434} -echo "SLAVE_1_LOCAL_PORT set $SLAVE_1_LOCAL_PORT" - -read -p "Please input MASTER_NODENAME [opengauss_master]: " MASTER_NODENAME -MASTER_NODENAME=${MASTER_NODENAME:-opengauss_master} echo "MASTER_NODENAME set $MASTER_NODENAME" - -read -p "Please input SLAVE_NODENAME [opengauss_slave1]: " SLAVE_NODENAME -SLAVE_NODENAME=${SLAVE_NODENAME:-opengauss_slave1} -echo "SLAVE_NODENAME set $SLAVE_NODENAME" - -read -p "Please input openGauss VERSION [5.0.0]: " VERSION -VERSION=${VERSION:-5.0.0} echo "openGauss VERSION set $VERSION" +echo "SLAVE_COUNT set $SLAVE_COUNT" +echo "SLAVE_NODENAME set $SLAVE_NODENAME" +echo "SLAVE_IP set $SLAVE_IP" +echo "SLAVE_HOST_PORT set $SLAVE_HOST_PORT" +echo "NETWORK_NAME set $NETWORK_NAME" + +# Loop through and process each slave's information +for (( i=0; i