共计 2902 个字符,预计需要花费 8 分钟才能阅读完成。
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/v1
kind: XStoreFollower
metadata:
name: rebuildjob
spec:
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
点击立刻收费试用云产品 开启云上实际之旅!
原文链接
本文为阿里云原创内容,未经容许不得转载。