目前成熟的实时备份为双机(master/slave),是基于同步日志事件来实现,那单机如何实现具有增量的备份呢?可以借用双机的原理,非常简单,实施步骤如下:
Mysql版本:mysql4.0+
1、vi my.cfg
[mysqld] log-update=/home/backup/update #添加该行
2、service mysql restart
会在/home/backup/update00001文件,内容为数据库变化的所有SQL(没有select)
3、每天的全备,mysql4.0+最简单就是备份data目录。
service mysql stop tar -czf data(日期).tar.gz mysql/data service mysql start
4、数据还原
service mysql stop tar -zxvf data(日期).tar.gz mysql/ service mysql start mysqladmin -u -p /home/backup/update0000*
如想还原昨天、前天的数据只需要找相应的update0000*来还原即可:)
以下是补充:
1、MYSQL数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库里面,从而实现MYSQL数据库的实时备份。
2、版本要求,首先要保证主服务器和从服务器的MYSQL版本都高于3.2,另外,从数据库的版本可以高于主服务器,但不能低于主服务器。
3、主服务器设置:
A、先修改MY.INI中有关log-bin的设置,这是记录数据库更改的日志,由于MYSQL的复制机制,是基于日志的,所以主服务器必须要支持更改日志才可以。
接着设置要写入日志的数据库,或者不要写入日志的数据库,这是为了告诉MYSQL,那个库需要备份,哪个不需要。
下面是配置详情:
server-id=1 //数据库的id这个应该默认是1就不用改动
log-bin=log_name //日志文件的名称,这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称
binlog-do-db=db_name //记录日志的数据库
binlog-ignore-db=db_name //不记录日志的数据库
上面的binlog-do-db和binlog-ignore-db可以设置成多个数据库,每个数据库名称之间用“,”分割开。
下一步是设置同步数据库的用户账号
mysql> GRANT REPLICATION SLAVE ON *.*
-> TO ‘备份用户名'@'只能从这个IP登录' IDENTIFIED BY ‘备份用户密码';
设置好以后,重启一下数据库服务。
B、锁定现有的数据,并将数据备份
数据库锁定的命令是:
mysql> FLUSH TABLES WITH READ LOCK;
然后进入mysql的data目录,然后打包你需要备份的数据库目录。
C、现在可以查看主服务器的状态了:
命令如下:
mysql> show master status\G;
返回结果会是这样的
+—————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+—————+———-+————–+——————+
| mysql-bin.003 | 73 | test | manual,mysql |
+—————+———-+————–+——————+
当然,这个表,显示了你刚才在MY.INI中写入的配置。
然后解锁数据库:
mysql> UNLOCK TABLES;
4、从服务器设置
还是和刚才一样,修改数据库配置文件,即MY.INI
配置详情如下:
server-id=n //设置数据库id默认主服务器是1可以随便设置但是如果有多台从服务器则不能重复。
master-host=db-master.mycompany.com //主服务器的IP地址或者域名
master-port=3306 //主数据库的端口号
master-user=pertinax //同步数据库的用户
master-password=freitag //同步数据库的密码
master-connect-retry=60 //如果从服务器发现主服务器断掉,重新连接的时间差
report-host=db-slave.mycompany.com //报告错误的服务器
然后将你刚才打包的数据库文件拷贝到你的从数据库目录中。
重启从数据库服务器。
然后停止SLAVE的服务
mysql> slave stop; //停止slave的服务
停止之后,还是在mysql提示符下,设置主服务器的各种参数
命令如下:
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //主服务器的IP地址
-> MASTER_USER='replication_user_name', //同步数据库的用户
-> MASTER_PASSWORD='replication_password', //同步数据库的密码
-> MASTER_LOG_FILE='recorded_log_file_name', //主服务器二进制日志的文件名(前面要求记住的参数)
-> MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置(前面要求记住的参数)
然后启动同步数据库的进程
mysql> slave start;
没有意外的话基本上到这一步,双库同步就已经实现了。
本文向大家介绍MySQL数据库定时备份的实现方法,包括了MySQL数据库定时备份的实现方法的使用技巧和注意事项,需要的朋友参考一下 1. 创建shell脚本 2. 给shell脚本添加执行权限 3. 给脚本添加定时任务 crontab文件的说明: 用户创建的crontab文件中,每一行都代表一项定时任务,每行的每个字段代表一项设置,它的格式每行共分为六个字段,前五段是时间设定字段,第六段是要执行
本文向大家介绍Linux inotify实时备份实现方法详解,包括了Linux inotify实时备份实现方法详解的使用技巧和注意事项,需要的朋友参考一下 实时复制是企业数据备份最重要的方式,主要用于用户提交的数据的备份,对于用户提交到服务器上的普通文件(图片、压缩包、视频、文档等),可采用 inotify/sersync+rsync实时备份方式;对于数据文件还有较复杂的分布式存储工具自身可以实现
本文向大家介绍使用mysqldump实现mysql备份,包括了使用mysqldump实现mysql备份的使用技巧和注意事项,需要的朋友参考一下 注意:备份文件和二进制日志文件不能与mysql放在同一磁盘下 节点1 1、节点1上修改mysql配置文件,开起二进制日志保存 这里我将二进制日志放在/data/mysql/目录下,/data/是我创建的另外一个lvm磁盘,本来想直接放在/data/下,发现
本文向大家介绍使用xtrabackup实现mysql备份,包括了使用xtrabackup实现mysql备份的使用技巧和注意事项,需要的朋友参考一下 下载地址:https://www.percona.com/downloads/XtraBackup/ 安装xtrabackup 完全备份 节点一 修改配置文件,设置为每张表单独一个表空间,此项必须在安装数据库的时候就设置 创建备份目录 备份 复制给节点
本文向大家介绍linux实现定时备份mysql数据库的简单方法,包括了linux实现定时备份mysql数据库的简单方法的使用技巧和注意事项,需要的朋友参考一下 以下是详细步骤: 1、查看磁盘空间情况: 选择合适磁盘存放备份文件 2、创建备份目录: 3、创建备份Shell脚本: 在创建的目录下创建备份脚本(vi bkDatabaseName.sh) 注: bkDatabaseName.sh 替换成有
本文向大家介绍Python实现备份MySQL数据库的方法示例,包括了Python实现备份MySQL数据库的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现备份MySQL数据库的方法。分享给大家供大家参考,具体如下: 更多关于Python相关内容感兴趣的读者可查看本站专题:《Python+MySQL数据库程序设计入门教程》、《Python常见数据库操作技巧汇总》、《P
本文向大家介绍CentOS Mysql数据库如何实现定时备份,包括了CentOS Mysql数据库如何实现定时备份的使用技巧和注意事项,需要的朋友参考一下 如下脚本用于mysql全库定时备份 mysql_dump_script.sh centos 设置crontab yum install crontabs systemctl enable crond (设为开机启动) systemctl sta
本文向大家介绍MySQL使用LVM快照实现备份,包括了MySQL使用LVM快照实现备份的使用技巧和注意事项,需要的朋友参考一下 新建一个lvm磁盘,这里我建的lv为mydatalv,挂载到了/data下 将原数据库文件复制到/data目录下 [root@localhost ~]# cp -a /var/lib/mysql /data/ 修改配置文件,将mysql数据库文件放在lvm盘中,二进制文件