❶ 三台伺服器怎樣實現mysql數據同步可不可以互為主從
可以一台做主機,兩台做備機。
myql支持雙向復制,就是互為主從。方法與主從同步一樣,就是在備機上新建一個用戶做主機,原來的主機做備機進行同步。
但是一般不建議互為主從,因為這樣比較危險,一般主機用於數據更新,備機用於數據查詢。最大效率提高資料庫性能。
❷ mysql兩個伺服器的數據怎麼同步
1. 建立VPN內部網路通信(這種方式快速一點)
2. 在需要同步的伺服器上,建立連接伺服器,取個名字,按照向導填寫驗證信息。
3. 在資料庫中直接使用連接伺服器上的數據,數據表格式如:連接伺服器名.資料庫名..表名
4. 在計劃任務中也可以把伺服器表數據計劃更新到本地資料庫表裡面
❸ mysql主備之間使用什麼日誌文件同步
主從同步主要是以binlog日誌作為文件同步機制,具體如下
主從同步使得數據可以從一個資料庫伺服器復制到其他伺服器上,在復制數據時,一個伺服器充當主伺服器(master),其餘的伺服器充當從伺服器(slave)。因為復制是非同步進行的,所以從伺服器不需要一直連接著主伺服器,從伺服器甚至可以通過撥號斷斷續續地連接主伺服器。通過配置文件,可以指定復制所有的資料庫,某個資料庫,甚至是某個資料庫上的某個表。
使用主從同步的好處:
通過增加從伺服器來提高資料庫的性能,在主伺服器上執行寫入和更新,在從伺服器上向外提供讀功能,可以動態地調整從伺服器的數量,從而調整整個資料庫的性能。
提高數據安全-因為數據已復制到從伺服器,從伺服器可以終止復制進程,所以,可以在從伺服器上備份而不破壞主伺服器相應數據
在主伺服器上生成實時數據,而在從伺服器上分析這些數據,從而提高主伺服器的性能
注意,mysql是非同步復制的,而MySQL Cluster是同步復制的。有很多種主從同步的方法,但核心的方法有兩種,Statement Based Replication(SBR)基於SQL語句的復制,另一種是Row Based Replication(RBR)基於行的復制,也可以使用Mixed Based Replication(MBR)。在mysql5.6中,默認使用的是SBR。而mysql 5.6.5和往後的版本是基於global transaction identifiers(GTIDs)來進行事務復制。當使用GTIDs時可以大大簡化復制過程,因為GTIDs完全基於事務,只要在主伺服器上提交了事務,那麼從伺服器就一定會執行該事務。
❹ 怎麼實現兩台伺服器的mysql數據同步
這種架構一般用在以下三類場景
1. 備份多台 Server 的數據到一台如果按照數據切分方向來講,那就是垂直切分。比如圖 2,業務 A、B、C、D 是之前拆分好的業務,現在需要把這些拆分好的業務匯總起來備份,那這種需求也很適用於多源復制架構。實現方法我大概描述下:業務 A、B、C、D 分別位於 4 台 Server,每台 Server 分別有一個資料庫來隔離前端的業務數據,那這樣,在從庫就能把四台業務的數據全部匯總起來,而不需要做額外的操作。那沒有多源復制之前,要實現這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關聯的問題,不但性能急劇下降,管理多個實例也沒有單台來的容易。
❺ 如何配置兩個MySQL資料庫之間的主從同步功能
IP的設置:A主機
IP:10.10.0.119;Mask:255.255.0.0;B主機
IP:10.10.8.112;Mask:255.255.0.0
在IP設置完成以後,需要確定兩主機的防火牆確實已經關閉。可以使用命令service
iptables
status查看防火牆狀態。如果防火牆狀態。
為仍在運行。使用service
iptables
stop來停用防火牆。如果想啟動關閉防火牆,可以使用setup命令來禁用或定製。最終以兩台主機可以相互ping通為佳。
3.2
配置A主(master)
B從(slave)模式;3.2.1
配置A
為master。
增加一個用戶同步使用的帳號:
GRANT
FILE
ON
*.*
TO
『backup』@'10.10.8.112'
IDENTIFIED
BY
『1234』;
GRANTREPLICATION
SLAVE
ON
*.*
TO
『backup』@'10.10.8.112'
IDENTIFIED
BY
『1234』。
賦予10.10.8.112也就是Slave機器有File許可權,只賦予Slave機器有File許可權還不行,還要給它REPLICATION
SLAVE的許可權才可以。
增加一個資料庫作為同步資料庫:create
database
test;
創建一個表結構:create
table
mytest
(username
varchar(20),password
varchar(20));
修改配置文件:修改A的/etc/my.cnf文件。
在my.cnf配置項中加入下面配置:
server-id
=
1
#Server標識
log-bin
binlog-do-db=test
#指定需要日誌的資料庫
重起資料庫服務:
service
mysqld
restart
查看server-id:
show
variable
like
『server_id』。
❻ mysql主庫 備份庫怎麼同步
在兩台伺服器上安裝mysql
#apt-get install mysql-server -y
創建同步帳戶
我這里就直接使用的資料庫默認用戶root
在ubuntu4上:
mysql> grant replication slave on *.* to 'root'@'192.168.2.5' identified by '12345678';
mysql> flush privileges;
在ubuntu5上:
mysql> grant replication slave on *.* to 'root'@'192.168.2.4' identified by '12345678';
mysql> flush privileges;
修改mysql的配置文件
/etc/mysql/my.cnf
在Ubuntu4 上:
【code】
[mysqld]
binlog-do-db=db_rocky #需要記錄進制日誌的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個binlog-do-db選項
binlog-ignore-db=mysql #不需要記錄進制日誌的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個binlog-do-db選項
replicate-do-db=db_rocky #需要進行同步的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個replicate-do-db選項
replicate-ignore-db=mysql,information_schema #不需要同步的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個replicate-ignore-db選項
#同步參數:
server-id=1
log_bin = /var/log/mysql/mysql-bin
#保證slave掛在任何一台master上都會接收到另一個master的寫入信息
log-slave-updates
sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2
slave-skip-errors=all #過濾掉一些沒啥大問題的錯誤
【/code】
在Ubuntu5上:
[mysqld]
server-id=2 #設置一個不同的id、注意這里在my.cnf裡面有個默認值是 1 、把默認值改掉、而不能新增一個server-id
binlog-do-db=db_rocky #需要記錄二進制日誌的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個binlog-do-db選項
binlog-ignore-db=mysql #不需要記錄進制日誌的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個binlog-ignore-db選項
#需要同步的資料庫
replicate-do-db=db_rocky
#需要進行同步的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個binlog-do-db選項
replicate-ignore-db=mysql,information_schema #不需要同步的資料庫.如果有多個資料庫可用逗號分隔,或者使用多個binlog-do-db選項
#同步參數:
#保證slave掛在任何一台master上都會接收到另一個master的寫入信息
log-slave-updates
sync_binlog=1
auto_increment_offset=2
auto_increment_increment=2
slave-skip-errors=all #過濾掉一些沒啥大問題的錯誤
分別重啟伺服器上的mysql服務
分別在伺服器上查看做為主伺服器狀態
mysql> flush tables with read lock;#防止進入新的數據
mysql> show master status\G;
分別在伺服器上用change master語句指定同步位置 :
在ubuntu4上:
change master to master_host='192.168.2.5',master_user='root',master_password='12345678',master_log_file='mysql-bin.000001',master_log_pos=107;
在Ubuntu5上:
change master to master_host='192.168.2.4',master_user='root',master_password='12345678',master_log_file='mysql-bin.000001',master_log_pos=107;
❼ mysql主從同步 如何同步已有的數據,
--主機開兩個窗口,一個進入mysql,一個是shell
--主機阻斷寫操作
mysql> FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql>
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 1529881 | openser | mysql,test |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
--另外一個窗口導出主機資料庫
mysqlmp -u root -p123456 --opt -R openser > openser20121203.sql
--剛才的窗口主機解鎖
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)
mysql>
--打包數據文件到從機
drop database openser;
create database openser;
mysql -u root -p123456 openser < openser20121127.sql
--從機操作
SLAVE STOP;
reset slave;
CHANGE MASTER TO MASTER_HOST='192.168.21.26',
MASTER_USER='repl_user',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=1529881;
start slave;
show slave status\G