Mysql实时备份实现方法_MySQL
目前成熟的实时备份为双机(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 stoptar -czf data(日期).tar.gz mysql/dataservice mysql start
4、数据还原 代码如下: service mysql stoptar -zxvf data(日期).tar.gz mysql/service mysql startmysqladmin -u -p /home/backup/update0000* 如想还原昨天、前天的数据只需要找相应的update0000*来还原即可:) 以下是补充: 1、MYSQL数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库里面,从而实现MYSQL数据库的实时备份。 server-id=1 //数据库的id这个应该默认是1就不用改动 上面的binlog-do-db和binlog-ignore-db可以设置成多个数据库,每个数据库名称之间用“,”分割开。 设置好以后,重启一下数据库服务。 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、从服务器设置 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 //报告错误的服务器 然后将你刚才打包的数据库文件拷贝到你的从数据库目录中。 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的内容, |