MySQL异地备份方案

MySQL异地备份方案

2023年7月30日发(作者:)

MySQL异地备份⽅案第1章 Mysql异地备份⽅案1.1 ⽅案⼀:主主复制进⾏热备份1.1.1主主复制原理:双机热备就是通过搭建主主复制架构进⾏互相同步,从⽽保证两边的数据库⼀致。1.1.2主主复制做异地备份的好处:1. 可以实现负载均衡,减少数据库的负担,提供更快的服务;2. 可以实现灾备,当⼀个主库宕了,切到另⼀个主库进⾏提供服务;1.1.3主主复制的做法: 1.主主复制原理图

2.修改两台服务器配置⽂件修改主服务器配置⽂件,增加如下#vi /etc/[mysqld]server-id=1log-bin=mysql-binlog-slave-updatesbinlog-ignore-db = mysqlbinlog-ignore-db = information_schemabinlog-ignore-db = performance_schemareplicate-wild-ignore-table = mysql.%replicate-wild-ignore-table = information_schema.%replicate-wild-ignore-table = performance_schema.%expire_logs_days=5

修改从服务器配置⽂件,增加如下

#vi /etc/

[mysqld]server-id=2log-bin=mysql-binlog-slave-updatesbinlog-ignore-db = mysqlbinlog-ignore-db = information_schemabinlog-ignore-db = performance_schemareplicate-wild-ignore-table = mysql.%replicate-wild-ignore-table = information_schema.%replicate-wild-ignore-table = performance_schema.%expire_logs_days=5

3. 重启mysql服务(两台都需要重启)#systemctl restart mysqld4. 配置主主(1) [FH-UMP1]mysql 为主库FH-UMP1#mysql -p(123456)mysql> show master status;

FH-UMP2#mysql -p(123456)mysql> show slave status;mysql> stop slave;mysql>change master tomaster_host='192.168.198.149',master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154;mysql> start slave;mysql> show slave statusG

详细信息如下:mysql> show slave statusG*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.1.183 Master_User: root Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 154 Relay_Log_File: FH-UMP2-relay-bin.000002 Relay_Log_Pos: 320 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: mysql.%,information_schema.%,performance_schema.% Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 154 Relay_Log_Space: 529 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1 Master_UUID: 3b9bc7b3-d6a0-11e8-9ee1-000c29a816df Master_Info_File: /var/lib/mysql/ SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0 Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version:1 row in set (0.00 sec)(2) [FH-UMP2]mysql 为主库类似的,可以配置FH-UMP2上的mysql为主库FH-UMP2#mysql -p(123456)mysql> show master status;

FH-UMP1#mysql -p(123456)mysql> show slave status;mysql> stop slave;mysql> change master tomaster_host='192.168.1.184',master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154;mysql> start slave;mysql> show slave statusG

5. 设置开机⾃启动(两台都需要)#vim /etc/init.d/添加systemctl start e1.2⽅案⼆:通过mysqldump备份脚本进⾏全量备份1.2.1脚本思路:先通过mysqldump命令将mysql数据备份到⼀个⽂件⾥,双机做ssh秘钥认证(给出远端的密码即可),通过scp命令将备份⽂件远程发送给备机。写⼀个定时任务进⾏执⾏MySQL备份脚本。1.2.2脚本如下:#!/bin/sh

filename=`date '+%Y%m%d-%H%M%S'` 定义备份⽂件⽇期格式(变量)filename="${filename}" 备份⽂件按⽇期命名(变量)

mysqldump -h127.0.0.1 -P3306 -uroot -ppassword dbname > /bak/db/${filename} 备份命令

scp -P 195 /bak/db/${filename} root@:/bak 远程推送命令

echo "success"

sh⽂件不要忘记使⽤ chmod +x 进⾏授予可执⾏权限。假设我们将sh⽂件存放与opt⽬录下,需要配置⼀下定时任务

编辑⽂件:vi /etc/crontab 设定每天凌晨4点执⾏00 04 * * * root /bin/sh /opt/db/ 备份脚本的定时任务

发布者:admin,转转请注明出处:http://www.yc00.com/news/1690653467a387172.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信