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
点击立刻收费试用云产品 开启云上实际之旅!
原文链接
本文为阿里云原创内容,未经容许不得转载。