SUSE系統(tǒng)下數(shù)據(jù)庫(kù)源碼安裝以及mysql主從復(fù)制指引(多實(shí)例)_第1頁(yè)
SUSE系統(tǒng)下數(shù)據(jù)庫(kù)源碼安裝以及mysql主從復(fù)制指引(多實(shí)例)_第2頁(yè)
SUSE系統(tǒng)下數(shù)據(jù)庫(kù)源碼安裝以及mysql主從復(fù)制指引(多實(shí)例)_第3頁(yè)
SUSE系統(tǒng)下數(shù)據(jù)庫(kù)源碼安裝以及mysql主從復(fù)制指引(多實(shí)例)_第4頁(yè)
SUSE系統(tǒng)下數(shù)據(jù)庫(kù)源碼安裝以及mysql主從復(fù)制指引(多實(shí)例)_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、中麥通訊業(yè)務(wù)支撐系統(tǒng)(BSS)數(shù)據(jù)庫(kù)實(shí)施手冊(cè)1.項(xiàng)目目標(biāo)32.總體設(shè)計(jì)32.1主機(jī)設(shè)備32.2主機(jī)數(shù)據(jù)庫(kù)IP43.環(huán)境準(zhǔn)備43.1操作系統(tǒng)43.1.1數(shù)據(jù)庫(kù)主機(jī)OS補(bǔ)丁要求43.1.2主機(jī)參數(shù)43.1.3文件系統(tǒng)劃分53.1.4用戶設(shè)計(jì)53.2數(shù)據(jù)庫(kù)軟件63.2.1數(shù)據(jù)庫(kù)補(bǔ)丁要求63.2.2數(shù)據(jù)庫(kù)安全補(bǔ)丁要求63.3其他軟件環(huán)境:63.4硬件環(huán)境63.5網(wǎng)絡(luò)需求64數(shù)據(jù)庫(kù)安裝配置64.1安裝64.2半同步配置74.3配置文件(多實(shí)例)74.4數(shù)據(jù)庫(kù)同步賬號(hào)及監(jiān)控賬號(hào)配置104.5數(shù)據(jù)同步配置115.MHA安裝配置125.1安裝MHA125.2配置MHA Manager135.3配置Linux用

2、戶145.4配置MySQL用戶145.5配置VIP切換腳本156.MHA檢查命令及參考輸出176.1MHA檢查SSH配置masterha_check_ssh176.2檢查主從配置masterha_check_repl186.3啟動(dòng)MHA Manager206.4檢查MHA運(yùn)行狀態(tài)masterha_check_status206.5手工切換主從masterha_master_switch206.6關(guān)閉MHA Manager命令masterha_stop256.7刪除過(guò)期的中繼日志purge_relay_logs266.8主從切換的日志267.數(shù)據(jù)庫(kù)實(shí)例配置327.1數(shù)據(jù)庫(kù)server配置327.

3、2權(quán)限設(shè)定327.2.1角色規(guī)劃327.2.2用戶及權(quán)限328.安全加固328.1刪除默認(rèn)用戶,修改root密碼328.2用戶DDL權(quán)限控制328.3禁止域名解析338.4按程序和服務(wù)器功能嚴(yán)格控制用戶權(quán)限338.5禁止在Linux命令行中明文輸入任何用戶名及密碼;338.6控制訪問(wèn)權(quán)限保護(hù)數(shù)據(jù)庫(kù)文件安全;331. 項(xiàng)目目標(biāo)中麥通訊業(yè)務(wù)支撐系統(tǒng)預(yù)計(jì)到2015年底支撐300萬(wàn)用戶數(shù),包括CRM、計(jì)費(fèi)、賬務(wù)、接口、微廳、短廳等業(yè)務(wù)功能模塊。將系統(tǒng)建設(shè)成高可用、高可靠、高可維護(hù)、高穩(wěn)定性系統(tǒng)。2. 總體設(shè)計(jì)為了系統(tǒng)資源的高可用性以及數(shù)據(jù)庫(kù)的高冗余性,所以采用主流MHA,在該環(huán)境中,MySQL為主從關(guān)

4、系,這樣就保證了兩臺(tái)MySQL數(shù)據(jù)的一致性,用MHA提供業(yè)務(wù)虛擬IP,通過(guò)MHA自帶的服務(wù)監(jiān)控功能來(lái)實(shí)現(xiàn)MySQL故障時(shí)自動(dòng)切換。結(jié)構(gòu)分布圖如下:2.1主機(jī)設(shè)備設(shè)備型號(hào)IP說(shuō)明DB1HP DL580 G7192.168.100.24CPU/64GRAMDB2HP DL580 G7192.168.100.34CPU/64GRAM2.2主機(jī)數(shù)據(jù)庫(kù)IP主機(jī)名類型IPDB-PC-HP-DL580G7-1主機(jī)IP192.168.100.2DB-PC-HP-DL580G7-2主機(jī)IP192.168.100.3vip192.168.100.13. 環(huán)境準(zhǔn)備3.1操作系統(tǒng)3.1.1數(shù)據(jù)庫(kù)主機(jī)OS補(bǔ)丁要求數(shù)據(jù)庫(kù)

5、主機(jī)操作系統(tǒng)采用的是SUSE Linux Enterprise Server 11 SP2  (x86_64) 版本。支持Mysql 5.6.15(社區(qū)版)數(shù)據(jù)庫(kù)軟件安裝,無(wú)需安裝OS補(bǔ)丁。3.1.2主機(jī)參數(shù)為了保證Mysql的正常運(yùn)行,需要調(diào)整部分OS內(nèi)核參數(shù)。參數(shù)調(diào)整時(shí),需要考慮以下情況:為了能在其中一臺(tái)數(shù)據(jù)庫(kù)主機(jī)出現(xiàn)故障時(shí),另外一臺(tái)主機(jī)能臨時(shí)接管所有的應(yīng)用連接。具體參數(shù)調(diào)整建議如下:#vi /etc/sysctl.confkernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem

6、 = 250 32000 100 128fs.file-max = 65536net.ipv4.ip_local_port_range = 9000 65000net.core.rmem_default = 4194304net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 262144#sysctl p 使生效3.1.3文件系統(tǒng)劃分在/目錄下創(chuàng)建:文件系統(tǒng)名稱Vg文件系統(tǒng)大?。℅)文件系統(tǒng)使用說(shuō)明/dataDatavg300用于存放數(shù)據(jù)庫(kù)文件/logLogvg100用于存放數(shù)據(jù)庫(kù)日志文件3.1

7、.4用戶設(shè)計(jì)用戶設(shè)計(jì)原則如下:Ø 用戶分層至少包含系統(tǒng)管理(超級(jí)用戶)、數(shù)據(jù)屬主、程序運(yùn)行、維護(hù)監(jiān)控等用戶層次,不同的平臺(tái)軟件、應(yīng)用軟件及維護(hù)人員使用不同的用戶。Ø 權(quán)限與角色l 權(quán)限分層:分為系統(tǒng)權(quán)限和數(shù)據(jù)權(quán)限,根據(jù)系統(tǒng)管理和應(yīng)用程序?qū)嶋H需要賦予相應(yīng)權(quán)限l 最小權(quán)限原則:對(duì)于數(shù)據(jù)庫(kù)用戶,賦予滿足其要求的最小的權(quán)限集l 普通用戶不得授予DBA角色l 普通用戶盡量不賦予“ANY”權(quán)限Ø 用戶口令策略l 口令有效期:90 天l 口令失效后第一次用它成功登錄之后 5天內(nèi)可以更改此口令l 口令歷史保留紀(jì)錄 5 次l 口令歷史保留時(shí)間 180 天l 口令復(fù)雜性-長(zhǎng)度大于等于

8、 8l 口令復(fù)雜性-必需包含字母、數(shù)字、字符l 登陸失敗 5 次之后鎖定用戶l 登陸失敗鎖定用戶時(shí)間:7200天3.2數(shù)據(jù)庫(kù)軟件3.2.1數(shù)據(jù)庫(kù)補(bǔ)丁要求截至2014-2-25日,暫無(wú)建議安裝的MySQL Community Server 5.6.15的補(bǔ)丁。3.2.2數(shù)據(jù)庫(kù)安全補(bǔ)丁要求截至2014-2-25日,暫無(wú)建議安裝的MySQL Community Server 5.6.15的安全補(bǔ)丁。3.3其他軟件環(huán)境: 操作系統(tǒng):SUSE Linux Enterprise Server 11 SP2  (x86_64)高可用軟件: keepalived-1.2.9數(shù)據(jù)庫(kù):Mysql 5.6

9、.15(社區(qū)版) 3.4硬件環(huán)境內(nèi)存空間需求 至少64G物理內(nèi)存3.5網(wǎng)絡(luò)需求1. 每個(gè)節(jié)點(diǎn)必須有至少4個(gè)光口+4個(gè)電口2. 分別做公有和私有接口3、網(wǎng)口必須一致,如兩臺(tái)主機(jī)均為ETH0。4數(shù)據(jù)庫(kù)安裝配置4.1安裝SUSE系統(tǒng)默認(rèn)安裝mysql 5.0.94,請(qǐng)先卸載。rpm qa|grep mysqlrpm -e mysql-4.1.20-2.RHEL4.1.i386 -nodeps建mysql用戶mysql組#useradd m mysql#groupadd mysql#usermod g mysql mysql修改文件所屬組chown -R mysql:mysql /datachown

10、-R mysql:mysql /logmkdir /usr/local/mysqlchown R mysql:mysql /usr/local/mysql安裝編譯軟件cmake(mysql5.5以后都是通過(guò)cmake來(lái)編譯的)#tar -zxv -f cmake-2.8.5.tar.gz#cd cmake-2.8.5#./configure(重新編譯時(shí),需要清除舊的對(duì)象文件和緩存信息 # make clean # rm -f  CMakeCache.txt)#make#make install從官網(wǎng)下載軟件包mysql-5.6.15.tar.gz,上傳到主機(jī)上進(jìn)行

11、解壓:#tar zxvf mysql-5.6.15.tar.gz#cd mysql-5.6.15cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DMYSQL_DATADIR=/data -DCOMMUNITY_BUILD=ON -DFEATURE_SET=community -DENABLED_PROFILING=ON -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=

12、1 -DWITHOUT_PERFSCHEMA_STORAGE_ENGINE=0 -DENABLED_LOCAL_INFILE=1 -DMYSQL_TCP_PORT=5393 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_SSL=bundled -DWITH_EMBEDDED_SERVER=OFF -DWITH_READLINE=1 -DWITH_DEBUG=ON -DENABLE_DOWNLOADS=0#make -j8#make install4.2半同步

13、配置MHA需要半同步配置來(lái)輔助。半同步插件是隨著源碼發(fā)行和自動(dòng)編譯的,所以我們只需要把它加載起來(lái),再配置好即可。首先在運(yùn)行起來(lái)的MySQL實(shí)例里運(yùn)行如下命令加載插件:INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so'然后就是配置。在f文件中加入如下三行即可(已在配置中體現(xiàn)):rpl_semi_sync_master_enabled=1rpl_semi_sync_mas

14、ter_timeout=1000 # 1 secondrpl_semi_sync_slave_enabled=14.3配置文件(多實(shí)例)主服務(wù)器:vi /etc/fmysqld_multimysqld = /usr/local/mysql/bin/mysqld_safesocket = /data/dbdata_5393/mysql.sockmysqladmin = /usr/local/mysql/bin/mysqladminuser = mysqlpassword = Mysql12#mysqldsocket = /data/dbdata_5393/mysql.sockport = 539

15、3server-id=1log-bin=/log/log_5393/binlogskip-federatedmysqld1socket = /data/dbdata_5393/mysql.sockport = 5393pid-file = /data/dbdata_5393/5393.piddatadir = /data/dbdata_5393log_bin= /log/log_5393/binloglog_bin_index=/log/log_5393/binlog_indexmax_binlog_size=100Mlog_error=/log/log_5393/error.loggener

16、al_log=1general_log_file=/log/log_5393/general.logtmpdir= /data/tmpsync_binlog=1slave_skip_errors=10,071,062master-info-repository=TABLErelay_log=/mnt/disk1/mysql_6708_binlog/relaylogrelay_log_index=/mnt/disk1/mysql_6708_binlog/relay.indexrelay_log_purge=0max_relay_log_size=100Muser = mysqlskip-name

17、-resolveskip-host-cacheskip-external-lockinglog_output=FILElower_case_table_names=1innodb_file_per_table=1back_log = 50max_connections = 200max_connect_errors = 30table_open_cache = 512max_allowed_packet = 32Mbinlog_cache_size = 32Mmax_heap_table_size = 128Msort_buffer_size = 256Mjoin_buffer_size =

18、8Mthread_cache_size = 64thread_concurrency = 32query_cache_size = 0query_cache_type=1query_cache_limit = 2Mft_min_word_len = 4default-storage-engine = innodbthread_stack = 192Ktransaction_isolation = REPEATABLE-READkey_cache_block_size=1024tmp_table_size = 64Mlog-bin=mysql-binbinlog_format=rowslow_q

19、uery_log=onexpire_logs_days=7log-slow-queries= /log/log_5393/slow.logslow_query_log_file= /log/log_5393/slow.loglong_query_time = 1server-id = 1key_buffer_size = 512Mread_buffer_size = 2Mread_rnd_buffer_size = 2Mbulk_insert_buffer_size = 64Mmyisam_sort_buffer_size = 256Mmyisam_max_sort_file_size = 1

20、00Gmyisam_repair_threads = 1myisam_recoverinnodb_flush_log_at_trx_commit = 1innodb_buffer_pool_size = 40Ginnodb_flush_log_at_timeout=1innodb_log_buffer_size = 16Minnodb_log_file_size = 256Minnodb_log_files_in_group = 4innodb_thread_concurrency = 16innodb_additional_mem_pool_size = 16Minnodb_data_fil

21、e_path = ibdata1:10M:autoextendinnodb_file_io_threads = 8innodb_max_dirty_pages_pct = 60innodb_lock_wait_timeout = 120#binlog-do-db = 數(shù)據(jù)庫(kù)名 (要備份的數(shù)據(jù)庫(kù))#binlog-ignore-db = 數(shù)據(jù)庫(kù)名 (不需要備份的數(shù)據(jù)庫(kù))log-slave-updatesrelay-log=hostname-relay-binrpl_semi_sync_master_enabled=1rpl_semi_sync_master_timeout=1000 # 1 sec

22、ondrpl_semi_sync_slave_enabled=1mysqld1mysqld3mysqldumpquickmax_allowed_packet = 256Mmysqlno-auto-rehashprompt=ud R:m>myisamchkkey_buffer_size = 512Msort_buffer_size = 512Mread_buffer = 8Mwrite_buffer = 8Mmysqlhotcopyinteractive-timeoutmysqld_safeopen_files_limit=2048從服務(wù)器:與主服務(wù)器基本一致,修改server-id =

23、2即可。配置環(huán)境變量#vi /etc/profilePATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib建庫(kù):/usr/local/mysql/scripts/mysql_install_db -user=mysql -basedir=/usr/local/mysql/ -datadir=/data啟動(dòng)數(shù)據(jù)庫(kù),判斷是否安裝成功#su mysql#cd /usr/local/mysql/bin#./mysqld_safe user=mysql &#ps ef |grep mysql#mysql u root mysqlmysqld_sa

24、fe -user=mysql -skip-grant-tables查看狀態(tài)及啟停:mysqld_multi -defaults-file=./etc/f reportmysqld_multi -defaults-file=./etc/f start 1mysqld_multi -defaults-file=./etc/f stop 14.4數(shù)據(jù)庫(kù)同步賬號(hào)及監(jiān)控賬號(hào)配置在192.168.100.2啟動(dòng)mysql服務(wù)器登錄mysql服務(wù)器,添加一個(gè)叫做同步用戶,并授權(quán)給從服務(wù)器如果/data/dbdata_5393目錄下不存在mysql.sock,并確認(rèn)/tmp目錄下存在mys

25、ql.sock,執(zhí)行:#ln -s /tmp/mysql.sock /data/dbdata_5393/mysql.sock# /usr/local/mysql/bin/mysql -u mysql -p -S /data/dbdata_5393/mysql.sock#創(chuàng)建suser用戶,密碼設(shè)置為Zmtx12#,并授權(quán)給192.168.100.3使用。mysql> grant replication slave on *.* to 'suser''192.168.100.3' identified by ' Zmtx12#' mysql&

26、gt;flush privileges; # 刷新mysql>exit在192.168.100.3啟動(dòng)mysql服務(wù)器登錄mysql服務(wù)器,添加一個(gè)叫做同步用戶,并授權(quán)給從服務(wù)器# /usr/local/mysql/bin/mysql u mysql -p -S /data/dbdata_5393/mysql.sock#創(chuàng)建suser用戶,密碼設(shè)置為Zmtx12#,并授權(quán)給192.168.100.2使用。mysql> grant replication slave on *.* to 'suser''192.168.100.2' identified

27、 by ' Zmtx12#' mysql>flush privileges; # 刷新mysql>exit4.5數(shù)據(jù)同步配置在192.168.100.2上登錄mysql:# /usr/local/mysql/bin/mysql u mysql -p -S /data/dbdata_5393/mysql.sockmysql> show master status;+-+-+-+-+-+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+-+-+-+-+-+| mysq

28、l-bin.000001 | 120 | | | |+-+-+-+-+-+1 row in set (0.03 sec)記下File和Position的值在192.168.100.3上登錄mysql:# /usr/local/mysql/bin/mysql u mysql -p -S /data/dbdata_5393/mysql.sockmysql> change master to master_host='192.168.28.137',master_user='suser',master_password='123456#',mas

29、ter_log_file=' binlog.000011',master_log_pos=120;Query OK, 0 rows affected, 2 warnings (0.24 sec)啟動(dòng)slavemysql> start slave;Query OK, 0 rows affected (0.06 sec)檢查同步狀態(tài),加黑字體為Yes,同步狀態(tài)正常mysql> show slave statusG* 1. row * Slave_IO_State: Waiting for master to send event Master_Host: 192.168

30、.100.2 Master_User: suser Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 120 Relay_Log_File: 192.168.100.3-relay-bin.000002 Relay_Log_Pos: 283 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: Replicate_I

31、gnore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: .5.MHA安裝配置MHA是一套MySQL故障切換方案,來(lái)保證數(shù)據(jù)庫(kù)系統(tǒng)的高可用.在宕機(jī)的時(shí)間內(nèi)(通常1030秒內(nèi)),完成故障切換,部署MHA,可避免主從一致性問(wèn)題,不影響服務(wù)器性能,易安裝,不改變現(xiàn)有部署。有點(diǎn)如下:1、 master自動(dòng)監(jiān)控和故障轉(zhuǎn)移在當(dāng)前已存在的主從復(fù)制環(huán)境中,MHA可以監(jiān)控master主機(jī)故障,并且故障自動(dòng)轉(zhuǎn)移。2、 互動(dòng)(手動(dòng))master故障轉(zhuǎn)移MHA可以用來(lái)只做故障轉(zhuǎn)移,而不監(jiān)測(cè)master,MHA只作為故障

32、轉(zhuǎn)移的交互。3、 在線切換master到不同主機(jī)1235.1安裝MHA安裝MHA過(guò)程為先卸載掉系統(tǒng)自帶的Perl-5.10,再安裝Perl-5.12.3,再安裝MHA相關(guān)軟件包。對(duì)于MHA Node節(jié)點(diǎn),安裝到Node完成即可。對(duì)于MHA Manager節(jié)點(diǎn),要全部安裝。rpm -e perl-base-5.10.0-64.55.1 nodepsrpm -e perl-5.10.0-64.55.1 nodeps執(zhí)行 chkconfig pliance offrpm -ivh perl-base-5.12.3-11.14.1.x86_64.rpm rpm -ivh libdb-4_8-4.8.3

33、0-2.4.x86_64.rpmrpm -U zlib-1.2.5-8.1.x86_64.rpmrpm -ivh perl-5.12.3-11.14.1.x86_64.rpmrpm -e perl-DBI-1.607-1.16.x86_64 -nodepsrpm -ivh perl-DBI-1.616-4.1.x86_64.rpmrpm -ivh perl-Data-ShowTable-3.3-719.1.x86_64.rpmrpm -ivh libopenssl1_0_0-1.0.1e-5.1.x86_64.rpmrpm -ivh libmysqlclient16-5.1.67-58.1.x

34、86_64.rpm rpm -ivh perl-DBD-mysql-4.018-4.2.x86_64.rpmrpm -ivh mha4mysql-node-0.54-1.el5.noarch.rpm node成功 rpm -ivh perl-Config-Tiny-2.13-3.1.noarch.rpm rpm -ivh perl-Params-Validate-0.95-8.1.x86_64.rpmrpm -ivh perl-Log-Dispatch-2.29-21.1.noarch.rpm rpm -ivh perl-Parallel-ForkManager-0.7.9-1.1.noarc

35、h.rpm rpm -ivh mha4mysql-manager-0.55-1.el5.noarch.rpm manager成功安裝mha4mysql-manager-0.54.tar.gz#perl Makefile.Pl#make#make install然后還有點(diǎn)庫(kù)路徑配置,主要是為了解決下面的錯(cuò):masterha_check_ssh -conf=/etc/masterha/f Can't locate MHA/SSHCheck.pm in INC (INC contains: /usr/lib/perl5/site_perl/5.12.3/x86_64-linux-thread

36、-multi /usr/lib/perl5/site_perl/5.12.3 /usr/lib/perl5/vendor_perl/5.12.3/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.12.3 /usr/lib/perl5/5.12.3/x86_64-linux-thread-multi /usr/lib/perl5/5.12.3 .) at /usr/bin/masterha_check_ssh line 25.BEGIN failed-compilation aborted at /usr/bin/masterha_c

37、heck_ssh line 25.解決辦法如下:ln -s /usr/lib/perl5/vendor_perl/MHA /usr/lib/perl5/vendor_perl/5.12.3/MHA5.2配置MHA Managermkdir /etc/masterhamkdir -p /masterha/app1cp samples/conf/* /etc/masterha/cat /etc/masterha/f server defaultmanager_workdir=/masterha/app1manager_log=/masterha/app1/manager.loguser=

38、mhapassword=mhaport=5393ssh_user=mharepl_user=suserrepl_password=fqrewqfRFEQWping_interval=1shutdown_script="" master_ip_failover_script="/usr/local/bin/master_ip_failover" master_ip_online_change_script="/usr/local/bin/master_ip_online_change"report_script=""

39、 server1hostname=192.168.100.2master_binlog_dir="/log/log_5393"candidate_master=1server2hostname=192.168.100.3master_binlog_dir="/log/log_5393"candidate_master=1配好后,所有日志都在文件“/masterha/app1/manager.log”中。5.3配置Linux用戶在兩臺(tái)服務(wù)器上都要配相同的Linux用戶,并且加入sudoer,配公鑰。創(chuàng)建用戶:useradd -s /bin/bash -d

40、/home/mha -m mhapasswd mhamha!1234加入sudoer:vi /etc/sudoers在“root ALL=(ALL) ALL”后面加一行:mha             ALL=NOPASSWD:ALL注釋掉Defaults    requiretty這一行,因?yàn)镾SH過(guò)來(lái)沒(méi)有TTY。將mha用戶加入mysql用戶組:usermod -A mysql mha增加相關(guān)目錄及修改權(quán)限:mkdir p /mas

41、terha/app1chown -R mha /masterha/app1mkdir -p /var/tmpchown -R  mha /var/tmpchmod 775 R /log配密鑰,在兩臺(tái)機(jī)器上都生成密鑰,然后傳到另其他服務(wù)器上。su mhassh-keygen -t rsassh-copy-id -i /.ssh/id_rsa.pub mha192.168.100.2 ssh-copy-id -i /.ssh/id_rsa.pub mha192.168.100.35.4配置MySQL用戶每個(gè)MySQL實(shí)例都要向兩臺(tái)機(jī)器做如下授權(quán),一是MHA

42、Manager,在這里是“192.168.100.2”,二是本機(jī)。grant reload, replication client, super on *.* to mha'192.168.100.2' identified by 'mha'grant select,create,insert,update,delete,drop on mysql.* to mha'192.168.100.2' identified by 'mha'flush privileges;5.5配置VIP切換腳本相應(yīng)的處理腳本可以內(nèi)容相同保存兩份,為“

43、/usr/local/bin/master_ip_failover”。并且記得“chmod +x”。#!/usr/bin/env perluse strict;use warnings FATAL => 'all'use Getopt:Long;my ( $command, $ssh_user, $orig_master_host, $orig_master_ip, $orig_master_port, $new_master_host, $new_master_ip, $new_master_port, $new_master_user, $new_master_pas

44、sword );my $vip = '192.168.108.66' # Virtual IPmy $key = "1"my $ssh_start_vip = "sudo /sbin/ifconfig eth0:$key $vip"my $ssh_stop_vip = "sudo /sbin/ifconfig eth0:$key down"GetOptions( 'command=s' => $command, 'ssh_user=s' => $ssh_user, '

45、orig_master_host=s' => $orig_master_host, 'orig_master_ip=s' => $orig_master_ip, 'orig_master_port=i' => $orig_master_port, 'new_master_host=s' => $new_master_host, 'new_master_ip=s' => $new_master_ip, 'new_master_port=i' => $new_master_p

46、ort, 'new_master_user=s' => $new_master_user, 'new_master_password=s' => $new_master_password, );exit &main();sub main print "nnIN SCRIPT TEST=$ssh_stop_vip=$ssh_start_vip=nn" if ( $command eq "stop" | $command eq "stopssh" ) # $orig_master_hos

47、t, $orig_master_ip, $orig_master_port are passed.# If you manage master ip address at global catalog database,# invalidate orig_master_ip here. my $exit_code = 1; eval print "Disabling the VIP on old master: $orig_master_host n" &stop_vip(); $exit_code = 0; ; if ($) warn "Got Erro

48、r: $n" exit $exit_code; exit $exit_code; elsif ( $command eq "start" ) # all arguments are passed.# If you manage master ip address at global catalog database,# activate new_master_ip here.# You can also grant write access (create user, set read_only=0, etc) here. my $exit_code = 10;

49、eval print "Enabling the VIP - $vip on the new master - $new_master_host n" &start_vip(); $exit_code = 0; ; if ($) warn $; exit $exit_code; exit $exit_code; elsif ( $command eq "status" ) print "Checking the Status of the script. OK n" #ssh $ssh_usercluster1 "

50、$ssh_start_vip " exit 0; else &usage(); exit 1; # A simple system call that enable the VIP on the new mastersub start_vip() ssh $ssh_user$new_master_host " $ssh_start_vip "# A simple system call that disable the VIP on the old_mastersub stop_vip() ssh $ssh_user$orig_master_host &q

51、uot; $ssh_stop_vip "sub usage print "Usage: master_ip_failover -command=start|stop|stopssh|status -orig_master_host=host -orig_master_ip=ip -orig_master_port=port -new_master_host=host -new_master_ip=ip -new_master_port=portn"/usr/local/bin/master_ip_online_change:#!/usr/bin/env perluse strict;use warnings FATAL => 'all'use Getopt:Long;use MHA:DBHelper;my ( $command, $ssh_user, $orig_master_host, $orig_master_ip, $orig_master_port, $new_master_host, $new_master_ip, $new_master_port, $new_master_user, $new_master_password);my $vip = '19

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論