diff --git "a/content/zh/post/zhaozhiyong/openGauss\346\211\213\345\212\250\345\215\207\347\272\247\350\277\207\347\250\213\345\255\246\344\271\240\350\256\260\345\275\225.md" "b/content/zh/post/zhaozhiyong/openGauss\346\211\213\345\212\250\345\215\207\347\272\247\350\277\207\347\250\213\345\255\246\344\271\240\350\256\260\345\275\225.md" new file mode 100644 index 0000000000000000000000000000000000000000..d7fc30bc6d28cd31a8fadfcd4e592bb83071a174 --- /dev/null +++ "b/content/zh/post/zhaozhiyong/openGauss\346\211\213\345\212\250\345\215\207\347\272\247\350\277\207\347\250\213\345\255\246\344\271\240\350\256\260\345\275\225.md" @@ -0,0 +1,239 @@ ++++ +title = "openGauss升级" +date = "2023-02-18" +tags = ["openGauss升级"] +archives = "2023-02-18" +author = "赵志勇" +summary = "openGauss升级学习" +times = "20:30" ++++ + +# 手工升级 + +原集群为1主2备,版本为2.0.2,使用手工方式将集群中第二个节点升级2.0.3版本,其它节点版本保持不变。 + +主要是学习下升级过程,生产环境请使用`om`工具进行升级。 + +## 配置tool目录 + +```shell +$ ls +openGauss-2.0.3-CentOS-64bit-all.tar.gz +$ mkdir tmp +$ tar -xf openGauss-2.0.3-CentOS-64bit-all.tar.gz -C tmp/ +$ cd tmp && tar -xf openGauss-2.0.3-CentOS-64bit.tar.bz2 ./version.cfg +$ tar -xf openGauss-2.0.3-CentOS-64bit-om.tar.gz +$ rm -rf openGauss-2.0.3-CentOS-64bit-om.* +$ tar -czvf openGauss-Package-`tail -1 version.cfg`.tar.gz ./* +$ echo $GPHOME +/app/opengauss/tool +$ mkdir -p /app/opengauss/tool && cp openGauss-Package-37ace63a.tar.gz /app/opengauss/tool +$ cd /app/opengauss/tool +$ tar -xf openGauss-Package-37ace63a.tar.gz +$ ll +总用量 188916 +drwx------ 14 omm dbgrp 335 4月 21 19:51 lib +-rw------- 1 omm dbgrp 65 4月 21 19:52 openGauss-2.0.3-CentOS-64bit.sha256 +-rw------- 1 omm dbgrp 90623189 4月 21 19:52 openGauss-2.0.3-CentOS-64bit.tar.bz2 +-rw------- 1 omm dbgrp 102673815 5月 5 16:09 openGauss-Package-37ace63a.tar.gz +drwx------ 10 omm dbgrp 4096 4月 21 19:51 script +drwx------ 2 omm dbgrp 330 4月 21 19:51 simpleInstall +-rw------- 1 omm dbgrp 65 4月 21 19:50 upgrade_sql.sha256 +-rw------- 1 omm dbgrp 134046 4月 21 19:50 upgrade_sql.tar.gz +-rw------- 1 omm dbgrp 32 4月 21 19:51 version.cfg +``` + +## 安装新`app` + +```shell +$ mkdir -p /app/opengauss/app/2.0.1_07ad2fc0 +$ export LD_LIBRARY_PATH=$GPHOME/script/gspylib/clib:$LD_LIBRARY_PATH && tar -xpf /app/opengauss/tool/openGauss-2.0.3-CentOS-64bit.tar.bz2 -C /app/opengauss/app/2.0.1_07ad2fc0 + +``` + +## 拷贝`om`(script)目录 + +```shell +$ cp -r /app/opengauss/tool/script /app/opengauss/app/2.0.1_07ad2fc0/bin/ +``` + + + +## 修改权限 + +```shell +$ find /app/opengauss/app/2.0.1_07ad2fc0/bin/script -type f -name "*.sql" -exec chmod 600 {} \; +$ find /app/opengauss/app/2.0.1_07ad2fc0/lib/ -type f -exec chmod 600 {} \; +$ find /app/opengauss/app/2.0.1_07ad2fc0/share/ -type f -exec chmod 600 {} \; +``` + + + +## 生成新的`upgrade_version`文件 + +```shell +$ cp /app/opengauss/app/2.0.1_07ad2fc0/version.cfg /app/opengauss/app/2.0.1_07ad2fc0/bin/upgrade_version +``` + + + +## 拷贝原集群静态和动态配置文件 + +```shell +$ if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/cluster_static_config ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/cluster_static_config /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +$ if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/cluster_dynamic_config ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/cluster_dynamic_config /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi +``` + +## 拷贝原集群其他文件 + +```shell +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/obsserver.key.cipher ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/obsserver.key.cipher /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/obsserver.key.rand ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/obsserver.key.rand /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/trans_encrypt.key.cipher ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/trans_encrypt.key.cipher /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/trans_encrypt.key.rand ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/trans_encrypt.key.rand /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/trans_encrypt_ak_sk.key ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/trans_encrypt_ak_sk.key /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/roach.key.cipher ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/roach.key.cipher /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/roach.key.rand ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/roach.key.rand /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/roach_ak_sk.key ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/roach_ak_sk.key /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/server.key.cipher ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/server.key.cipher /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/server.key.rand ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/server.key.rand /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/datasource.key.cipher ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/datasource.key.cipher /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/datasource.key.rand ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/datasource.key.rand /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/usermapping.key.cipher ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/usermapping.key.cipher /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/usermapping.key.rand ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/usermapping.key.rand /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/subscription.key.cipher ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/subscription.key.cipher /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/subscription.key.rand ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/subscription.key.rand /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/gs_tde_keys.cipher ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/gs_tde_keys.cipher /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/ca.key ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/ca.key /app/opengauss/app/2.0.1_07ad2fc0/share/sslcert/etcd/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/etcdca.crt ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/etcdca.crt /app/opengauss/app/2.0.1_07ad2fc0/share/sslcert/etcd/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/client.key ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/client.key /app/opengauss/app/2.0.1_07ad2fc0/share/sslcert/etcd/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/bin/cm_agent.lock ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/bin/cm_agent.lock /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/client.crt ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/client.crt /app/opengauss/app/2.0.1_07ad2fc0/share/sslcert/etcd/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/client.key.cipher ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/client.key.cipher /app/opengauss/app/2.0.1_07ad2fc0/share/sslcert/etcd/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/client.key.rand ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/client.key.rand /app/opengauss/app/2.0.1_07ad2fc0/share/sslcert/etcd/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/etcd.key.cipher ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/etcd.key.cipher /app/opengauss/app/2.0.1_07ad2fc0/share/sslcert/etcd/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/etcd.key.rand ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/etcd/etcd.key.rand /app/opengauss/app/2.0.1_07ad2fc0/share/sslcert/etcd/;fi + + +if [ -d /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/gsql/ ];then cp -r /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/gsql/ /app/opengauss/app/2.0.1_07ad2fc0/share/sslcert/;fi + +if [ -d /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/gds/ ];then cp -r /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/gds/ /app/opengauss/app/2.0.1_07ad2fc0/share/sslcert/;fi + +if [ -d /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/grpc/ ];then cp -r /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/grpc/ /app/opengauss/app/2.0.1_07ad2fc0/share/sslcert/;fi + +if [ -d /app/opengauss/app/2.0.1_b7fcc134/lib/postgresql/java ];then mv /app/opengauss/app/2.0.1_07ad2fc0/lib/postgresql//java/pljava.jar /app/opengauss/app/2.0.1_07ad2fc0/lib/postgresql/&&cp -r /app/opengauss/app/2.0.1_b7fcc134/lib/postgresql/java /app/opengauss/app/2.0.1_07ad2fc0/lib/postgresql/&&mv /app/opengauss/app/2.0.1_07ad2fc0/lib/postgresql//pljava.jar /app/opengauss/app/2.0.1_07ad2fc0/lib/postgresql//java/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/postgis-*.*.so ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/postgis-*.*.so /app/opengauss/app/2.0.1_07ad2fc0/lib/postgresql/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/libgeos_c.so.* ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/libgeos_c.so.* /app/opengauss/app/2.0.1_07ad2fc0/lib/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/libproj.so.* ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/libproj.so.* /app/opengauss/app/2.0.1_07ad2fc0/lib/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/libjson-c.so.* ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/libjson-c.so.* /app/opengauss/app/2.0.1_07ad2fc0/lib/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/libgeos-*.*.*so ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/libgeos-*.*.*so /app/opengauss/app/2.0.1_07ad2fc0/lib/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/postgis--*.*.*.sql ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/postgis--*.*.*.sql /app/opengauss/app/2.0.1_07ad2fc0/share/postgresql/extension/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/postgis.control ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/postgis.control /app/opengauss/app/2.0.1_07ad2fc0/share/postgresql/extension/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/pgsql2shp ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/pgsql2shp /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/shp2pgsql ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/shp2pgsql /app/opengauss/app/2.0.1_07ad2fc0/bin/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/libgcc_s.so.* ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/libgcc_s.so.* /app/opengauss/app/2.0.1_07ad2fc0/lib/;fi + +if [ -f /app/opengauss/app/2.0.1_b7fcc134/libstdc++.so.* ];then cp -f -p /app/opengauss/app/2.0.1_b7fcc134/libstdc++.so.* /app/opengauss/app/2.0.1_07ad2fc0/lib/;fi + +if [ -d /app/opengauss/app/2.0.1_b7fcc134/kerberos ];then cp -r /app/opengauss/app/2.0.1_b7fcc134/kerberos /app/opengauss/app/2.0.1_07ad2fc0/;fi + +if [ -d /app/opengauss/app/2.0.1_b7fcc134/var/krb5kdc ];then mkdir /app/opengauss/app/2.0.1_07ad2fc0/var; cp -r /app/opengauss/app/2.0.1_b7fcc134/var/krb5kdc /app/opengauss/app/2.0.1_07ad2fc0/var/;fi + +cp -r /app/opengauss/app/2.0.1_b7fcc134/lib/postgresql/pg_plugin /app/opengauss/app/2.0.1_07ad2fc0/lib/postgresql + +if [ -d /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/cm ];then cp -r /app/opengauss/app/2.0.1_b7fcc134/share/sslcert/cm /app/opengauss/app/2.0.1_07ad2fc0/share/sslcert/;fi +``` + + + +## 建立软链接 + +```shell +ln -snf /app/opengauss/app/2.0.1_07ad2fc0 /app/opengauss/app/2.0.1 +``` + + + +## `kill进程` + +```shell +ps ux | grep '\-D' | grep '/app/opengauss/app/2.0.1' |grep -v grep | awk '{print $2}' | xargs -r kill -9 +``` + +## 启动节点实例 + +```shell +/app/opengauss/app/2.0.1/bin/gs_ctl start -D /app/ogdata/data/dn1 -M standby -t 300 +``` + +## 查看集群状态 + +```shell +$ gs_om -t query +[ Cluster State ] + +cluster_state : Normal +redistributing : No +current_az : AZ_ALL + +[ Datanode State ] + + node node_ip port instance state +----------------------------------------------------------------------- +1 user374 20.198.110.160 26000 6001 P Primary Normal +2 user375 20.198.110.161 26000 6002 S Standby Normal +3 user376 20.198.110.162 26000 6003 S Standby Normal +``` + +## 查看版本信息 + +通过下面的输出可以发现,第二个节点已经变为`2.0.3`版本。 + +```shell +$ gs_ssh -c "gsql -V" +Successfully execute command on all nodes. + +Output: +[SUCCESS] user374: +gsql (openGauss 2.0.2 build b7fcc134) compiled at 2022-04-02 20:42:31 commit 0 last mr +[SUCCESS] user375: +gsql (openGauss 2.0.3 build 07ad2fc0) compiled at 2022-04-21 19:39:49 commit 0 last mr +[SUCCESS] user376: +gsql (openGauss 2.0.2 build b7fcc134) compiled at 2022-04-02 20:42:31 commit 0 last mr +``` \ No newline at end of file