基于日志点的复制 1、在主库与从库上建立专用的复制账号 MariaDB [employees]> create user 'repl'@'172.%' identified by '123456'; 注意在生产上的密码必须依照相关规范以达到一定的密码强度, 并且规定在从库上的特定网段上才能访问主库 2、在主库与从库上授予复制权限 MariaDB [employees]> grant replication slave on *.* to 'repl'@'172.%'; 3、配置主库 注意启用二进制日志需要重启服务, 而server_id是一个动态参数, 可以结合命令行与配置文件以达到免重启 MySQL主从复制是一种常见的数据库高可用性和数据冗余策略,它允许数据从一个主服务器(Master)实时同步到一个或多个从服务器(Slave)。在这个实战教程中,我们将深入探讨基于日志点的复制配置,确保数据的一致性和可用性。 为了实现主从复制,我们需要在主库和从库上创建专门的复制账号。例如,在MariaDB中,我们可以执行以下命令创建用户`repl`,并为其指定访问权限: ```sql MariaDB [employees]> create user 'repl'@'172.%' identified by '123456'; MariaDB [employees]> grant replication slave on *.* to 'repl'@'172.%'; ``` 这里的`172.%`表示允许从属于172网段的任何IP地址访问,生产环境中应根据安全策略设置更具体的IP范围。密码的设定需要遵循安全性规范,确保其复杂度。 接着,配置主库以启用二进制日志(binlog)。这是一个记录所有改变数据库状态的事务的日志文件,对于复制至关重要。在`my.cnf`配置文件中添加如下内容: ```ini [mysqld] log_bin = /var/log/mysql/mariadb-bin log_bin_index = /var/log/mysql/mariadb-bin.index binlog_format = row server_id = 101 ``` `server_id`是一个全局唯一标识符,用于区分不同的MySQL实例。`row`格式的binlog可以记录每个受影响的行,适合行级复制。 然后,配置从库。除了启用二进制日志,还需要设置`log_slave_updates`,这样从库接收到的更新会写入自己的binlog,便于进一步的复制。配置如下: ```ini [mysqld] # replication log_bin = /var/log/mysql/mariadb-bin log_bin_index = /var/log/mysql/mariadb-bin.index server_id = 102 relay_log = /var/log/mysql/relay-bin relay_log_index = /var/log/mysql/relay-bin.index relay_log_info_file = /var/log/mysql/relay-bin.info log_slave_updates = ON read_only ``` `read_only`选项使从库处于只读模式,防止直接在其上进行写操作。 接下来,要将主库的数据备份并恢复到从库。通常使用`mysqldump`工具,但在生产环境中推荐使用无锁备份工具如`xtrabackup`。假设我们已备份了`employees`数据库: ```bash mysqldump --single-transaction --master-data=1 --triggers --routines --databases employees -u root -p >> backup.sql ``` 将备份文件传输到从库并导入: ```bash mysql -u root -p < backup.sql ``` 初始化完成后,配置从库的复制链路: ```sql MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='master', MASTER_USER='repl', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mariadb-bin.000029', MASTER_LOG_POS=516; MariaDB [(none)]> start slave; ``` 检查从库的复制状态: ```sql MariaDB [(none)]> show slave status\G ``` 确保`Slave_IO_Running`和`Slave_SQL_Running`均为`YES`,如果有错误,需根据`Last_IO_Error`或`Last_SQL_Error`进行排查。 总结来说,MySQL主从复制基于日志点的配置涉及创建复制用户、启用主库和从库的binlog、备份和恢复数据、配置复制链路以及监控复制状态。这种复制模式可以提高系统的可用性和数据安全性,但需要注意正确配置和定期检查以保持复制的稳定运行。
- 粉丝: 2
- 资源: 937
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助