10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.9 mb
PDF (A4)- 42.0 mb
手册页(TGZ)- 266.3 kb
手册页(Zip)- 376.1 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

4.6.9.3使用mysqlbinlog备份二进制日志文件

默认情况下,mysqlbinlog读取二进制日志文件并以文本格式显示其内容。这使您能够更容易地检查文件中的事件并重新执行它们(例如,通过使用输出作为的输入mysql).mysqlbinlog可以直接从本地文件系统读取日志文件,或者使用——read-from-remote-server选项,它可以连接到服务器并从该服务器请求二进制日志内容。mysqlbinlog属性的值将文本输出写入其标准输出或命名为——结果文件=file_name选项,如果给出了该选项。

mysqlbinlog备份能力

mysqlbinlog可以读取二进制日志文件并写入包含相同内容的新文件(即二进制格式而不是文本格式)。此功能使您能够轻松地以原始格式备份二进制日志。mysqlbinlog可以进行静态备份,备份一组日志文件,并在到达最后一个文件末尾时停止。它也可以使连续的(生活)备份,当它到达最后一个日志文件的末尾时,保持与服务器的连接,并继续复制生成的新事件。在连续备份操作中,mysqlbinlog一直运行到连接结束(例如,服务器退出时)或mysqlbinlog强制终止。当连接结束时,mysqlbinlog不像复制服务器那样等待并重试连接。要在服务器重新启动后继续进行实时备份,还必须重新启动mysqlbinlog

重要的

mysqlbinlog可以备份加密和未加密的二进制日志文件。但是,使用生成的加密二进制日志文件的副本mysqlbinlog以未加密的格式存储。

mysqlbinlog备份选项

二进制日志备份需要调用mysqlbinlog至少有两个选项:

随着——read-from-remote-server时,通常会指定其他选项:——主机指示服务器运行的位置,您可能还需要指定连接选项,例如——用户而且——密码

还有一些其他的选择是有用的——生

静态备份和动态备份

用于备份服务器的二进制日志文件mysqlbinlog,则必须指定实际存在于服务器上的文件名。如果您不知道这些名称,请连接到服务器并使用显示二进制日志语句查看当前名称。假设该语句产生如下输出:

显示二进制日志+---------------+-----------+-----------+ | Log_name | File_size |加密  | +---------------+-----------+-----------+ | binlog。000130 | 27459 |否| | binlog。000131 | 13719 |否| | binlog。000132 | 43268 |没有  | +---------------+-----------+-----------+

有了这些信息,您就可以使用mysqlbinlog将二进制日志备份到当前目录,如下所示(在一行中输入每个命令):

  • 对…进行静态备份binlog.000130通过binlog.000132,使用下列命令之一:

    Mysqlbinlog——read-from-remote-server——host=host_name——原始binlog。000130 binlog。000131 binlog。000132 mysqlbinlog——read-from-remote-server——host=host_name——raw——to-last-log binlog.000130

    第一个命令显式地指定每个文件名。第二个只命名第一个文件并使用——to-last-log读最后一篇。这些命令之间的区别在于,如果服务器碰巧打开binlog.000133之前mysqlbinlog到达终点binlog.000132,第一个命令不读取,但第二个命令读取。

  • 做一个实时备份mysqlbinlog开始于binlog.000130复制现有的日志文件,然后保持连接,在服务器生成新事件时复制它们:

    Mysqlbinlog——read-from-remote-server——host=host_name——raw——stop-never binlog.000130

    ——stop-never,没有必要详细说明——to-last-log读取到最后一个日志文件,因为该选项是隐含的。

输出文件命名

没有——生mysqlbinlog生成文本输出和——结果文件选项,如果给出,则指定将所有输出写入其中的单个文件的名称。与——生mysqlbinlog为从服务器传输的每个日志文件写入一个二进制输出文件。默认情况下,mysqlbinlog写入当前目录中与原始日志文件同名的文件。要修改输出文件名,请使用——结果文件选择。连同——生,——结果文件选项值被视为修改输出文件名的前缀。

假设服务器当前有二进制日志文件binlog.000999和了。如果你使用mysqlbinlog——生为了备份文件,使用——结果文件选项将产生如下表所示的输出文件名。的开头,可以将文件写入特定目录——结果文件值与目录路径的值。如果——结果文件值仅由目录名组成,值必须以路径名分隔符结束。如果存在输出文件,则会覆盖它们。

——结果文件选项 输出文件名
——结果文件= x xbinlog.000999
——结果文件= / tmp / / tmp / binlog.000999
——结果文件= / tmp / x / tmp / xbinlog.000999
示例:备份和恢复时使用mysqldump + mysqlbinlog

下面的示例描述了一个简单的场景,展示了如何使用它, mysqldump而且mysqlbinlog一起备份服务器的数据和二进制日志,以及在发生数据丢失时如何使用备份来恢复服务器。该示例假设服务器运行在主机上host_name它的第一个二进制日志文件被命名binlog.000999.在一行中输入每个命令。

使用mysqlbinlog对二进制日志进行连续备份:

Mysqlbinlog——read-from-remote-server——host=host_name——raw——stop-never binlog.000999

使用, mysqldump创建转储文件作为服务器数据的快照。使用——所有数据库——事件,——例程备份所有数据,并——主数据= 2将当前二进制日志坐标包含在转储文件中。

, mysqldump——主机=host_name——all-databases——events——routines——master-data=2>dump_file

执行, mysqldump命令,根据需要创建新的快照。

如果发生数据丢失(如服务器异常退出),请使用最近的转储文件恢复数据:

mysql——主机=host_name-u root -p <dump_file

然后使用二进制日志备份重新执行在转储文件中列出的坐标之后写入的事件。假设文件中的坐标是这样的:

——修改MASTER为MASTER_LOG_FILE='binlog。001002年,MASTER_LOG_POS = 27284;

如果以最近备份的日志文件命名binlog.001004,像这样重新执行日志事件:

Mysqlbinlog——start-position=27284 binlog。001002 binlog。001003 binlog。001004 | mysql——host=host_name-u root -p

您可能会发现将备份文件(转储文件和二进制日志文件)复制到服务器主机以更容易地执行恢复操作,或者如果MySQL不允许远程访问。

mysqlbinlog备份约束

使用mysqlbinlog均受以下限制:

  • mysqlbinlog如果连接丢失(例如,服务器重新启动或网络中断),不会自动重新连接到MySQL服务器。

  • 备份的延迟与副本服务器的延迟相似。