关于数据库:实践教程之如何对-PolarDBX-的存储节点发起备库重搭

59次阅读

共计 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

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

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

正文完
 0