分享知识,分享快乐

0%

迁移全量数据

关闭 GC。

为了保证增量迁移过程中新写入的数据不丢失,在开始备份之前,需要关闭上游集群的垃圾回收 (GC) 机制,以确保系统不再清理历史数据。

执行如下命令关闭 GC:

1
MySQL [test]> SET GLOBAL tidb_gc_enable=FALSE;

备份数据。

在上游集群中执行 BACKUP 语句备份数据:

1
MySQL [(none)]> BACKUP DATABASE * TO 's3://backup?access-key=minio&secret-access-key=miniostorage&endpoint=http://${HOST_IP}:6060&force-path-style=true' RATE_LIMIT = 120 MB/SECOND;

备份语句提交成功后,TiDB 会返回关于备份数据的元信息,这里需要重点关注 BackupTS,它意味着该时间点之前数据会被备份,后边的教程中,将使用 BackupTS 作为数据校验截止时间TiCDC 增量扫描的开始时间

恢复数据。

阅读全文 »

tidb常用操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
tiup cluster deploy tidb-test-v1 v6.5.2 ./topology.yaml --user root -p
tiup cluster list
tiup cluster clean tidb-test-v1 --all
# tiup cluster destroy tidb-test-v1
tiup cluster start tidb-test-v1 --init
tiup cluster display tidb-prod
tiup cluster stop tidb-test-v1
tiup cluster restart tidb-test-v1
tiup cluster edit-config tidb-test-v1
tiup cluster check tidb-test-v1 scale-out.yml --cluster --user root -p
tiup cluster check tidb-test-v1 scale-out.yml --cluster --apply --user root -p
tiup cluster scale-out tidb-test-v1 scale-out.yml --user root -p
tiup ctl:v6.5.2 pd -u http://172.20.192.70:2379 store limit all engine tiflash 200 add-peer
-- 如果你使用 TiUP 部署,可以用 tiup ctl:v<CLUSTER_VERSION> pd 代替 pd-ctl -u <pd_ip:pd_port> 命令。
tiup ctl:v6.5.2 pd store
tiup ctl:v6.5.2 pd -u http://172.20.192.70:2379 store limit store id 8487838 220 add-peer
tiup ctl:v6.5.2 pd -i -u http://172.20.192.70:2379
tiup cluster restart tidb-test-v1 -N 172.20.192.74:9090
tiup cluster reload tidb-test-v1
tiup install bench
tiup diag config clinic.token eyJrIjoicFpJaDJ1a042ZjQ0a2E2NyIsInUiOjYwMywiaWQiOjU3Nn0=
tiup diag collect tidb-test-v1

备份与恢复

如果是 BR 备份,还原之后是同名的;
dumplings 备份的话,可以在还原的时候指定 route 来设置要恢复到的数据库。

1
2
3
4
5
6
7
8
mycli -h172.20.192.70 -P4000 -uroot

BACKUP DATABASE test TO 's3://backup?access-key=minio&secret-access-key=miniostorage&endpoint=http://172.20.192.151:6060&force-path-style=true' RATE_LIMIT = 120 MB/SECOND;


mycli -h172.20.192.115 -P4000 -uroot

mysql> RESTORE DATABASE test FROM 's3://backup?access-key=minio&secret-access-key=miniostorage&endpoint=http://172.20.192.151:6060&force-path-style=true';

不停机升级

tiup cluster upgrade tidb-prod v6.5.3

重启grafana

tiup cluster restart tidb-prod -R grafana

备份

阅读全文 »

k8s-1.23.17离线安装

环境设置centos-7.9

init_env.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo modprobe br_netfilter
lsmod | grep br_netfilter

cat<<EOF> /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system
systemctl stop firewalld
systemctl disable firewalld.service

sed -i '$acloudeon ALL=(ALL) NOPASSWD: NOPASSWD: ALL' /etc/sudoers

swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

安装docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
tar -xvf rpm_docker_20.10.24.tar
yum localinstall docker/* -y
systemctl start docker
sudo cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://5il73zj3.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
],
"insecure-registries": ["dockerhub.baofu.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload
systemctl restart docker
systemctl enable docker.service
systemctl status docker
docker -v
docker info|grep "Cgroup Driver"
docker load < images_k8s_core_1.23.17.tar
docker load < images_k8s_cni_flannel_0.15.0.tar
docker load < images_k8s_dashboard_v2.5.1.tar

安装k8s

主节点

1
2
3
4
5
6
7
8
9
10
11
12
13
tar -xvf rpm_k8s_1.23.17.tar
yum localinstall k8s/* -y
systemctl daemon-reload
systemctl start kubelet
systemctl enable kubelet
kubeadm init \
--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers \
--kubernetes-version=v1.23.17 \
--pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f kube-flannel.yml

工作节点

阅读全文 »

安装 K8s 集群

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#注意系统内核升级到5.4 及以上。

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml
grub2-set-default 0
reboot


VERSION=`curl -s https://api.github.com/repos/labring/sealos/releases/latest | grep -oE '"tag_name": "[^"]+"' | head -n1 | cut -d'"' -f4`

wget https://mirror.ghproxy.com/https://github.com/labring/sealos/releases/download/${VERSION}/sealos_${VERSION#v}_linux_amd64.tar.gz \
&& tar zxvf sealos_${VERSION#v}_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin

#注意 master的cpu数量要大于1
sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.7 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 \
--masters 10.6.59.131,10.6.59.132,10.6.59.133 \
--nodes 10.6.59.134,10.6.59.135 -p "2haolou@64"

#要求hostname每个节点不一样
hostnamectl set-hostname node1

#重置集群
sealos reset
阅读全文 »

k8s高可用集群搭建-详细版

环境

系统: CenterOS 7.9

docker: 20.10.24

k8s: 1.23.17

目标

3个master节点、LoadBalancer、一个work节点

172.23.80.241 master1

172.23.80.242 master2

172.23.80.243 master3

阅读全文 »

在200-223上关闭VIP:
/sbin/ifconfig bond0:1 192.168.192.1 netmask 255.255.255.0 down

在200-223上启动VIP:
/sbin/ifconfig bond0:1 192.168.192.1 netmask 255.255.255.0 up

/sbin/arping -c 5 -U -I bond0 192.168.192.1 >/dev/null 2>&1

bond0:1 这是个别名

阅读全文 »

使用 Kubekey 一键 离线/在线 部署 kubernetes 集群

在线部署:

创建配置文件

./kk create config --with-kubesphere

1
2
3
4
5
6
./kk  init os -f ./config-sample.yaml  # 初始化集群机器,此操作会安装系统依赖,开启lpvs模块等。前提是确保对应node的网络通畅。

# 选择中文区下载(访问 GitHub 受限时使用)
export KKZONE=cn

./kk create cluster -f ./config-sample.yaml # 创建集群
阅读全文 »

oblogproxy 部署

1
2
3
4
5
6
7
8
9
10
11
12
13
 wget https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oblogproxy/v2.0.0_BP1/oblogproxy-2.0.0-101000012023121819.el7.x86_64.rpm

rpm -i oblogproxy-2.0.0-101000012023121819.el7.x86_64.rpm

cd /usr/local/oblogproxy/

配置文件添加ob集群系统的用户名和密码
vim conf/conf.json
"ob_sys_username": "",
"ob_sys_password": "",


srun.sh start
阅读全文 »

ocp部署

使用图形化界面部署 OCP

https://www.oceanbase.com/docs/common-ocp-1000000000368849

注意事项

1.注意要更改一下datafile_size大小, 不然会占满磁盘

  • datafile_sizedatafile_disk_percentage 均可以用来设置数据文件占用的磁盘空间,您可以选择其中任意一项进行配置。其他情况下:

    • 如果两个配置项均已配置,即 datafile_sizedatafile_disk_percentage 同时配置为非 0 的值,则以 datafile_size 设置的值为准。
    • 如果两个配置项均未配置,即 datafile_size 的值为 OMdatafile_disk_percentage 的值为 0,则系统会根据日志和数据是否共用同一磁盘来自动计算数据文件占用其所在磁盘总空间的百分比,即:
      • 如果日志和数据共用同一磁盘,则数据文件占用其所在磁盘总空间的百分比为 60%。
      • 如果日志和数据独占磁盘时,则数据文件占用其所在磁盘总空间的百分比为 90%。
  • 配置 datafile_maxsize 时,其值需要大于当前数据文件占用的磁盘空间大小 datafile_size(或 datafile_disk_percentage),如果设置的值小于当前数据文件占用的磁盘空间大小,则不会触发自动扩容。

  • 如果 datafile_maxsize 的值超过了当前磁盘的最大可用空间,则以实际磁盘的可用大小作为最大值。

  • 对于 datafile_next

    • datafile_next 设置为小于或等于 1G 的值时,datafile_next 的取值为 min (1G, datafile_maxsize * 10%)

    • datafile_next 设置为大于 1G 的值时,datafile_next 的取值为 min ( datafile_next, 磁盘剩余空间)

1
2
3
datafile_size  100G
datafile_maxsize 100G
log_disk_size 200G

image-20240125171731578

2.如果安装的不对,用命令删除集群,重新安装

obd cluster destroy myoceanbase

阅读全文 »

新建用户

1
2
useradd tidb
su - tidb

在中控机上部署 TiUP 组件

在中控机上部署 TiUP 组件有两种方式:在线部署和离线部署。

在线部署

以普通用户身份登录中控机。以 tidb 用户为例,后续安装 TiUP 及集群管理操作均通过该用户完成:

  1. 执行如下命令安装 TiUP 工具:

    1
    curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
  2. 按如下步骤设置 TiUP 环境变量:

    1. 重新声明全局环境变量:

      1
      source .bash_profile
    2. 确认 TiUP 工具是否安装:

      1
      which tiup
  3. 安装 TiUP cluster 组件:

    1
    tiup cluster
  4. 如果已经安装,则更新 TiUP cluster 组件至最新版本:

    1
    tiup update --self && tiup update cluster

    预期输出 “Update successfully!” 字样。

  5. 验证当前 TiUP cluster 版本信息。执行如下命令查看 TiUP cluster 组件版本:

    1
    tiup --binary cluster

优化系统配置

vim /etc/sysctl.conf

1
2
3
4
5
6
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_syncookies = 0
net.core.somaxconn = 32768
vm.swappiness = 0
vm.overcommit_memory = 0
fs.file-max = 1000000
阅读全文 »