日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql双机数据热备份_如何设置MySql数据同步实现双机热备份

發(fā)布時(shí)間:2025/3/21 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql双机数据热备份_如何设置MySql数据同步实现双机热备份 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

mysql從3.23.15版本以后就提供了數(shù)據(jù)庫(kù)復(fù)制功能,利用該功能可實(shí)現(xiàn)兩個(gè)數(shù)據(jù)庫(kù)以主從模式來(lái)同步數(shù)據(jù)、互相備份的功能。數(shù)據(jù)庫(kù)同步復(fù)制功能的設(shè)置都在mysql的設(shè)置文件中體現(xiàn)。該方案實(shí)施的一大基本原則就是作為從數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)版本可以高于主服務(wù)器數(shù)據(jù)庫(kù)的版本,但不可以低于主服務(wù)器的數(shù)據(jù)庫(kù)版本。

設(shè)置主數(shù)據(jù)庫(kù)服務(wù)器:

1、查看my.cnf(*unix)或者my.ini(windows)中mysqld配置塊的配置有沒(méi)有l(wèi)og-bin(記錄數(shù)據(jù)庫(kù)更改日志),因?yàn)閙ysql的復(fù)制機(jī)制是基于日志的復(fù)制機(jī)制,所以主服務(wù)器一定要支持更改日志。配置文件中可分別設(shè)置需要寫入日志的數(shù)據(jù)庫(kù)和不要寫入日志的數(shù)據(jù)庫(kù)。

server-id=1 //數(shù)據(jù)庫(kù)的id這個(gè)應(yīng)該默認(rèn)是1就不用改動(dòng)

log-bin=log_name //日志文件的名稱,這里可以制定日志到別的目錄 如果沒(méi)有設(shè)置則默認(rèn)主機(jī)名的一個(gè)日志名稱

binlog-do-db=db_name //記錄日志的數(shù)據(jù)庫(kù),多個(gè)數(shù)據(jù)庫(kù)用","分割開(下同)

binlog-ignore-db=db_name //不記錄日志的數(shù)據(jù)庫(kù)

然后設(shè)置同步數(shù)據(jù)庫(kù)的用戶帳號(hào)

mysql> GRANT REPLICATION SLAVE ON *.*

-> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';

4.0.2以前的版本, 因?yàn)椴恢С諶EPLICATION 要使用下面的語(yǔ)句來(lái)實(shí)現(xiàn)這個(gè)功能

mysql> GRANT FILE ON *.*

-> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';

設(shè)置好主服務(wù)器的配置文件后重新啟動(dòng)數(shù)據(jù)庫(kù)

2、鎖定現(xiàn)有的數(shù)據(jù)庫(kù)并備份現(xiàn)在的數(shù)據(jù)

鎖定數(shù)據(jù)庫(kù)

mysql> FLUSH TABLES WITH READ LOCK;

備份數(shù)據(jù)庫(kù)有兩種辦法:一種是直接進(jìn)入到mysql的data目錄打包需要備份數(shù)據(jù)庫(kù)的文件夾;第二種是使用mysqldump的方式來(lái)備份數(shù)據(jù)庫(kù)(要加上"--master-data " 參數(shù))。建議使用第一種方法

3、查看主服務(wù)器的狀態(tài)

mysql> show master status\G;

+---------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+---------------+----------+--------------+------------------+

| mysql-bin.003 | 73 | test | manual,mysql |

+---------------+----------+--------------+------------------+

記錄File 和 Position 項(xiàng)目的值,后面要用到。

4、然后把數(shù)據(jù)庫(kù)的鎖定打開

mysql> UNLOCK TABLES;

設(shè)置從服務(wù)器:

1、設(shè)置數(shù)據(jù)庫(kù)的配置文件

server-id=n //設(shè)置數(shù)據(jù)庫(kù)id默認(rèn)主服務(wù)器是1可以隨便設(shè)置但是如果有多臺(tái)從服務(wù)器則不能重復(fù)。

master-host=db-master.mycompany.com //主服務(wù)器的IP地址或者域名

master-port=3306 //主數(shù)據(jù)庫(kù)的端口號(hào)

master-user=pertinax //同步數(shù)據(jù)庫(kù)的用戶

master-password=freitag //同步數(shù)據(jù)庫(kù)的密碼

master-connect-retry=60 //如果從服務(wù)器發(fā)現(xiàn)主服務(wù)器斷掉,重新連接的時(shí)間差

report-host=db-slave.mycompany.com //報(bào)告錯(cuò)誤的服務(wù)器

2、把從主數(shù)據(jù)庫(kù)服務(wù)器備份出來(lái)的數(shù)據(jù)庫(kù)導(dǎo)入到從服務(wù)器中

3、啟動(dòng)從數(shù)據(jù)庫(kù)服務(wù)器,如果啟動(dòng)的時(shí)候沒(méi)有加上"--skip-slave-start"這個(gè)參數(shù)則進(jìn)入到mysql中執(zhí)行以下命令:

mysql> slave stop; //停止slave的服務(wù)

4、設(shè)置主服務(wù)器的各種參數(shù)

mysql> CHANGE MASTER TO

-> MASTER_HOST='master_host_name', //主服務(wù)器的IP地址

-> MASTER_USER='replication_user_name', //同步數(shù)據(jù)庫(kù)的用戶

-> MASTER_PASSWORD='replication_password', //同步數(shù)據(jù)庫(kù)的密碼

-> MASTER_LOG_FILE='recorded_log_file_name', //主服務(wù)器二進(jìn)制日志的文件名(前面要求記住的參數(shù))

-> MASTER_LOG_POS=recorded_log_position; //日志文件的開始位置(前面要求記住的參數(shù))

5、啟動(dòng)同步數(shù)據(jù)庫(kù)的線程

mysql> slave start;

查看主從服務(wù)器的狀態(tài)mysql> SHOW PROCESSLIST\G //可以查看mysql的進(jìn)程看看是否有監(jiān)聽的進(jìn)程

如果日志太大清除日志的步驟如下

1、鎖定主數(shù)據(jù)庫(kù)

mysql> FLUSH TABLES WITH READ LOCK;

2、停掉從數(shù)據(jù)庫(kù)的slave

mysql> slave stop;

3、查看主數(shù)據(jù)庫(kù)的日志文件名和日志文件的position

show master status;

+---------------+----------+--------------+------------------+

| File | Position | Binlog_do_db | Binlog_ignore_db |

+---------------+----------+--------------+------------------+

| louis-bin.001 | 79 | | mysql |

+---------------+----------+--------------+------------------+

4、解開主數(shù)據(jù)庫(kù)的鎖

mysql> unlock tables;

5、更新從數(shù)據(jù)庫(kù)中主數(shù)據(jù)庫(kù)的信息

mysql> CHANGE MASTER TO

-> MASTER_HOST='master_host_name', //主服務(wù)器的IP地址

-> MASTER_USER='replication_user_name', //同步數(shù)據(jù)庫(kù)的用戶

-> MASTER_PASSWORD='replication_password', //同步數(shù)據(jù)庫(kù)的密碼

-> MASTER_LOG_FILE='recorded_log_file_name', //主服務(wù)器二進(jìn)制日志的文件名(前面要求記住的參數(shù))

-> MASTER_LOG_POS=recorded_log_position; //日志文件的開始位置(前面要求記住的參數(shù))

6、啟動(dòng)從數(shù)據(jù)庫(kù)的slave

mysql> slave start;

總結(jié)

以上是生活随笔為你收集整理的mysql双机数据热备份_如何设置MySql数据同步实现双机热备份的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。