Linux 主机版备份前置条件检查
备份需要保证MySQL实例在线,环境正常可用。
-
确认要备份的数据库可以正常连接使用。
使用命令在数据库查看数据库实例是否存在:
ps -ef|grep mysql
-
确认MySQL开启了binlog日志,并将日志模式设置为 “ROW”模式。
使用命令在数据库查看是否开启了日志模式:
show variables like 'log_bin';
如果没有开启,可通过修改MySQL配置文件my.cnf开启:
在 [mysqld] 中,添加以下内容:
log_bin=mysql_bin
binlog_format="ROW"
注意:若添加该命令后导致MySQL服务无法启动,则需要在my.cnf中 [mysqld] 下再添加server_id = 1,保存后即可重新启动MySQL服务。
如果要关闭掉binlog,需要先关掉实例服务,可以先执行
ps -ef|grep mysql
查询到实例的进程ID,然后 执行kill -9 进程ID
。之后修改配置文件my.cnf,注释掉log_bin、binlog_format、server_id字段,然后在 [mysqld] 下添加skip-log-bin,之后使用守护进程重启实例服务,命令为mysql_safe --defaults-file=/etc/my.cnf --user=mysql &
。登录mysql实例服务,执行show variables like “log_bin”;
后可以看到binlog处于OFF状态。 -
确认MySQL安装用户能够通过
netstat
命令查到MySQL进程端口。在root用户下执行:
which netstat
,查询netstat工具的路径。在root用户下执行:
chmod +s /usr/bin/netstat
或chmod +s /bin/netstat
,使MySQL用户拥有root权限执行netstat程序。在MySQL安装用户下输入命令
netstat -nap|grep mysqld
,查到MySQL进程对应端口。 -
确认用于备份用户的权限,指定某用户进行备份,需要给用户授予相应的权限才使用备份恢复功能。
-
MySQL物理备份需要开启数据库远程用户访问权限。
-
物理备份的用户权限请参照以下表格:
版本 备份恢复所需权限 MySQL 5.x PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN, SUPER, CREATE, ALTER, INSERT, SELECT。 MySQL 8.x PROCESS, RELOAD, LOCK TABLES, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN, SUPER, BACKUP_ADMIN , CREATE, ALTER, INSERT, SELECT。
注意:
- 可登录数据库,通过
show grants for 'xxx'@'%';
查看xxx用户权限。 - 若权限不是以上说明所需的权限,请按照以上方法给用户授予对应的权限。
- MySQL root用户一般具有物理备份所需的权限。
- 确认客户端主机上mysql数据库版本号,如果版本号是5.5,物理备份时不建议使用归档日志备份,因为mysql5.5没有GTID选项,导致归档日志备份的数据在进行恢复时会出现数据丢失等未知情况。同时物理备份的增量备份和差异备份的数据不建议进行不完全恢复,原因同样是mysql5.5没有GTID选项,会导致恢复数据丢失等未知情况。
-
TDSQL 备份前置条件检查
-
用于数据库备份与恢复的账号需要在赤兔平台上授予所有权限,如下图为创建用户时授予的权限:
创建登录用户界面
勾选用户权限界面
-
登录集群主机,通过SQL命令将步骤1创建的用户,授予BACKUP_ADMIN权限:
GRANT BACKUP_ADMIN ON *.* TO '用户名'@'%'; GRANT BACKUP_ADMIN ON *.* TO '用户名'@'localhost';