Configuring RDS for MySQL binary logging
The binary log is a set of log files that contain information about data modifications made to an MySQL server instance. The binary log contains information such as the following:
-
Events that describe database changes such as table creation or row modifications
-
Information about the duration of each statement that updated data
-
Events for statements that could have updated data but didn't
The binary log records statements that are sent during replication. It is also required for some recovery
operations. For more information, see The Binary
Log
The automated backups feature determines whether binary logging is turned on or off for MySQL. You have the following options:
- Turn binary logging on
-
Set the backup retention period to a positive nonzero value.
- Turn binary logging off
-
Set the backup retention period to zero.
For more information, see Enabling automated backups.
MySQL on Amazon RDS supports the
row-based, statement-based, and mixed binary
logging formats. We recommend mixed unless you need a specific binlog format. For details on the
different MySQL binary log formats, see Binary logging formats
If you plan to use replication, the binary logging format is important because it determines the record of data
changes that is recorded in the source and sent to the replication targets. For information about the advantages and
disadvantages of different binary logging formats for replication, see Advantages and disadvantages of
statement-based and row-based replication
Important
Setting the binary logging format to row-based can result in very large binary log files. Large binary log files reduce the amount of storage available for a DB instance and can increase the amount of time to perform a restore operation of a DB instance.
Statement-based replication can cause inconsistencies between the source DB instance and a read replica. For more information, see
Determination of safe
and unsafe statements in binary logging
Enabling binary logging increases the number of write disk I/O operations to the DB instance.
You can monitor IOPS usage with the WriteIOPS
CloudWatch metric.
To set the MySQL binary logging format
Open the Amazon RDS console at https://console.aws.amazon.com/rds/
. -
In the navigation pane, choose Parameter groups.
-
Choose the DB parameter group, associated with the DB instance, that you want to modify.
You can't modify a default parameter group. If the DB instance is using a default parameter group, create a new parameter group and associate it with the DB instance.
For more information on parameter groups, see Parameter groups for Amazon RDS.
-
From Actions, choose Edit.
-
Set the
binlog_format
parameter to the binary logging format of your choice (ROW
,STATEMENT
, orMIXED
).You can turn off binary logging by setting the backup retention period of a DB instance to zero, but this disables daily automated backups. Disabling automated backups turns off or disables the
log_bin
session variable. This disables binary logging on the RDS for MySQL DB instance, which in turn resets thebinlog_format
session variable to the default value ofROW
in the database. We recommend that you don't disable backups. For more information about the Backup retention period setting, see Settings for DB instances. -
Choose Save changes to save the updates to the DB parameter group.
Because the binlog_format
parameter is dynamic in RDS for MySQL, you don't need to reboot the DB
instance for the changes to apply. (Note that in Aurora MySQL, this parameter is static. For more information, see Configuring Aurora MySQL binary logging.)
Important
Changing a DB parameter group affects all DB instances that use that parameter group. If you want to specify different binary logging formats for different MySQL DB instances in an AWS Region, the DB instances must use different DB parameter groups. These parameter groups identify different logging formats. Assign the appropriate DB parameter group to the each DB instance.