溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Percona中怎么配置主從MySQL

發(fā)布時間:2021-08-06 11:40:46 來源:億速云 閱讀:138 作者:Leah 欄目:數(shù)據(jù)庫

今天就跟大家聊聊有關Percona中怎么配置主從MySQL,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。


  備份步驟
  MyISAM
  如果你的所有的表是 MyISAM .只要運行 innobackupex –prepare /directoryWhereBackupIs.然后從 /directoryWhereBackupIs 給數(shù)據(jù)庫目錄移到你的 slave 的 datadir 中就行了.然后修改一下這個數(shù)據(jù)庫文件的用戶和組.最后只要在 slave 的服務器上運行 “change master” 就能搞定了.
  但如果數(shù)據(jù)庫是 innodb 的表,需要加入三步.需要停止 slave 上的 mysql.需要給 ibdata1 放到 datadir 中,然后重起 mysql.接著在運行 “change master…” 和 “start slave” 的命令.
  1.安裝 Percona 中的 mysql client, server, 還有 XtraBackup ;
  rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.$(uname -i).rpm
  2. 配置主從所有的機器上的 /etc/my.cnf.
  Percona 有時并不在這個目錄下生成 /etc/my.cnf 文件.所以需要從安裝的目錄 /usr/share/mysql/my-small.cnf 中 copy 一個配置文件來修改成自己要的.
  在這,我們還需要配置支持 slave .如果配置主從,最少需要修改 [mysqld] 中三行.
  log-bin=mysql-bin
  server-id=a unique number
  datadir=/var/lib/mysql
  前二行是復制所必須的,主從就是通過 bin 日志來實現(xiàn)的.第三行是給 innobackupex 來用的.
  如果只想記錄其中一個數(shù)據(jù)庫來做主從同步,可以只記錄基本一個的 binlog. 只要增加如下配置就行了.
  binlog-do-db = test # 只對 test 的數(shù)據(jù)庫產(chǎn)生 binlog
   最好,在你的 slave 上配置成 read-only = 1和 skip-slave-start.如果必要,在第一次配置主從防止數(shù)據(jù)不同步在備份的時候,主也配置成 read only .備份完然后在開啟可寫.我測試可以不這樣,但保險起見,最好停止一會.可以在線使用如下命令修改成只讀.
  3. 在 master 上,運行下面的命令:
  在這之前,需要在 slave 放上 ssh 的 key,這樣備份時就不需要輸入密碼:
  innobackupex --databases=test --stream=tar /tmp/ --slave-info | ssh root@slave_ip "tar xfi - -C /tmp/mysql"
  如果成功,你會見到下面的信息:
  120111 12:26:28 innobackupex: completed OK!
  tar: Read 3584 bytes from -
  注意第三行的輸出,就是 binlog 文件的 filename 和 position,象下面這個:
  innobackupex: MySQL binlog position: filename 'mysql-bin.000001', position 3287
  平時備份的話,直接使用下面的命令就行了
  innobackupex –user=root –password=test –stream /tmp/mysql 2>/tmp/mysql.log | gzip> /tmp/data/mysql.tar.gz
  4. 在 slave 上,運行下面的命令:
  innobackupex --apply-log /tmp/mysql
  這步是恢復日志解析成數(shù)據(jù)庫的格式.
  innobackupex –copy-back /tmp/mysql
  這步只是給文件 move 到 /var/lib/mysql ,如果這步失敗,直接自己移一下也行.
  如果我們導入的數(shù)據(jù)庫名字是叫 test,我們需要修改成 mysql 的用戶組:
  chown -R mysql:mysql /var/lib/mysql/test
  注意,如果數(shù)據(jù)庫有 innodb 的表的話,需要停止 slave 上 mysql ,然后復制 /var/lib/mysql/ 下的 ibdata1 到 datadir ,然后重起 mysql.
  5. 在 master 上, 需要創(chuàng)建一個復制的帳號:
  grant replication slave, replication client on *.* to repl@'219.32.22.%' identified by 'password';
  FLUSH PRIVILEGES;
  6. 在 slave 上, 配置 master 的信息:
   change master to master_host='master_ip', master_user='repl', master_password='password', master_log_file='前面在 master 上 innobackupex 備份的輸出的 filename', master_log_pos=前面在 master 上 innobackupex 備份的輸出的 position;
  start slave;
  7. 配置完成后的檢查,確認主從都正常工作
  基本檢查,出錯信息也會在這顯示
  show slave statusG;
  這個中,一定要顯示
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
  這二行為 Yes 才是正常工作.
  顯示 master 的狀態(tài)
  show master statusG;
  顯示同步線程的工作
  show processlistG;
  FQA:
  1. 如果同步不同,可以考慮重設置權(quán)限,然后在從主機做如下操作.
  slave stop;
  reset slave;
  slave start;
  如果還不行,可以考慮給 reset slave; 換成上面第 6 步所做的操作.
   2. 如果提示"Possible values are xtrabackup_51 (for MySQL 5.0 and 5.1) or xtrabackup (for MySQL 5.1 with InnoDB plugin or Percona Server)"
  innobackupex --apply-log /tmp/mysql --ibbackup=xtrabackup_51

看完上述內(nèi)容,你們對Percona中怎么配置主從MySQL有進一步的了解嗎?如果還想了解更多知識或者相關內(nèi)容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI