设为首页
收藏本站
淘宝精选
开启辅助访问
登录
注册后绑定Q登陆
手机号登录
手机号码,快捷登录
微信登录
QQ登录
快捷导航
发布信息
搜索
搜索
支持我们
使用96IE来支持论坛
首页
任务
勋章
签到
签到等于每天打卡
导读
邀请码
装机必备的软件、去广告版
装机助手
装机网
精品操作系统下载
免费邀请码
记录
Doing
每日签到
本版
帖子
用户
PCOS技术网
»
首页
›
≡技术交流≡
›
电脑技术交流
›
增量备份---bin-log
返回列表
发新帖
查看:
694
|
回复:
2
增量备份---bin-log
[复制链接]
amwdnuff
amwdnuff
当前离线
积分
10395266
IP卡
狗仔卡
签到天数: 2626 天
连续签到: 5 天
[LV.Master]至尊海神IIIIII
发表于 2009-7-18 22:07
|
广东
|
显示全部楼层
|
阅读模式
增量备份---bin-log
一、启用 Binary Log
修改 MySQL Server 的
系统
设置文件(eg. /etc/my.cnf),在 [mysqld] 区块中加上 log-bin=mysql-bin 选项,然后重新启动 MySQL Server,例如:
[mysqld]
log-bin
启用后你应该可以在 MySQL 的 Data Dir 里面发现如下的文件:mysql-bin.index
mysql-bin.000001
mysql-bin.000002
...............
mysql-bin.00000X
MySQL 在以下几种情况会进行 lograrote:
* 执行 Flush Logs 命令
* MySQL Server 重新启动
* 设置文件中有进行额外的设置
注:
请注意,当你使用 mysqldump 进行数据库备份时请记得加上 --flush-logs 选项,例如:
mysqldump --flush-logs -u root -p 数据库名称 > example.sql
这么做的目的是在备份时让 MySQL Server 进行 logrotate,这样子日后要辨别 \"最后一次备份时间点\" 之后的 Binary Log 会比较方便,因为若你没有主动(或通过设置)去删除 Binary Log,则只要你的硬盘空间够大,MySQL 会无限期的保存 Binary Log,也就是说你的 Binary Log 里面所记载的数据有可能包含 \"最后一次备份时间点\" 之前的数据。
定期执行mysqladmin flush-log来实现记录日志文件
二:还原增量备份
1. 指定恢复时间
对于MySQL 4.1.4,可以在mysqlbinlog语句中通过--start-date和--stop-date选项指定DATETIME格式的起止时间。举例说 明,假设在今天上午10:00(今天是2005年4月20日),执行SQL语句来删除一个大表。要想恢复表和数据,你可以恢复前晚上的备份,并输入:
mysqlbinlog --stop-date=\"2005-04-20 9:59:59\" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
该命令将恢复截止到在--stop-date选项中以DATETIME格式给出的日期和时间的所有数据。如果你没有检测到几个小时后输入的错误的SQL语句,可能你想要恢复后面发生的活动。根据这些,你可以用起使日期和时间再次运行mysqlbinlog:
mysqlbinlog --start-date=\"2005-04-20 10:01:00\" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
在该行中,从上午10:01登录的SQL语句将运行。组合执行前夜的转储文件和mysqlbinlog的两行可以将所有数据恢复到上午10:00前一秒钟。你应检查日志以确保时间确切。下一节介绍如何实现。
2. 指定恢复位置
也 可以不指定日期和时间,而使用mysqlbinlog的选项--start-position和--stop-position来指定日志位置。它们的作 用与起止日选项相同,不同的是给出了从日志起的位置号。使用日志位置是更准确的恢复方法,特别是当由于破坏性SQL语句同时发生许多事务的时候。要想确定 位置号,可以运行mysqlbinlog寻找执行了不期望的事务的时间范围,但应将结果重新指向文本文件以便进行检查。操作方法为:
mysqlbinlog --start-date=\"2005-04-20 9:55:00\" --stop-date=\"2005-04-20 10:05:00\"
/var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
该 命令将在/tmp目录创建小的文本文件,将显示执行了错误的SQL语句时的SQL语句。你可以用文本编辑器打开该文件,寻找你不要想重复的语句。如果二进 制日志中的位置号用于停止和继续恢复操作,应进行注释。用log_pos加一个数字来标记位置。使用位置号恢复了以前的备份文件后,你应从命令行输入下面 内容:
mysqlbinlog --stop-position=\"368312\" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
mysqlbinlog --start-position=\"368315\" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
上面的第1行将恢复到停止位置为止的所有事务。下一行将恢复从给定的起始位置直到二进制日志结束的所有事务。因为mysqlbinlog的输出包括每个SQL语句记录之前的SET TIMESTAMP语句,恢复的数据和相关MySQL日志将反应事务执行的原时间。
三, 实际执行转换后的 Binary Log
很简单,只要一行简单的命令:
mysql < example.sql
总结:
(1)指定点恢复:
mysqlbinlog --stop-position=2448--start-position=918 mysqld-bin.000007 |mysql -D test
其中--stop-position和--start-position的值为文件中的end_log_pos
(2)指定时间点恢复
mysqlbinlog --start-date=\"2009-06-24 13:11:01\" --stop-date=\"2009-06-24 14:27:31\"mysqld-bin.000007 |mysql -D test
PCOS系统下载站:http://zhuangji.wang
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
抢沙发
千斤顶
显身卡
amwdnuff
amwdnuff
当前离线
积分
10395266
IP卡
狗仔卡
签到天数: 2626 天
连续签到: 5 天
[LV.Master]至尊海神IIIIII
楼主
|
发表于 2009-7-18 22:07
|
广东
|
显示全部楼层
增量备份---bin-log
增量备份---bin-log
一、启用 Binary Log
修改 MySQL Server 的系统设置文件(eg. /etc/my.cnf),在 [mysqld] 区块中加上 log-bin=mysql-bin 选项,然后重新启动 MySQL Server,例如:
[mysqld]
log-bin
启用后你应该可以在 MySQL 的 Data Dir 里面发现如下的文件:mysql-bin.index
mysql-bin.000001
mysql-bin.000002
...............
mysql-bin.00000X
MySQL 在以下几种情况会进行 lograrote:
* 执行 Flush Logs 命令
* MySQL Server 重新启动
* 设置文件中有进行额外的设置
注:
请注意,当你使用 mysqldump 进行数据库备份时请记得加上 --flush-logs 选项,例如:
mysqldump --flush-logs -u root -p 数据库名称 > example.sql
这么做的目的是在备份时让 MySQL Server 进行 logrotate,这样子日后要辨别 \"最后一次备份时间点\" 之后的 Binary Log 会比较方便,因为若你没有主动(或通过设置)去删除 Binary Log,则只要你的硬盘空间够大,MySQL 会无限期的保存 Binary Log,也就是说你的 Binary Log 里面所记载的数据有可能包含 \"最后一次备份时间点\" 之前的数据。
定期执行mysqladmin flush-log来实现记录日志文件
二:还原增量备份
1. 指定恢复时间
对于MySQL 4.1.4,可以在mysqlbinlog语句中通过--start-date和--stop-date选项指定DATETIME格式的起止时间。举例说 明,假设在今天上午10:00(今天是2005年4月20日),执行SQL语句来删除一个大表。要想恢复表和数据,你可以恢复前晚上的备份,并输入:
mysqlbinlog --stop-date=\"2005-04-20 9:59:59\" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
该命令将恢复截止到在--stop-date选项中以DATETIME格式给出的日期和时间的所有数据。如果你没有检测到几个小时后输入的错误的SQL语句,可能你想要恢复后面发生的活动。根据这些,你可以用起使日期和时间再次运行mysqlbinlog:
mysqlbinlog --start-date=\"2005-04-20 10:01:00\" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
在该行中,从上午10:01登录的SQL语句将运行。组合执行前夜的转储文件和mysqlbinlog的两行可以将所有数据恢复到上午10:00前一秒钟。你应检查日志以确保时间确切。下一节介绍如何实现。
2. 指定恢复位置
也 可以不指定日期和时间,而使用mysqlbinlog的选项--start-position和--stop-position来指定日志位置。它们的作 用与起止日选项相同,不同的是给出了从日志起的位置号。使用日志位置是更准确的恢复方法,特别是当由于破坏性SQL语句同时发生许多事务的时候。要想确定 位置号,可以运行mysqlbinlog寻找执行了不期望的事务的时间范围,但应将结果重新指向文本文件以便进行检查。操作方法为:
mysqlbinlog --start-date=\"2005-04-20 9:55:00\" --stop-date=\"2005-04-20 10:05:00\"
/var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
该 命令将在/tmp目录创建小的文本文件,将显示执行了错误的SQL语句时的SQL语句。你可以用文本编辑器打开该文件,寻找你不要想重复的语句。如果二进 制日志中的位置号用于停止和继续恢复操作,应进行注释。用log_pos加一个数字来标记位置。使用位置号恢复了以前的备份文件后,你应从命令行输入下面 内容:
mysqlbinlog --stop-position=\"368312\" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
mysqlbinlog --start-position=\"368315\" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
上面的第1行将恢复到停止位置为止的所有事务。下一行将恢复从给定的起始位置直到二进制日志结束的所有事务。因为mysqlbinlog的输出包括每个SQL语句记录之前的SET TIMESTAMP语句,恢复的数据和相关MySQL日志将反应事务执行的原时间。
三, 实际执行转换后的 Binary Log
很简单,只要一行简单的命令:
mysql < example.sql
总结:
(1)指定点恢复:
mysqlbinlog --stop-position=2448--start-position=918 mysqld-bin.000007 |mysql -D test
其中--stop-position和--start-position的值为文件中的end_log_pos
(2)指定时间点恢复
mysqlbinlog --start-date=\"2009-06-24 13:11:01\" --stop-date=\"2009-06-24 14:27:31\"mysqld-bin.000007 |mysql -D test
PCOS系统下载站:http://zhuangji.wang
回复
支持
反对
使用道具
举报
显身卡
amwdnuff
amwdnuff
当前离线
积分
10395266
IP卡
狗仔卡
签到天数: 2626 天
连续签到: 5 天
[LV.Master]至尊海神IIIIII
楼主
|
发表于 2009-7-18 22:07
|
广东
|
显示全部楼层
增量备份---bin-log
增量备份---bin-log
一、启用 Binary Log
修改 MySQL Server 的系统设置文件(eg. /etc/my.cnf),在 [mysqld] 区块中加上 log-bin=mysql-bin 选项,然后重新启动 MySQL Server,例如:
[mysqld]
log-bin
启用后你应该可以在 MySQL 的 Data Dir 里面发现如下的文件:mysql-bin.index
mysql-bin.000001
mysql-bin.000002
...............
mysql-bin.00000X
MySQL 在以下几种情况会进行 lograrote:
* 执行 Flush Logs 命令
* MySQL Server 重新启动
* 设置文件中有进行额外的设置
注:
请注意,当你使用 mysqldump 进行数据库备份时请记得加上 --flush-logs 选项,例如:
mysqldump --flush-logs -u root -p 数据库名称 > example.sql
这么做的目的是在备份时让 MySQL Server 进行 logrotate,这样子日后要辨别 \"最后一次备份时间点\" 之后的 Binary Log 会比较方便,因为若你没有主动(或通过设置)去删除 Binary Log,则只要你的硬盘空间够大,MySQL 会无限期的保存 Binary Log,也就是说你的 Binary Log 里面所记载的数据有可能包含 \"最后一次备份时间点\" 之前的数据。
定期执行mysqladmin flush-log来实现记录日志文件
二:还原增量备份
1. 指定恢复时间
对于MySQL 4.1.4,可以在mysqlbinlog语句中通过--start-date和--stop-date选项指定DATETIME格式的起止时间。举例说 明,假设在今天上午10:00(今天是2005年4月20日),执行SQL语句来删除一个大表。要想恢复表和数据,你可以恢复前晚上的备份,并输入:
mysqlbinlog --stop-date=\"2005-04-20 9:59:59\" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
该命令将恢复截止到在--stop-date选项中以DATETIME格式给出的日期和时间的所有数据。如果你没有检测到几个小时后输入的错误的SQL语句,可能你想要恢复后面发生的活动。根据这些,你可以用起使日期和时间再次运行mysqlbinlog:
mysqlbinlog --start-date=\"2005-04-20 10:01:00\" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
在该行中,从上午10:01登录的SQL语句将运行。组合执行前夜的转储文件和mysqlbinlog的两行可以将所有数据恢复到上午10:00前一秒钟。你应检查日志以确保时间确切。下一节介绍如何实现。
2. 指定恢复位置
也 可以不指定日期和时间,而使用mysqlbinlog的选项--start-position和--stop-position来指定日志位置。它们的作 用与起止日选项相同,不同的是给出了从日志起的位置号。使用日志位置是更准确的恢复方法,特别是当由于破坏性SQL语句同时发生许多事务的时候。要想确定 位置号,可以运行mysqlbinlog寻找执行了不期望的事务的时间范围,但应将结果重新指向文本文件以便进行检查。操作方法为:
mysqlbinlog --start-date=\"2005-04-20 9:55:00\" --stop-date=\"2005-04-20 10:05:00\"
/var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
该 命令将在/tmp目录创建小的文本文件,将显示执行了错误的SQL语句时的SQL语句。你可以用文本编辑器打开该文件,寻找你不要想重复的语句。如果二进 制日志中的位置号用于停止和继续恢复操作,应进行注释。用log_pos加一个数字来标记位置。使用位置号恢复了以前的备份文件后,你应从命令行输入下面 内容:
mysqlbinlog --stop-position=\"368312\" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
mysqlbinlog --start-position=\"368315\" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
上面的第1行将恢复到停止位置为止的所有事务。下一行将恢复从给定的起始位置直到二进制日志结束的所有事务。因为mysqlbinlog的输出包括每个SQL语句记录之前的SET TIMESTAMP语句,恢复的数据和相关MySQL日志将反应事务执行的原时间。
三, 实际执行转换后的 Binary Log
很简单,只要一行简单的命令:
mysql < example.sql
总结:
(1)指定点恢复:
mysqlbinlog --stop-position=2448--start-position=918 mysqld-bin.000007 |mysql -D test
其中--stop-position和--start-position的值为文件中的end_log_pos
(2)指定时间点恢复
mysqlbinlog --start-date=\"2009-06-24 13:11:01\" --stop-date=\"2009-06-24 14:27:31\"mysqld-bin.000007 |mysql -D test
PCOS系统下载站:http://zhuangji.wang
回复
支持
反对
使用道具
举报
显身卡
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册后绑定Q登陆
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页