mysql配置詳解-備份-主從-MHA

目錄:

1.備份和恢復
2.主從復制
3.主主復制
4.半同步復制
5.proxysql_讀寫分離
6.MHA

1.備份和恢復

·mysqldump

備份:

mysqldump -E -R –triggers –master-data=2 –flush-logs –single-transaction –databases hellodb > /tmp/backup

恢復:

mysql < /tmp/backup

時間點還原:

mysqlbinlog –start-position=245 /tmp/log.100004 > /tmp/backup

mysql < /tmp/backup

-E:備份指定庫的事件調度器

-R:備份存儲過程和存儲函數

–triggers:備份觸發器

–master-data=2:指定此事件記載的2進制文件開始位置,及哪個文件

–flush-log:滾動一下日志,以方便用二進制日志文件進行時間點還原

–single-transaction:mysqldump熱備時需要執行此選項,備份是啟用一個大的事務完成的備份(在常用的兩種數據庫引擎中,myisam僅支持溫備,innodb支持熱備)

–databases:指定備份哪一個數據庫

·xtrabackup

備份:

innobackupex –databases hellodb /tmp

增量備份:

innobackupex –incremental /tmp/ –incremental-basedir=/tmp/$data

恢復:

innobackupex –redo-only –apply-log /tmp/$data

innobackupex –redo-only –apply-log /tmp/$data –-incremental-dir=/tmp/$data

innobackupex –copy-back /tmp/$data

–databases:指明備份哪個庫,到哪個位置即可

–incremental:指明這次增量備份

–incremental-basedir:指明以那一次為基礎的增量

–incremental-dir:指明增量備份是哪一個

–copy-back:代表還原,要注意的是指明的目錄為完全備份的目錄

2.主從復制

1.編輯/etc/my.cnf文件
主mysql主機操作:
在[mysqld]段的最后面添加如下內容
innodb_file_per_table = ON
skip_name_resolve = ON
server-id = 1
relay-log = relay-log
log-bin = master-log
從mysql主機操作:
在[mysqld]段的最后面添加如下內容
innodb_file_per_table = ON
skip_name_resolve = ON
server-id = 2 # 注意slave2的server-id = 3
relay-log = relay-log
log-bin = master-log
read-only = 1
relay-log-purge = 0
2.授權具有復制權限的用戶,指定master節點
主mysql主機操作:
(1)啟動數據庫
systemctl start mariadb.service
mysql
(2)授權
grant replication slave,replication client on *.* to ‘tom’@’172.16.42.%’ identified by ‘mageedu’;
(3)查看節點
flush privileges;
show master status;
show binlog events in ‘master-log.000003’;
從mysql主機操作:
(1)啟動數據庫
systemctl start mariadb.service
mysql
(2)指定節點
change master to master_host=’172.16.42.1′,master_user=’tom’,master_password=’mageedu’,master_log_file=’master-log.000003′,master_log_pos=245;
(3)啟動節點
start slave;
show slave status\G
select user,host from mysql.user;

3.主主復制:

1.編輯/etc/my.cnf文件
主mysql主機操作:
在[mysqld]段的最后添加以下內容
skip_name_resolve = ON
innodb_file_per_table = ON
server-id = 1 (id號不能跟從服務器相同)
log-bin = master-log (自定義主服務器的二進制日志文件名)
relay-log = slave-log (自定義從服務器的二進制日志文件名)
auto_increment_offset = 1
auto_increment_increment = 2
另個主mysql主機操作:
在[mysqld]段的最后添加以下內容
skip_name_resolve = ON
innodb_file_per_table = ON
server-id = 2
relay-log = slave-log
lob-bin = master-log
auto_increment_offset = 2
auto_increment_increment = 2
2.授權具有復制權限的用戶,指定master節點
主mysql主機操作:
(1)授權
grant replication slave,replication client on *.* to ‘repluser’@’10.1.51.%’ identified by ‘replpasswd’;
(2)先在另個主mysql上查看節點
show master status\G
(3)指定節點
change master to master_host=’10.1.51.50′,master_user=’repluser’,master_password=’replpasswd’,master_log_file=’master-log.000003′,master_log_pos=422;
另個主mysql主機操作:
(1)授權
grant replication slave,replication client on *.* to ‘repluser’@’10.1.51.%’ identified by ‘replpasswd’;
(2)先在另個主mysql上查看節點
show master status\G
(3)指定節點
change master to master_host=’10.1.51.50′,master_user=’repluser’,master_password=’replpasswd’,master_log_file=’master-log.000003′,master_log_pos=422;

4.半同步復制:

1.編輯/etc/my.cnf
主mysql主機操作:
在[mysqld]段的最后添加以下內容
skip_name_resolve = ON
innodb_file_per_table = ON
server-id = 1
log-bin = master-log
從mysql主機操作:
在[mysqld]段的最后添加以下內容
skip_name_resolve = ON
innodb_file_per_table = ON
server-id = 2 (id號不能跟主服務器相同)
relay-log = slave-log (自定義二進制日志文件名)
2.授權具有復制權限的用戶,指定master節點
主mysql主機操作:
systemctl start mariadb.service
mysql
grant replication slave,replication client on *.* to ‘tom’@’172.16.42.%’ identified by ‘mageedu’;
flush privileges;
show master status;
show binlog events in ‘master-log.000003’;
從mysql主機操作:
systemctl start mariadb.service
mysql
change master to master_host=’172.16.42.1′,master_user=’tom’,master_password=’mageedu’,master_log_file=’master-log.000003′,master_log_pos=245;
start slave;
show slave status\G
select user,host from mysql.user;
3.安裝rplsemisync_master插件,并啟用
主mysql主機操作:
mysql
install plugin rpl_semi_sync_master soname ‘semisync_master.so’;
set global rpl_semi_sync_master_enabled = ON;
從mysql主機操作:
mysql
install plugin rpl_semi_sync_slave soname ‘semisync_slave.so’;
set global rpl_semi_sync_slave_enabled = ON;
start slave;

5.proxysql_讀寫分離:

1.下載安裝
wget -c ftp://172.16.0.1/pub/Sources/7.x86_64/proxysql/proxysql-1.3.6-1-centos7.x86_64.rpm
yum install proxysql-1.3.6-1-centos7.x86_64.rpm -y
yum -y install mariadb-server
2.編輯配置文件
vim /etc/proxysql.cnf
datadir=”/var/lib/proxysql”
admin_variables=
{
admin_credentials=”admin:admin”
mysql_ifaces=”127.0.0.1:6032;/tmp/proxysql_admin.sock”
}
mysql_variables=
{
threads=4
max_connections=2048
default_query_delay=0
default_query_timeout=36000000
have_compress=true
poll_timeout=2000
interfaces=”0.0.0.0:3306;/tmp/mysql.sock”
default_schema=”information_schema”
stacksize=1048576
server_version=”5.5.30″
connect_timeout_server=3000
monitor_history=600000
monitor_connect_interval=60000
monitor_ping_interval=10000
monitor_read_only_interval=1500
monitor_read_only_timeout=500
ping_interval_server=120000
ping_timeout_server=500
commands_stats=true
sessions_sort=true
connect_retries_on_failure=10
}
mysql_servers =
(
{
address = “172.18.0.67” # no default, required . If port is 0 , address is interpred as a Unix Socket Domain
port = 3306 # no default, required . If port is 0 , address is interpred as a Unix Socket Domain
hostgroup = 0 # no default, required
status = “ONLINE” # default: ONLINE
weight = 1 # default: 1
compression = 0 # default: 0
},
{
address = “172.18.0.68”
port = 3306
hostgroup = 1
status = “ONLINE” # default: ONLINE
weight = 1 # default: 1
compression = 0 # default: 0
},
{
address = “172.18.0.69”
port = 3306
hostgroup = 1
status = “ONLINE” # default: ONLINE
weight = 1 # default: 1
compression = 0 # default: 0
}
)
mysql_users:
(
{
username = “root”
password = “mageedu”
default_hostgroup = 0
max_connections=1000
default_schema=”mydb”
active = 1
}
)
mysql_replication_hostgroups=
(
{
writer_hostgroup=0
reader_hostgroup=1
}
)
3.啟動服務

service proxysql start

6.MHA:

1.準備基于ssh互相通信環境
ssh-keygen -t rsa -P ” #創建私鑰
cat .ssh/id_rsa.pub > .ssh/authorized_keys
scp .ssh/authorized_keys .ssh/id_rsa .ssh/id_rsa.pub 10.1.51.30:/root/.ssh/
scp .ssh/authorized_keys .ssh/id_rsa .ssh/id_rsa.pub 10.1.51.50:/root/.ssh/
scp .ssh/authorized_keys .ssh/id_rsa .ssh/id_rsa.pub 10.1.51.60:/root/.ssh/
2.下載安裝MHA
wget -c http://192.168.42.26/install_package/down/Sources/mha/mha4mysql-manager-0.56-0.el6.noarch.rpm
wget -c http://192.168.42.26/install_package/down/Sources/mha/mha4mysql-node-0.56-0.el6.noarch.rpm
3.在master節點上創建一個管理mysql的用戶
grant all on *.* to ‘mhaadmin’@’10.1.51.%’ identified by ‘mhapass’;
4.編輯/etc/masterha/app.cnf
[server default]
user=mhaadmin #mysql的管理用戶
password=mhapass #mysql的管理用戶的密碼
manager_workdir=/data/masterha/app #manager的工作路徑,會自動創建
manager_log=/data/masterha/app/manager.log #manager日志文件
remote_workdir=/data/masterha/app #遠程主機的工作路徑
ssh_user=root
repl_user=repluser
repl_password=replpass
ping_intervarl=1
[server1]
hostname=10.1.51.30
ssh_port=22
candidate_master=1
[server2]
hostname=10.1.51.50
ssh_port=22
candidate_master=1
[server3]
hostname=10.1.51.60
ssh_port=22
candidate_master=1
5.檢測各節點間ssh互相通信配置是否正常,檢查管理的mysql復制集群的連接配置參數是否正常
masterha_check_ssh –conf=/etc/masterha/app.cnf
masterha_check_repl –conf=/etc/masterha/app.cnf
6.啟動MHA
masterha_manager –conf=/etc/masterha/app.cn

原創文章,作者:z long,如若轉載,請注明出處:http://www.www58058.com/84238

(3)
z longz long
上一篇 2017-08-08
下一篇 2017-08-08

相關推薦

  • Linux基礎入門

    Linux基礎入門 1、Linux發行版及哲學思想 1.1 Linux發行版          Linux發行版(Linux Distribution,也被叫做GUN/Linux發行版),為一般用戶預先集成好的Linux操作系統及各種應用軟件。Linux發行版通常包含了包括桌面環…

    Linux干貨 2016-02-28
  • 馬哥教育網絡班21期+第7周課程練習

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; [root@centos ~]# mke2fs -t ext4 -b 2048 -m 2&…

    Linux干貨 2016-08-01
  • 第一周作業-02

    Linux的命令格式 命令的語法通用格式:    ~]# COMMAND OPTIONS ARGUMENTS        COMMAND: 發起一命令:請求內核將某個二進制程序運行為一個進程;            程序 –&…

    Linux干貨 2016-09-19
  • 簡單的shell腳本結合awk實現防止對web服務的dos攻擊

    一 實驗環境         鄙人使用的是centos 6.8操作系統   需要安裝iptables(常見的linux系統貌似都會自動安裝iptables)這條可以忽略   awk也需要安裝沒有的話就用yum裝下吧       &…

    2017-04-24
  • N26-第一周作業-邢巖

     馬哥門徒-N26-邢巖    悲催了! 首次使用這個博客,居然連續未保存刪除了兩次,這可是我用了四個小時才寫好的??!瞬間藍瘦香菇了!感覺就像是Linux中使用了rm -rf / 一樣。    還是重新開始寫吧,第一次接觸Linux是在8年之前了,當時弄到了一張紅帽的光盤,可是怎么也裝不上系統,就放…

    Linux干貨 2017-02-05
  • iptables基礎實戰練習

    目錄: 一、基本規則練習 二、SNAT源地址轉移 三、DNAT目標地址轉移   一、基礎規則練習   (1) 放行ssh (端口:22) 1 iptables -A INPUT -d 192.168.42.153 -p tcp –dport 22 -j ACCEPT 2 iptables -A OUTPUT -s 192.168.42.…

    2017-08-04

評論列表(2條)

  • 黑白子
    黑白子 2018-01-24 11:41

    作者,你好,想問一下,你的mha4mysql-manager-0.56-0.el6.noarch.rpm和mha4mysql-node-0.56-0.el6.noarch.rpm是在哪下載的?我找了半天沒找到這么新的包

  • 阿飛
    阿飛 2018-01-25 16:50

    你好作者,關于出現這個e2f028efa4659695d0a16d6b46583c98你是怎么解決的啊

欧美性久久久久