博客
关于我
Mysql实战之数据备份
阅读量:790 次
发布时间:2023-02-12

本文共 2750 字,大约阅读时间需要 9 分钟。

数据库备份与恢复指南

1. 数据库冷备份方法

1.1 单库冷备份

单库冷备份是一种不会创建新库而是直接备份现有数据库的方法,适合对数据完整性要求较高的场景。以下是操作步骤:

mysqldump mydb > /app/mydb.backup-$(date +%F-%H-%M-%S)

1.2 恢复单库数据

恢复单库数据时,需要新建一个数据库并将备份文件导入:

mysql testdb < /app/mydb.backup-2017-09-12-14-18-44

进入数据库后查看数据恢复情况:

use testdb;SHOW TABLES;

1.3 多库冷备份

多库冷备份可以通过指定多个数据库名来实现,同时备份时会自动创建新库:

mysqldump --databases mydb testdb mysql > /app/mydb-testdb-mysql-backup-$(date +%F-%H-%M-%S)

恢复多库数据时,需要在远程服务器上创建相应的用户权限:

GRANT ALL ON *.* TO 'admin'@'172.16.253.105' IDENTIFIED BY 'admin';GRANT ALL ON *.* TO 'admin'@'%.danran.com' IDENTIFIED BY 'admin';FLUSH PRIVILEGES;

将备份文件导入远程服务器并验证恢复成功:

mysql -uadmin -h'172.16.253.108' -padmin < /app/mydb-testdb-mysql-backup-F-14-32-28

2. InnoDB热备份

2.1 热备份准备

在进行InnoDB热备份之前,需要确保所有表已锁定:

FLUSH TABLES WITH READ LOCK;

滚动数据库日志:

FLUSH LOGS;

查看当前的二进制日志文件:

SHOW MASTER LOGS;

2.2 操作步骤

进行热备份:

mysqldump --single-transaction mydb > /app/mydb-backup-$(date +%F-%H-%M-%S);

恢复数据方法与单库冷备份类似。

3. Xtrabackup全量备份

3.1 安装Xtrabackup

下载并安装Xtrabackup软件包:

yum -y install percona-xtrabackup-24

创建备份存放目录并执行备份:

mkdir /mydata/xbdatainnobackupex --user=root --host=localhost /mydata/xbdata

3.2 查看备份文件

查看备份文件中的配置信息:

less /mydata/xbdata/2017-09-12_16-45-10/backup-my.cnf

查看表空间文件:

less /mydata/xbdata/2017-09-12_16-45-10/ibdata1

查看二进制日志文件记录位置:

less /mydata/xbdata/2017-09-12_16-45-10/xtrabackup_binlog_info

3.3 恢复数据

恢复全量备份文件:

innobackupex --apply-log --redo-only /mydata/xbdata/2017-09-12_16-45-10/

恢复增量备份文件:

innobackupex --apply-log --redo-only /mydata/xbdata/2017-09-12_16-45-10/ --incremental-dir=/mydata/xbdata/2017-09-12_17-09-40

4. 数据备份与恢复示例

4.1 数据文件丢失恢复

模拟数据库服务器损坏,所有数据文件丢失,但二进制日志文件仍然存在:

mysqlbinlog /var/lib/mysql/master-log.000006 > /app/alldatabase.binlog

恢复数据库文件:

mysql -uadmin -h172.16.253.108 -padmin < /tmp/alldatabases-backup-2017-09-12-15-07-37

4.2 数据恢复验证

进入数据库查看恢复情况:

SHOW DATABASES;use mydb;SHOW TABLES;

5. 数据库权限管理

5.1 创建备份用户

创建具有最小权限的备份用户:

CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 'admin';REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'bkpuser'@'localhost';GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';FLUSH PRIVILEGES;

5.2 全量备份

执行全量备份并验证:

innobackupex /mydata/xbdata/

5.3 增量备份

执行增量备份并验证:

innobackupex --incremental /mydata/xbdata/ --incremental-basedir=/mydata/xbdata/2017-09-12_17-09-40

5.4 二进制日志恢复

从二进制日志文件中恢复数据:

mysqlbinlog -j 709 /var/lib/mysql/master-log.000001 > /mydata/binlogs/2017-09-12_17-38-44-binlog

5.5 数据恢复

恢复数据并验证:

use mydb;SELECT * FROM students WHERE stuid=1300;SELECT * FROM teachers;

6. 数据库崩溃恢复

模拟服务器崩溃并恢复数据:

systemctl stop mariadbrm -rf /var/lib/mysql/*

恢复数据库文件并启动服务:

innobackupex --apply-log --redo-only /mydata/xbdata/2017-09-12_17-09-40/chown -R mysql.mysql /var/lib/mysqlsystemctl start mariadb

登录数据库验证数据恢复情况:

SHOW DATABASES;use mydb;SHOW TABLES;

转载地址:http://gkdfk.baihongyu.com/

你可能感兴趣的文章
MySQL作为服务端的配置过程与实际案例
查看>>
Mysql使用命令行备份数据
查看>>
MySQL保姆级教程(SQL语法基础篇)从小白到高手的进阶指南,收藏这一篇就够了
查看>>
MySQL修改root密码的多种方法
查看>>
mysql修改一列属性
查看>>
MySQL修改密码报错ERROR 1396 (HY000): Operation ALTER USER failed for ‘root‘@‘localhost‘
查看>>
Mysql全局优化参数
查看>>
MySQL全文索引实现简单版搜索引擎
查看>>
MySQL全面瓦解:安装部署与准备
查看>>
mysql共享锁与排他锁
查看>>
MySQL内存表使用技巧
查看>>
MySQL再叙(体系结构、存储引擎、索引、SQL执行过程)
查看>>
mysql出现错误的解决办法
查看>>
MySQL函数
查看>>
mysql函数汇总之字符串函数
查看>>
mysql函数汇总之数学函数
查看>>
mysql函数汇总之日期和时间函数
查看>>
mysql函数汇总之条件判断函数
查看>>
mysql函数汇总之系统信息函数
查看>>
MySQL函数简介
查看>>