升级兼容性检查
操作场景
在执行GaussDB数据库版本升级前,建议进行兼容性检查,确认当前实例版本的业务SQL与目标版本间是否存在潜在的兼容性问题。
前提条件
由于升级兼容性检查报告依赖OBS,所以在下载报告之前,需要参考《对象存储服务3.0(OBS) 使用指南(for 华为云Stack 8.5.0)》中的“用户指南 > 使用前配置”章节配置DNS或者localhost。配置内容如下:
{obs_float_ip}dbs-gaussdb-driver-download-{region_id}.{obs_prefix}.{region_id}.{external_global_domain_name}
- obs_float_ip:当前Region的OBS服务的外部访问地址,在OBS安装工程LLD查询参数名global_obsv3_ip,obs3.0为obsv3,obs2.0为obs。
- region_id:当前Region的region_id,在底座LLD中查询参数region0_id获取。
- obs_prefix:OBS服务域名前缀,obs3.0为“obsv3”,obs2.0为“obs”,在OBS安装工程LLD查询参数obsv3_global_domain_name_prefix。
- external_global_domain_name:当前Region的外部服务域名,在底座LLD查询参数external_global_domain_name。
约束限制
- 检查兼容性时目标版本仅支持V2.0-3.223.0。
- 实例状态和节点状态需保持正常可用。
- SQL文件最大不能超过20MB。
- 升级兼容性检查功能属于白名单功能,使用前需要联系运维参考《云数据库 GaussDB 维护指南(for 华为云Stack 8.5.0)》中的“运维指南 > DBS运维管理平台操作指南 > 配置管理 > 特性白名单”章节,将“gaussdb_feature_upgradeCompatibility”白名单打开。
操作步骤
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域和项目。
- 在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。
- 在“实例管理”页面,选择指定的实例,单击实例的名称,进入“基本信息”页面。
- 在“数据库信息”模块,单击“版本升级兼容性”的“检查”按钮。
图1 版本升级兼容性检查
- 在“版本升级兼容性”弹框,上传业务SQL文件,选择目标版本,输入“YES”单击“确定”。
SQL文件可通过如下两种方式获取:
- 推荐使用数据库和应用迁移UGO解析并导出SQL文件,详细内容请参考 《数据库和应用迁移 UGO(UGO) 使用指导书(for 华为云Stack 8.5.0) 》 中的“用户手册 > 用户指南 > 应用迁移”。
- 使用业务中应用的SQL文件。
图2 版本升级兼容性检查
- 完成后单击“版本升级兼容性”的“查看检查状态”按钮查看版本升级兼容性检查任务列表。
图3 查看版本升级兼容性检查任务列表
- 选择任务状态为“完成”的记录,单击“下载”按钮下载检查报告。
表1 报告字段说明 报告字段
字段说明
item_name
兼容性检查项名称。
item_type
兼容性检查类型。
检查类型可能是下列单个类型或单个类型间的任意组合。
- system_view : 系统视图。
- GUC : GUC参数。
- grammar : 语法。
- system_table : 系统表。
- procedure :存储过程。
- privilege : 权限。
- system_object : 系统对象。
- system_function : 系统函数。
- decoding : 解码。
- system_column :系统列。
- function : 函数。
version
目标版本。
method_name
检查方法。
- ugo : 检查业务SQL中是否包含非兼容内容。
- sql : 通过执行SQL语句的方式检查是否包含非兼容内容。
- shell : 通过Shell脚本的方式检查是否存在非兼容内容。
exec_node_description
当前兼容性检查方法在哪些节点上执行。
- 当method_name值为sql时:
- all cn : 表示SQL语句每个CN都要执行。
- all cn and primary dn : 表示SQL语句每个CN和主DN都要执行。
- all primary dn : 表示SQL语句每个主DN都要执行。
- only one of (cn and primary dn) : 表示SQL语句任选一个CN或者主DN进行执行。
- 当method_name值为shell时 :
- all node with (cn or primary dn) : 表示Shell脚本在每个存在CN或者主DN的节点执行。
- all node with cn : 表示Shell脚本在每个存在CN的节点执行。
- all node with primary dn : 表示Shell脚本在每个存在主DN的节点执行。
- only one node of nodes with (cn or primary dn) : 表示Shell脚本任意选一个存在CN或者主DN的节点执行。
- 当method_name值为ugo时:
method_content
兼容性检查执行的内容。
- method_name值为ugo:表示在上传的SQL文件中匹配关键字进行兼容性检查。
- method_name值为sql:表示通过执行SQL语句进行兼容性检查。
- method_name值为shell:表示通过执行Shell脚本进行兼容性检查。
result
执行结果,执行对应检查项返回的原始结果。
- “method_name”为“sql”:{"<组件名>": "SET\n<执行结果数量>/报错信息"}
- “method_name”为“shell”:{"<执行节点IP>": "<执行结果数量>/报错信息"}
- “method_name”为“ugo”:<执行结果数量>
judge_method
结果判断方法。
judge_result
判断结果。
- PASS:当前检查项检查通过。
- FAILED:当前检查项检查未通过,可能存在兼容性问题。
- IGNORE:当前实例无需执行对应检查项。
- ERROR:检查内容执行错误,可在“result”字段中查看详细错误信息,建议排查实例问题后重新检查。注意:
- 如果存在兼容性问题可参考对应数据库引擎版本的(当前仅支持V2.0-3.223版本)的《版本兼容性说明》进行评估。
- 如果当前检查项检查失败,检查实例是否存在异常节点。或查看“result”字段,例如存在“failed to connect”字样表示执行时无法连接到对应节点,请确保节点正常后重新执行。
- 检查报告中的不兼容项的详细说明,请参考《云数据库 GaussDB V2.0-3.223 升级兼容性检查说明书 01》。
更多详情请参考GaussDB 文档中心:https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/productdesc/qlh_03_0001.html