日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

PXC管理数据库服务器(引擎)

發布時間:2025/3/21 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PXC管理数据库服务器(引擎) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一.PXC(Percona XtraDB Cluster)概述

二.部署PXC

1.準備示例

2.配置服務

3.啟動服務

4.測試配置

三.存儲引擎

1.存儲引擎的概述

2.查看引擎

3.讀鎖和寫鎖

4.行鎖和表鎖

5.MyISAM

6.InnoDB

7.MEMORY


一.PXC(Percona XtraDB Cluster)概述

PXC介紹

????????- 是基于Galera的MySQL高可用集群解決方案
????????- Galera Cluster是Codership公司開發的一套免費開源的高可用方案
????????- PXC集群主要由兩部分組成:Percona Server with XtraDB和Write Set Replication patches(同步、多主復制插件)
????????- 官網http://galeracluster.com

PXC特點

????????- 數據強一致性、無同步延遲
????????- 沒有主從切換操作,無需使用虛擬IP
????????- 支持InnoDB存儲引擎
????????- 多線程復制
????????- 部署使用簡單
????????- 支持節點自動加入,無需手動拷貝數據

相應端口

????????- 3306:數據庫服務端口
????????- 4444:SST端口
????????- 4567:集群通信端口
????????- 4568:IST端口
????????- SST:State Snapshot Transfer 全量同步
????????- IST:Incremental State Transfer 增量同步

二.部署PXC

1.準備示例

1)服務器角色

????????- 三臺相互獨立的mysql服務器:192.168.1.11、192.168.1.12、192.168.1.13

2)初始環境準備
- 配置服務器的名稱解析

[root@mysql1 ~]# for i in {1..3} > do > echo -e "192.168.1.1$i\tmysql$i" >> /etc/hosts > done[root@mysql2 ~]# for i in {1..3} > do > echo -e "192.168.1.1$i\tmysql$i" >> /etc/hosts > done[root@mysql3 ~]# for i in {1..3} > do > echo -e "192.168.1.1$i\tmysql$i" >> /etc/hosts > done

- 準備yum源

[root@zzgrhel8 mysql_soft]# cd pxc [root@zzgrhel8 pxc]# tar xf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar [root@zzgrhel8 pxc]# cp *.rpm /var/www/html/mysql/ [root@zzgrhel8 pxc]# cd /var/www/html/mysql/ [root@zzgrhel8 mysql]# createrepo -v .

- 安裝軟件包

[root@mysql1 ~]# yum clean all [root@mysql1 ~]# yum remove -y mysql-community-* [root@mysql1 ~]# yum install -y qpress-1.1-14.11 Percona-XtraDB-Cluster-*[root@mysql2 ~]# yum clean all [root@mysql2 ~]# yum remove -y mysql-community-* [root@mysql2 ~]# yum install -y qpress-1.1-14.11 Percona-XtraDB-Cluster-*[root@mysql3 ~]# yum clean all [root@mysql3 ~]# yum remove -y mysql-community-* [root@mysql3 ~]# yum install -y qpress-1.1-14.11 Percona-XtraDB-Cluster-*

2.配置服務

- 分別修改3臺服務器的mysqld.cnf文件
# 如果服務器之前安裝過mysql,把數據目錄清空

[root@mysql{1..3} ~]# rm -rf /var/lib/mysql/*[root@mysql1 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf ... ... [mysqld] server-id=11 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid log-bin log_slave_updates expire_logs_days=7 ... ...[root@mysql2 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf ... ... [mysqld] server-id=12 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid log-bin log_slave_updates expire_logs_days=7 ... ...[root@mysql3 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf ... ... [mysqld] server-id=13 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid log-bin log_slave_updates expire_logs_days=7 ... ...

- 分別修改3臺服務器的mysqld_safe.cnf (使用默認配置即可)

[root@mysql1 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld_safe.cnf [mysqld_safe] pid-file = /var/run/mysqld/mysqld.pid socket = /var/lib/mysql/mysql.sock nice = 0[root@mysql2 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld_safe.cnf [mysqld_safe] pid-file = /var/run/mysqld/mysqld.pid socket = /var/lib/mysql/mysql.sock nice = 0[root@mysql3 ~]# vim /etc/percona-xtradb-cluster.conf.d/mysqld_safe.cnf [mysqld_safe] pid-file = /var/run/mysqld/mysqld.pid socket = /var/lib/mysql/mysql.sock nice = 0

- 分別修改3臺服務器的wsrep.cnf

[root@mysql1 ~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf # 修改以下內容: wsrep_cluster_address=gcomm://192.168.1.11,192.168.1.12,192.168.1.13 # 集群成員 wsrep_node_address=192.168.1.11 # 本節點IP地址 wsrep_cluster_name=pxc-cluster # 集群名 wsrep_node_name=mysql1 # 本節點名 wsrep_sst_auth="sstuser:NSD2021@tedu.cn" # SST數據同步授權用戶及密碼[root@mysql2 ~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf # 修改以下內容: wsrep_cluster_address=gcomm://192.168.1.11,192.168.1.12,192.168.1.13 # 集群成員 wsrep_node_address=192.168.1.12 # 本節點IP地址 wsrep_cluster_name=pxc-cluster # 集群名 wsrep_node_name=mysql2 # 本節點名 wsrep_sst_auth="sstuser:NSD2021@tedu.cn" # SST數據同步授權用戶及密碼[root@mysql3 ~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf # 修改以下內容: wsrep_cluster_address=gcomm://192.168.1.11,192.168.1.12,192.168.1.13 # 集群成員 wsrep_node_address=192.168.1.13 # 本節點IP地址 wsrep_cluster_name=pxc-cluster # 集群名 wsrep_node_name=mysql3 # 本節點名 wsrep_sst_auth="sstuser:NSD2021@tedu.cn" # SST數據同步授權用戶及密碼

3.啟動服務

- 啟動集群服務

# 首次啟動服務時間比較長 [root@mysql1 ~]# systemctl start mysql@bootstrap.service [root@mysql1 ~]# grep password /var/log/mysqld.log [root@mysql1 ~]# mysql -uroot -p'!Yo.e(qv:0pH' mysql> alter user root@'localhost' identified by 'NSD2021@tedu.cn'; mysql> grant reload, lock tables,replication client,process on *.* to-> sstuser@'localhost' identified by 'NSD2021@tedu.cn'; Query OK, 0 rows affected, 1 warning (0.20 sec)

- 啟動其他節點,其他節點將會自動同步第一臺服務器的數據(授權用戶等)

[root@mysql2 ~]# systemctl start mysql [root@mysql2 ~]# netstat -utnlp | grep :3306 tcp6 0 0 :::3306 :::* LISTEN 18875/mysqld [root@mysql2 ~]# netstat -utnlp | grep :4567 tcp 0 0 0.0.0.0:4567 0.0.0.0:* LISTEN 18875/mysqld[root@mysql3 ~]# systemctl start mysql [root@mysql3 ~]# netstat -utnlp | grep :3306 tcp6 0 0 :::3306 :::* LISTEN 18465/mysqld [root@mysql3 ~]# netstat -utnlp | grep :4567 tcp 0 0 0.0.0.0:4567 0.0.0.0:* LISTEN 18465/mysqld

4.測試配置

1)查看集群信息

- 在任意數據庫服務器查看信息

[root@mysql2 ~]# mysql -uroot -pNSD2021@tedu.cn mysql> show status like "%wsrep%"; # 找到以下信息 | wsrep_incoming_addresses | 192.168.1.11:3306,192.168.1.12:3306,192.168.1.13:3306 | | wsrep_cluster_weight | 3 | | wsrep_cluster_status | Primary | | wsrep_connected | ON | | wsrep_ready | ON |

- 訪問集群,在任意數據庫服務器存取數據

mysql> grant all on db1.* to dbuser1@'%' identified by 'NSD2021@tedu.cn'; Query OK, 0 rows affected, 1 warning (0.48 sec)mysql> show grants for dbuser1; +--------------------------------------------------+ | Grants for dbuser1@% | +--------------------------------------------------+ | GRANT USAGE ON *.* TO 'dbuser1'@'%' | | GRANT ALL PRIVILEGES ON `db1`.* TO 'dbuser1'@'%' | +--------------------------------------------------+ 2 rows in set (0.00 sec) - 客戶端連接集群任意數據庫服務器存取數據 [root@node10 ~]# mysql -h192.168.1.11 -udbuser1 -pNSD2021@tedu.cn mysql> create database db1 default charset utf8mb4; Query OK, 1 row affected (0.57 sec)mysql> create table db1.students(id int primary key auto_increment, name varchar(20)); Query OK, 0 rows affected (0.92 sec)mysql> insert into db1.students(name) values ('tom'); Query OK, 1 row affected (0.15 sec)

- 客戶端連接各數據庫服務器查看數據

[root@node10 ~]# mysql -h192.168.1.12 -udbuser1 -pNSD2021@tedu.cn mysql> select * from db1.students; +----+------+ | id | name | +----+------+ | 1 | tom | +----+------+ 1 row in set (0.00 sec)[root@node10 ~]# mysql -h192.168.1.13 -udbuser1 -pNSD2021@tedu.cn mysql> select * from db1.students; +----+------+ | id | name | +----+------+ | 1 | tom | +----+------+ 1 row in set (0.00 sec)

2)測試故障自動恢復
- 停止3臺服務器的任意一臺主機的數據庫服務都不會影響數據的存取。

[root@mysql1 ~]# systemctl stop mysql@bootstrap.service [root@mysql2 ~]# mysql -uroot -pNSD2021@tedu.cn mysql> insert into db1.students(name) values('jerry'); Query OK, 1 row affected (0.20 sec)mysql> select * from db1.students; +----+-------+ | id | name | +----+-------+ | 1 | tom | | 5 | jerry | +----+-------+ 2 rows in set (0.00 sec)

- 啟動停止的mysql服務器,數據將會自動同步

[root@mysql1 ~]# mysql -uroot -pNSD2021@tedu.cn mysql> select * from db1.students; +----+-------+ | id | name | +----+-------+ | 1 | tom | | 5 | jerry | +----+-------+ 2 rows in set (0.00 sec)

?重新啟動全部關閉后的mysql

# 查看所有的mysql服務器,找到具有最高seqno的節點,把safe_to_boostrap的值改為1 [root@mysql3 ~]# cat /var/lib/mysql/grastate.dat # GALERA saved state version: 2.1 uuid: a3b378ea-ce50-11eb-b624-0780367f3ddd seqno: 7 safe_to_bootstrap: 1 [root@mysql3 ~]# systemctl start mysql@bootstrap.service# 啟動其他主機的mysql服務 [root@mysql1 ~]# systemctl start mysql [root@mysql2 ~]# systemctl start mysql

三.存儲引擎

1.存儲引擎的概述

????????- 數據庫存儲引擎是數據庫底層軟件組織,數據庫管理系統(DBMS)使用數據引擎進行創建、查詢、更新和刪除數據。

????????- 不同的存儲引擎提供不同的存儲機制、索引技巧、鎖定水平等功能,使用不同的存儲引擎,還可以獲得特定的功能。
????????- 現在許多不同的數據庫管理系統都支持多種不同的數據引擎。
????????- MySQL支持很多存儲引擎,包括MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE等,其中InnoDB和BDB支持事務安全。

2.查看引擎

- 查看數據庫使用的、支持的引擎

mysql> show engines; # DEFAULT表示默認使用的引擎,

- 查看當前表使用的存儲引擎

mysql> show create table nsd2021.departments\G *************************** 1. row ***************************Table: departments Create Table: CREATE TABLE `departments` (`dept_id` int(4) NOT NULL AUTO_INCREMENT,`dept_name` varchar(10) DEFAULT NULL,PRIMARY KEY (`dept_id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 1 row in set (0.00 sec)# 或mysql> use nsd2021; mysql> show table status\G *************************** 1. row ***************************Name: departmentsEngine: InnoDBVersion: 10Row_format: DynamicRows: 8Avg_row_length: 2048Data_length: 16384 Max_data_length: 0Index_length: 0Data_free: 0Auto_increment: 9Create_time: 2021-04-19 20:41:46Update_time: 2021-04-19 20:41:46Check_time: NULLCollation: utf8mb4_general_ciChecksum: NULLCreate_options:Comment: *************************** 2. row ***************************Name: employeesEngine: InnoDBVersion: 10Row_format: DynamicRows: 133Avg_row_length: 123Data_length: 16384 Max_data_length: 0Index_length: 16384Data_free: 0Auto_increment: 134Create_time: 2021-04-19 20:41:46Update_time: 2021-04-19 20:41:47Check_time: NULLCollation: utf8mb4_general_ciChecksum: NULLCreate_options:Comment: *************************** 3. row ***************************Name: salaryEngine: InnoDBVersion: 10Row_format: DynamicRows: 8066Avg_row_length: 44Data_length: 360448 Max_data_length: 0Index_length: 163840Data_free: 0Auto_increment: 9577Create_time: 2021-04-19 20:41:47Update_time: 2021-04-19 20:41:49Check_time: NULLCollation: utf8mb4_general_ciChecksum: NULLCreate_options:Comment: 3 rows in set (0.01 sec)

- 創建表時指定使用的存儲引擎

mysql> create table nsd2021.students(id int primary key auto_increment, name varchar(20)) engine=myisam; Query OK, 0 rows affected (0.03 sec)mysql> show create table nsd2021.students \G *************************** 1. row ***************************Table: students Create Table: CREATE TABLE `students` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 1 row in set (0.00 sec)

3.讀鎖和寫鎖

????????- 無論何時,只要有多個SQL需要同一時刻修改數據,都會產生并發控制的問題。
????????- 解決這類經典問題的方法就是并發控制,即在處理并發讀或者寫時,可以通過實現一個由兩種類型的鎖組成的鎖系統來解決問題。
????????- 這兩種鎖就是共享鎖和排他鎖,也叫讀鎖和寫鎖。
????????- **讀鎖**是**共享**的,即相互不阻塞的,多個客戶在同一時刻可以讀取同一資源,互不干擾。
????????- 寫鎖是排他的,即一個寫鎖會阻塞其它的寫鎖和讀鎖,只有這樣,才能確保給定時間內,只有一個用戶能執行寫入,防止其它用戶讀取正在寫入的同一資源。
????????- 寫鎖優先級高于讀鎖。

4.行鎖和表鎖

????????- 實際數據庫系統中每時每刻都在發生鎖定,鎖也是有粒度的,提高共享資源并發行的方式就是讓鎖更有選擇性,盡量只鎖定需要修改的部分數據,而不是所有的資源,因此要進行精確的鎖定。
????????- 由于加鎖也需要消耗資源,包括獲得鎖、檢查鎖是否解除、釋放鎖等,都會增加系統的開銷
????????- 所謂的鎖策略就是要在鎖的開銷和數據的安全性之間尋求平衡,這種平衡也會影響性能。
????????- 每種MySQL存儲引擎都有自己的鎖策略和鎖粒度,最常用的兩種重要的鎖策略分別是表鎖和行鎖。
????????? - 表鎖是開銷最小的策略,會鎖定整張表,用戶對表做寫操作時,要先獲得寫鎖,這會阻塞其它用戶對該表的所有讀寫操作。沒有寫鎖時,其它讀取的用戶才能獲得讀鎖,讀鎖之間是不相互阻塞的。
????????? - 行鎖可以最大程度支持并發處理,但也帶來了最大的鎖開銷,它只對指定的記錄加鎖,其它進程還是可以對同一表中的其它記錄進行操作。
????????? - 表級鎖速度快,但沖突多,行級鎖沖突少,但速度慢。

5.MyISAM

????????- 它是MySQL5.5之前的默認存儲引擎
????????- 優勢:訪問速度快
????????- 適用場景:對事務的完整性沒有要求,或以select、insert為主的應用基本都可以選用MYISAM。在Web、數據倉庫中應用廣泛。
????????- 特點:
????????????????? - 不支持事務、外鍵
????????????????? - 每個myisam在磁盤上存儲為3個文件,文件名和表名相同,擴展名分別是
? ????????????????? ?? - .frm:存儲表定義
?????????????????????? - .myd:MYData,存儲數據

????????????????? ? ?? - .myi:MYIndex,存儲索引

6.InnoDB

????????- MySQL5.5之后的默認存儲引擎
????????- 應用場景:如果應用對事務的完整性有較高的要求,在并發條件下要求數據的一致性,數據操作中包含讀、插入、刪除、更新,那InnoDB是最好的選擇。在計費系統、財務系統等對數據的準確性要求較高的系統中被廣泛應用。
????????- 優點:提供了具有提交(Commit)、回滾(Rollback)、崩潰恢復能力的事務安全,支持外鍵。
????????- 缺點:相比較于MyISAM,寫的處理效率差一點,并且會占用更多的磁盤空間來存儲數據和索引。
- 特點:
????????? - 自動增長列:innoDB表的自動增長列必須是索引,如果是組合索引,也必須是組合索引的第一列。MyISAM表的自動增長列可以是組合索引的其他列
????????? - 外鍵約束:MySQL的存儲引擎中只有innoDB支持外鍵約束。注意:當某個表被其它表創建了外鍵參照,那么該表對應的索引和主鍵禁止被刪除。

7.MEMORY

????????- MEMORY存儲引擎是用保存在內存中的數據來創建表,每個memory表對應一個磁盤文件。格式是.frm。
????????- 適用場景:內容變化不頻繁的代碼表,作為統計操作的中間結果表,便于利用它速率快的優勢高效的對中間結果進分析。
????????- 特點:由于它的數據是存放在內存中的,并且默認使用HASH索引,所以它的訪問速度特別快,同時也造成了他的缺點,就是數據庫服務一旦關閉,數據就會丟失,另外對表的大小有限制。

總結

以上是生活随笔為你收集整理的PXC管理数据库服务器(引擎)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美黑人添添高潮a片www | 国产在线观看a | 男人日女人在线观看 | 国产精品久久久影院 | 国产ts丝袜人妖系列视频 | 色窝在线 | 亚洲精品久久久蜜桃网尤妮丝 | 99re这里只有 | 久久久久久久久久久久久久久久久久久 | 成人精品视频网站 | 久久久久人 | www.狠狠撸.com| 性色av蜜臀av浪潮av老女人 | 亚洲一区二区三区四区在线播放 | 欧美日日夜夜 | 精品成人一区 | 欧美日韩一区二区三区在线视频 | 国产高清在线精品 | www.av777| caoporn成人| 国产精品中文无码 | 快灬快灬一下爽69 | 最新av网址在线观看 | 麻豆91av| 黄色三极片| 福利在线国产 | 国产福利午夜 | 韩国久久精品 | 国产一区视频在线免费观看 | 成人欧美一区二区三区小说 | 国产欧美激情视频 | www.99精品| 免费美女毛片 | 色婷婷av一区 | 欧美一级片黄色 | 免费看黄色大片 | 日韩精品成人在线观看 | 欧美久操 | 亚洲狠| 少妇极品熟妇人妻无码 | 欧美日韩国产一区二区 | 精品www| 婷婷亚洲综合五月天小说 | 夜间福利视频 | 新狠狠干 | 波多野结衣午夜 | a在线观看免费 | 国产日韩欧美久久 | 亚洲一区有码 | 秋霞网一区二区三区 | 天天综合亚洲 | 日本欧美一区二区三区 | 亚洲午夜精品久久久久久人妖 | 国产午夜精品无码一区二区 | 黄网站欧美内射 | 久久久蜜桃一区二区 | 亚洲涩涩 | 亚洲精品国产成人无码 | 日韩福利电影在线 | 一区二区三区精品免费视频 | 欧美人妖69xxxxxhd3d | 久久婷婷五月综合 | 国产精品免费一区二区三区在线观看 | 婷婷在线观看视频 | 美利坚合众国av | 欧洲精品久久久久毛片完整版 | 国产伦精品一区二区三区四区免费 | 激情久久婷婷 | 国产成人精品在线 | 一区二区视频观看 | 蜜桃av噜噜一区二区三区麻豆 | 黄色片在线免费观看视频 | 国产高潮自拍 | 阿v天堂在线观看 | 动漫精品一区一码二码三码四码 | 日本黄色免费网站 | 欧美日韩国产传媒 | 97自拍偷拍 | 日韩精品在线观看网站 | 国产欧美日韩精品一区 | 亚洲少妇一区 | 粉嫩小箩莉奶水四溅在线观看 | a少妇 | 欧美黑人啪啪 | 日韩激情中文字幕 | 秋葵视频在线 | 亚洲九九夜夜 | 久久精品牌麻豆国产大山 | 91九色视频在线 | 丰满少妇一区二区三区专区 | 可以免费看的毛片 | 深夜成人福利 | 国产调教视频在线观看 | 国产精品国产自产拍高清av | 中文字幕av免费观看 | 亚洲成人黄色影院 | 欧美在线播放一区 | 日韩少妇一区二区 | 99久久精品国产一区二区三区 |