自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

實例講解如何配置MySQL數(shù)據(jù)庫主從復(fù)制

數(shù)據(jù)庫 MySQL
MySQL數(shù)據(jù)庫是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進行數(shù)據(jù)庫管理。下文中將主要為大家介紹MySQL數(shù)據(jù)庫主從復(fù)制。

導(dǎo)讀:MySQL數(shù)據(jù)庫支持單向、異步復(fù)制,復(fù)制過程中一個服務(wù)器充當(dāng)主服務(wù)器,而一個或多個其它服務(wù)器充當(dāng)從服務(wù)器。主服務(wù)器將更新寫入二進制日志文件,并維護日志文件的一個索引以跟蹤日志循環(huán)。當(dāng)一個從服務(wù)器連接到主服務(wù)器時,它通知主服務(wù)器從服務(wù)器在日志中讀取的最后一次成功更新的位置。從服務(wù)器接收從那時起發(fā)生的任何更新,然后封鎖并等待主服務(wù)器通知下一次更新。

為什么使用主從復(fù)制?

1、主服務(wù)器/從服務(wù)器設(shè)置增加了健壯性。主服務(wù)器出現(xiàn)問題時,你可以切換到從服務(wù)器作為備份。

2、通過在主服務(wù)器和從服務(wù)器之間切分處理客戶查詢的負荷,可以得到更好的客戶響應(yīng)時間。但是不要同時在主從服務(wù)器上進行更新,這樣可能引起沖突。

3、使用復(fù)制的另一個好處是可以使用一個從服務(wù)器執(zhí)行備份,而不會干擾主服務(wù)器。在備份過程中主服務(wù)器可以繼續(xù)處理更新。

MySQL使用3個線程來執(zhí)行復(fù)制功能(其中1個在主服務(wù)器上,另兩個在從服務(wù)器上。當(dāng)發(fā)出START SLAVE時,從服務(wù)器創(chuàng)建一個I/O線程,以連接主服務(wù)器并讓主服務(wù)器發(fā)送二進制日志。主服務(wù)器創(chuàng)建一個線程將二進制日志中的內(nèi)容發(fā)送到從服務(wù)器。從服務(wù)器I/O線程讀取主服務(wù)器Binlog Dump線程發(fā)送的內(nèi)容并將該數(shù)據(jù)拷貝到從服務(wù)器數(shù)據(jù)目錄中的本地文件中,即中繼日志。第3個線程是SQL線程,從服務(wù)器使用此線程讀取中繼日志并執(zhí)行日志中包含的更新。SHOW PROCESSLIST語句可以查詢在主服務(wù)器上和從服務(wù)器上發(fā)生的關(guān)于復(fù)制的信息。

默認中繼日志使用host_name-relay-bin.nnnnnn形式的文件名,其中host_name是從服務(wù)器主機名,nnnnnn是序列號。用連續(xù)序列號來創(chuàng)建連續(xù)中繼日志文件,從000001開始。從服務(wù)器跟蹤中繼日志索引文件來識別目前正使用的中繼日志。默認中繼日志索引文件名為host_name-relay-bin.index。在默認情況,這些文件在從服務(wù)器的數(shù)據(jù)目錄中被創(chuàng)建。中繼日志與二進制日志的格式相同,并且可以用mysqlbinlog讀取。當(dāng)SQL線程執(zhí)行完中繼日志中的所有事件后,中繼日志將會被自動刪除。

從服務(wù)器在數(shù)據(jù)目錄中另外創(chuàng)建兩個狀態(tài)文件--master.info和relay-log.info。狀態(tài)文件保存在硬盤上,從服務(wù)器關(guān)閉時不會丟失。下次從服務(wù)器啟動時,讀取這些文件以確定它已經(jīng)從主服務(wù)器讀取了多少二進制日志,以及處理自己的中繼日志的程度。

設(shè)置主從復(fù)制:

1、確保在主服務(wù)器和從服務(wù)器上安裝的MySQL版本相同,并且最好是MySQL的最新穩(wěn)定版本。

2、在主服務(wù)器上為復(fù)制設(shè)置一個連接賬戶。該賬戶必須授予REPLICATION SLAVE權(quán)限。如果賬戶僅用于復(fù)制(推薦這樣做),則不需要再授予任何其它權(quán)限。

mysql> GRANT REPLICATION SLAVE ON *.*

-> TO 'replication'@'%.yourdomain.com' IDENTIFIED BY 'slavepass';

3、執(zhí)行FLUSH TABLES WITH READ LOCK語句清空所有表和塊寫入語句:

mysql> FLUSH TABLES WITH READ LOCK;

保持mysql客戶端程序不要退出。開啟另一個終端對主服務(wù)器數(shù)據(jù)目錄做快照。

shell> cd /usr/local/mysql/

shell> tar -cvf /tmp/mysql-snapshot.tar ./data

如果從服務(wù)器的用戶賬戶與主服務(wù)器的不同,你可能不想復(fù)制mysql數(shù)據(jù)庫。在這種情況下,應(yīng)從歸檔中排除該數(shù)據(jù)庫。你也不需要在歸檔中包括任何日志文件或者master.info或relay-log.info文件。

當(dāng)FLUSH TABLES WITH READ LOCK所置讀鎖定有效時(即mysql客戶端程序不退出),讀取主服務(wù)器上當(dāng)前的二進制日志名和偏移量值:

mysql > SHOW MASTER STATUS;

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

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

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

#p#

如果主服務(wù)器運行時沒有啟用--logs-bin,SHOW MASTER STATUS顯示的日志名和位置值為空。在這種情況下,當(dāng)以后指定從服務(wù)器的日志文件和位置時需要使用的值為空字符串('')和4.

取得快照并記錄日志名和偏移量后,回到前一中端重新啟用寫活動:

mysql> UNLOCK TABLES;

4、確保主服務(wù)器主機上my.cnf文件的[mysqld]部分包括一個log-bin選項。該部分還應(yīng)有一個server-id=Master_id選項,其中master_id必須為1到232–1之間的一個正整數(shù)值。例如:

[mysqld]

log-bin

server-id=1

如果沒有提供那些選項,應(yīng)添加它們并重啟服務(wù)器。

5、停止從服務(wù)器上的mysqld服務(wù)并在其my.cnf文件中添加下面的行:

[mysqld]

server-id=2

slave_id值同Master_id值一樣,必須為1到232–1之間的一個正整數(shù)值。并且,從服務(wù)器的ID必須與主服務(wù)器的ID不相同。

6、將數(shù)據(jù)備據(jù)目錄中。確保對這些文件和目錄的權(quán)限正確。服務(wù)器 MySQL運行的用戶必須能夠讀寫文件,如同在主服務(wù)器上一樣。

Shell> chown -R mysql:mysql /usr/local/mysql/data

7、啟動從服務(wù)器。在從服務(wù)器上執(zhí)行下面的語句,用你的系統(tǒng)的實際值替換選項值:


mysql> CHANGE MASTER TO

-> MASTER_HOST='master_host_name',

-> MASTER_USER='replication_user_name',

-> MASTER_PASSWORD='replication_password',

-> MASTER_LOG_FILE='recorded_log_file_name',

-> MASTER_LOG_POS=recorded_log_position;

8、啟動從服務(wù)器線程:

mysql> START SLAVE;

執(zhí)行這些程序后,從服務(wù)器應(yīng)連接主服務(wù)器,并補充自從快照以來發(fā)生的任何更新。

9、如果出現(xiàn)復(fù)制錯誤,從服務(wù)器的錯誤日志(HOSTNAME.err)中也會出現(xiàn)錯誤消息。

10、從服務(wù)器復(fù)制時,會在其數(shù)據(jù)目錄中發(fā)現(xiàn)文件master.info和HOSTNAME-relay-log.info。從服務(wù)器使用這兩個文件跟蹤已經(jīng)處理了多少主服務(wù)器的二進制日志。不要移除或編輯這些文件,除非你確切知你正在做什么并完全理解其意義。即使這樣,最好是使用CHANGE MASTER TO語句。

MySQL數(shù)據(jù)庫主從復(fù)制是MySQL數(shù)據(jù)庫復(fù)制技術(shù)的新的開發(fā)技術(shù),技術(shù)含金量是相當(dāng)高的,希望上文中涉及到的內(nèi)容對大家能夠有所幫助。

【編輯推薦】

  1. 對抗MySQL數(shù)據(jù)庫解密高手
  2. 備份MySQL數(shù)據(jù)庫的簡單方法
  3. 教你為MySQL數(shù)據(jù)庫換擋加速
  4. Mysql數(shù)據(jù)庫常用命令
責(zé)任編輯:迎迎 來源: 賽迪網(wǎng)
相關(guān)推薦

2023-09-24 14:32:15

2020-01-03 16:30:14

數(shù)據(jù)庫讀寫分離分庫

2021-06-08 07:48:27

MySQL主從配置

2025-02-10 10:55:16

2023-02-27 07:33:14

MySQL數(shù)據(jù)庫服務(wù)器

2012-11-26 10:17:44

InnoDB

2020-09-24 06:39:58

MySQL數(shù)據(jù)庫

2019-05-10 15:30:18

數(shù)據(jù)庫主從復(fù)制MySQL

2014-07-04 10:41:19

redis數(shù)據(jù)庫緩存

2024-07-04 08:00:24

2024-03-01 18:33:59

MySQL節(jié)點數(shù)據(jù)

2019-02-11 09:04:24

MySQL主從復(fù)制數(shù)據(jù)庫

2011-04-14 11:09:14

MySQL數(shù)據(jù)庫

2018-04-08 15:20:15

數(shù)據(jù)庫MySQL主從復(fù)制

2023-03-19 11:53:27

2023-03-19 22:38:12

邏輯復(fù)制PostgreSQL

2017-04-20 21:00:06

MySQLbinlog主從復(fù)制

2024-07-15 09:14:03

MySQL主從復(fù)制

2023-03-08 08:44:47

2023-07-03 08:57:45

Master服務(wù)TCP
點贊
收藏

51CTO技術(shù)棧公眾號