真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql怎么持久化的 mysql執(zhí)行時間太長

k8s中的Mysql數(shù)據(jù)庫持久化存儲

10年的慈利網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(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è)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“慈利網(wǎng)站設(shè)計”,“慈利網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實(shí)執(zhí)行。

一、配置:

環(huán)境:

CentOS7?

VMware

筆者配置了四臺虛擬機(jī):

K8S-Master節(jié)點(diǎn): 3GB內(nèi)存? ?2核CPU ? 20GB硬盤空間

K8S-node1節(jié)點(diǎn):? 2GB內(nèi)存? ?2核CPU ? 30GB硬盤空間

K8S-node2節(jié)點(diǎn):? 2GB內(nèi)存? ?2核CPU ? 30GB硬盤空間

鏡像倉庫節(jié)點(diǎn):? ? ? 2GB內(nèi)存? ?2核CPU ? 50GB硬盤空間

二、節(jié)點(diǎn)規(guī)劃:

使用三臺虛擬機(jī)搭建K8S集群,使用一臺虛擬機(jī)搭建鏡像倉庫。

每臺虛擬機(jī)配置兩塊網(wǎng)卡,其中一塊為“NAT模式”,用于拉取鏡像等功能。

另外一塊網(wǎng)卡為“僅主機(jī)模式”,用于集群節(jié)點(diǎn)間的通信。歸劃如下:

K8s-master節(jié)點(diǎn):

僅主機(jī)模式:10.10.10.200

NAT模式: ?192.168.200.130

K8S-node1節(jié)點(diǎn):

僅主機(jī)模式:10.10.10.201

NAT模式: ?192.168.200.131

K8S-node2節(jié)點(diǎn):

僅主機(jī)模式:10.10.10.202

NAT模式: ?192.168.200.132

鏡像倉庫節(jié)點(diǎn):

僅主機(jī)模式:10.10.10.101

NAT模式: ?192.168.200.150

三、版本信息

Linux內(nèi)核版本:

Linux version 3.10.0-862.el7.x86_64 (builder@kbuilder.dev.centos.org)

(gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) )

#1 SMP Fri Apr 20 16:44:24 UTC 2018

K8s集群版本為1.15.0版本:

四、基于StatefulSet與PV/PVC的MySql持久化存儲實(shí)驗

1. 在每個節(jié)點(diǎn)安裝nfs服務(wù)

在“鏡像倉庫”節(jié)點(diǎn),執(zhí)行以下命令:

yum install -y nfs-common nfs-utils rpcbind

在k8s集群,執(zhí)行以下命令:

yum install -y nfs-utils rpcbind

2. 在“鏡像倉庫”節(jié)點(diǎn)下,配置nfs服務(wù)器

mkdir /nfs_mysql

Chmod?777?/nfs_mysql/

(在測試環(huán)境中,為了不考慮用戶屬性,暫時賦予777權(quán)限,但在生產(chǎn)環(huán)境不推薦這樣做)

Chown?nfsnobody?/nfs_mysql/

echo “/nfs_mysql *(rw,no_root_squash,no_all_squash,sync)”? /etc/exports

cat /etc/exports

/nfs_mysql?*(rw,no_root_squash,no_all_squash,sync)

systemctl start rpcbind

systemctl start nfs

3. 測試nfs服務(wù)是否可用

mkdir /test

showmount -e 10.10.10.101

可見/nfs_mysql *已暴露于共享目錄,接下來測試掛載是否可用:

在master節(jié)點(diǎn)下執(zhí)行:

mount -t nfs 10.10.10.101:/nfs_mysql /test/

echo "hello-world"/test/1.txt

在鏡像倉庫節(jié)點(diǎn)下查看1.txt是否存在,若存在則掛載成功:

可見nfs服務(wù)可以正常使用,接下來刪除test目錄和1.txt

在鏡像倉庫下:

[root@hub nfs_mysql]# rm -f 1.txt

在Master節(jié)點(diǎn)下:

[root@k8s-master ~]# umount /test/

[root@k8s-master ~]# rm -rf /test/

同理,依照以上步驟同時創(chuàng)建:(提供多個mysql副本進(jìn)行掛載)

nfs_mysql1

nfs_mysql2

完成后需要重啟nfs服務(wù)

systemctl restart rpcbind

systemctl restart nfs

最終效果:

4. 將nfs封裝成pv

創(chuàng)建mysql_test文件夾,將yaml文件統(tǒng)一保存在此目錄下

mkdir mysql_test

cd mysql_test

vim mysql-pv.yml

mysql-pv.yml配置如下:

apiVersion: v1

kind: PersistentVolume

metadata:

name: mysql-pv

spec:

capacity:

storage: 5Gi

accessModes:

- ?ReadWriteOnce

persistentVolumeReclaimPolicy: Retain

storageClassName: nfs

nfs:

path: /nfs_mysql

server: 10.10.10.101

---

apiVersion: v1

kind: PersistentVolume

metadata:

name: mysql-pv1

spec:

capacity:

storage: 5Gi

accessModes:

- ?ReadWriteOnce

persistentVolumeReclaimPolicy: Retain

storageClassName: nfs

nfs:

path: /nfs_mysql1

server: 10.10.10.101

---

apiVersion: v1

kind: PersistentVolume

metadata:

name: mysql-pv2

spec:

capacity:

storage: 5Gi

accessModes:

- ?ReadWriteOnce

persistentVolumeReclaimPolicy: Retain

storageClassName: nfs

nfs:

path: /nfs_mysql2

server: 10.10.10.101

注意:

在k8s集群15版本中recycle回收策略已被刪除,只能用retain策略或者Delete策略。這里我們使用 persistentVolumeReclaimPolicy: Retain

執(zhí)行命令:

kubectl create -f mysql-pv.yml

kubectl get pv

如圖所示,即為Pv創(chuàng)建成功。

5. 部署MySQL,在mysql_test目錄下編寫mysql.yml,配置文件如下

apiVersion: v1

kind: Service

metadata:

name: mysql

labels:

app: mysql

spec:

ports:

- port: 3306

name: mysql

clusterIP: None

selector:

app: mysql

---

apiVersion: apps/v1

kind: StatefulSet

metadata:

name: mysql

spec:

selector:

matchLabels:

app: mysql

serviceName: "mysql"

replicas: 3

template:

metadata:

labels:

app: mysql

spec:

containers:

- name: mysql

image: mysql:5.6

env:

- name: MYSQL_ROOT_PASSWORD

value: password

ports:

- containerPort: 3306

name: mysql

volumeMounts:

- name: mysql-persistent-storage

mountPath: /var/lib/mysql

volumeClaimTemplates:

- metadata:

name: mysql-persistent-storage

spec:

accessModes: ["ReadWriteOnce"]

storageClassName: "nfs"

resources:

requests:

storage: 1Gi ?

執(zhí)行以下命令,部署mysql服務(wù):

kubectl create -f mysql.yml

如圖可知,mysql按StatefulSet依次創(chuàng)建了mysql-0 mysql-1 mysql-2

查看各個Pod部在哪個節(jié)點(diǎn):

6. 通過創(chuàng)建臨時容器,使用MySQL客戶端發(fā)送測試請求給MySQL master節(jié)點(diǎn)

注意:

主機(jī)名為mysql-0.mysql;跨命名空間的話,主機(jī)名請使用mysql-0.mysql. [NAMESPACE_NAME].如果沒有指定命名空間,默認(rèn)為default,即 mysql-0.mysql. default。

這里筆者打算關(guān)閉node2節(jié)點(diǎn)來模擬node2宕機(jī),來測試是否實(shí)現(xiàn)數(shù)據(jù)的持久化存儲,

所以我們向node2上的mysql1寫入數(shù)據(jù)。

執(zhí)行以下命令,訪問mysql1:

kubectl run mysql-client --image=mysql:5.6 -it --rm --restart=Never -- mysql -h mysql-1.mysql.default -p?password

創(chuàng)建數(shù)據(jù)庫demo,并向messages表中寫入hello-world

CREATE DATABASE demo;?

CREATE TABLE demo.messages (message VARCHAR(250));?

INSERT INTO demo.messages VALUES ('hello-world');

如圖所示

接下來我們來關(guān)閉k8s-node2虛擬機(jī),模擬宕機(jī)

查看nodes的運(yùn)行狀態(tài),可知node2的狀態(tài)已轉(zhuǎn)變?yōu)镹otReady

一段時間后,k8s將Pod MySql -1遷移到節(jié)點(diǎn)k8s-node1

由于時間過長,筆者把三個Pod都刪除重啟后,驗證數(shù)據(jù):

MySQL服務(wù)恢復(fù),數(shù)據(jù)完好無損!

redis和mysql區(qū)別是什么?

1、在數(shù)據(jù)庫方面,mysql是關(guān)系型數(shù)據(jù)庫主要用于存放持久化數(shù)據(jù),redis是NOSQL,即非關(guān)系型數(shù)據(jù)庫,也是緩存數(shù)據(jù)庫,緩存的讀取速度快,能夠大大的提高運(yùn)行效率,但是保存時間有限。

2、在運(yùn)行機(jī)制方面,mysql作為持久化存儲的關(guān)系型數(shù)據(jù)庫,相對薄弱的地方在于每次請求訪問數(shù)據(jù)庫時,都存在著I/O操作,如果反復(fù)頻繁的訪問數(shù)據(jù)庫。

3、在作用方面,mysql是存儲數(shù)據(jù)到硬盤,功能強(qiáng)大,速度較慢,但是讀寫速度沒有Redis快,redis為較為頻繁的數(shù)據(jù)到緩存中,讀取速度快,基于內(nèi)存,讀寫速度快,也可做持久化,但是內(nèi)存空間有限,當(dāng)數(shù)據(jù)量超過內(nèi)存空間時,需擴(kuò)充內(nèi)存,但內(nèi)存價格貴。

4、在需求方面,mysql和redis因為需求的不同,一般都是配合使用。需要高性能的地方使用Redis,不需要高性能的地方使用MySQL。存儲數(shù)據(jù)在MySQL和Redis之間做同步。

Apache ActiveMQ 持久化到MySQL數(shù)據(jù)庫的簡單配置

1、默認(rèn)提供的是持久化到文件的方式,即activemq.xml文件中的:

2. 步驟

本文重點(diǎn)接收的是持久化到MySQL中的配置方式:

2.1 添加MySQL驅(qū)動

首先需要把MySql的驅(qū)動放到ActiveMQ的Lib目錄下,我用的文件名字是:mysql-connector-java-5.1.30-bin.jar

2.2 修改配置文件activemq.xml

將其中的這段配置:

修改為下面這段內(nèi)容:

3、另外需要在節(jié)點(diǎn)的下面定義id為mysql-ds的bean,如下:

4、 新建數(shù)據(jù)庫

從配置中可以看出數(shù)據(jù)庫的名稱是activemq,需要手動在MySql中新建一個activemq的空數(shù)據(jù)庫。

此時,重新啟動MQ,就會發(fā)現(xiàn)activemq庫中多了三張表:activemq_acks,activemq_lock,activemq_msgs,OK,說明已經(jīng)持久化成功啦!

MySQL8.0:auto_increment持久化

MySQL 8.0 以前 auto_increment 無法持久化,MySQL 8.0支持 auto_increment 持久化。文檔鏈接:

MySQL5.7 重啟后 auto_increment 會重置成 max(id)+1。

pt-archiver 加了個邏輯:選擇不歸檔(刪除) max(id) 這一行數(shù)據(jù),防止重啟丟失 auto_increment 值。這個行為由 --safe-auto-increment 參數(shù)控制(默認(rèn))。如果要關(guān)閉這一邏輯,可以使用 --nosafe-auto-increment參數(shù)。這一度被認(rèn)為是個 bug。


網(wǎng)站名稱:mysql怎么持久化的 mysql執(zhí)行時間太長
分享鏈接:http://weahome.cn/article/ddscsho.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部