温馨提示×

Ubuntu MariaDB升级与维护建议

小樊
40
2025-12-22 13:26:31
栏目: 云计算

Ubuntu 上 MariaDB 的升级与维护建议

一 升级策略与准备

  • 明确目标版本与路径:优先使用 Ubuntu 官方仓库的小版本升级;跨大版本(如 10.3 → 10.11)建议先在测试环境验证,再按阶段升级,必要时采用 逻辑备份/还原 的方式降低风险。
  • 完整备份与回滚方案:
    • 逻辑备份:mysqldump -u root -p --single-transaction --routines --triggers --all-databases > backup.sql
    • 物理备份:sudo systemctl stop mariadb && sudo cp -a /var/lib/mysql /var/lib/mysql.bak-$(date +%F)
    • 配置与系统快照:sudo tar czf mariadb-conf-$(date +%F).tgz /etc/mysql /etc/my.cnf* /var/log/mysql
  • 维护窗口与变更管控:选择业务低峰期,通知应用方,准备回滚脚本与演练记录。
  • 依赖与兼容性检查:核对 GLIBC 与库依赖、存储引擎(如 InnoDB)、复制/集群拓扑、第三方插件与应用的 SQL 兼容性。
  • 小版本就地升级通常安全;跨大版本或跨发行版源升级,优先采用“备份—全新安装—导入数据”的保守路径。

二 就地小版本升级步骤

  • 更新索引与系统:sudo apt update && sudo apt upgrade
  • 执行安全与配置检查:sudo mysql_upgrade -u root -p(必要时加 --force),检查并修正不兼容的 SQL_MODE、存储引擎与视图定义。
  • 重启服务:sudo systemctl restart mariadb
  • 版本核验:mysql -VSELECT VERSION();
  • 验证应用连通性与关键业务查询/存储过程。

三 跨版本或跨源升级步骤

  • 规划与备份:按“准备”节完成全量与物理备份,冻结写入或切换主从,准备回滚。
  • 添加 MariaDB 官方 APT 源(示例为 10.5,请替换为目标版本与 Ubuntu 代号):
    • 创建源文件:echo "deb [arch=amd64] https://mirror.yandex.ru/mariadb/repo/10.5/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/mariadb.list
    • 导入 GPG 公钥(以 10.5 为例):sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
  • 执行升级:sudo apt update && sudo apt install mariadb-server mariadb-client
  • 升级后处理:运行 mysql_upgrade,重启服务,核验版本与复制状态。
  • 认证与登录问题处理:若从 MySQL 迁移或升级后出现 ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded,可临时以 --skip-grant-tables 启动,调整 mysql.userpluginmysql_native_password 并重置密码后恢复。

四 日常维护与监控

  • 备份策略:
    • 每日全量 + 二进制日志(Point-in-Time Recovery);保留至少 7–30 天
    • 定期演练恢复流程,校验备份可用性与一致性。
  • 安全加固:执行 sudo mysql_secure_installation,设置 root 强密码、移除匿名用户、禁止远程 root、删除测试库。
  • 监控与告警:关注错误日志、慢查询日志、连接数、复制延迟、磁盘/InnoDB 空间使用;设置阈值告警。
  • 性能与健康:定期使用 MySQLTuner 获取配置与指标建议,结合业务做索引与 SQL 优化。

五 常见问题与回滚

  • 常见故障与修复:
    • 升级后启动失败:检查 InnoDB 系统表空间/页大小变更、不兼容参数、残留 .frm 等;必要时以旧版本数据目录回滚并重新评估升级路径。
    • 复制中断:比对主从 GTID/位置,重建复制或跳过错误事务(谨慎)。
    • 权限/登录异常:核对 user 表的 hostpluginauthentication_string,必要时重置。
  • 回滚方案优先级:
    1. 逻辑回滚:导入升级前全量备份;
    2. 物理回滚:停止服务,恢复 /var/lib/mysql.bak-<date>
    3. 快照/镜像回滚(如有)。
  • 验证:回滚后核对数据一致性、复制状态与业务功能。

0