Mysql高性能备份方案解决数据不间断访问_MySQL教程
推荐:设置mysql的sql_modeauthor:skate time:2013/04/11 mysql的sql_mode合理设置 sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。在生产环境必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置,这样
备份特点:
1、在大多数情况下,这种方式几乎算得上是热备。它无需关闭服务,只需要设置只读或者类似这样的限制。
2、支持所有基于本地磁盘的存储引擎,比如MYISAM、InnoDB和BDB,还支持Solid、PrimeXT和Faction。
3、备份速度最快,因为你只需要拷贝相关的二进制数据文件即可。
4、由于只是简单的拷贝文件,因此对服务器开销非常低。
5、保存方式多种多样,你可以备份到磁带上、FTP服务器上、NFS服务器上或者其他什么网络服务器,以及使用各种网络备份软件来备份。
做到这些很简单,说到底就是拷贝文件而已。
6、恢复速度很快。恢复所需要的时间等于你把数据拷贝回来的时间。你可以想出更多的方法让这个时间变得更短。
7、无需使用昂贵的商业软件。
前期准备工作
1、创建LVM分区
更多LVM创建方法请参考 Linux LVM逻辑卷配置过程详解http://dreamfire.blog.51cto.com/418026/1084729
# lvcreate -L 3G mysqlvg1 -n mysqllv \创建大小为3G的逻辑卷mysqllv
# mkfs.ext4 /dev/mysqlvg1/mysqllv \格式化逻辑卷
2、停止mysql服务
# /etc/rc.d/init.d/mysqld stop
3、挂在逻辑卷到临时目录/tmp下
# mount /dev/mysqlvg1/mysqllv /tmp/ \挂载逻辑卷到临时目录
4、使用tar命令迁移原来数据库目录文件到临时目录/tmp下
# cd /var/lib/mysql/
# tar cf - . | tar xf - -C /tmp/ \对数据进行分解压缩到/tmp下,也就是放在逻辑卷挂载的目录中
5、重新挂在逻辑卷到数据库目录下,并在/etc/fstab中添加开启自动挂载
# umount /tmp/ 卸载逻辑卷
# rm -rf /var/lib/mysql/* //删除数据库目录下的所有信息,一定要确认上一步操作OK
# mount /dev/mysqlvg1/mysqllv /var/lib/mysql/ //将逻辑卷重新挂载到数据库mysql目录下
并在/etc/fstab中添加开启自动挂载
# blkid /dev/mysqlvg1/mysqllv | awk '{print $2}' \取出逻辑卷mysqllv的UUID值
# cat >>/etc/fstab <
> UUID=29502f33-fde2-4c21-b6c3-9fe1b74c0f0d /var/lib/mysql ext4 defaults 0 0
> endf
6、关闭selinux
# setinforce 0 \设置为premission模式
7、启动mysql服务
# /etc/rc.d/init.d/mysqld start
mysql数据库LVM快照备份
1、锁表
mysql> flush tables with read lock; \防止创建快照过程中有数据写入
2、查看position信号
mysql> show master statusG; \查看当前的position信号,方便同步到slave的时候使用
3、创建快照
# lvcreate -n mysql-snap -L 100M -s /dev/mysqlvg1/mysqllv \将逻辑卷中的数据创建为大小为100M的快照,这个速度非常快。
4、解锁
mysql> unlock tables;\解锁
5、挂载创建快照
# mount /dev/mysqlvg1/mysql-snap /mnt/ \挂载快照,为备份做准备
6、读取快照进行备份(备份需要备份的即可)
# tar cf mysql-01.tar.gz db1 db_2 \备份快照信息到存储设备里面
7、卸载挂载的快照,然后删除快照
# umount /mnt/
# lvremove -f /dev/mysqlvg1/mysql-snap \删除快照,节省空间
到此,整个备份过程就算结束了。如果你想要将内容同步到slave机上的话,那么还需要多加几个步骤。
1、把备份内容拷贝到slave的数据文件目录下。
2、重启MySQL服务器,等待恢复完成。
3、使用CHANGE MASTER TO 命令告诉slave新的二进制日志位置,并从那里开始同步,(就是我们刚刚记录下来的那个)例如:
mysql> CHANGE master TO master_host=”192.168.100.109”,master_user=”slave”,master_password=”123.com”, master_log_file=”host-bin.000006″,master_log_pos=198;
分享:验证实例名称是否正确在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) 说明: 执行当前 Web 请求期间,出
- MSSQL清空日志删除日志文件
- 关于数据库中保留小数位的问题
- 解析mysql与Oracle update的区别
- mysql 导入导出数据库以及函数、存储过程的介绍
- MySQL——修改root密码的4种方法(以windows为例)
- 解决MYSQL出现Can''t create/write to file ''#sql_5c0_0.MYD''的问题
- 深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接
- 解析:内联,左外联,右外联,全连接,交叉连接的区别
- mysql出现“Incorrect key file for table”处理方法
- mysql重装后出现乱码设置为utf8可解决
- 浅析一个MYSQL语法(在查询中使用count)的兼容性问题
- 解析MySQL中INSERT INTO SELECT的使用
- 相关链接:
- 教程说明:
MySQL教程-Mysql高性能备份方案解决数据不间断访问。