openGauss 升级

virtCCA 1 升级的流程 升级分类: 就地升级:暂停业务 灰度升级:不暂停业务,一次升级所有节点 节点升级:基于灰度升级,可升级部分节点 升级流程:(此处的命令是简化版命令,不能直接执行) 准备升级:检查安装包 开始升级:停止、启动集群,修改系统表 mkdir new_pkg gs_preinstall -X config.xml gs_upgradectl -t auto-upgrade -X config.xml --grey 验证升级 gsql -V gaussdb -V gsql -d postgres -p 5432 -c 'select working_version_num();' # 旧版本 提交升级 gs_upgradectl -t commit-upgrade -X config.xml --grey 回滚升级 gs_upgradectl -t auto-rollback -X config.xml 2 升级的原理 安装包 |-- install |-- share |-- postgresql |-- postgresql.conf.sample |-- postgres.bki |-- system_views.sql |-- extension |-- ... main parseCommandLine checkParameter initGlobalInfos initClusterInfo UpgradeImplOLAP run Upgrade.run UpgradeImpl.run # UpgradeImpl.py initGlobalInfos commonCheck if 'auto_upgrade' doGreyBinaryUpgrade distributeXml checkUpgrade # 检查环境变量 'Local_Check_Upgrade -t action -R oldapppath -l locallog -N newapppath -X config.xml' doHealthCheck checkClusterStatus checkConnection chooseUpgradeNodes prepareGreyUpgrade createBakPath 'mkdir upgradeBackupPath' initNodeStepInCsv 'touch upgrade_step.csv_bak' initUpgradeProcessStatus recordNodeStepInplace recordDirFile 'touch record_app_directory' writeFile('oldClusterAppPath') copyBakVersion 'cp oldapppath/bin/upgrade_version upgradeBackupPath/upgrade_version' installNewBin 'Local_Install -t install_cluster -U user:group -R newapppath -P tmpdir -c clustername -l locallog -X config.cml -T -u' cpDolphinUpgradeScript 'cp oldapppath/share/postgresql/extension/dolphin* newapppath/share/postgresql/extension/' prepareUpgradeSqlFolder # catalog upgrade_sql.tar.gz, including guc 'Local_Upgrade_Utility -t prepare_upgrade_sql_folder -U user --upgrade_bak_path upgradeBackupPath -X config.xml -l locallog' updateCatalog 'cp upgradeBackupPath/upgrade_sql/ {upgrade-post, upgrade, rollback-post, rollback}' doUpgradeCatalog setUpgradeFromParam 'gs_guc set -Z cmagent -N all -I all -c upgrade_from=working_grand_version' reload_cm_proc setUpgradeMode(2) reloadCmAgent killKernalSnapshotThread execRollbackUpgradedCatalog('rollback') execRollbackUpgradedCatalog('upgrade') pgxcNodeUpdateLocalhost("upgrade") rebuild_pg_proc_proname_args_nsp_new_index upgradeAgain greySyncGuc 'Local_Upgrade_Utility -t grey_sync_guc -U user --upgrade_bak_path=upgradeBackupPath -l logcallog' greySyncGuc # script/local/UpgradeUtility.py readDeleteGuc greySyncInstanceGuc greyUpgradeSyncOldConfigToNew 'Local_Upgrade_Utility -t grey_upgrade_config_sync -U user -V oldversionnumber --old_cluster_app_path=oldapppath --new_cluster_app_path=newapppath -l locallog' greyUpgradeSyncConfig # 适配点, 参考 setUpradeModeGuc( getOneDNInst switchBin 'Local_Upgrade_Utility -t switch_bin -U user -l localog -R new?oldapppath' restore_origin_disaster_user_file setNewVersionGuc switchExistsProcess _check_and_start_cluster 'gs_om -t start' createCheckpoint switchDn waitClusterNormalDegrade doHealthCheck waitClusterForNormal backupGlobalRelmapFile printPrecommitBannervstart elif 'commit': doGreyCommitUpgrade 参考 opengauss om源码:https://gitee.com/opengauss/openGauss-OM opengauss升级:https://docs.opengauss.org/zh/docs/latest/docs/DatabaseOMGuide/upgrade.html

March 6, 2025 · 2 min · 250 words · Me

openGauss 身份认证 GUC参数

1 身份认证 身份认证 大部分数据库都支持基于口令的身份认证,以vastbase为例,身份认证的流程如下: 高权限用户创建新用户 CREATE USER u1 PASSWORD 'u1.pass1'; 数据库在pg_authid系统表中存储用户以及密码的哈希 SELECT oid, rolname, rolvalidbegin, rolpassword FROM pg_authid WHERE rolname = 'u1'; oid | rolname | rolvalidbegin | rolpassword -------+---------+---------------+-------------------------------------------------------------------------- 24576 | u1 | | sha2565e3b533ca5db32acdffdb6aea03395af163ac3cfdc9ddb....... 数据库在pg_auth_history系统表中存储密码创建时间 SELECT roloid, passwordtime FROM pg_auth_history; oid | passwordtime -------+------------------------------- 24576 | 2025-02-11 12:17:02.969642+08 新用户登录数据库 gsql -d postgres -U u1 -W 'u1.pass1' -r 数据库校验新用户信息:数据库接收用户建立连接的请求时,会进行一系列身份鉴别操作,包括:检查用户提供的密码与pg_authid中的值是否匹配,检查pg_auth_history中记录的密码生成日期与当前日期是否间隔较久等 ...

February 28, 2025 · 5 min · 864 words · Me

openGauss 1 安装openGauss

1 安装wsl 请自行在网上了解wsl是什么,以及如何在wsl中安装centos 7: 在windows 11中,启用wsl 下载centos 7的wsl 安装包 在wsl中,安装centos 7 进入centos 7,创建普通用户,建议使用mobaxterm直接登录wsl中的centos系统 配置centos 7的yum源 2 准备环境 下载opengauss源码 git clone -b master git@gitee.com:opengauss/openGauss-server.git 下载第三方库 wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/latest/binarylibs/gcc10.3/openGauss-third_party_binarylibs_Centos7.6_x86_64.tar.gz 解压第三方库 # 解压压缩包 tar -zxvf openGauss-third* # 归档压缩包 mkdir tmp mv *.tar.gz tmp # 重命名压缩包 mv openGauss-third* third 下载依赖库 yum install -y libaio-devel flex bison ncurses-devel patch readline-devel # 单独安装 glibc-devel yum install glibc-devel # 如果报错,提示安装了.i686版本的glibc-devel,则修改yum配置文件: # echo "exclude=*.i686" >> /etc/yum.conf # 如果报错,提示glibc-devel与glibc-common不匹配,则降级glibc和glibc-common # yum downgrade glibc glibc-devel glibc-common glibc-headers # 降级后,再重新安装 glibc-devel 即可 # yum install glibc-devel 设置环境变量 首先,请确保目录结构如下: ...

February 20, 2025 · 2 min · 249 words · Me
心情不好的时候可以点一下 🐱
×
🤖 Doubao AI ×
Hi! 我是你的技术助手。关于代码、架构或 Bug,随时问我!🚀