开发者学堂课程【如何-键安装部署 PolarDB-X:如何-键安装部署 PolarDB-X】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/981/detail/14923
如何一键安装部署 PolarDB-X
第二个是创建一个数据库
mysql>create database pdlarx_example partition_mode-'partitioning';
Query OK,1 row affected (0.26 sec)
mysql> |
接下来在里面建个表
mysql> use polarx_example;
Database changed
mysql>
mysql> create table example(
-> “id` bigint(11) auto_increment NOT NULL,
-> namevarchar(255) DEFAULT NULL,
-> score`bigint(11) DEFAULT NULL,
-> primary key (`id`)
->)engine=InnoDB default charset=utf8 ->partition by hash(id) -> partitions 8;
这边可以明确显示出是通过id进行一个分区,有8个分区的这样一个表。
show topelogy这个命令就是来看表的特库,表显示八个分区标有编号00000--000007。
mysql> show master status ;
IFILE |
POSITION |
BINLOG_DO_DB |
IBINLOG_IGNORE_DB |
EXECUTED_GTID_SET |
binlog.000001 |
|
4781 |
|
|
1 row in set (1.25 sec)
mysql>
mysql>
可以了解到一个文件,他的位点写到了4781。
看一下位置show binlog events in 'binlog.000001’ from 4;
查看beloge的指令
这样就完成了PolarDB-X实例在本地的拉起和体验。除了拉起还有管理,比如list,可以看本地创建了几个PDX实例和集群,目前就一个叫做pxc-tryout。
(venv) free6om@free6om ~/I/venv> pxd list
/Users/free6om/IdeaProjects/venvib/python3.9/site-packages/deployer
NAME CN DN CDC STATUS
pxc-tryout 1 1 1 running
(venv)free6om@free6om ~/I/venv>
如果在本地不想用它,可以用cleanup指令,这里注意这个指令删除是将本地数据也一键被删除。
(venv)free6om@free6om ~/I/venv> pxd cleanup
/Users/free6om/IdeaProjects/venv//ib/python3.9/site-packages/deployer
Prepare to delete all PolarDB-Xclusters
All PolarD8-X clusters will be deleted, do you want to continue?[y/N]:
Aborted!
(venv)free6om@free6om~/I/venv[011]>
(venv)free6om@free6om~/I/venv [011]>
(venv)free6om@free6om~/I/venv [011]>
(venv)free6om@free6om ~/I/venv[011]>
可以用docker命令进行验证,从名字可以看出gms和dn是共用一个镜像的,也就是可以把gms看成一个特殊的dn。
也可以使用docker的面板直接连到gms容器里面
(venv)free6om@free6om ~/I/venv> docker exec -it 29ac5271d9fe /bin/bash
[root@29ac5271d9fe /]#Imyc
Welcome to the MySQL monitor.Commands end with ;or \g.
Your MySQL connection id is 63
Server version: 8.0.18 Source distribution
Copyright(c)2000,2019, 0racle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Dracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.
Type'help;’or '\h’for help. Type '\c’ to clear the current input statement.
mysql>
直接连接到gms库的一个命令,myc可以连接到gms里面去看一下原数据的特库结构。像user_priv这个表,用来存系统当中建立的账号。
mysql> exit
Bye
[root@29ac5271d9fe /]# exit
exit
(venv)free6om@free6om ~/I/venv>
退出容器
2. 其实PXD这个工具,在刚才的讲解中得知拉起来一个cn,一个dn,一个cpc这样一个集群。如果想拉起多个也可以通过PXD来拉起,前面的准备工作都是一样的,唯一的差别第一个就是可以指定机器给特库关系写好,第二个就是通过pxd create的分布式pxd放入一个k8s的一个集群给他拉起。
3. 通过k8s部署
K8s体验会依赖几个东西,第一个叫minikube,第二个是docker,
第三个是helm。首先安装这几个在电脑里面。操作时可以建立一个非root账号,也可以用文件当中写的galaxykube这个账号名称,都需要将创建的账号加到docker这个组里面。
准备工作做好后就可以在机器上面启动一个
minikube start --cpus 4 -nemory 7960 --1mage-mirror-country cn --registry-airrorshttps:
//集群
接下来推荐安装minikube‘minikube kubectl
装好之后可以查看一下建立的集群的状态是否ok
admin@polardb-x-demo:~$ alias kubectl-"minikube kubectl admin@polardb-x-demo:~$ kubectl cluster-info
Kubernetes control plane is running at
https://192.168.49.2:8443
CoreDNS is running at https://192.168.49.2:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump’.
admin@polardb-x-demo:~$/
可以看到running证明这个集群是可以运行的
接下来部署PolarDB-X Operator
推荐一些配置,例如
已经准备了一个运行中的 Kubernetes 集群,并确保
(1).集群版本>=1.18.0
(2).至少有2个可分配的CPU
(3).至少有4GB的可分配内存
(4).至少有30GB以上的磁盘空间
已经安装了kubect可以访问Kubernetes集群
已经安装了Helm 3
之后建造一个PolarDB-X空间
admin@polardb-x-demo:~$ kubectl create namespace polardbx-operator-system namespace/polardbx-operator-systemcreated admin@polardb-x-demo:~$
安装PolarDB-X
admin@polardb-x-demo:~$ helm install --namespace polardbx-operator-systempolardbx-operator
https://github.com/Apsar
aDB/galaxykube/releases/download/v1.0.0/polardbx-operator-1.0.0.tgz
operator目前是直接打包在git仓库里面的,对应额仓库的名称叫galaxykube
如果看到这段话的话证明operator已经安装好了
‘’’yaml
apiVersion: polardbx.aliyun.com/v1
kind: PolarDBXCluster metadata:
name:quick-start 。
annotations:
polardbx/topology-mode-guide:quick-start
可以进一步看一下里面的状态
admin@polardb-x-demo:~$ kubectl get pods --namespace polardbx-operator-system
NAME READY STATUS Running RESTARTS AGE
polardbx-controller-manager-7fbc6b97c9-sl2sm
1/1 Running 0 28s
polardbx-hpfsItipcn
1/1 Running 0 28s
polardbx-tools-updater-nf9jk
1/1 Running 0 28s
admin@polardb-x-demo:~$
都是 Running状态,跟文档里面展示的一样,接下来就可以建立PolarDB-X集群了
admin@polardb-x-demo:~$echo"apiVersion:polardbx.aliyun.com/v1
>kind:PolarDBXCluster
>metadata:
>name:quick-start
>annotations:
>polardbx/topology-mode-guide: quick-start" I kubectl apply-f-
接下来一个k8s就在创建当中了
admin@polardb-x-demo:~$ kubectl get polardbxcluster -w
NAME GMS CN DN CDC PHASE DISK AGE
quick-start 0/1 0/1 0/1 0/1 Creating 12s
4. 这是PolarDB-X创建的过程,第一次创建可能会久一点,因为他会有一个拉镜像的过程。这步意味着通过PolarDB-X创建的k8s集群已经创建成功了,就可以连接到实例上面进行一些操作。同时这个文档给了一个可以原路返回时的一个过程,例如可以销毁刚才创建的PolarDB-X集群,或者卸载PolarDB-X Operator,也可以进一步将minikube集群给停止掉。
5. 如果通过源码直接安装PolarDB-X
准备工作
下载GalaxyEngine 代码,main分支
下载GalaxySQL 代码,main分支
下载GalaxyGlue代码,main分支(可忽略)
下载 GalaxyCDC 代码。main分支
admin@polardb-x-demo:~$ cd polardb-x-source/
admin@polardb-x-demo:~/polardb-x-source$ ls
boost_1_70_0.tar.gz galaxycdc galaxyengine galaxyglue galaxysql run
admin@polardb-x-demo:~/polardb-x-source$
下载之后进行编译的过程(存储节点,代号GalaxyEngine)
yum inltall cmake)
in-5/us/bin/cmake3/usr/bin/cnake
安装GCC7
yum install centos-release-sct
yum instalt devtoolset-7-gcc devtooset-7-gc-c+* devtoolset-7-binutits
echo "source /apt/rh/devtoolset-7/enable”p>/etc/profile
安装依赖
yum install nake automake git openss1-devel ncurses-devel bison libain-devel
目前已经在CentOS7和Ubuntu20进行过测试
#安装GCC7
apt install -y gcc-7Q++-7
update-alternatives--install/usr/bin/gccgcc/usr/bin/gcc-760\
--slave /usr/bin/g++g++/usr/bin/g++-7
update-alternatives--config gcc
gcc--version
g++ --version
#安装信助
apt install make automake git bison libaio-dev libncurses-devlibsas12-dev libldap2-dev