暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

AWS 的rds数据库binlog日志如何导出

Linux运维技术之路 2021-05-10
4278



一、二进制日志记录格式

 Amazon RDS 上的 MySQL 对于 MySQL 版本 5.6 和更高版本支持基于行、基于语句和混合二进制日志记录格式。
默认二进制日志记录的格式是混合的。对于运行 MySQL 5.1 和 5.5 版本的数据库实例,只支持混合二进制日志记录。

二、设置二进制格式

1、通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/。
2、在导航窗格中,选择参数组。
3、选择您要修改的数据库实例所使用的参数组。
您无法修改默认参数组。如果数据库实例使用默认参数组,则创建新的参数组并将其与数据库实例关联。
有关参数组的更多信息,请参阅使用数据库参数组。
4、从 Parameter group actions (参数组操作) 中,选择 Edit (编辑)。
5、将 binlog_format 参数设置为您选择的二进制日志记录格式(ROW、STATEMENT 或 MIXED)。
6、选择保存更改以保存对数据库参数组的更新。

三、访问二进制日志格式

   可使用 mysqlbinlog 实用程序从运行 MySQL 5.6 或更高版本的 Amazon RDS 实例下载或流式传输二进制日志。二进制日志下载到本地计算机,可以执行一些操作,例如使用 mysql 实用程序执行重放日志。有关使用 mysqlbinlog 实用程序的更多信息,请转到使用 mysqlbinlog 备份二进制日志文件。
要针对 Amazon RDS 实例运行 mysqlbinlog 实用工具,请使用下列选项:
指定 --read-from-remote-server 选项。
--host:指定该实例所在的终端节点中的 DNS 名称。
--port:指定该实例使用的端口。
--user:指定已授予了复制从属实例权限的 MySQL 用户。
--password:指定用户的密码,或忽略密码值以让实用程序提示您输入密码。
要按二进制格式下载文件,请指定 --raw 选项。
--result-file:指定用于接收原始输出的本地文件。
指定一个或多个二进制日志文件的名称。要获取可用日志的列表,请使用 SQL 命令 SHOW BINARY LOGS。
要流式传输二进制日志文件,请指定 --stop-never 选项。

命令格式

mysqlbinlog \
    --read-from-remote-server \
    --host=MySQL56Instance1.cg034hpkmmjt.region.rds.amazonaws.com \
    --port=3306  \
    --user ReplUser \
    --password \
    --raw \
    --result-file=/tmp/ \
    binlog.00098

四、 配置rds保留binlog日志时间 (SHOW MASTER STATUS|SHOW BINARY LOGS)

       Amazon RDS 通常会尽快清除二进制日志,但二进制日志必须仍在实例上提供,供 mysqlbinlog 访问。若要指定 RDS 保留二进制日志的小时数,请使用 mysql.rds_set_configuration 存储过程并指定一个包含的时间足以让您下载这些日志的时间段。设置保留期后,监视数据库实例的存储用量以确认保留的二进制日志不会占用太多存储空间

  • 注意:(mysql.rds_set_configuration 存储过程只能用于 MySQL 5.6 或更高版本。)

保留期设置为 1 天。

call mysql.rds_set_configuration('binlog retention hours', 24);

  • 要显示当前设置,请使用 mysql.rds_show_configuration 存储过程。
15:  root@test-db02:[(none)]> call mysql.rds_show_configuration;
+------------------------+-------+------------------------------------------------------------------------------------------------------+
| name                   | value | description                                                                                          |
+------------------------+-------+------------------------------------------------------------------------------------------------------+
| binlog retention hours | 24    | binlog retention hours specifies the duration in hours before binary logs are automatically deleted. |
+------------------------+-------+------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

五、案例实践,导出binglog日志

  • 查看日志
[root@test mysqlbinlog]# mysql -htest-db02  -uroot -pzhimatech -e "show master logs;" |awk '{print $1}' |grep mysql
mysql-bin-changelog.238458
mysql-bin-changelog.238459
mysql-bin-changelog.238460
mysql-bin-changelog.238461
mysql-bin-changelog.238462
mysql-bin-changelog.238463
mysql-bin-changelog.238464
mysql-bin-changelog.238465
mysql-bin-changelog.238466
mysql-bin-changelog.238467
mysql-bin-changelog.238468
mysql-bin-changelog.238469

  • 导出批量 ( --stop-never 实时数据流输出)
mkdir -p /data/mysqlbinlog/
 mysqlbinlog \
    --read-from-remote-server \
    --host=test-db02 \
    --port=3306  \
    --user root \
    --password \
    --raw \
    --result-file=/data/mysqlbinlog/ \
    --stop-never \
    mysql-bin-changelog.238458

  • 单个日志输出
mkdir -p /data/mysqlbinlog/
 mysqlbinlog \
    --read-from-remote-server \
    --host=test-db02 \
    --port=3306  \
    --user root \
    --password \
    --raw \
    --result-file=/data/mysqlbinlog/ \
    mysql-bin-changelog.238458


爱运维^_^爱分享

如果觉得文章有帮助,麻烦点个关注和转发^)^ 👇


文章转载自Linux运维技术之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论