装置OceanBase
第一步是更新 yum 包。运转以下 bash 指令
sudo yum update
在服务器上装置OceanBase最简略的办法是运用官方的一体化装置包,它会在你的机器上装置OBD、OceanBase DBMS、OBProxy、obagent、Grafana和Prometheus。您能够经过运转以下代码来运用一体化装置:
bash -c "$(curl -s <https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/installer.sh>)"
此进程最多或许需求 5 分钟。装置完一切内容后,您将看到这样的“装置完结”屏幕。
或者,您能够运用 Docker 只需一行代码即可快速发动 OceanBase 服务器:
docker run -p 2881:2881 --name obstandalone -d oceanbase/oceanbase-ce
为简略起见,我将在本文的其余部分运用咱们刚刚运用一体化软件包装置的演示实例。
下一步是经过键入以下指令来激活设置环境:
source ~/.oceanbase-all-in-one/bin/env.sh
然后咱们能够运转 obd demo 指令来发动咱们刚刚从一体化软件包装置的服务的演示实例。
obd demo
请留意,obd demo 指令仅建议用于演示意图,不该用于生产。
留意:更新您的 ulimits 装备
运转此指令后,您或许会遇到“打开的文件不得小于 20000(当时值:1024)”的错误,错误代码为 OBD-1007。根据OceanBase的文档,这个错误提示是咱们的ulimits装备没有达到官方要求。
要更改 ulimits 装备,咱们需求修改 /etc/security/limits.conf 文件。ulimit 是一个内置的 Linux 装备,答应查看或约束单个用户耗费的体系资源量。出于演示意图,咱们会将约束增加到很大或无约束。但在生产中,建议您遵从设置 ulimits 的最佳实践。
* soft nofile 655360
* hard nofile 655360
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited
* soft stack unlimited
* hard stack unlimited
要使装备生效,您需求刊出会话并重新登录。之后,您能够经过运转以下指令来查看装备是否正确:
ulimit -a
如果重新装备成功,您或许会看到以下屏幕。
现在让咱们obd demo
再次运转指令。宾果游戏,咱们有一个正在运转的 OceanBase 服务器。demo 指令还将为每个服务提供凭据。
+---------------------------------------------+
| observer |
+-----------+---------+------+-------+--------+
| ip | version | port | zone | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 4.0.0.0 | 2881 | zone1 | ACTIVE |
+-----------+---------+------+-------+--------+
obclient -h127.0.0.1 -P2881 -uroot -Doceanbase -A
+--------------------------------------------------+
| obagent |
+--------------+-------------+------------+--------+
| ip | server_port | pprof_port | status |
+--------------+-------------+------------+--------+
| 172.*.*.42 | 8088 | 8089 | active |
+--------------+-------------+------------+--------+
+-----------------------------------------------------+
| prometheus |
+--------------------------+------+----------+--------+
| url | user | password | status |
+--------------------------+------+----------+--------+
| <http://172>.*.*.42:9090 | | | active |
+--------------------------+------+----------+--------+
+-------------------------------------------------------------------+
| grafana |
+--------------------------------------+-------+-----------+--------+
| url | user | password | status |
+--------------------------------------+-------+-----------+--------+
| <http://172>.*.*.42:3000/d/oceanbase | admin | oceanbase | active |
+--------------------------------------+-------+-----------+--------+
+---------------------------------------------+
| obproxy |
+-----------+------+-----------------+--------+
| ip | port | prometheus_port | status |
+-----------+------+-----------------+--------+
| 127.0.0.1 | 2883 | 2884 | active |
+-----------+------+-----------------+--------+
obclient -h127.0.0.1 -P2883 -uroot -Doceanbase -A
demo running
衔接到您的 OceanBase 客户端
现在让咱们测验运用 OBClient 衔接咱们的 OceanBase 实例,OBClient 是 OceanBase 基于 MariaDB CLI 的官方 CLI,可用于衔接 OceanBase Server/Proxy。
因为一体机包中已经装置了 OBClient,您只需运转以下代码即可衔接到它:
obclient -h127.0.0.1 -P2881 -uroot -Doceanbase -A
如果您已经有运用 MariaDB CLI 或 MySQL CLI 的经验,那么 OBClient 对您来说应该不会陌生。
在本演练中,我将测验运用 OceanBase(双关语)创立一个关于海洋生物的数据库。首要,我将经过运转以下代码在咱们的演示 OceanBase 实例中创立一个名为 MarineLife 的数据库:
CREATE DATABASE MarineLife DEFAULT CHARACTER SET UTF8 READ WRITE;
现在运转 SHOW DATABASES,咱们将看到新创立的数据库。
现在咱们已经在 OceanBase 中创立了一个数据库,咱们能够测验运用 SQL 向数据库中插入一些数据。
在 OceanBase 中运转 SQL
首要,让咱们在 OBClient 中挑选新建的 MarineLife 数据库。
USE MarineLife;
首要,我想在名为 Species 的 MarineLife 数据库中创立一个表,它具有 species_name、common_name、habitant 和 conservation_status 等特点。为此,咱们需求创立一个表及其计划:
CREATE TABLE Species (
id INT AUTO_INCREMENT PRIMARY KEY,
species_name VARCHAR(255) NOT NULL,
common_name VARCHAR(255),
habitat VARCHAR(255),
conservation_status ENUM('Least Concern', 'Near Threatened', 'Vulnerable', 'Endangered', 'Critically Endangered', 'Extinct in the Wild', 'Extinct')
);
现在让咱们用一些虚拟数据填充表格:
INSERT INTO Species (species_name, common_name, habitat, conservation_status)
VALUES ('Carcharodon carcharias', 'Great White Shark', 'Coastal and offshore waters', 'Vulnerable'),
('Delphinus delphis', 'Short-beaked Common Dolphin', 'Open seas', 'Least Concern'),
('Chelonia mydas', 'Green Sea Turtle', 'Tropical and subtropical oceans', 'Endangered'),
('Eubalaena glacialis', 'North Atlantic Right Whale', 'North Atlantic Ocean', 'Critically Endangered');
现在咱们能够查看数据库表:
SELECT * FROM Species;
咱们将看到咱们刚刚插入到表中的数据。
从 TablePlus 衔接 OceanBase
您能够运用 TablePlus 从本地计算机办理数据库。在此之前,您需求更改 AWS EC2 安全组以答应入站拜访 2881 端口,这是默认的 OceanBase 端口。
为此,请挑选您的 EC2 实例运用的安全组并修改入站规则以答应拜访 2881 端口。
请留意,以上设置仅用于演示意图。在生产中,您或许希望将答应的来源约束在有限的 IP 范围内。
在大多数情况下,您不想运用 root 用户远程拜访您的数据库。咱们能够创立一个名为 demo 的新用户,它只能拜访 MarineLife 数据库。
要创立新用户,咱们将运用以下指令:
CREATE USER 'demo'@'localhost' IDENTIFIED BY 'password';
接下来,咱们将颁发用户拜访 MarineLife 数据库的权限:
GRANT ALL PRIVILEGES ON MarineLife.* TO 'demo'@'localhost';
现在咱们能够运用演示用户凭据从 TablePlus 衔接到 OceanBase 实例。衔接后,咱们能够从用户友好的图形界面查看和办理 MarineLife 数据库及其表格。
Host: YOUR_EC2_PUBLIC_IP_ADDRESS
Port: 2881
User: demo
Password: password
并且我在数据库中添加了几行。
这样,一个简略的装置进程就完结了!