bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

mysql持久性怎么辦,mysql持久化過程

k8s中的Mysql數據庫持久化存儲

成都創新互聯專注于網站建設,為客戶提供成都做網站、成都網站設計、成都外貿網站建設、網頁設計開發服務,多年建網站服務經驗,各類網站都可以開發,成都品牌網站建設,公司官網,公司展示網站,網站設計,建網站費用,建網站多少錢,價格優惠,收費合理。

一、配置:

環境:

CentOS7?

VMware

筆者配置了四臺虛擬機:

K8S-Master節點: 3GB內存? ?2核CPU ? 20GB硬盤空間

K8S-node1節點:? 2GB內存? ?2核CPU ? 30GB硬盤空間

K8S-node2節點:? 2GB內存? ?2核CPU ? 30GB硬盤空間

鏡像倉庫節點:? ? ? 2GB內存? ?2核CPU ? 50GB硬盤空間

二、節點規劃:

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

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

另外一塊網卡為“僅主機模式”,用于集群節點間的通信。歸劃如下:

K8s-master節點:

僅主機模式:10.10.10.200

NAT模式: ?192.168.200.130

K8S-node1節點:

僅主機模式:10.10.10.201

NAT模式: ?192.168.200.131

K8S-node2節點:

僅主機模式:10.10.10.202

NAT模式: ?192.168.200.132

鏡像倉庫節點:

僅主機模式:10.10.10.101

NAT模式: ?192.168.200.150

三、版本信息

Linux內核版本:

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持久化存儲實驗

1. 在每個節點安裝nfs服務

在“鏡像倉庫”節點,執行以下命令:

yum install -y nfs-common nfs-utils rpcbind

在k8s集群,執行以下命令:

yum install -y nfs-utils rpcbind

2. 在“鏡像倉庫”節點下,配置nfs服務器

mkdir /nfs_mysql

Chmod?777?/nfs_mysql/

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

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服務是否可用

mkdir /test

showmount -e 10.10.10.101

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

在master節點下執行:

mount -t nfs 10.10.10.101:/nfs_mysql /test/

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

在鏡像倉庫節點下查看1.txt是否存在,若存在則掛載成功:

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

在鏡像倉庫下:

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

在Master節點下:

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

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

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

nfs_mysql1

nfs_mysql2

完成后需要重啟nfs服務

systemctl restart rpcbind

systemctl restart nfs

最終效果:

4. 將nfs封裝成pv

創建mysql_test文件夾,將yaml文件統一保存在此目錄下

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

執行命令:

kubectl create -f mysql-pv.yml

kubectl get pv

如圖所示,即為Pv創建成功。

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 ?

執行以下命令,部署mysql服務:

kubectl create -f mysql.yml

如圖可知,mysql按StatefulSet依次創建了mysql-0 mysql-1 mysql-2

查看各個Pod部在哪個節點:

6. 通過創建臨時容器,使用MySQL客戶端發送測試請求給MySQL master節點

注意:

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

這里筆者打算關閉node2節點來模擬node2宕機,來測試是否實現數據的持久化存儲,

所以我們向node2上的mysql1寫入數據。

執行以下命令,訪問mysql1:

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

創建數據庫demo,并向messages表中寫入hello-world

CREATE DATABASE demo;?

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

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

如圖所示

接下來我們來關閉k8s-node2虛擬機,模擬宕機

查看nodes的運行狀態,可知node2的狀態已轉變為NotReady

一段時間后,k8s將Pod MySql -1遷移到節點k8s-node1

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

MySQL服務恢復,數據完好無損!

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) 這一行數據,防止重啟丟失 auto_increment 值。這個行為由 --safe-auto-increment 參數控制(默認)。如果要關閉這一邏輯,可以使用 --nosafe-auto-increment參數。這一度被認為是個 bug。

mysql的四大特性

1、原子性:在整個操作的事務中,要么全部成功,要么全部失敗。

2、隔離性:所謂隔離性,就是每個事務執行的時候,相互之間不會受到影響,都是單獨的事務。

3、一致性:也就是說事務在執行之后,必須和之前的數據保持一致。

4、持久性:事務一旦提交,就會持久化到數據庫中,不能回滾。

分享標題:mysql持久性怎么辦,mysql持久化過程
網頁鏈接:http://vcdvsql.cn/article26/hsoccg.html

成都網站建設公司_創新互聯,為您提供虛擬主機營銷型網站建設網頁設計公司網站設計公司響應式網站微信小程序

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管