老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

mysql的主從復(fù)制如何配置

這篇文章給大家分享的是有關(guān)MySQL的主從復(fù)制如何配置的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

十余年的峰峰礦網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整峰峰礦建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“峰峰礦網(wǎng)站設(shè)計(jì)”,“峰峰礦網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

數(shù)據(jù)庫復(fù)制對于系統(tǒng)高可用、高性能的提升扮演者很重要的角色。

1 主庫配置
1.1 my.cnf配置:

在主庫配置文件my.cnf中進(jìn)行如下基本配置:

log-bin  =  mysql-bin //二進(jìn)制日志文件名稱主體
log-bin-index  =  mysql-bin.index //二進(jìn)制日志文件索引文件
server-id  =  1 //唯一的服務(wù)器ID,為了保持唯一性,可以去ip的尾部
binlog-format  =  mixed //控制復(fù)制基于的方式,有基于語句(statement),基于行(row),混合(mixed),**主從庫需要保持一致**
#sync_binlog=1 //推薦配置,開啟該選項(xiàng),mysql每次在事務(wù)提交前會將二進(jìn)制日志同步到磁盤上,保證在服務(wù)器崩潰時不會丟失事件。

默認(rèn)復(fù)制全部數(shù)據(jù)庫,如果需要指定數(shù)據(jù)庫,請參照第7節(jié)(復(fù)制過濾)。

比如說要指定db1和db2兩個數(shù)據(jù)庫進(jìn)行主從復(fù)制:
binlog-do-db = db1
binlog-do-db = db2
1.2 添加復(fù)制賬戶:

復(fù)制賬戶添加以及權(quán)限設(shè)置:

mysql> grant replication slave, replicatin client on \*.\* to repl@'172.16.226.192' identified by 'repl123456'; //其中repl是用戶名,repl123456為賬戶密碼,172.16.226.168為備庫的地址。
mysql> flush privileges; //在不重啟mysql服務(wù)的情況下完成權(quán)限的更新
2 備庫配置

在備庫配置文件my.cnf中進(jìn)行如下基本配置:

relay-log  =  slave-relay-bin //中繼日志文件名稱主體
relay-log-index  =  slave-relay-bin.index //中繼日志文件索引文件
server-id  =  2 //唯一的服務(wù)器ID,必須要異于主庫
#read_only = 1 //限制備庫為只讀,可選
log_slave_updates = 1 //控制是否在中繼日志執(zhí)行之后,將同步過來的數(shù)據(jù)添加到自己的binlog中去,1代表是
skip_slave_start // 該選項(xiàng)能夠阻止備庫在崩潰后自動啟動復(fù)制,建議開啟
即使開啟了建議的選項(xiàng),備庫仍然可能在崩潰后被中斷,因?yàn)閙aster.info和中級日志文件都不是崩潰安全的,所以建議開啟一下選項(xiàng):
sync_master_info     = 1
sync_relay_log       = 1
sync_relay_log_info  = 1

同樣可以過濾待同步的數(shù)據(jù)庫,或者表,參考復(fù)制過濾一節(jié)。

3 數(shù)據(jù)庫遠(yuǎn)程備份

數(shù)據(jù)庫遠(yuǎn)程備份可以選擇mysqldump(邏輯備份)進(jìn)行熱備,但對于數(shù)據(jù)量較大時會比較慢,Xtrabackup(物理備份)也可以對mysql數(shù)據(jù)庫進(jìn)行熱備(這里使用innobackupex-1.5.1),Xtrabackup可以實(shí)現(xiàn)innoDB等數(shù)據(jù)庫的在線備份,速度較快且不影響正常讀寫。這里對全庫進(jìn)行備份。

3.1 創(chuàng)建備份賬戶

在主服務(wù)器創(chuàng)建用戶backup(使用最小權(quán)限),用于數(shù)據(jù)庫備份。

mysql> grant reload, lock tables, replication client on \*.\* to backup@'%' identified by 'backup123';
mysql> flush privileges; //在不重啟mysql服務(wù)的情況下完成權(quán)限的更新
3.2 數(shù)據(jù)庫完全備份

完全備份和恢復(fù)準(zhǔn)備兩個步驟都是在主庫服務(wù)器完成。

innobackupex-1.5.1 --defaults-file=/etc/mysql/my.cnf --user=backup --password=backup123  /mysqlbackup
--defaults-file:選擇默認(rèn)的配置文件
--user和--password:分別為進(jìn)行備份的用戶名和密碼
/mysqlbackup:目標(biāo)目錄
3.3 恢復(fù)準(zhǔn)備

一般情況下,在備份完成后,數(shù)據(jù)尚且不能用于恢復(fù)操作,因?yàn)閭浞莸臄?shù)據(jù)中可能會包含尚未提交的事務(wù)或已經(jīng)提交但尚未同步至數(shù)據(jù)文件中的事務(wù)。因此,此時數(shù)據(jù)文件仍處理不一致狀態(tài)。“準(zhǔn)備”的主要作用正是通過回滾未提交的事務(wù)及同步已經(jīng)提交的事務(wù)至數(shù)據(jù)文件也使得數(shù)據(jù)文件處于一致性狀態(tài)。
innobakupex命令的--apply-log選項(xiàng)可用于實(shí)現(xiàn)上述功能。如下面的命令:

innobackupex-1.5.1 --apply-log --user=backup --password=backup123  /mysqlbackup/2017-01-11_21-20-57
如果執(zhí)行正確,其最后輸出的幾行信息通常如下:
xtrabackup: starting shutdown with innodb_fast_shutdown = 1
120407  9:01:36  InnoDB: Starting shutdown...
120407  9:01:40  InnoDB: Shutdown completed; log sequence number 92036620
120407 09:01:40  innobackupex: completed OK!

在實(shí)現(xiàn)“準(zhǔn)備”的過程中,innobackupex通常還可以使用--use-memory選項(xiàng)來指定其可以使用的內(nèi)存的大小,默認(rèn)通常為100M。如果有足夠的內(nèi)存可用,可以多劃分一些內(nèi)存給prepare的過程,以提高其完成速度。

3.4 數(shù)據(jù)拷貝

將主服務(wù)器上準(zhǔn)備好的數(shù)據(jù)庫拷貝到從服務(wù)器。(當(dāng)然也可以打包后再拷貝)

scp -r /mysqlbackup/ copyer@192.168.1.192:/data/
3.5 數(shù)據(jù)恢復(fù)

在數(shù)據(jù)恢復(fù)之前首先關(guān)閉從服務(wù)器mysql服務(wù),并從備份文件夾中的xtrabackup_binlog_info文件中獲取當(dāng)前正在使用的二進(jìn)制日志文件,以及備份這一刻為止二進(jìn)制日志事件的位置。如果datadir目錄不為空,還需要清空datadir目錄。
innobackupex命令的--copy-back選項(xiàng)用于執(zhí)行恢復(fù)操作,其通過復(fù)制所有數(shù)據(jù)相關(guān)的文件至mysql服務(wù)器datadir目錄中來執(zhí)行恢復(fù)過程。innobackupex通過backup-my.cnf來獲取datadir目錄的相關(guān)信息(也可以通過--defaults-file指定my.cnf目錄,還要確保datadir路徑為空)

innobackupex-1.5.1 --copy-back  /mysqlbackup
如果執(zhí)行正確,其輸出信息的最后幾行通常如下:
innobackupex: Starting to copy InnoDB log files
innobackupex: in '/backup/2012-04-07_08-17-03'
innobackupex: back to original InnoDB log directory '/mydata/data'
innobackupex: Finished copying back files.
120407 09:36:10  innobackupex: completed OK!

請確保如上信息的最后一行出現(xiàn)“innobackupex: completed OK!”。

當(dāng)數(shù)據(jù)恢復(fù)至datadir目錄以后,還需要確保所有數(shù)據(jù)文件的屬主和屬組均為正確的用戶,如mysql,否則,在啟動mysqld之前還需要事先修改數(shù)據(jù)文件的屬主和屬組。如:

chown -R  mysql:mysql  /var/lib/mysql/
4 主從連接
4.1 開啟從數(shù)據(jù)庫
service mysql start

如果開啟mysql失敗,可以通過查看錯誤日志尋找失敗原因。

4.2 建立主從連接

從庫通過復(fù)制賬戶連接到主庫:(slave必須處于stop狀態(tài)才能使以下連接生效)

mysql> change master to master_host='192.168.1.208',master_user='repl',
master_password='repl123456',master_log_file='mysql-bin.000001'(備份時得到的活動日志),master_log_pos=0(備份時得到的活動日志中事件的位置);

注:如果這里在進(jìn)行主從連接的時候一直連不上master,有一個可能的原因是my.cnf配置文件中綁定了本機(jī),即bind-address = 127.0.0.1,我們要做的就是將其注釋掉,否則外部機(jī)器是訪問不了的。

開啟slave:

mysql> start slave;

查看slave狀態(tài),可以發(fā)現(xiàn)IO線程和SQL線程已處于開啟狀態(tài),有非常多表征從庫連接狀態(tài)的變量(這些變量同樣可以用于設(shè)置主從監(jiān)控),在這里不一一做介紹。

mysql> show slave status;

Slave_IO_Running: Yes  //表示IO線程運(yùn)行正常
Slave_SQL_Running: Yes  //表示SQL線程運(yùn)行正常
Seconds_Behind_Master: 0  //表示在網(wǎng)絡(luò)條件較好的情況下,從庫能夠及時同步上主庫
4.3 常用監(jiān)控命令
mysql> show processlist\G; //查看數(shù)據(jù)庫服務(wù)線程情況
mysql> show master/slave status\G; //查看主備庫狀態(tài)
mysql> flush logs; //強(qiáng)制輪換(rotate)二進(jìn)制日志,從而得到一個完整的二進(jìn)制日志文件
mysql> show binlog events in '指定二進(jìn)制日志文件名稱'  from (從指定位置開始顯示) limit (需要顯示的事件數(shù)量)\G; //查看binlog中事件
mysql> show binary logs; //顯示所有的binlogs
mysql> reset master; //刪除所有二進(jìn)制日志文件并清空索引文件
mysql> reset slave; //刪除slave上復(fù)制用的所有文件重新開始
mysql> show slave hosts;  //查看主庫所擁有的從庫信息

mysql的主從復(fù)制如何配置

5 從庫延遲較大

如果發(fā)現(xiàn)從庫延遲較大,就需要找到延遲大的原因。參數(shù) innodb_flush_log_at_trx_commit對mysql的寫入效率影響較大,有三個取值:

0:每隔一秒,把事務(wù)日志緩存區(qū)的數(shù)據(jù)寫到日志文件中,以及把日志文件的數(shù)據(jù)刷新到磁盤上;
1:每個事務(wù)提交時候,把事務(wù)日志從緩存區(qū)寫到日志文件中,并且刷新日志文件的數(shù)據(jù)到磁盤上;
2:每事務(wù)提交的時候,把事務(wù)日志數(shù)據(jù)從緩存區(qū)寫到日志文件中;每隔一秒,刷新一次日志文件,但不一定刷新到磁盤上,而是取決于操作系統(tǒng)的調(diào)度;

取1時的IO耗費(fèi)最大,雖然一致性和完整性方面效果最好,但是寫入效率最低,而這也是導(dǎo)致從庫延遲較大的原因(如果服務(wù)器配置較高或許會好些)。取0時mysql寫入性能很好,但如果 mysqld 進(jìn)程崩潰,通常會導(dǎo)致最后 1s 的日志丟失 。取2時的寫入性能也很好,每次事務(wù)提交會寫入日志文件,但并不會立即刷寫到磁盤,日志文件會每秒刷寫一次到磁盤。這時如果 mysqld 進(jìn)程崩潰,由于日志已經(jīng)寫入到系統(tǒng)緩存,所以并不會丟失數(shù)據(jù);在操作系統(tǒng)崩潰的情況下,通常會導(dǎo)致最后 1s 的日志丟失。

6 混合模式復(fù)制

正常情況下使用使用基于語句的復(fù)制,而對不安全的語句則切換到基于行的復(fù)制。主要有以下幾種情況:

  1. 該語句調(diào)用了:
    • UUID函數(shù)
    • 用戶自定義函數(shù)
    • CURRENT_USER或USER函數(shù)
    • LOAD_FILE函數(shù)
  2. 一個語句同時更新了兩個或者兩個以上含有AUTO_INCREMENT列的表
  3. 語句使用了服務(wù)器變量
  4. 存儲引擎不允許使用基于語句的復(fù)制,例如,mysql cluster引擎
7 復(fù)制過濾

有時候我們不需要對數(shù)據(jù)庫中所有的庫進(jìn)行復(fù)制,或者不想對指定庫中的某些表進(jìn)行復(fù)制操作,那么我們就需要對復(fù)制進(jìn)行一定的過濾配置,以達(dá)到更合理的復(fù)制效果。

1. 基于master
**binlog-do-db=mysql**:主庫只是將指定庫(mysql)發(fā)生的變化記錄到二進(jìn)制日志中。
**binlog-ignore-db=mysql**:主庫取消將指定庫(mysql)發(fā)生的變化記錄到二進(jìn)制日志中。
2. 基于slave

針對數(shù)據(jù)庫進(jìn)行的過濾:

**replicate-do-db=mysql**:從庫只是將指定庫(mysql)發(fā)生的變化進(jìn)行重現(xiàn)。
**replicate-ignore-db=mysql**:從庫取消將指定庫(mysql)發(fā)生的變化進(jìn)行重現(xiàn)。
針對表進(jìn)行的過濾:
**replicate-wild_do-table=mysql.learn**:從庫只是將指定庫(mysql)中指定表(learn)發(fā)生的變化進(jìn)行重現(xiàn)。
**replicate-wild_ignore-table=mysql.learn**:從庫取消將指定庫(mysql)中指定表(learn)發(fā)生的變化進(jìn)行重現(xiàn)。

以上復(fù)制過濾方式乍一看沒有問題,其實(shí)還是有需要注意的地方。因?yàn)檫@些過濾方式的效果與復(fù)制方式有關(guān)系。如果是基于語句的復(fù)制,binlog-do-db、binlog-ignore-db、replicate-do-db、replicate-ignore-db與跨庫(如use庫內(nèi)和use外)有關(guān)系,這一點(diǎn)需要注意。

8 日志清理
暴力清理:(沒有主從復(fù)制的情況下)
1、重啟mysql服務(wù)器即可關(guān)閉bin日志的記錄
2、通過reset master命令進(jìn)行清理
條件清理

如果存在主從復(fù)制關(guān)系,則應(yīng)當(dāng)使用purge的方式來清理bin日志,語法如下:

purge {master|binary} logs to 'log_name'
purge {master|binary} logs before 'date'

用戶刪除列于在指定的日志或日期之前的日志索引中的所有二進(jìn)制日志,同時這些日志也會從日志索引文件的清單中刪除。

eg.
purge master logs to 'mysql-bin.000005';
purge master logs before '2014-08-30 00:00:00';//清除指定日期之前的日志
purge master logs before date_sub(now(),Interval 3 day);清除三天前的日志
定時清理

參數(shù):expire_logs_days
說明:二進(jìn)制日志自動刪除/過期的天數(shù)。默認(rèn)值為'0',即沒有過期的
示例:expire_logs_days = 5,代表日志的有效時間為5天
什么時候會刪除過期日志?

每次進(jìn)行l(wèi)og flush的時候會自動刪除過期的日志

什么時候會觸發(fā)log flush?

1、重啟
2、binlog文件的大小達(dá)到了最大限制
3、手動執(zhí)行flush logs命令

感謝各位的閱讀!關(guān)于mysql的主從復(fù)制如何配置就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


分享標(biāo)題:mysql的主從復(fù)制如何配置
標(biāo)題鏈接:http://www.xueling.net.cn/article/poocos.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 亚洲精品无码永久在线观看 | 不卡在线一区2区三区 | 伊伊人成亚洲综合人网7777 | 国产素人街头搭讪久久久 | 99国产精品久久一区二区三区 | 久久网伊人 | 亚洲av毛片成人精品 | 乌克兰少妇videos高潮 | 无遮挡国产高潮视频免费观看 | 日本夜夜精 | 久久香蕉国产线看观看亚洲小说 | 全黄一级播放 | 日韩爱爱片| 性高湖久久久久久久久 | 国产51人人成人人人人爽色哟哟 | av在线| 色综合久久夜色精品国产AV | 久久精品国产亚洲香蕉 | 日本免费观看一区久久久 | 在线视频免费观看国产 | 欧美成人一区二区三区在线观看 | 国产区二区三区 | 女人和公猪交内射网站 | 熟睡中被义子侵犯在线播放 | 99精品99| 97夜夜模夜夜爽夜夜喊 | 国产精品18久久久久白浆 | 小13箩利洗澡无码视频免费网站 | av人在线观看 | 一区二区三区国产美女在线播放 | 精品国产乱码久久久久乱码 | 国产美女免费网站 | 国语少妇高潮对白在线 | 91影视在线免费观看 | 午夜久久久久久久久久影院 | 亚州日本乱码一区二区三区 | 色777狠狠狠综合伊人 | 欧美精品国产一区二区三区 | 九一视频免费在线观看 | 殴美在线| 保守人妻被领导征服身体 |