本文介绍在操作系统 CentOS Linux 7.6 的环境下如何使用 OBD 白屏部署 OceanBase4.1 数据库,以及在OB白屏环境下建立数据库后从MySQL到OB用户的数据离线同步的实现。篇幅稍长,主要是因为我想要记录下每一步的细节,以备后绪再部署时如果忘记了某一步骤,能够查找出问题来,其实步骤没有那么多,我会在最后总结时,总结出关键步骤。
以前,我在OB黑屏环境下做过OB3.x版本的数据迁移,感兴趣的同学可以查看https://www.modb.pro/db/411540。
也曾经在OB4.0版本的黑屏环境下做过数据迁移,这是为了查看与OB3.x版本的数据迁移的差距,详情可以查阅https://www.modb.pro/knowledge?id=618401。
这一次偿试在新版本的OceanBase 4.1白屏OCP Express环境下创建数据库。
一、OB4.1白屏的安装以及集群的实现
0.安装环境:
1.OB4.1下载、解压:
从 OceanBase 软件下载中心下载最新的 all-in-one 安装包,之后解压。
[angel@localhost ~]$ tar -xzf 20230424/oceanbase-all-in-one-*.tar.gz
[angel@localhost ~]$ tar -xzf 20230424/oceanbase-all-in-one-*.tar.gz [angel@localhost ~]$ cd oceanbase-all-in-one/bin/ [angel@localhost bin]$
2.安装:
[angel@localhost bin]$ ./install.sh
[angel@localhost bin]$ ./install.sh
name: grafana
version: 7.5.17
release:1
arch: x86_64
md5: 1bf1f338d3a3445d8599dc6902e7aeed4de4e0d6
add /home/angel/oceanbase-all-in-one/rpms/grafana-7.5.17-1.el7.x86_64.rpm to local mirror
name: obagent
version: 1.2.0
release:4.el7
arch: x86_64
md5: 0e8f5ee68c337ea28514c9f3f820ea546227fa7e
add /home/angel/oceanbase-all-in-one/rpms/obagent-1.2.0-4.el7.x86_64.rpm to local mirror
name: obagent
version: 1.3.0
release:22.el7
arch: x86_64
md5: d57fbb4962b2fbecb6282358c59295fdfba4d6ac
add /home/angel/oceanbase-all-in-one/rpms/obagent-1.3.0-22.el7.x86_64.rpm to local mirror
name: obproxy-ce
version: 4.0.0
release:5.el7
arch: x86_64
md5: de53232a951184fad75b15884458d85e31d2f6c3
add /home/angel/oceanbase-all-in-one/rpms/obproxy-ce-4.0.0-5.el7.x86_64.rpm to local mirror
name: obproxy-ce
version: 4.1.0.0
release:7.el7
arch: x86_64
md5: 2a9d9bf67f179dcca2a8c9e7c77373d94e7e2abe
add /home/angel/oceanbase-all-in-one/rpms/obproxy-ce-4.1.0.0-7.el7.x86_64.rpm to local mirror
name: oceanbase-ce
version: 4.0.0.0
release:100000272022110114.el7
arch: x86_64
md5: 42611dc51ca9bb28f36e60e4406ceea4a74914c7
add /home/angel/oceanbase-all-in-one/rpms/oceanbase-ce-4.0.0.0-100000272022110114.el7.x86_64.rpm to local mirror
name: oceanbase-ce
version: 4.1.0.0
release:100000192023032010.el7
arch: x86_64
md5: 8439ecf8db5e0649bd49671b41ea9e8c85756b63
add /home/angel/oceanbase-all-in-one/rpms/oceanbase-ce-4.1.0.0-100000192023032010.el7.x86_64.rpm to local mirror
name: oceanbase-ce-libs
version: 4.0.0.0
release:100000272022110114.el7
arch: x86_64
md5: 188919f8128394bf9b62e3989220ded05f1d14da
add /home/angel/oceanbase-all-in-one/rpms/oceanbase-ce-libs-4.0.0.0-100000272022110114.el7.x86_64.rpm to local mirror
name: oceanbase-ce-libs
version: 4.1.0.0
release:100000192023032010.el7
arch: x86_64
md5: a83b1dd1cab44d3f610d439931322be7a08555f2
add /home/angel/oceanbase-all-in-one/rpms/oceanbase-ce-libs-4.1.0.0-100000192023032010.el7.x86_64.rpm to local mirror
name: ocp-express
version: 1.0.0
release:100000432023032015.el7
arch: x86_64
md5: 42c6fc921063f24f9e1072d75bfa7f21f42146e3
add /home/angel/oceanbase-all-in-one/rpms/ocp-express-1.0.0-100000432023032015.el7.x86_64.rpm to local mirror
name: prometheus
version: 2.37.1
release:10000102022110211.el7
arch: x86_64
md5: 58913c7606f05feb01bc1c6410346e5fc31cf263
add /home/angel/oceanbase-all-in-one/rpms/prometheus-2.37.1-10000102022110211.el7.x86_64.rpm to local mirror
Trace ID: 05aa69dc-e274-11ed-8e6c-5254007e899f
If you want to view detailed obd logs, please run: obd display-trace 05aa69dc-e274-11ed-8e6c-5254007e899f
Disable remote ok
Trace ID: 06868e94-e274-11ed-8d54-5254007e899f
If you want to view detailed obd logs, please run: obd display-trace 06868e94-e274-11ed-8d54-5254007e899f
add auto set env logic to profile: /home/angel/.bash_profile
#####################################################################
Install Finished
=====================================================================
Setup Environment: source ~/.oceanbase-all-in-one/bin/env.sh
Start Web Service: obd web
Quick Start: obd demo
More Details: obd -h
=====================================================================
[angel@localhost bin]$
3.获取白屏地址:
输入启动白屏命令后获取启动白屏的地址。
[angel@localhost bin]$ obd web
[angel@localhost bin]$ obd web
start OBD WEB in 0.0.0.0:8680
please open http://127.0.0.1:8680
4.启动白屏界面:
在浏览器输入启动白屏地址:
http://127.0.0.1:8680
白屏界面如下:
点击开启体验之旅,进入集群部署步骤。
5.集群部署:
第一步:进入部署配置界面
首先定义一个集群名称,点击完全部署,选择下一步。
第二步:节点配置
在这一步骤里,可以根据需要设置zone的名称和节点IP,由于作者是离线部署,所以选择单机节点,IP:127.0.0.1,删除其余节点。在组件节点配置项OCP Express和OBProxy自动输入同样的IP地址。输入用户名和密码,软件路径自动填充,选择下一步。
第三步:集群配置
在模式配置中,可以根据自己的实际资源情况设置,由于作者的资源充裕,所以选择最大占用。密码设置规则如下:
仅支持英文、数字和特殊字符(~!@#%^&*_-+=|(){}[]:;,.?/),长度在 8-32 个字符之内
因为怕忘记密码,所以选择最简单的密码。如果资源有限可以选择数据目录和日志目录,否则选择默认,选择下一步。
第四步:预检查
第五步:部署
查看各个参数是否有错误。如果有错误可以返回上一步修改,如果没有错误,点击部署。
正在部署中。
部署进行中。
部署成功。
部署成功后复制信息,避免再次登录时忘记登录名和密码。
[{"component":"oceanbase-ce","access_url":"127.0.0.1:2881","user":"root","password":"12345678","connect_url":"obclient -h127.0.0.1 -P2881 -uroot -p'12345678' -Doceanbase -A"}, {"component":"obproxy-ce","access_url":"127.0.0.1:2883","user":"root","password":"12345678","connect_url":"obclient -h127.0.0.1 -P2883 -uroot -p'12345678' -Doceanbase -A"}, {"component":"ocp-express","access_url":"127.0.0.1:8180","user":"admin","password":"oceanbase","connect_url":"http://127.0.0.1:8180"}]
退出前系统会再一次提醒,退出前,请确保已复制访问地址和帐密信息。
二、通过ocp-express设置资源规格、增加租户及创建数据库
1.修改ocp占用资源:
在浏览器地址栏输入地址:127.0.0.1:8180登录ocp-express。
初始帐号和密码:“user”:“admin”,“password”:“oceanbase”。进入后需要更改密码,规则如下:
至少包含 2 位数字、2 位大写字母、2 位小写字母和 2 位特殊字符 (._+@#$%),长度 8~32 位字符.
进入租户管理,找到OCP,进入后首先需要修改密码,是普通密码限制,修改后没有保存密码,就退出了,我害怕密码太多忘记了。
修改OCP占用CPU的核数从1改为2,内存占用大小从2增加至10GB。
修改成功。
退出时直接进入诊断分析页面,显示修改租户副本的详细信息,包括日志和流转视图。
2.增加租户
在租户管理界面选择新建租户。
进入创建租户详情界面。
租户管理界面密码限制规则如下:
长度为 8~32 个字符
只能包含字母、数字和特殊字符(~!@#%^&*_-+=|(){}[]:;,.?/)
大小写字母、数字和特殊字符都至少包含 2 个
这一步骤页面太长,分为两个图片,这是上半部分,设置新租户lxs_tenant,资源规格的核数是1,占用内存为2。
这是下半部分,设置访问白名单:127.0.0.1。
新建租户任务提交成功。
刷新后的租户列表如下。
下面来到lxs_tenant租户总览界面。
3.建立数据库
在数据库管理菜单,显示当前数据库列表。
在创建数据库菜单里,填写数据库名:lxs_db,然后提交。
返回数据库管理界面,看到新的数据库lxs_db已经生成。
三、数据库迁移
文章开篇提到,我以前做过MySQL的数据迁移,详情开篇时有链接,其中表结构和数据已经从MySQL的数据库中迁移到了如下目录:
[angel@localhost ~]$ ll *.sql
-rw-rw-r--. 1 angel angel 1421 3月 18 01:55 table_20230301_data.sql
-rw-rw-r--. 1 angel angel 344 3月 18 01:54 table_20230301_ddl.sql
[angel@localhost ~]$ pwd
现在将这个MySQL数据库中的表结构和数据迁移到OB4.1白屏化界面下建立的数据库lxs_db中。
1.打开OB黑屏界面数据库
在白屏OB云平台的lxs_tenant租户总览界面找到租户连接字符串,
复制租户连接字符串的地址:
mysql -h127.0.0.1 -P2881 -uroot@lxs_tenant -p
到黑屏界面,并粘贴到命令行后回车。
[angel@localhost ~]$ mysql -h127.0.0.1 -P2881 -uroot@lxs_tenant -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3221502153
Server version: 5.7.25 OceanBase_CE 4.1.0.0 (r100000192023032010-0265dfc6d00ff4f0ff4ad2710504a18962abaef6) (Built Mar 20 2023 10:12:57)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
2.查看数据库列表
show databases;
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| lxs_db |
| mysql |
| oceanbase |
| test |
+--------------------+
5 rows in set (0.45 sec)
MySQL [(none)]>
3.打开数据库:
use lxs_db;
MySQL [(none)]> use lxs_db;
Database changed
MySQL [lxs_db]>
4.导入表结构:
source /home/angel/table_20230301_ddl.sql
MySQL [lxs_db]> source /home/angel/table_20230301_ddl.sql Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected, 1 warning (0.08 sec) Query OK, 0 rows affected (0.00 sec) MySQL [lxs_db]>
表结构导入成功。
5.导入数据:
source /home/angel/table_20230301_data.sql
MySQL [lxs_db]> source /home/angel/table_20230301_data.sql Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 2 rows affected (0.01 sec) Records: 2 Duplicates: 0 Warnings: 0 Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) MySQL [lxs_db]>
数据导入成功。
6.查询数据库中的表:
show tables;
MySQL [lxs_db]> show tables;
+------------------+
| Tables_in_lxs_db |
+------------------+
| table_20230301 |
+------------------+
1 row in set (0.00 sec)
7.查询表中的数据:
select * from table_20230301;
MySQL [lxs_db]> select * from table_20230301;
+----+-------+
| id | name |
+----+-------+
| 1 | angel |
| 2 | alice |
+----+-------+
2 rows in set (0.00 sec)
MySQL [lxs_db]>
至此,能够证明,通过OB4.1白屏ocp-express云平台建立的数据库与在OB4.0及3.X版本建立的数据库从MySQL数据库中导入的表结构和数据的结果是完全相同的。同时,OB4.0相较于3.x版本部署时容易了很多,OB4.1的白屏效果又较OB4.0节省了很多步骤。
总结:
1.白屏安装步骤:
①.从官网下载最新软件安装包,解压并安装后获取白屏网址。
②.进入白屏后首先需要部署集群,然后复制部署信息,以防忘记登录名和密码。
③.部署集群后需要进入ocp-express云平台设置资源规格、增加租户及创建数据库。
④.最后复制租户连接字符串的地址,以备黑屏下使用。
2.白屏安装优点:
①.资源规格,资源池的设置简单了许多,只要求填写资源单元的核数和占用内存的大小就可以了,资源池的设置我没有看到,iops的设置也省略了。
②.租户的密码安全级别提高了,从以前的任意设置到现在的高强度级别。
③.可视化效果增强了,方便查阅。
④.数据和图形化界面能达到一目了然的效果。
感谢:
最后感谢在我遇到困难时为我提供帮助的老师和同学们!本文还有很多错误和不足之处,欢迎老师和同学们批评指正!