还原压缩的MySQL数据库
| gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename |
将数据库转移到新服务器
| mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename |
三、基于LVM快照实现备份恢复
3.1、思路明细
(1)LVM这种备份方式要求Mysql的数据保存在逻辑卷上
(2)需要给Mysql服务器施加读锁(mysql>FLUSH TABLES WITH READLOCK;),这里不可直接退出服务器
(3)另起终端为数据所在的卷创建快照(lvcreate),保证事务日志和数据文件必须在同一卷上(分别创建可能会导致数据文件和事务日志不一致,从而可能导致无法正常恢复)
3.2、备份策略
LVM快照全备+二进制日志增备(对于即时点恢复还要恢复至后续的二进制位置)
3.3、前提条件
(1)创建逻辑卷及挂载逻辑卷,此过程在此就不做演示了
(2)初始化mysql将其数据目录指向/mydata/data
| [root@stu18 ~] # cd /usr/local/mysql/ [root@stu18 mysql] # scripts/mysql_install_db --user=mysql --datadir=/mydata/data |
(3)编辑查看配置文件,重启服务
| [root@stu18 mysql] # vim /etc/my.cnf datadir = /mydata/data #查看此项是否定义数据目录位置 sync_binlog=1 #添加此项,每个事务提交时候,把事务日志从缓存区写到日志文件中,并且刷新日志文件的数据到磁盘上; [root@stu18 mysql] # service mysqld start |
3.4、过程展示
(1)确保事务日志和数据文件必须在同一卷上
| [root@stu18 ~] # ls /mydata/data/ hellodb myclass mysql-bin.000003 stu18.magedu.com.err ibdata1 mysql mysql-bin.000004 stu18.magedu.com.pid ib_logfile0 mysql-bin.000001 mysql-bin.index student ib_logfile1 mysql-bin.000002 performance_schema test |
解析:其中ib_logfile0与ib_logfile1是日志文件
(2)施加全局锁并滚动日志
| mysql> FLUSH TABLES WITH READ LOCK; mysql> FLUSH LOGS; |
(3)查看并保存当前正在使用的二进制日志及当前执行二进制日志位置(非常重要)
| mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000004 | 187 | | | +------------------+----------+--------------+------------------+ [root@stu18 zhao] # mysql -uroot -pmypass -e 'SHOW MASTER STATUS;' >/zhao/lvmback-2013-08-14/binlog.txt |
(4)创建快照卷
| [root@stu18 zhao] # lvcreate -L 100M -s -p r -n mydata-lvm /dev/vg1/mydata |
(5)立即切换终端释放锁










