中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL數據庫集群實戰

發布時間:2020-03-03 08:06:02 來源:網絡 閱讀:551 作者:sky9890 欄目:MySQL數據庫

一、數據庫集群使用場景

1.隨著訪問量的不斷增加,單臺MySQL數據庫服務器壓力不斷地增加,需要對MySQL進行優化和架構改造,如果MySQL優化不能明顯改善壓力,可以使用高可用、主從復制、讀寫分離出來、拆分庫、拆分表等方法來進行優化。

2.MySQL主從復制集群在中小企業、大型企業中被廣泛應用,MySQL主從復制的目的實現數據冗余備份,將master數據庫數據定時同步至slave庫中,一旦master數據庫宕機,可以將web應用數據庫配置快速切換到salve數據庫,確保Web應用有較高的可用率,MySQL主從復制架構圖如圖1-1所示。

MySQL數據庫集群實戰

二、MySQL主從復制實戰

MySQL主從復制環境構建至少需要2臺服務器,可以配置1主多從、多主多從,以1主1從為例,MySQL主從復制架構實戰步驟如下:

1.在虛擬機上克隆一臺CentOS主機

? ?MySQL數據庫集群實戰

2.開啟兩臺CentOS 7主機,并做相關配置

1)配置兩臺CentOS主機名稱

[root@localhost sky9890]# hostnamectl?

? ?Static hostname: #localhost.localdomain

Transient hostname: localhost.localdomain

? ? ? ? ?Icon name: computer-vm

? ? ? ? ? ?Chassis: vm

? ? ? ? Machine ID: 6c938bf5dc5b492088dafb0e745f01ec

? ? ? ? ? ?Boot ID: 170db1b33955402daa0ee3d6911486ba

? ? Virtualization: vmware

? Operating System: CentOS Linux 7 (Core)

? ? ? ?CPE OS Name: cpe:/o:centos:centos:7

? ? ? ? ? ? Kernel: Linux 3.10.0-862.11.6.el7.x86_64

? ? ? Architecture: x86-64

[root@localhost sky9890]# hostnamectl? set-hostname? MySQL_Master??#配置永久生效的主機名

[root@localhost sky9890]# hostnamectl? ?#查看主機名稱,重新啟動系統后生效

? ?Static hostname: mysql_master

? ?Pretty hostname: MySQL_Master

..................................................................

[root@localhost sky9890]# hostnamectl set-hostname MySQL_Slave

2)Master和Slave主機網絡

MySQL Master:192.168.153.142? #配置Master IP

[root@localhost sky9890]# vim? /etc/sysconfig/network-scripts/ifcfg-eth0?

TYPE="Ethernet"

BOOTPROTO="static"

NAME="ens33"

UUID="9f75af90-bd5d-467e-b433-216456e4a49e"

DEVICE="eth0"

ONBOOT="yes"

IPADDR=192.168.153.142

NETMASK=255.255.255.0

GATEWAY=192.168.153.2

MySQL Slave:192.168.153.143? ? #配置Slave IP

[root@localhost sky9890]# vim /etc/sysconfig/network-scripts/ifcfg-eth0?

TYPE="Ethernet"

BOOTPROTO="static"

DEFROUTE="yes"

IPV4_FAILURE_FATAL="no"

IPV6INIT="yes"

IPV6_AUTOCONF="yes"

IPV6_DEFROUTE="yes"

IPV6_FAILURE_FATAL="no"

IPV6_ADDR_GEN_MODE="stable-privacy"

NAME="ens33"

DEVICE="eth0"

ONBOOT="yes"

IPADDR=192.168.153.143

NETMASK=255.255.255.0

GATEWAY=192.168.153.2

3.MySQL Master配置

[root@mysql_master sky9890]# vim? /etc/my.cnf? ?

[client]

port? ? ? ? ? ? = 3306

socket? ? ? ? ? = /tmp/mysql.sock

[mysqld]

port? ? ? ? ? ? = 3306

socket? ? ? ? ? = /tmp/mysql.sock

skip-external-locking

key_buffer_size = 256M

max_allowed_packet = 1M

table_open_cache = 256

sort_buffer_size = 1M

read_buffer_size = 1M

read_rnd_buffer_size = 4M

myisam_sort_buffer_size = 64M

thread_cache_size = 8

query_cache_size= 16M

thread_concurrency = 8

log-bin=mysql-bin

binlog_format=mixed

server-id? = 1

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 128M

sort_buffer_size = 128M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

4.MySQL Master創建用戶及授權

[root@mysql_master etc]# useradd testtongbu

[root@mysql_master etc]# passwd testtongbu?

[root@mysql_master etc]# mysql -uroot? -p

MySQL [(none)]> grant replication slave on *.*? to? 'testtongbu '@'%'? identified by '12345678';?

MySQL [(none)]> show master status;

+------------------+----------+--------------+------------------+

| File? ? ? ? ? ? ?| Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000008 |? ? ? 867 |? ? ? ? ? ? ? |? ? ? ? ? ? ? ? ? |

+------------------+----------+--------------+------------------+

5.MySQL Slave配置

[root@mysql_master sky9890]# vim? /etc/my.cnf? ?

[client]

port? ? ? ? ? ? = 3306

socket? ? ? ? ? = /tmp/mysql.sock

[mysqld]

port? ? ? ? ? ? = 3306

socket? ? ? ? ? = /tmp/mysql.sock

skip-external-locking

key_buffer_size = 256M

max_allowed_packet = 1M

table_open_cache = 256

sort_buffer_size = 1M

read_buffer_size = 1M

read_rnd_buffer_size = 4M

myisam_sort_buffer_size = 64M

thread_cache_size = 8

query_cache_size= 16M

thread_concurrency = 8

#log-bin=mysql-bin

#binlog_format=mixed

server-id? = 2

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 128M

sort_buffer_size = 128M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

[root@mysql_slave sky9890]#

MySQL [(none)]> change master to master_host='192.168.153.142', master_port=3306, master_user='testtongbu',?

master_passwork='12345678', master_log_file='mysql-bin.000008', master_log_pos=867;

MySQL [(none)]> slave start;

MySQL [(none)]> show slave status\G

*************************** 1. row ***************************

? ? ? ? ? ? ? ?Slave_IO_State: Waiting for master to send event

? ? ? ? ? ? ? ? ? Master_Host: 192.168.153.142

? ? ? ? ? ? ? ? ? Master_User: testtongbu

? ? ? ? ? ? ? ? ? Master_Port: 3306

? ? ? ? ? ? ? ? Connect_Retry: 60

? ? ? ? ? ? ? Master_Log_File: mysql-bin.000008

? ? ? ? ? Read_Master_Log_Pos: 867

? ? ? ? ? ? ? ?Relay_Log_File: mysql_slave-relay-bin.000005

? ? ? ? ? ? ? ? Relay_Log_Pos: 596

? ? ? ? Relay_Master_Log_File: mysql-bin.000008

? ? ? ? ? ? ?Slave_IO_Running: Yes

? ? ? ? ? ? Slave_SQL_Running: Yes? ? #IO、SQL線程狀態為Yes,代表slave已正常連接master實現同步

? ? ? ? ? ? ? Replicate_Do_DB:?

? ? ? ? ? Replicate_Ignore_DB:?

? ? ? ? ? ?Replicate_Do_Table:?

? ? ? ?Replicate_Ignore_Table:?

? ? ? Replicate_Wild_Do_Table:?

? Replicate_Wild_Ignore_Table:?

? ? ? ? ? ? ? ? ? ?Last_Errno: 0

? ? ? ? ? ? ? ? ? ?Last_Error:?

? ? ? ? ? ? ? ? ?Skip_Counter: 0

? ? ? ? ? Exec_Master_Log_Pos: 867

? ? ? ? ? ? ? Relay_Log_Space: 904

? ? ? ? ? ? ? Until_Condition: None

? ? ? ? ? ? ? ?Until_Log_File:?

? ? ? ? ? ? ? ? Until_Log_Pos: 0

? ? ? ? ? ?Master_SSL_Allowed: No

? ? ? ? ? ?Master_SSL_CA_File:?

? ? ? ? ? ?Master_SSL_CA_Path:?

? ? ? ? ? ? ? Master_SSL_Cert:?

? ? ? ? ? ? Master_SSL_Cipher:?

? ? ? ? ? ? ? ?Master_SSL_Key:?

? ? ? ? Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

? ? ? ? ? ? ? ? Last_IO_Errno: 0

? ? ? ? ? ? ? ? Last_IO_Error:?

? ? ? ? ? ? ? ?Last_SQL_Errno: 0

? ? ? ? ? ? ? ?Last_SQL_Error:?

? Replicate_Ignore_Server_Ids:?

? ? ? ? ? ? ?Master_Server_Id: 1

6.測試同步結果

MySQL Master操作:

MySQL [(none)]> create database tongbu_test charset=utf8;

MySQL [(none)]> use? tongbu_test;

MySQL [tongbu_test]> create table test(id varchar(20),name varchar(20));

MySQL [tongbu_test]> show tables;

MySQL [tongbu_test]> create table student(id varchar(20),name varchar(20));

ERROR 1223 (HY000): Can't execute the query because you have a conflicting read lock

MySQL [tongbu_test]> unlock tables;

MySQL [tongbu_test]> create table student(id varchar(20),name varchar(20));

MySQL [(none)]> insert into student values("001","吳氏親宗");

MySQL數據庫集群實戰

MySQL Slave操作:

MySQL數據庫集群實戰MySQL數據庫集群實戰MySQL數據庫集群實戰

通過MySQL Slave測試數據來看,主從數據庫同步成功。

7.MySQL主從同步排錯思路

1)server-id,主從不能相同。

2)slave指定master IP、用戶名、密碼、bin-log文件名及position的信息要一致。

3)Slave_IO_Runngin:Yes? Slave_SQL_Runngin:Yes,只有這兩個狀態都為Yes,才算是正從同步成功。

4)當主從產生延遲后,如何忽略錯誤后,繼續同步?

MySQL Master:

MySQL [(none)]> flush tables with read block; #將數據庫設置為全局讀鎖,不允許寫入新數據。

MySQL Slave:

MySQL [tongbu_test]> stop slave;

MySQL [tongbu_test]> set global sql_salve_skip_counter =1

MySQL [tongbu_test]> start? slave;

注意以上幾步至少要操作一次,有可能要兩次才能解決問題。

最后將master端解鎖:MySQL [(none)]> unlock tables;

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嘉峪关市| 蓬溪县| 潮安县| 呼图壁县| 紫阳县| 兴隆县| 濮阳县| 栾川县| 庄河市| 西充县| 乐陵市| 大城县| 雅江县| 赣州市| 美姑县| 四子王旗| 贺州市| 万安县| 金沙县| 柞水县| 汪清县| 金寨县| 德钦县| 芒康县| 裕民县| 塔城市| 伊吾县| 大兴区| 中宁县| 确山县| 庐江县| 北京市| 承德市| 荔浦县| 通化县| 保定市| 旬阳县| 休宁县| 东乡族自治县| 鹤岗市| 伽师县|