实验1:通过Docker安装部署OceanBase

这篇具有很好参考价值的文章主要介绍了实验1:通过Docker安装部署OceanBase。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

练习内容
(必选)下载Docker 镜像:OceanBase 官方社区版镜像 55 。
(必选)使用 OBD 命令完成后续的 OceanBase 集群部署。
(必选)创建一个业务租户、一个业务数据库,以及一些表等。

备注:第一次尝试使用docker安装OB,文章为个人测试过程记录以及个人理解,不一定正确,仅供参考。

安装前准备

主机配置

主机名 ip 配置
competet-oecanbase 192.179.4.212 16C/64G/1.5T

安装docker环境

yum源已配置好,直接yum安装docker即可

yum -y install docker

启动docker服务,并设置成开机自启

[root@competet-oecanbase ~]# systemctl start docker
[root@competet-oecanbase ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@competet-oecanbase ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2022-10-20 18:38:54 CST; 13s ago
     Docs: http://docs.docker.com
 Main PID: 25543 (dockerd-current)
   CGroup: /system.slice/docker.service
           ├─25543 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexe...
           └─25555 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --...

Oct 20 18:38:53 competet-oecanbase dockerd-current[25543]: time="2022-10-20T18:38:53.022843318+08:00" level=info msg="libcontainerd: new containerd process, pid: 25555"
Oct 20 18:38:54 competet-oecanbase dockerd-current[25543]: time="2022-10-20T18:38:54.186819391+08:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
Oct 20 18:38:54 competet-oecanbase dockerd-current[25543]: time="2022-10-20T18:38:54.189190091+08:00" level=info msg="Loading containers: start."
Oct 20 18:38:54 competet-oecanbase dockerd-current[25543]: time="2022-10-20T18:38:54.328850676+08:00" level=info msg="Firewalld running: false"
Oct 20 18:38:54 competet-oecanbase dockerd-current[25543]: time="2022-10-20T18:38:54.444808707+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon opt...d IP address"
Oct 20 18:38:54 competet-oecanbase dockerd-current[25543]: time="2022-10-20T18:38:54.505595365+08:00" level=info msg="Loading containers: done."
Oct 20 18:38:54 competet-oecanbase dockerd-current[25543]: time="2022-10-20T18:38:54.540217754+08:00" level=info msg="Daemon has completed initialization"
Oct 20 18:38:54 competet-oecanbase dockerd-current[25543]: time="2022-10-20T18:38:54.540288579+08:00" level=info msg="Docker daemon" commit="7d71120/1.13.1" graphdriver=overlay2 version=1.13.1
Oct 20 18:38:54 competet-oecanbase dockerd-current[25543]: time="2022-10-20T18:38:54.552340619+08:00" level=info msg="API listen on /var/run/docker.sock"
Oct 20 18:38:54 competet-oecanbase systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.

安装OceanBase

参考:https://www.oceanbase.com/docs/community-observer-cn-10000000000096600

[root@competet-oecanbase ~]# docker run -p 2881:2881 --name oceanbase-ce -d oceanbase/oceanbase-ce
[root@competet-oecanbase ~]# docker ps 
CONTAINER ID        IMAGE                    COMMAND              CREATED             STATUS              PORTS                    NAMES
769a593e1351        oceanbase/oceanbase-ce   "/bin/sh -c _boot"   3 minutes ago       Up 2 minutes        0.0.0.0:2881->2881/tcp   oceanbase-ce
[root@competet-oecanbase ~]# docker images 
REPOSITORY                         TAG                 IMAGE ID            CREATED             SIZE
docker.io/oceanbase/oceanbase-ce   latest              4af946862346        3 months ago        558 MB
[root@competet-oecanbase ~]#  docker logs oceanbase-ce |tail -1
boot success!

可能会用到的命令:

docker stop `docker ps -a -q`
docker rm `docker ps -a -q`
docker rmi `docker images -q`

下面的命令只用执行一个即可。
按照文档的描述,因为会创建一个test租户,这里会把给sys租户的资源除去之后剩下的资源都给到test租户。
如果选择mini应该是有另外一个小一点的资源规格,有机会再尝试。
实验1:通过Docker安装部署OceanBase

连接OceanBase

#进入容器
[root@competet-oecanbase ~]# docker exec -it  oceanbase-ce bash 
#查看集群状态
[root@16073e6d087d ~]# obd cluster list
+------------------------------------------------------------+
|                        Cluster List                        |
+-----------+------------------------------+-----------------+
| Name      | Configuration Path           | Status (Cached) |
+-----------+------------------------------+-----------------+
| obcluster | /root/.obd/cluster/obcluster | running         |
+-----------+------------------------------+-----------------+

这个地方也是疑惑了很久,因为练习要求说安装完docker使用obd完成后面的集群部署,此时集群已经是running状态,代表集群已经部署完成且跑起来了。查询一些文档之后,怀疑应该是镜像不同的问题。

既然集群已经成功启动,接下来就创建租户、数据库和表。

创建租户

在容器内使用obclient客户端连接实例

[root@16073e6d087d ~]# obclient -h127.0.0.1 -u root -P 2881
Welcome to the OceanBase.  Commands end with ; or \g.
Your OceanBase connection id is 3221487675
Server version: 5.7.25 OceanBase 3.1.4 (r10000092022071511-b4bfa011ceaef428782dcb65ae89190c40b78c2f) (Built Jul 15 2022 11:45:14)

Copyright (c) 2000, 2022, OceanBase and/or its affiliates. All rights reserved.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

obclient [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| oceanbase          |
| information_schema |
| mysql              |
| SYS                |
| LBACSYS            |
| ORAAUDITOR         |
| test               |
+--------------------+
7 rows in set (0.004 sec)

obclient [(none)]> use oceanbase;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
obclient [oceanbase]> select * from gv$tenant;
+-----------+-------------+-----------+--------------+----------------+---------------+-----------+---------------+
| tenant_id | tenant_name | zone_list | primary_zone | collation_type | info          | read_only | locality      |
+-----------+-------------+-----------+--------------+----------------+---------------+-----------+---------------+
|         1 | sys         | zone1     | zone1        |              0 | system tenant |         0 | FULL{1}@zone1 |
|      1001 | test        | zone1     | RANDOM       |              0 |               |         0 | FULL{1}@zone1 |
+-----------+-------------+-----------+--------------+----------------+---------------+-----------+---------------+
2 rows in set (0.003 sec)

通过视图gv$tenant可以看到,除了sys租户默认已经创建了一个test租户,并且资源已经分配完了。

obclient [oceanbase]> select * from gv$unit;
+---------+----------------+------------------+------------------+--------------------+-------+-----------+-------------+-----------+----------+---------------------+-----------------------+---------+---------+-------------+-------------+----------+----------+---------------+---------------------+
| unit_id | unit_config_id | unit_config_name | resource_pool_id | resource_pool_name | zone  | tenant_id | tenant_name | svr_ip    | svr_port | migrate_from_svr_ip | migrate_from_svr_port | max_cpu | min_cpu | max_memory  | min_memory  | max_iops | min_iops | max_disk_size | max_session_num     |
+---------+----------------+------------------+------------------+--------------------+-------+-----------+-------------+-----------+----------+---------------------+-----------------------+---------+---------+-------------+-------------+----------+----------+---------------+---------------------+
|       1 |              1 | sys_unit_config  |                1 | sys_pool           | zone1 |         1 | sys         | 127.0.0.1 |     2882 |                     |                     0 |       5 |     2.5 |  8697308774 |  7247757312 |    10000 |     5000 |   10737418240 | 9223372036854775807 |
|    1001 |           1001 | test_unit        |             1001 | test_pool          | zone1 |      1001 | test        | 127.0.0.1 |     2882 |                     |                     0 |      11 |      11 | 20293720474 | 20293720474 |      128 |      128 |   10737418240 |                  64 |
+---------+----------------+------------------+------------------+--------------------+-------+-----------+-------------+-----------+----------+---------------------+-----------------------+---------+---------+-------------+-------------+----------+----------+---------------+---------------------+
2 rows in set (0.016 sec)

注意:一个资源池只能分配给一个租户,这里本来尝试把test_pool直接给mysql用的,发现不行。

为了熟悉步骤,遂删除test租户和对应资源,然后创建自己需要的obmysql租户和资源池。

#记得要使用force,不然无法删除资源池
obclient [oceanbase]> drop tenant test force;
Query OK, 0 rows affected (0.035 sec)

obclient [oceanbase]> drop resource pool test_pool;
Query OK, 0 rows affected (0.008 sec)

obclient [oceanbase]> drop resource unit test_unit;
Query OK, 0 rows affected (0.005 sec)

obclient [oceanbase]> CREATE resource unit mysql_unit max_cpu=4, min_cpu=4, max_memory='16G', min_memory='16G', max_iops=10000, min_iops=1000, max_session_num=1000000, max_disk_size='400G'; 
Query OK, 0 rows affected (0.010 sec)

obclient [oceanbase]> CREATE resource pool my_pool unit = 'mysql_unit', unit_num = 1;
Query OK, 0 rows affected (0.011 sec)

obclient [oceanbase]> create tenant obmysql resource_pool_list=('my_pool'), primary_zone='zone1',comment 'mysql tenant/instance', charset='utf8' set ob_tcp_invited_nodes='%', ob_compatibility_mode='mysql';
Query OK, 0 rows affected (0.912 sec)

在obmysql租户下创建数据库db01及测试表course,插入几笔数据。

obclient [(none)]> create database db01;
Query OK, 1 row affected (0.025 sec)

obclient [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| oceanbase          |
| information_schema |
| mysql              |
| test               |
| db01               |
+--------------------+
5 rows in set (0.003 sec)

obclient [(none)]> use db01;
Database changed
obclient [db01]> CREATE TABLE course (
    -> cno varchar(5) NOT NULL,
    -> cname varchar(50) NOT NULL,
    -> tno char(3) NOT NULL,
    -> PRIMARY KEY (cno)
    -> );
Query OK, 0 rows affected (0.089 sec)

obclient [db01]> show tables;
+----------------+
| Tables_in_db01 |
+----------------+
| course         |
+----------------+
1 row in set (0.002 sec)

obclient [db01]> INSERT INTO course VALUES ('3001','C语言实践','801');
Query OK, 1 row affected (0.009 sec)

obclient [db01]> INSERT INTO course VALUES ('3002','高等数学','802');
Query OK, 1 row affected (0.001 sec)

obclient [db01]> INSERT INTO course VALUES ('3003','数学分析','803');
Query OK, 1 row affected (0.002 sec)

obclient [db01]> INSERT INTO course VALUES ('3004','数据库原理','804');
Query OK, 1 row affected (0.001 sec)

obclient [db01]> INSERT INTO course VALUES ('3005','离散数学','805');
Query OK, 1 row affected (0.002 sec)

obclient [db01]> INSERT INTO course VALUES ('3006','大学英语','806');
Query OK, 1 row affected (0.001 sec)

obclient [db01]> INSERT INTO course VALUES ('3007','线性代数','807');
Query OK, 1 row affected (0.002 sec)

obclient [db01]> select * from course;
+------+-----------------+-----+
| cno  | cname           | tno |
+------+-----------------+-----+
| 3001 | C语言实践   | 801 |
| 3002 | 高等数学    | 802 |
| 3003 | 数学分析    | 803 |
| 3004 | 数据库原理 | 804 |
| 3005 | 离散数学    | 805 |
| 3006 | 大学英语    | 806 |
| 3007 | 线性代数    | 807 |
+------+-----------------+-----+
7 rows in set (0.002 sec)

测试感受:整体感觉使用docker安装OB是很简单方便的。如果对OB的架构和租户概念有一定了解,会更容易上手。文章来源地址https://www.toymoban.com/news/detail-401117.html

到了这里,关于实验1:通过Docker安装部署OceanBase的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Centos安装docker以及通过docker部署Mysql,照做就行!

    1.1给虚拟机联网(反斜杠带表该语句没写完) 1.2更新本地文件镜像 1.3安装docker(-y代表一路yes,-ce代表社区免费版) 1.4启动docker 请关闭防火墙再启动 启动docker 1.5配置阿里云镜像加速器 2.1通过docker拉取mysql镜像 2.2运行mysql镜像 -v是数据卷,-e是设置mysql密码 用FinalShell的可以

    2023年04月09日
    浏览(49)
  • 【无标题】Centos 9 安装docker版的Oceanbase

    旧版本的 Docker 被称为docker或docker-engine。如果安装了这些,卸载它们以及相关的依赖项。 yum如果报告没有安装这些软件包,那也没关系。 /var/lib/docker/ 的内容,包括图像、容器、卷和网络,将被保留。 Docker 引擎包现在称为 docker-ce。 您可以根据需要以不同的方式安装 Docker

    2023年04月26日
    浏览(31)
  • 实践练习五(可选):对 OceanBase 做性能测试

    由于手上正好有7台物理机,在作业三中会使用OBD直接部署了2:2:2架构的OceanBase集群。这里直接拿来进行TPC-C测试。 机器信息如下: 机器类型 主机信息 IP 10.144.2.112,10.144.2.111,10.144.2.110,10.144.2.109, 10.144.2.108,10.144.2.107,10.144.2.107 网卡名 bond0 OS CentOS Linux release 7.9.2009 (Core) CPU 64 内存

    2023年04月09日
    浏览(38)
  • Docker环境下部署Ghost开源内容管理系统

    Ghost是一款用于博客、出版物和内容网站的免费且开源的CMS(内容管理系统),它是完全基于JavaScript编写的。Ghost的主要特点是简单易用、高度可扩展、精美的设计和优秀的性能。 简单易用:Ghost的用户界面非常简单和直观,因此非常易于使用。它提供了一个简单的写作体验

    2024年02月15日
    浏览(58)
  • 【oceanbase】centos7/kylinv10部署oceanbase(x86版本)

    1. 修改系统​ vim /etc/sysctl.conf fs.file-max = 102400 net.nf_conntrack_max = 1024000 net.netfilter.nf_conntrack_max = 1024000 2. 修改 ulimit 的 open file,系统默认的 ulimit 对文件打开数量的限制是 1024 vim /etc/security/limits.conf # 加入以下配置,重启即可生效 * hard nofile 102400 * soft nofile 102400 3. 资源下载: o

    2024年02月07日
    浏览(46)
  • OceanBase集群部署

    我认为学习一个中间件比较好的方式是,先了解它的架构和运行原理,然后动手部署一遍,加深对它的了解,再使用它,最后进行总结和分享 本篇介绍OceanBase部署前提条件和集群部署 1.使用开源免费的社区版,企业版需要付费 社区版目前最新是V4.2.1_CE_BP3,它们之间的差异请

    2024年01月19日
    浏览(48)
  • 云原生之使用Docker部署SSCMS内容管理系统

    SSCMS 基于 .NET Core,能够以最低的成本、最少的人力投入在最短的时间内架设一个功能齐全、性能优异、规模庞大并易于维护的网站平台。 本次实践为个人测试环境,操作系统版本为centos7.6。 hostname IP地址 操作系统版本 Docker版本 jeven 192.168.3.166 centos 7.6 20.10.17 1.本次实践部署

    2024年02月11日
    浏览(45)
  • Docker 练习1 安装容器

    1.安装docker服务,配置镜像加速器 2.下载系统镜像(Ubuntu、 centos) 3.基于下载的镜像创建两个容器 (容器名一个为自己名字全拼,一个为首名字字母) 4.容器的启动、 停止及重启操作 5.查看正在运行的容器和所有容器 6.退出容器的两种方法,分别实现 7.连接到运行的容器

    2024年02月12日
    浏览(34)
  • Docker本地部署Drupal内容管理框架并实现公网远程访问

    Dupal是一个强大的CMS,适用于各种不同的网站项目,从小型个人博客到大型企业级门户网站。它的学习曲线可能相对较陡,但一旦熟悉了它的工作方式,用户就能够充分利用其功能和灵活性。在本文中,我们将介绍如何使用Docker快速部署Drupal,并且结合cpolar内网穿透工具实现公

    2024年02月05日
    浏览(38)
  • Docker 练习2 安装MySQL

    1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。 2、安装搭建私有仓库 Harbor 3、编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私有仓库。具体要求如下: (1)基于centos基础镜像; (2)指定作者信息; (3)安装nginx服务,将提供的dest目录(提供默

    2024年02月12日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包