mysql雙機熱備的配置步驟,mysql雙機熱備步驟

來源:互聯網
上載者:User

mysql雙機熱備的配置步驟,mysql雙機熱備步驟

設定雙機熱備:

首先要在兩台機器上建立同步處理的使用者:

grant replication slave on *.* to 'repdcs'@'192.168.21.39' identified by '123456';   
grant all privileges on *.* to 'repdcs'@'192.168.21.39  identified by '123456';
FLUSH PRIVILEGES;
grant replication slave on *.* to 'repdcs'@'192.168.21.106' identified by '123456';   
grant all privileges on *.* to 'repdcs'@'192.168.21.106 identified by '123456';
FLUSH PRIVILEGES;

庫1
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
port=3306
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
lower_case_table_names=1
default-character-set=utf8
default-storage-engine=innodb
max_connect_errors = 100000
innodb_buffer_pool_size= 8G
max_connections = 500
default-character-set=utf8
 
server-id=2
#log-bin=mysqlbin
innodb_flush_log_at_trx_commit=1
sync_binlog=1
init_connect='SET NAMES utf8'
log-bin=mysqlbin
master-host=192.168.21.39
master-user=repdcs
master-pass=123456
master-connect-retry=60
replicate-do-db=dcs
master-port=3306
slave-net-timeout=60
庫2
[mysqld]
#datadir=/var/lib/mysql
datadir=/home/data/mysql
#socket=/var/lib/mysql/mysql.sock
socket=/home/data/mysql/mysql.sock
user=mysql
port=3306
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set=utf8
init_connect = 'SET NAMES utf8'
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
server-id=1
log-bin=mysqlbin
innodb_flush_log_at_trx_commit=1
sync_binlog=1
init_connect='SET NAMES utf8'
log-bin=mysqlbin
master-host=192.168.21.106
master-user=repdcs
master-pass=123456
master-connect-retry=60
replicate-do-db=dcs
master-port=3306
slave-net-timeout=60
#replicate-do-db=dcs
back_log = 512
key_buffer_size = 8M
max_allowed_packet = 4M
sort_buffer_size = 6M
read_buffer_size = 4M
join_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 64
query_cache_size = 0M
tmp_table_size = 96M
max_connections = 500
table_cache= 1024
innodb_additional_mem_pool_size= 16M
innodb_log_buffer_size= 64M
read_rnd_buffer_size= 16M
innodb_buffer_pool_size= 1G
innodb_log_file_size = 256M
max_heap_table_size = 96M
innodb_data_file_path = ibdata1:200M:autoextend
default-storage-engine=innodb
max_connect_errors = 100000
long_query_time = 1
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
[client]
default-character-set=utf8

標紅的話主要兩台機器的不同部分。

重啟如果出問題
show slave status \G
Last_Error: Error 'Can't create database 'dcs'; database exists' on query. Default database: 'dcs'. Query: 'cr
查詢從庫發現需要建立的資料庫已經存在,所以可以跳過這個建庫的命令.
使用set global sql_slave_skip_counter=1;
start slave sql_thread;
flush privileges

server-id=n //設定資料庫id預設主伺服器是1可以隨便設定但是如果有多台從伺服器則不能重複。
master-host=192.168.21.39 //主伺服器的IP地址或者網域名稱
master-port=3306 //主要資料庫的連接埠號碼
master-user=repdcs //同步資料庫的使用者
master-password=123456 //同步資料庫的密碼
master-connect-retry=60 //如果從伺服器發現主伺服器斷掉,重新串連的時間差

report-host=db-slave.mycompany.com //報告錯誤的伺服器



然後重啟兩個機器的資料庫,基本就沒問題了,大致步驟給主從差不多,可以參考我的部落格 mysql主從的參數配置與步驟



怎實現雙機內容同步顯示

在linux伺服器lvs負載平衡、雙機熱備應用中經常用到mysql雙機熱備,安裝和配置過程如下:

一、 安裝MYSQL

# cp mysql-standard-4.1.9-pc-linux-gnu-i686.tar.gz /usr/local/

# tar zxvf mysql-standard-4.1.9-pc-linux-gnu-i686.tar.gz

# mv mysql-standard-4.1.9-pc-linux-gnu-i686 mysql

# cd mysql

# more INSTALL-BINARY

查看安裝文檔,注意以紅色框內為主。

# groupadd mysql (建立mysql組)

# useradd -g mysql mysql (建立mysql使用者並將其使用者加入該組)

# scripts/mysql_install_db --user=mysql (以mysql使用者身份執行資料庫初始化安裝指令碼)

# chown -R root . (歸屬root許可權為目前的目錄)

# chown -R mysql data (歸屬mysql許可權為data目錄)

# chgrp -R mysql . (改變mysql檔案/目錄的使用者與群組擁有人為目前的目錄)

# bin/mysqld_safe --user=mysql & (以mysql使用者身份後台啟動mysql資料庫進程)

之後我們就可以啟動mysql資料庫,

顯示為上述圖,表示安裝正確。

為了使資料庫更加安全,我們來設定資料庫密碼。

如在下次啟動伺服器時能自動啟動mysql資料庫進程,我們還需寫入/etc/rc.d/rc.local檔案裡
echo “/usr/local/mysql/bin/mysqld_safe --user=mysql &” >;>; /etc/rc.d/rc.local
  

二、配置MYSQL雙機熱備

傳統模式都是採用mysql雙機互備,至於雙機熱備我搜尋了大量的精華文章都沒有發現安裝配置文檔。故我的一個想法產生了:當建立新的資料庫時,預設會建立到/usr/local/mysql/data這裡,如果能改掉預設設定檔my.conf,建立資料庫能指定在一個目錄上,如我建立在盤柜上,這樣就能實現雙機熱備功能。

最起初困惑我的是如何更改設定檔my.conf,我諮詢了很多朋友,但都沒能成功。後聽yddll朋友一席言,“把陣列的檔案系統掛在/usr/local/mysql/data下”,頓時茅塞頓開,使我如撥雲霧而見青天。原理都清楚了,下面開始實施。

# fdisk /dev/sdb

# reboot

# mkfs.ext3 /dev/sdb1(把陣列格式成ext3格式)

# 我們首先把/usr/local/mysql/data/目錄下的所有檔案拷貝到另一個目錄,我這裡自建立了一個。

# mkdir –p /bak/mysql_data

# cd /usr/local/mysql/data/

# cp –a * /bak/mysql_data

# 之......餘下全文>>
 
mysql 雙機熱備的問題

簡單做法,在從機上運行
mysql > show slave status\G;
上面有兩個狀態 ,如果都為True則說明同步是正常的,按你情況來看,應該不會都為True
同樣,這時能看到一些錯誤資訊。
查看mysql的error log也是不錯的選擇,一般在mysql data目錄

可以嘗試
mysql > start slave;
這句是開啟slave同步。
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.