卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

linux heartbeat MySql雙機(jī)熱備

一、heartbeat 的安裝和配置 集群并不是一個(gè)全新的概念,其實(shí)早在七十年代計(jì)算機(jī)廠商和研究機(jī)構(gòu)就開始了對(duì)集群系統(tǒng)的研究和開發(fā)。由于主要用于科學(xué)工程計(jì)算,所以這些系統(tǒng)并不為大家所熟知。直到Linu

一、heartbeat 的安裝和配置 集群并不是一個(gè)全新的概念,其實(shí)早在七十年代計(jì)算機(jī)廠商和研究機(jī)構(gòu)就開始

了對(duì)集群系統(tǒng)的研究和開發(fā)。由于主要用于科學(xué)工程計(jì)算,

所以這些系統(tǒng)并不為大家所熟知。直到Linux 集群的出現(xiàn),集群的概念才得以廣為傳播。集群系統(tǒng)主要分為高可用(High Av ailability) 集群, 簡(jiǎn)稱 HA 集群。常見的就是2個(gè)節(jié)點(diǎn)做成的

HA 集群,有很多通俗的不科學(xué)的名稱,比如" 雙機(jī)熱備", " 雙機(jī)互備", " 雙機(jī)" 。 這樣做的好處是當(dāng)服務(wù)啟動(dòng)的時(shí)候,兩臺(tái)服務(wù)器一個(gè)作為主,另一個(gè)是從。測(cè)試機(jī)每幾秒會(huì)ping 主機(jī),當(dāng)發(fā)現(xiàn)主機(jī)沒有回應(yīng),就證明主機(jī)宕機(jī)了,那么從機(jī)馬上會(huì)啟動(dòng)相應(yīng)的服務(wù),繼續(xù)進(jìn)行服務(wù)。這樣就可以保證服務(wù)不間斷。

具體的拓?fù)鋱D如下:

1.1.1安裝網(wǎng)絡(luò)環(huán)境設(shè)定

分別設(shè)置兩臺(tái)服務(wù)器eth1、eth0的IP 地址,如:server1所示

,

更改計(jì)算機(jī)名稱

設(shè)置DNS 解析

1.1.2、安裝

1)先要檢查系統(tǒng)中是否有下面軟件開發(fā)包的支持,包括pkgconfig g lib2-devel e2fsprogs 和libnet

2) 我的系統(tǒng)中只缺少libnet ,安裝libnet ,這里使用的是1.1.2. 1版本

tar -zxvf libnet.tar .gz

cd libnet

./configure

make

make install

,

3) 安裝heartbeat

tar -zxvf heartbeat-2.0.7.tar .gz

cd heartbeat-2.0.7

./ConfigureMe configure

make

make install

4) 當(dāng)安裝好heartbeat 后,系統(tǒng)會(huì)在/etc/下建立一個(gè)ha.d 的目錄,我們需要把一些文件拷到里面去。

cp /soft/heartbeat-2.0.7/doc/ha.cf /etc/ha.d

cp /soft/heartbeat-2.0.7/doc/haresources /etc/ha.d cp /soft/heartbeat-2.0.7/doc/authkeys /etc/ha.d

1.1.3配置主要文件的配置

vi /etc/ha.d/ha.cf

具體要把下面的選項(xiàng)前的注釋去掉

logfile /var/log/ha-log

logfacility local0

keepalive 2 每2秒鐘 測(cè)試機(jī)發(fā)送一個(gè)廣播 deadtime 30 30秒內(nèi)沒有反應(yīng),立即切換服務(wù) warntime 10

initdead 120

udpport 694

bcast eth1 指明心跳連接的接口號(hào)

,

ucast eth1 192.168.10.1 心跳連接的pc 的ip

auto_failback on

node

server1 兩個(gè)的主機(jī)名(最好用uname -n 察看) node server2

ping 192.168.0.1 測(cè)試機(jī)的ip (要寫外部的測(cè)試IP ) vi /etc/ha.d/haresources 這個(gè)主要是指明資源的來源,添加一條指定虛擬

IP

表示server2是主服務(wù)器,虛擬IP 地址

為192.168.0.10 ,IP 啟動(dòng)虛擬服務(wù)器HTTPD 。

vi /etc/ha.d/authkeys 這個(gè)是安全方面的配置,里面有三種認(rèn)證方式:crc md5 sha1

啟動(dòng)sha1 認(rèn)證,密碼為123456

注:authkeys 文件權(quán)限必須為 600 否則報(bào)錯(cuò)。

Chmod 600 authkeys

啟動(dòng)服務(wù)

Service heartbeat start

二、MYSQL 數(shù)據(jù)庫同步

2.1.1Mysql 數(shù)據(jù)庫沒有增量備份的機(jī)制,當(dāng)數(shù)據(jù)量太大的時(shí)候備份是一個(gè)很大的問題。還好Mysql 數(shù)據(jù)庫提供了一種主從備份的機(jī)制,其實(shí)就是把主數(shù)據(jù)庫的所有的數(shù)據(jù)同時(shí)寫到備份數(shù)據(jù)庫中。實(shí)現(xiàn)Mysql 數(shù)據(jù)庫的熱備份。要想實(shí)現(xiàn)雙機(jī)的熱備首先要了解主從數(shù)據(jù)庫服務(wù)器的版本的需求。要實(shí)現(xiàn)熱備Mysql 的版本都要高于3.2,還有一個(gè)基本的原則就是作

,

為從數(shù)據(jù)庫的數(shù)據(jù)庫版本可以高于主服務(wù)器數(shù)據(jù)庫的版本,但是不可以低于主服務(wù)器的數(shù)據(jù)庫版本。首先查看主服務(wù)器的版本是否是支持熱備的版本。然后查看my.cnf(類unix) 或者my.ini(windows)中Mysqld 配置塊的配置有沒有l(wèi)og-bin(記錄數(shù)據(jù)庫更改日志) ,因?yàn)镸ysql 的復(fù)制機(jī)制是基于日志的復(fù)制機(jī)制,所以主服務(wù)器一定要支持更改日志才行。然后設(shè)置要寫入日志的數(shù)據(jù)庫或者不要寫入日志的數(shù)據(jù)庫。這樣只有您感興趣的數(shù)據(jù)庫的更改才寫入到數(shù)據(jù)庫的日志中。

2.1.2安裝MYSQL 5.1.41

兩臺(tái)服務(wù)器(主從服務(wù)器)做同樣mysql 刪除和重新安裝的安裝過程

備份數(shù)據(jù)庫:mysqldump T_SIP >/home/T_SIP.sql

Mysqldump T_USER >/home/T_USER.sql

刪除舊數(shù)據(jù)庫:rm –rf /usr/local/mysql

Rm –rf /etc/rc.d/init.d/mysqld

安裝新數(shù)據(jù)庫: 安裝之前,先將my.snf 文件拷貝到/etc目錄下。使用的安裝命令為 rpm –vhi MySQL******。安裝完成之后確定mysql server能夠正常啟動(dòng)。

cp my.cnf /etc/

rpm –vhi MySQL-server-community-5.1.41-0.rhe15.i386.rpm

rpm -vhi MySQL-client-community-5.1.39-0.rhel4.i386.rpm

rpm -vhi MySQL-devel-community-5.1.39-0.rhel4.i386.rpm

rpm -vhi MySQL-shared-community-5.1.39-0.rhel4.i386.rpm

安裝mysql 數(shù)據(jù)庫二進(jìn)制日志記錄插件:此插件mysql5.1里面沒有,mysql5.0自帶。 tar -zxvf innodb_plugin-1.0.6-rhel5.i486

cp ha_innodb.so /usr/lib/mysql/plugin/

chmod 777 ha_innodb.so

chown –R root:root ha_innodb.so

導(dǎo)入boromax 數(shù)據(jù)庫:使用mysql 命令進(jìn)入mysql 數(shù)據(jù)庫控制臺(tái)

use T_SIP;

source /home/www/db/T_SIP.sql;

use T_USER;

source /home/www/db/T_USER.sql;

在主服務(wù)器中建立從服務(wù)器訪問主服務(wù)器mysql 上的用戶:使用mysql 命令進(jìn)入mysql 數(shù)據(jù)庫控制臺(tái)

grant replication slave on *.* to 'ccc'@'192.168.10.1' identified by '654321'; flush privileges;

2.1.3 數(shù)據(jù)庫備份設(shè)置

A 、配置主服務(wù)器my.cnf 文件:vi /etc/my.cnf 在[mysqld]塊添加

ignore_builtin_innodb

,

plugin_load=innodb=ha_innodb.so;innodb_trx=ha_innodb.so;innodb_locks=ha_innodb.so;innodb_lock_waits=ha_innodb.so;innodb_cmp=ha_innodb.so;innodb_cmp_reset=ha_innodb.so;innodb_cmpmem=ha_innodb.so;innodb_cmpmem_reset=ha_innodb.so

指用二進(jìn)制的形式記錄日志

server-id=1 服務(wù)器的ID

log-bin=mysql-bin 日志文件的名稱

binlog-do-db=T_SIP,T_USER 記錄日志的數(shù)據(jù)庫

binlog-ignore-db=mysql,test, information_schema 不記錄日志的數(shù)據(jù)庫

innodb_data_home_dir = /apps/mysql/lib/

innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend

innodb_log_group_home_dir = /apps/mysql/lib/

# You can set .._buffer_pool_size up to 50 - 80

# of RAM but beware of setting memory usage too high

innodb_buffer_pool_size = 128M

innodb_additional_mem_pool_size = 20M

# Set .._log_file_size to 25 of buffer pool size

innodb_log_file_size = 64M

innodb_log_buffer_size = 8M

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

B 、配置從服務(wù)器my.cnd 文件:vi /etc/my.cnf 在[mysqld]塊添加

ignore_builtin_innodb

plugin_load=innodb=ha_innodb.so;innodb_trx=ha_innodb.so;innodb_locks=ha_innodb.so;innodb_lock_waits=ha_innodb.so;innodb_cmp=ha_innodb.so;innodb_cmp_reset=ha_innodb.so;innodb_cmpmem=ha_innodb.so;innodb_cmpmem_reset=ha_innodb.so

指用二進(jìn)制的形式記錄日志

Server-id=2 //設(shè)置數(shù)據(jù)庫id 默認(rèn)主服務(wù)器是1可以隨便設(shè)置但是如果有多臺(tái)從服務(wù)器則不能重復(fù)。

Master-host=192.168.10.1 //主服務(wù)器的IP 地址或者域名

Master-port=3306 //主數(shù)據(jù)庫的端口號(hào)

Master-user=ccc //同步數(shù)據(jù)庫的用戶

Master-password=654321 //同步數(shù)據(jù)庫的密碼

master-connect-retry=60 //如果從服務(wù)器發(fā)現(xiàn)主服務(wù)器斷掉,重新連接的時(shí)間差 report-host=192.168.10.2 //報(bào)告錯(cuò)誤的服務(wù)器

innodb_data_home_dir = /apps/mysql/lib/

innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend

innodb_log_group_home_dir = /apps/mysql/lib/

# You can set .._buffer_pool_size up to 50 - 80

# of RAM but beware of setting memory usage too high

innodb_buffer_pool_size = 128M

innodb_additional_mem_pool_size = 20M

# Set .._log_file_size to 25 of buffer pool size

,

innodb_log_file_size = 64M

innodb_log_buffer_size = 8M

innodb_flush_log_at_trx_commit = 1

innodb_lock_wait_timeout = 50

對(duì)/etc/my.cnf文件設(shè)置完成之后看mysql 服務(wù)是否可以啟動(dòng),如可以啟動(dòng)那說明沒問題了,如果不能啟動(dòng)說my.cnf 文件設(shè)置有問題。

C 、備份主服務(wù)器數(shù)據(jù)庫,導(dǎo)入到從服務(wù)器中 (主服務(wù)器操作以下命令)

備份之前先鎖定數(shù)據(jù)庫,使用mysql 命令進(jìn)入mysql 數(shù)據(jù)庫控制臺(tái)

FLUSH TABLES WITH READ LOCK; 鎖定數(shù)據(jù)庫

unlock tables; 解除鎖定

show master status; 查看主服務(wù)器的二進(jìn)制日志名稱和偏移量,如下圖:

日志名稱:mysql-bin.000001

偏移量:106

到這界面不用動(dòng)了,另外打開一個(gè)窗口進(jìn)行備份數(shù)據(jù)庫。

Cd /apps/mysql/lib 這是數(shù)據(jù)庫存儲(chǔ)目錄

Tar –zcvf 123.tgz ib* T_SIP T_USER

Scp 123.tgz

D 、設(shè)置從服務(wù)器的二進(jìn)制日志和偏移量

覆蓋主服務(wù)器拷貝過來的數(shù)據(jù)庫和記錄文件

Cd /apps/mysql/lib

Tar –zxvf 123.tgz

使用mysql 命令進(jìn)入mysql 數(shù)據(jù)庫控制臺(tái):

slave stop; 停止slave 的服務(wù):

Change master to master_log_file='mysql-bin-000001',master_log_pos=106;

Slve stop; 啟動(dòng)slave 服務(wù)

在主服務(wù)器查看狀態(tài)和信息

防火墻設(shè)置:udp654

-A RH-Firewall-1-INPUT -p udp -m udp –dport 694 -d 10.0.0.201 -j ACCEPT

標(biāo)簽: