国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

分析MySQL復制以及調優原理和方法

2024-07-24 12:50:40
字體:
來源:轉載
供稿:網友

一. 簡介

MySQL自帶復制方案,帶來好處有:

數據備份。

負載均衡。

分布式數據。

概念介紹:

主機(master):被復制的數據庫。

從機(slave):復制主機數據的數據庫。

復制步驟:
(1). master記錄更改的明細,存入到二進制日志(binary log)。
(2). master發送同步消息給slave。
(3). slave收到消息后,將master的二進制日志復制到本地的中繼日志(relay log)。
(4). slave重現中繼日志中的消息,從而改變數據庫的數據。

下面放一張經典的圖片來說明這一過程:

二. 實現復制

實現復制有以下步驟:

1.設置MySQL主庫的二進制日志以及server-id

MySQL配置文件一般存放在/etc/my.cnf

# 在[mysqld]下面添加配置選項[mysqld]server-id=1log-bin=mysql-bin.log

server-id是數據庫在整個數據庫集群中的唯一標示,必須保持唯一。
重啟MySQL。

注:如果MySQL配置文件中已經配置過此文件,則可以跳過此步。

2.新建復制賬號

在主庫里面新建用于從庫復制主庫數據的賬號,并授予復制權限。

mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO user_name@'host' IDENTIFIED BY 'password';

3.設置MySQL主庫server-id

和第二步配置一樣,要注意的地方有兩點:

如果不需要從庫作為別的從庫的主庫的話,則不需要配置二進制日志。很多時候復制并不需要復制主庫的全部數據庫(特別是mysql的信息配置庫)。因此可以配置replicate_do_db來指定復制的數據庫 4.從庫初始化主庫的數據

如果數據量不算大的情況下,可以使用mysqldump工具導出主庫數據,然后導入到從庫里面。

mysqldump --single-transaction --triggers --master-data databasename > data.sql

如果數據量大的情況下應該使用Xtrabackup去進行數據庫的導出,此處不做介紹。
可能會有同學問,為什么不直接使用二進制日志進行初始化呢?

如果我們主庫運行了比較長的一段時間,并不太適合使用從庫根據二進制日志進行復制數據,直接使用二進制日志去初始化從庫會比較耗費時間和性能。更多的情況下,主庫的二進制日志的配置項沒有打開,因此也就不存在以前操作的二進制日志。 5.開啟復制

從庫執行下面命令

mysql> CHANGE MASTER TO MASTER_HOST='host',-> MASTER_USER='user',-> MASTER_PASSWORD='password',-> MASTER_LOG_FILE='mysql-bin.000001',-> MASTER_LOG_POS=0;

注意最后的兩個命令:MASTER_LOG_FILE和MASTER_LOG_POS,表示從庫的從哪個二進制文件開始讀取,偏移量從那里開始,這兩個參數可以從我們導入的SQL里面找到。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 特克斯县| 嘉禾县| 通海县| 红安县| 忻州市| 定陶县| 龙游县| 阳朔县| 北海市| 金阳县| 开江县| 台南县| 克什克腾旗| 新野县| 香河县| 衡水市| 丰都县| 云阳县| 常德市| 南雄市| 泰兴市| 泾源县| 宝应县| 乌恰县| 聊城市| 邮箱| 肥西县| 都匀市| 连江县| 旺苍县| 浏阳市| 资兴市| 中阳县| 叶城县| 聂荣县| 大邑县| 宣武区| 南开区| 南开区| 承德县| 临安市|