开发者学堂课程【如何-键安装部署 PolarDB-X:如何-键安装部署 PolarDB-X】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/981/detail/14923
如何一键安装部署 PolarDB-X
内容
一、学习目的
二、动手实践介绍
三、一键部署 PolarDB-X
四、操作内容
一、学习目的
本节课的目的是在你本地的电脑上面拉起一个polarDB-X的一个集群,或者说叫一个实例,这也是《PolarDB-X动手实践系列》的第一篇。
二、动手实践介绍
首先他是完全围绕PolarDB-X社区版,也就是开源数据的版本来讲解的,基于这个版本体验到现在直播当中所有的功能或者是一些特性。这个开源的PolarDB-X对应的是2.0。
动手实践系列面对的群体主要是应用开发者,架构师,DBA,DevOps,SRE,学生等,把PolarDB-X当成一个产品在用。
主要内容会把PolarDB-X使用整个过程当中的一些场景都可以覆盖到。
按照使用PolarDB-X整个生命周期当中从一开始接触他的安装部署,到开始上手使用它,比如怎样配置连接池,怎样导数据,数据多了怎么水平扩容,到后边使用更多怎样进行优化,比如数据存在热点或者分布不均匀等等怎么去解决。以及平时的运维管理,如何去做备份恢复,假如不小心删除了数据,大概怎样去把数据找回以及其他管理的一些功能等等。
三、一键部署 PolarDB-X
1.准备工作
首先先在浏览器里面打开文档地址https://doc.polardbx.com加地址进入当安装部署的一页。
在部署之前先简单了解一下PolarDB-X的结构
由图所示,PolarDB-X由四个组件组成,第一个组件是CN,也就是分布式的一个计算层。第二个组件是GMS,是源数据中心,同时它负责一个分布式5的一个实验出零。第三个组件是DN,是一个存储节点,最后一个是CDC,也是全局的日志节点。在本次的部署当中,就可以把这四个组件想像成扩容器或者四个进程,他们最终会单独的抛弃相互之间会有一个协作,组合起来就是一个完整的PolarDB-X的一个实例,最终是把CN,DN,GMS,CDC,这四个组件拉起来。
2.环境准备
目前PolarDB-X支持的操作系统如CentOS 7、8 ,macOS ,Ubuntu 18、20、21、22 ,Windows 10+,测试是在windows10以上测试的。配置最好是>=4C8G。环境是最终需要配备到Docker >= 1.19.3 ,Python >=3 ,minikube 1.18.0 ,Helm3 ,MySQL Client。
3.演示内容
会覆盖到三个方面,第一个是利用一个PXD一键安装的这个工具,在你的本地把PolarDB-X的实例给安装起来,这次演示会在macOC中操作,如果是其他的话步骤也是一样的,文档当中也进行了一个介绍,可以跟着一步步操作。接下来联络的方式是在k8s集群里面把PolarDB-X给抛弃。最后一个是直接从源码编译直接把PolarDB-X给拉起。
四、操作内容
用PolarDB-X一键安装工具在k8s本地安装一个集群。从快速入门里面的快速体验文档来尝试安装PolarDB-X。在本地安装首先需要两个依赖,一个是python3,3.7、3.8、3.9都可以,第二个是需要在机器上安装一个Docker。
1.安装 PXD
推荐建一个python的一个虚拟环境,使用文档命令venv
(venv)free6om@free6om ~/I/venv> ls
LICENSE.txt bin lib requirements.txt
README.rst include pyvenv.cfg
(venv)free6om@free6om~/I/venv>
接下来把他的环境变量加载进来source bin/activate.fish
(venv)free6om@free6om~/I/venv>
(venv)free6om@free6om~/I/venv>
(venv)free6om@free6om ~/I/venv>
(venv)free6om@free6om ~/I/venv>
(venv)freebom@free6om ~/I/venv>
这样就到了python的虚拟环境里面,这里建议大家在用之前把本地的pip升级一下
(venv) free6om@free6om venv> p--versin
Usage:
pip [options]
no such option: --versin
(venv)free6om@free6om ~/I/venv [012]> pip --version
pip21.3.1from/Users/free6om/IdeaProjects/venv//lib/python3.9/site-packages/pip (python 3.9)
(venv)freebom@free6om ~/I/venv>
升级之后就可以安装PXD工具了,其实PXD就是python的一个包,这个包挺小的。
(venv)freebom@free6om ~/I/venv> pip install pxd
这样就安装好了他的版本是0.2.2
(venv)freebom@free6om ~/I/venv> pxxd version
pxd version: 0.2.2
(venv)freebom@free6om ~/I/venv>
安装之后就可以体验pxd tryout
(venv)freebom@free6om ~/I/venv> pxd tryout
/Users/free6om/IdeaProject/venv/lib/python3.9/site-packages/deployer
Start creating PolarDB-X cluster pxc-tryout on your local machine
PolarDB-X Cluster params:
cn count: 1, version: latest
dn count: 1,version: latest
cdc count: 1.version: latest
gms count: 1,version: latest
Processing[ ------------------] 0% pre check
Processing [###--------------] 8% generate topology
Processing [######--------- ]16% pull images
Pull image: polardbx/galaxysql:latest at 127.0.0.1
这个命令会做几件事情,第一个会把PolarDB-X几个镜像拉到本地,因为几个镜像加起来都是比较大的,大概2.5g。
PolarDB-X cluster create successfully, you can try it out now. Connect PolarDB-X using the following command:
mysql-h127.0.0.1-P8329-upolardbx_root-pXurTiJSH
(venv)free6om@free6om ~/I/venv>
现在是在本地已经创建好的一个PolarDB-X的实例,因为PolarDB-X分布式的一个系统它里面的四个组件都可以水平接近一个扩展。
默认情况下创建一个实例
(venv) free6om@free6om ~/I/venv> pxd list
/Users/free6om/IdeaProjects/venv/lib/python3.9/site-packages/deployer
NAME CN DN CDC STATUS
pxc-tryout 1 1 1 running
(venv)free6om@free6om ~/I/venv>
证明在本地有了一个PolarDB-X实例,他的链接方式是
mysql-h127.0.0.1-P8329-upolardbx_root-pXurTiJSH
他的密码是需要记忆的,他只会在本地打一次,如果以后想长期使用的话可能会被忘记,所以先记忆下来。
接下来是连接到里面做一些基本系统的操作
(venv)free6om@free6om ~/I/venv> mysql -h127.0.0.1 -P8329 -upolardbx_root -pXurTiJSH
mysql:[Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ;or \g.
Your MySQL connection id is 44
Server version: 5.6.29 Tddl ServerCALIBABA)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type'help;’or '\h’ fbr help. Type '\c’ to clear the current input statement
mysql>
文档里面也给了一些基本操作,第一个是
select * from information_schema.schemata;
mysql> select * from information_schema.schemata;
CATALOG_NAME |
SCHEMA_NAME |
DEFAULT_CHARACTER_SET_NAME |
DEFAULT_COLLATION_NAME |
SQL_PATH |
def |
Iinformation_schema |
utf8 |
|
NULL |
1 row in set (0.15 sec)
mysql>