!2441 支持容器化升级

Merge pull request !2441 from 薛蒙恩/docker_upgrade
This commit is contained in:
opengauss-bot 2022-12-22 06:28:12 +00:00 committed by Gitee
commit 1b97274b24
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
4 changed files with 1298 additions and 0 deletions

31
docker/upgrade/README.md Normal file
View File

@ -0,0 +1,31 @@
容器化升级操作指南
前置条件:
旧版本容器集群状态正常
容器化升级操作步骤:
1. 准备升级工具、新版本容器和包
(1) 新版本容器镜像需载入到环境
(2) 将升级工具和新版本包放入升级路径
相关路径说明:
GAUSSDATA数据库数据目录默认为/var/lib/opengauss/data升级工具中可以通过-D指定
GAUSS_UPGRADE_BASE_PATH升级根路径默认为$GAUSSDATA/upgrade升级工具中可以通过-B指定
UPGRADE_NEW_PKG_PATH新包路径默认为$GAUSS_UPGRADE_BASE_PATH/pkg_new升级工具中可以通过-N指定
新版本包中必须包含version.cfg、upgrade_sql.tar.gz和upgrade_sql.sha256
2. 在**所有旧版本主备机容器**中执行前置升级动作
sh upgrade.sh -t upgrade_pre
3. 停掉所有旧版本库
4. 启动所有新版本库并在所有新版本主备机容器中执行upgrade_bin、upgrade_post和upgrade_commit动作
sh upgrade.sh -t upgrade_bin
sh upgrade.sh -t upgrade_post
sh upgrade.sh -t upgrade_commit
回退操作步骤:
case 1: 已切换到新二进制
sh upgrade.sh -t rollback_post (已执行upgrade_post动作)
sh upgrade.sh -t rollback_bin (已执行upgrade_bin动作)
退出新版本容器
case 2: 仅执行了upgrade_pre动作
sh upgrade.sh -t rollback_pre
**注意:**
如果升级路径和新包路径自行规划,则需要在新旧容器中做着两个路径的卷映射

61
docker/upgrade/upgrade.sh Normal file
View File

@ -0,0 +1,61 @@
#!/bin/bash
# Copyright (c) Huawei Technologies Co., Ltd. 2010-2022. All rights reserved.
# date: 2021-12-22
# version: 1.0
CURRENT_DIR=$(
cd $(dirname $0)
pwd
)
source ${CURRENT_DIR}/upgrade_common.sh
function main() {
parse_cmd_line $@
init_config
check_and_init
case "${action}" in
upgrade_pre)
upgrade_pre
exit 0
;;
upgrade_bin)
upgrade_bin
exit 0
;;
upgrade_post)
upgrade_post
exit 0
;;
rollback_pre)
rollback_pre
exit 0
;;
rollback_bin)
rollback_bin
exit 0
;;
rollback_post)
rollback_post
exit 0
;;
upgrade_commit)
upgrade_commit
exit 0
;;
query_start_mode)
query_start_mode
exit 0
;;
switch_over)
switch_over
exit 0
;;
*)
log "please input right parameter, the following command may help you"
log "sh upgrade_GAUSSV5.sh --help or sh upgrade_GAUSSV5.sh -h"
die "Must input parameter -t action" ${err_parameter}
;;
esac
}
main $@

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,18 @@
#!/bin/bash
# Copyright (c) Huawei Technologies Co., Ltd. 2010-2022. All rights reserved.
# date: 2021-12-22
# version: 1.0
err_upgrade_pre=201
err_upgrade_bin=202
err_upgrade_post=203
err_rollback_pre=204
err_rollback_bin=205
err_rollback_post=206
err_check_init=207
err_parameter=208
err_upgrade_commit=209
err_version_same=210
err_no_need_commit=211
err_inner_sys=212
err_dn_role_null=213