AnyBackup-MySQL 数据库物理恢复成功有警告,提示警告信息:警告,原因:目标实例 mysql3306 启动失败或启动超时(默认 60 秒,当前设置 60 秒),请检查或手动重启。并且 My
关键字
MySQL 、启动失败 、PID 文件
适用产品
- AnyBackup CDM 7.0.x
- AnyBackup Express 7.0.x
- AnyBackup Enterprise 7.0.x
问题描述
在 AnyBackup 管理控制台执行 MySQL 数据库物理备份恢复任务成功(有警告),提示警告信息:
警告,原因:目标实例 mysql3306 启动失败或启动超时(默认 60 秒,当前设置 60 秒),请检查或手动重启。且 MySQL 的错误日志里面有 /usr/local/mysql/bin/mysqld: Can't create/write to file '/var/run/mariadb/mariadb.pid' (Errcode: 2 - No such file or directory)的信息。

问题影响
在 AnyBackup 管理控制台执行 MySQL 数据库物理备份恢复任务成功(有警告),恢复后使数据库联机选项未生效,恢复目的地数据库未成功启动。
问题原因
MySQL 数据库物理恢复指定的配置文件中记录的 PID 文件必须存在且有读写权限,由于 PID 文件不存在,导致 MySQL 数据库物理恢复任务中执行恢复后数据库联机选项失败。

解决方案
为了解决该问题,需要手动创建相应的路径和文件,并更改该文件的属主和属组,具体操作如下:
1. 登录 MySQL 数据库服务器后台,使用 find 命令查看 MySQL 数据库的 my.cnf 配置文件(顺序排前的优先)。
2. 使用 cat 命令查看 my.cnf 中记录的 PID 文件位置,详细路径根据实际情况为准。
find / -name my.cnf
cat /etc/my.cnf

3. 执行以下命令创建相应的路径和文件,并给 PID文件 所在的路径添加 mysql 属主与属组的权限。
mkdir -p /var/run/mariadb
touch /var/run/mariadb/mariadb.pid
chown mysql:mysql /var/run/mariadb/mariadb.pid

4. 在 AnyBackup 管理控制台上,重新执行 MySQL 数据库物理备份恢复任务。
更多信息
MySQL 数据库的 PID 文件记录的是当前 mysqld 进程的 pid 号,主要作用是防止启动多个进程副本。原理是进程运行后会给 PID 文件加一个文件锁,只有获得 PID 文件(固定路径固定文件名)写入权限 (F_WRLCK) 的进程才能正常启动并把自身的 PID 写入该文件中,其它同一个程序的多余进程则自动退出。