2020-04-06 18:41:18
由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点:
是一种数据库管理系统是一种关联数据库管理系统
是一种开放源码软件,且有大量可用的共享MySQL软件
MySQL数据库服务器具有快速、可靠和易于使用的特点
MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中
InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建。这样,表的大小就能超过单独文件的最大容量。表空间可包括原始磁盘分区,从而使得很大的表成为可能。表空间的最大容量为64TB。
前提:
数据文件要在逻辑卷上;此逻辑卷所在卷组必须有足够的空间使用快照卷;
数据文件和事务日志要在同一个逻辑卷上;
2.1 打开会话,施加读锁,锁定所有表;
mysql> FLUSH TABLES WITH READ LOCK; #刷新表并对表施加读锁
mysql> FLUSH LOGS; #滚动日志
2.2 通过另一个终端,保存二进制日志文件及相关位置信息;
[root@lamp ~]# mysql -uroot -p -e 'SHOW MASTER STATUSG' > /path/to/master.info
#不登录mysql客户端直接查看位置状态,并保存位置信息到相应目录
[root@lamp ~]# cat /tmp/master.info
*************************** 1. row ***************************
File: mysql-bin.000005
Position: 107
Binlog_Do_DB:
Binlog_Ignore_DB:
2.3 创建快照卷
[root@lamp ~]# lvcreate -L SIZE -s -p r -n LV_NAME /path/to/source_lv #创建快照卷
-s: 指定为所创建的是快照卷s=snapshot快照; -p: 指定权限p=permission许可;
r: 读权限; -n: 指定快照名称; LV_NAME: 快照名称;
/path/to/source_lv: 针对哪个逻辑卷目录; -L: 指定快照卷大小
2.4 释放锁
mysql> UNLOCK TABLES; #释放锁
2.5 挂载快照卷,并备份;
mount /dev/myvg/mydata-snap /mnt -o ro #挂载快照卷至/mnt目录,只读挂载
cp -a ./* /backup/full-backup-2017-06-06/ #挂载后把数据复制到备份目录, -a:表示
复制文件的所有属性及内容,保留源文件的所有属性及权限
2.6 删除快照卷
umount /mnt #备份完后卸载快照卷挂载的目录
lvremove --force /dev/myvg/mydata-snap #强制移除快照卷
rm -rf mysql-bin.* #把备份目录中的日志文件删除掉,节省空间
2.7 增量备份二进制日志
mysqlbinlog --start-datetime='2017-06-06 10:11:02' mysql-bin.000005 mysql-bin.000006 > /backup/incremental-`date +%F-%H-%M-%S`.sql #备份二进制日志,如果增量备份的二进制日志
含有2个或以上的日志文件,需要通过指定开始时间点来备份。
3.1 首先打开mysql客户端
[root@lamp ~]# mysql #打开mysql客户端
mysql> FLUSH TABLES WITH READ LOCK; #首先刷新表并施加读锁
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH LOGS; #滚动日志
Query OK, 0 rows affected (0.06 sec)
mysql> SHOW MASTER STATUS; #查看二进制日志位置状态
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000005 | 107 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
3.2 不退出或关闭此mysql客户端,重新打开一个服务器终端,执行位置信息的保存;
[root@lamp ~]# mkdir /backup #新建一个备份目录
[root@lamp ~]# mysql -e 'SHOW MASTER STATUSG;' > /backup/master-`date +%F`.info
#不登录mysql客户端,直接通过mysql -e直接编辑数据库,把查看二进制日志位置状态备份
[root@lamp ~]# ls -lh /backup/
total 4.0K
-rw-r--r--. 1 root root 158 Jun 22 15:02 master-2017-06-22.info
3.3 对mysql数据目录执行快照(数据文件必须是存放在逻辑卷上)
[root@lamp ~]# lvcreate -L 50M -s -p r -n mydata-snap /dev/myvg/mydata
Rounding up size to full physical extent 52.00 MiB
Logical volume "mydata-snap" created
#对/dev/myvg/mydata逻辑卷做快照,大小为50M,
-s:表示snapshot快照; -p:指定权限permission;r:读的权限read; -n:指定快照卷的名称
[root@lamp ~]# lvs #查看逻辑卷,刚新建的快照逻辑卷
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
mydata myvg owi-ao 10.00g
mydata-snap myvg sri-a- 52.00m mydata 0.02
[root@lamp ~]# mount #查看挂载相关信息
/dev/sda7 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sda3 on /home type ext4 (rw)
/dev/sda5 on /tmp type ext4 (rw)
/dev/sda2 on /usr/local type ext4 (rw)
/dev/mapper/myvg-mydata on /mydata type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
3.4 执行完快照后,即可解锁表;
mysql> UNLOCK TABLES; #解锁
Query OK, 0 rows affected (0.00 sec)
对快照进行挂载并备份;
[root@lamp ~]# mount /dev/myvg/mydata-snap /mnt -o ro #以只读方式挂载刚做的快照卷
[root@lamp ~]# cd /mnt #进入挂载目录
[root@lamp mnt]# ls
data lost+found
[root@lamp mnt]# cd data/
[root@lamp data]# ls
hellodb ib_logfile1 lamp.pid mysql-bin.000001 mysql-bin.000004 performance_schema testdb ibdata1 jiaowu mydb mysql-bin.000002 mysql-bin.000005 stu
ib_logfile0 lamp.err mysql mysql-bin.000003 mysql-bin.index test
[root@lamp data]# mkdir /backup/full-backup-`date +%F` #创建备份目录并以时间格式命名
[root@lamp data]# cp -a ./* /backup/full-backup-2017-06-06/ #-a:复制当前目录的所有内容及其权限属性到备份的目录
[root@lamp data]# cd
[root@lamp ~]# umount /mnt #卸载挂载的目录/mnt
[root@lamp ~]# lvremove --force /dev/myvg/mydata-snap #移除刚才创建的快照卷--force强制性
Logical volume "mydata-snap" successfully removed
[root@lamp ~]# cd /backup/full-backup-2017-06-06/
[root@lamp full-backup-2017-06-06]# ls
hellodb ib_logfile1 lamp.pid mysql-bin.000001 mysql-bin.000004 performance_schema testdb ibdata1 jiaowu mydb mysql-bin.000002 mysql-bin.000005 stu
ib_logfile0 lamp.err mysql mysql-bin.000003 mysql-bin.index test
[root@lamp full-backup-2017-06-06]# rm -rf mysql-bin.* #删除相关的二进制日志文件以便节省空间
[root@lamp full-backup-2017-06-06]# ls
hellodb ib_logfile0 jiaowu lamp.pid mysql stu testdb
ibdata1 ib_logfile1 lamp.err mydb performance_schema test
root@lamp ~]# cd /mydata/data
[root@lamp data]# ls
hellodb ib_logfile1 lamp.pid mysql-bin.000001 mysql-bin.000004 performance_schema testdb ibdata1 jiaowu mydb mysql-bin.000002 mysql-bin.000005 stu
ib_logfile0 lamp.err mysql mysql-bin.000003 mysql-bin.index test
[root@lamp data]# cat /backup/master-2017-06-06.info
*************************** 1. row ***************************
File: mysql-bin.000005 #记录的二进制日志文件
Position: 107 #二进制日志的位置
Binlog_Do_DB:
Binlog_Ignore_DB:
mysql> FLUSH LOGS; #滚动日志
Query OK, 0 rows affected (0.01 sec)
mysql> USE jiaowu
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> INSERT INTO tutors(Tname) VALUES ('stu0003'); #往表tutors中插入数据,字段Tname 值stu0003
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO tutors(Tname) VALUES ('stu0004'); #往表tutors中插入数据,字段Tname 值stu0004
Query OK, 1 row affected (0.00 sec)
mysql> SHOW MASTER STATUS; #查看此时二进制日志的位置状态信息
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 | 575 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
mysql> q
Bye
[root@lamp data]# mysqlbinlog --start-datetime='2017-06-06 10:11:02' mysql-bin.000005 mysql-bin.000006 > /backup/incremental-`date +%F-%H-%M-%S`.sql
#导出二进制日志文件bin.000005和bin.000006时间点从2017-06-06 10:11:02开始后的内容
[root@lamp data]# ls /backup/incremental-2017-06-06-17-01-41.sql
/backup/incremental-2017-06-06-17-01-41.sql
[root@lamp data]# service mysqld stop #停止mysqld进程
Shutting down MySQL.. [ OK ]
[root@lamp data]# rm -rf ./* #模拟mysql数据库数据目录内容丢失(手动删除)
[root@lamp data]# ls #目录中的内容全部删除,查看显示为空
[root@lamp data]# cp -a /backup/full-backup-2017-06-06/* ./ #复制之前快照卷备份的内容至当前数据目录,-a:复制文件的内容及权限属性。
[root@lamp data]# ll #确保所有文件的属主为mysql用户
total 28712
drwx------. 2 mysql mysql 4096 Jun 2 15:30 hellodb
-rw-rw----. 1 mysql mysql 18874368 Jun 5 14:00 ibdata1
-rw-rw----. 1 mysql mysql 5242880 Jun 5 14:00 ib_logfile0
-rw-rw----. 1 mysql mysql 5242880 Jun 2 15:28 ib_logfile1
drwx------. 2 mysql mysql 4096 Jun 5 14:00 jiaowu
-rw-rw----. 1 mysql root 1853 Jun 2 15:28 lamp.err
-rw-rw----. 1 mysql mysql 6 Jun 2 15:28 lamp.pid
drwx------. 2 mysql mysql 4096 Jun 2 15:30 mydb
drwx------. 2 mysql root 4096 Jun 2 15:30 mysql
drwx------. 2 mysql mysql 4096 Jun 2 15:28 performance_schema
drwx------. 2 mysql mysql 4096 Jun 2 15:30 stu
drwx------. 2 mysql root 4096 Jun 2 15:28 test
drwx------. 2 mysql mysql 4096 Jun 2 15:30 testdb
[root@lamp data]# service mysqld start #开启mysqld进程
Starting MySQL [ OK ]
[root@lamp data]# mysql -uroot -p #登录mysql客户端
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.5.28-log Source distribution
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql> USE jiaowu
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> SELECT * FROM tutors; #查询tutors表的内容(此时后插入的2行数据没有)
+-----+--------------+--------+------+
| TID | Tname | Gender | Age |
+-----+--------------+--------+------+
| 1 | HongQigong | M | 93 |
| 2 | HuangYaoshi | M | 63 |
| 3 | Miejueshitai | F | 72 |
| 4 | OuYangfeng | M | 76 |
| 5 | YiDeng | M | 90 |
| 6 | YuCanghai | M | 56 |
| 7 | Jinlunfawang | M | 67 |
| 8 | HuYidao | M | 42 |
| 9 | NingZhongze | F | 49 |
+-----+--------------+--------+------+
9 rows in set (0.00 sec)
mysql> SET sql_log_bin=0; #导入二进制日志前,先关闭日志记录功能0为关闭,1为打开
Query OK, 0 rows affected (0.00 sec)
mysql> SOURCE /backup/incremental-2017-06-06-17-01-41.sql #导入备份的二进制日志数据
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM tutors; #再次查询tutors表的内容,此时后插入的2行数据已经生成
+-----+--------------+--------+------+
| TID | Tname | Gender | Age |
+-----+--------------+--------+------+
| 1 | HongQigong | M | 93 |
| 2 | HuangYaoshi | M | 63 |
| 3 | Miejueshitai | F | 72 |
| 4 | OuYangfeng | M | 76 |
| 5 | YiDeng | M | 90 |
| 6 | YuCanghai | M | 56 |
| 7 | Jinlunfawang | M | 67 |
| 8 | HuYidao | M | 42 |
| 9 | NingZhongze | F | 49 |
| 10 | stu0003 | M | NULL |
| 11 | stu0004 | M | NULL |
+-----+--------------+--------+------+
11 rows in set (0.00 sec)
mysql> SET sql_log_bin=1; #二进制日志导入后再打开二进制日志记录功能
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW MASTER STATUS; #查看此时的二进制日志位置状态信息
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 107 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
至此通过lvm逻辑卷和二进制cp功能实现了mysql数据库备份和还原。
LINXU | 在虚拟机里调整LVM逻辑卷的空间大小
03-30
Linux如何使用LVM逻辑卷
03-04
RedHat6.5系统LVM扩容根文件系统
06-16
对CentOS-7使用xfs文件系统的LVM进行扩容
04-21
Linux dump备份文件系统命令详解
06-14
Linux tar备份文件命令详解
06-21
MySQL笔记之数据备份与还原的使用详解
07-07
Promise TX4310 SATA RAID卡最多支持的硬盘、逻辑阵列数
04-02
V826手机随机没有同步软件,如何实现电话簿备份到电脑?
07-13
Windows 7系统下如何备份系统映像
05-29
Windows 8如何创建系统备份及镜像
06-04
Windows 8系统还原和Windows 8系统还原点备份,还原点删除的方法
04-11
mongodb导入导出备份恢复
06-04
如何备份注册表
05-01
开天6600使用满意办公V5.2,重装系统,如何恢复以前备份在联想通讯录里的数据
06-12
没有开启Oracle日志归档,紧急情况下如何进行Oracle数据库的冷备份
04-26
笔记本一键恢复7.0如何进行系统备份
06-06
通过mariadb二进制日志实现数据库增量备份
06-05
预装Win8/Win8.1/Win10的lenovo台式机如何使用一键恢复进行系统备份
06-09
ThinkPad预装Windows系统使用压缩卷分区只能压缩约50%
05-05
Backup Start Menu Layout(Win10备份开始菜单布局 v1.4 官方版
934.6K
下载Echosync(文件同步和备份程序) V4.1.3.0 绿色版
7.75M
下载MailStore Home(邮件备份工具) v10.1.2.12458 绿色免费版
12MB
下载Nero BackItUp 2019(电脑备份软件) v20.1.1.3 中文版
98.69M
下载Personal Backup(个人数据备份) V6.0.1.4 官方版
14.6M
下载Symantec Ghost(硬盘备份工具)12.0.0.4112 集成精简
12.89MB
下载SysTools AOL Backup(电子邮件备份工具) 5.0 最新版
29.3M
下载gghost一键恢复(系统备份还原工具)v10.03.09 中文版
14.5M
下载iStonsoft iPhone Backup Extractor(iPhone数据备份恢复) v2.1.44 官方版
6.6M
下载maxdos v6(系统备份还原工具) 标准版
11.5M
下载果备份下载
35.9M
下载迷你兔数据备份大师 v3.0.0.2203 官方版
84.76M
下载上古卷轴5重制版沃伦神锤MOD
32KB
下载龙卷风网络收音机最新版下载
7.6M
下载iSunshare CloneGo下载
35.66M
下载onekeyghost下载
6.09MB
下载一键恢复工具下载
9.0M
下载小学数学同步课堂
72.95 MB
下载