PolarDB-X 为了不便用户体验,提供了收费的试验环境,您能够在试验环境里体验 PolarDB-X 的装置部署和各种内核个性。除了收费的试验,PolarDB-X 也提供收费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。

本期试验将领导您如何对PolarDB-X的存储节点发动备库重搭。

本期收费试验地址

本期教学视频地址

前置筹备

假如曾经依据前一讲内容实现了PolarDB-X的搭建部署,应用PolarDB-X Operator装置PolarDB-X,并且能够胜利链接上PolarDB-X数据库。

筹备业务数据

本步骤将领导您如何筹备业务数据。

1.设置本地转发。

1.1 执行如下命令,设置端口转发并放弃过程存活。

nohup kubectl port-forward svc/polardb-x 3306 > forward.log 2>&1 &

1.2 执行如下命令,查看输入日志,确认是否转发胜利。

cat forward.log

返回后果如下,示意转发胜利。

2.执行如下命令,获取登录明码。

kubectl get secret polardb-x -o jsonpath="{.data['polardbx_root']}" | base64 -d - | xargs echo "Password: "

返回后果如下,你可查看到明码。

3.执行如下命令,建库。

阐明:您须要将命令中的{上文取得的明码}替换为上一步骤获取的明码。

mysql -h127.1 -upolardbx_root -p{上文取得的明码} -Ac -e "create database sysbench_test"

4.导入数据。

4.1 顺次执行如下命令,装置sysbench。

#回到root用户  exit  #装置sysbench sudo yum -y install sysbench#登录到galaxykube su galaxykube  cd

阐明:您可通过sysbench --help查看是否装置胜利。

4.2 执行如下命令,导入数据。

阐明:您须要将命令中的{数据库明码}替换为上文中获取的明码。

sysbench oltp_insert --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=polardbx_root --mysql-password={数据库明码} --mysql-db=sysbench_test --db-driver=mysql --tables=1 --table-size=10000 --report-interval=1 prepare

模仿DN节点无奈提供服务的场景

本步骤将领导您如何模仿DN节点无奈提供服务的场景。备库重搭的指标节点,不容许是leader节点。

1.执行如下命令,登录角色为follower的DN Pod。

阐明:本试验中只有一个follower dn pod,因而可应用如下命令。

kubectl exec -it `kubectl get pods -l xstore/name,xstore/role=follower,polardbx/role=dn -o name` bash

2.查看某个表的checksum。

2.1 执行如下命令,登录mysql控制台。

myc

2.2 执行如下命令,抉择一个分库。

show databases;  use sysbench_test_single

2.3 执行如下命令,查看这个库下的表,通过checksum table {表名}来查看这个表的checksum值。

show tables; #查看表  checksum table {表名};  #查看该表的checksum  exit

返回后果如下,您须要记录库表名及其checksum。

3.毁坏数据文件。

3.1 执行如下命令,删除数据文件。

rm -fR /data/mysql/data

3.2 执行如下命令,登录mysql控制台,执行shutdown。

myc  shutdown;

3.3 查看该Pod的状态。

在试验页面,单机右上角的+图标,创立新的终端。在新的终端中,执行如下命令,切换到galaxykube用户。

su galaxykube cd

在新的终端中,执行如下命令,查看Pod状态。

kubectl get pods -l xstore/name,xstore/role=follower,polardbx/role=dn -w

返回后果如下,您可看见该Pod的状态会变为NotReady。

发动备库重搭

本步骤将领导您如何发动备库重搭。

1.执行如下命令,获取输出参数。

  • 须要重搭的POD的名称
  • 须要重搭的POD所在的xstore名称(可查看POD的label xstore/name的值)
kubectl get pods -l xstore/name,xstore/role=follower,polardbx/role=dn --show-labels

返回后果如下,您可查看到重搭的POD的名称和重搭的POD所在的xstore名称。

2.发动备库重搭工作。

2.1 执行如下命令,通过vi创立rebuildjob.yaml文件.

vi rebuildjob.yaml

2.2按i键进入编辑模式,将如下代码复制到文件中,填入“须要重搭(无奈提供服务)的POD名称”和“被重搭(无奈提供服务)的POD所在xstore的名称”,而后按ECS退出编辑模式,输出:wq后按下Enter键保留并退出。

apiVersion: polardbx.aliyun.com/v1kind: XStoreFollowermetadata:  name: rebuildjobspec:  local: false  targetPodName: {{须要重搭的POD名称}}  xStoreName: {{被重搭的POD所在xstore的名称}}

2.3 执行如下命令,创立重搭工作。

kubectl apply -f rebuildjob.yaml

3.察看重搭工作状态

3.1 执行如下命令,察看重搭工作状态。

最初返回后果为FollowerPhaseSuccess则示意重搭胜利。

kubectl get xf -w

3.2 执行如下命令,查看POD状态。如果READY为3/3,且STATUS为Running示意重搭胜利。

kubectl get pods -l xstore/name,xstore/role=follower,polardbx/role=dn

4.校验数据。

4.1 执行如下命令,登录POD。

kubectl exec -it `kubectl get pods -l xstore/name,xstore/role=follower,polardbx/role=dn -o name` bash

4.2 执行如下命令,登录mysql控制台。

myc

4.3 执行校验语句,查看checksum是否和毁坏数据前统一。

show databases;use sysbench_test_single  show tables;  checksum table {记录的表名};  #查看该表的checksum  exit

5.革除重搭工作。

退出Pod后,清理重搭工作。

kubectl delete xf rebuildjob
点击立刻收费试用云产品 开启云上实际之旅!

原文链接
本文为阿里云原创内容,未经容许不得转载。