oceanbase是什么
OceanBase是阿里开发的分布式关系型(SQL)数据库,其目标是支持数百TB的数据量以及数十万TPS、数百万QPS的访问量,无论是数据量还是访问量,即使采用非常昂贵的小型机甚至是大型机,单台关系数据库系统都无法承受。
案例:OceanBase分布式关系数据库渡过了一个成功的双十一:支持了支付宝核心的交易、支付、会员和账务等,并且创造了新的纪录:交易创建17.5万笔/秒、交易支付12万笔/秒、全天累计支付10.5亿笔
oceanbase特性
1、高扩展性
传统关系型数据库,比如Oracle或者MySQL功能已经很完善,但数据库本身不可扩展,随着数据量的增大和业务内容的丰富,需要拆库拆表,然后再进行访问路由,将相应的SQL解析路由到指定的数据库中。数据库的运维人员需要花费大量的时间来做数据库扩容,包括读写分离、垂直拆分、水平拆分等等。
OceanBase使用了分布式技术和无共享架构,来自业务的访问会自动分散到多台数据库主机上。在相关技术的支持下,OceanBase还能够采用廉价的PC服务器作为其数据库主机。通过这两个方面的变革,运维人员可以愉快地通过增加服务器数量来增加系统的容量和性能。
2、低成本
传统商业企业采用的“IOE”体系,实际上代表了一种高成本、高维护费、非高并发的商用数据库系统。特别是随着数据越来越大,所需要付出的升级硬件和维护的代价也会越来越惊人,阿里巴巴采用数据切分的策略,将部分海量数据应用从集中式Oracle切换到分布式集群,从纵向扩展到水平扩展,解决了数据库扩展性的问题,并用PC服务器替换了小型机。
由此带来的一个重要变革,就是成本的极大降低。与传统数据库公司的产品相比,OceanBase的升级维护不需要昂贵的共享存储、高可靠的服务器、数据库软件的许可费,可以将商业数据库成本降到一半以下。
3、高可靠性
数据库系统通常由数据库软件、运行数据库软件的数据库服务器硬件以及保存数据库数据的数据库存储硬件(即共享存储)组成。数据库系统的稳定可靠,也取决于这三个部分。使用PC服务器能够带来高扩展性、降低成本的同时,其硬件的可靠性却对应有些下降。
OceanBase安装操作
本实验基于CentOS 7.9系统进行演示操作
[root@oceanbase ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
安装前期准备
本实验采用单机模式 的部署方式,在同一台机器上安装服务端和客户端进行测试。
需要内存大小8GB 以上;(本实验内存大小 10 GB)
磁盘空间大小65GB以上;(本实验磁盘大小 95 GB)
1、通过 YUM 软件源下载并安装 OBD
执行以下三种命令。
# yum install -y yum-utils # yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo # yum install -y ob-deploy
[root@obd ~]# yum install -y yum-utils Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Package yum-utils-1.1.31-54.el7_8.noarch already installed and latest version Nothing to do [root@obd ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo Loaded plugins: fastestmirror adding repo from: https://mirrors.aliyun.com/oceanbase/OceanBase.repo grabbing file https://mirrors.aliyun.com/oceanbase/OceanBase.repo to /etc/yum.repos.d/OceanBase.repo repo saved to /etc/yum.repos.d/OceanBase.repo [root@obd ~]# yum install -y ob-deploy Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Package ob-deploy-1.2.1-9.el7.x86_64 already installed and latest version Nothing to do [root@obd ~]#
或者
离线安装 OBD
1. 下载 OBD 离线 RPM 安装包。
2. 运行以下命令安装 OBD。
# yum install -y ob-deploy-1.0.0-1.el7.x86_64.rpm
# source /etc/profile.d/obd.sh
2、下载 OceanBase 数据库配置文件模板
从 Github 上下载对应的配置文件模板。本实验采用的是mini-local-example.yaml 配置文件
Gitee下载链接:
example/mini-local-example.yaml · OceanBase/obdeploy – Gitee.com
oceanbase-ce:
servers:
# Please don't use hostname, only IP can be supported
- 127.0.0.1
global:
# The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
home_path: /xyb/observer
# The directory for data storage. The default value is $home_path/store.
# data_dir: /data
# The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
# redo_dir: /redo
# Please set devname as the network adaptor's name whose ip is in the setting of severs.
# if set severs as "127.0.0.1", please set devname as "lo"
# if current ip is 192.168.1.10, and the ip's network adaptor's name is "eth0", please use "eth0"
devname: lo
mysql_port: 2881 # External port for OceanBase Database. The default value is 2881. DO NOT change this value after the cluster is started.
rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882. DO NOT change this value after the cluster is started.
zone: zone1
cluster_id: 1
# please set memory limit to a suitable value which is matching resource.
memory_limit: 8G # The maximum running memory for an observer
system_memory: 4G # The reserved system memory. system_memory is reserved for general tenants. The default value is 30G.
stack_size: 512K
cpu_count: 16
cache_wash_threshold: 1G
__min_full_resource_pool_memory: 268435456
workers_per_cpu_quota: 10
schema_history_expire_time: 1d
# The value of net_thread_count had better be same as cpu's core number.
net_thread_count: 4
sys_bkgd_migration_retry_num: 3
minor_freeze_times: 10
enable_separate_sys_clog: 0
enable_merge_by_turn: FALSE
datafile_disk_percentage: 20 # The percentage of the data_dir space to the total disk space. This value takes effect only when datafile_size is 0. The default value is 90.
syslog_level: INFO # System log level. The default value is INFO.
enable_syslog_wf: false # Print system logs whose levels are higher than WARNING to a separate log file. The default value is true.
enable_syslog_recycle: true # Enable auto system log recycling or not. The default value is false.
max_syslog_file_count: 4 # The maximum number of reserved log files before enabling auto recycling. The default value is 0.
# root_password: # root user password, can be empty
3、部署 OceanBase 数据库
运行以下命令部署集群
obd cluster deploy <deploy_name> -c <deploy_config_file> -A
[root@obs ~]# obd cluster deploy xybobs -c mini-local-example.yaml Update OceanBase-community-stable-el7 ok Update OceanBase-development-kit-el7 ok Download oceanbase-ce-3.1.2-10000392021123010.el7.x86_64.rpm (46.45 M): 100% [##############] Time: 0:00:08 5.74 MB/s Package oceanbase-ce-3.1.2 is available. install oceanbase-ce-3.1.2 for local ok +-------------------------------------------------------------------------------------------+ | Packages | +--------------+---------+-----------------------+------------------------------------------+ | Repository | Version | Release | Md5 | +--------------+---------+-----------------------+------------------------------------------+ | oceanbase-ce | 3.1.2 | 10000392021123010.el7 | 7fafba0fac1e90cbd1b5b7ae5fa129b64dc63aed | +--------------+---------+-----------------------+------------------------------------------+ Repository integrity check ok Parameter check ok Open ssh connection ok Remote oceanbase-ce-3.1.2-7fafba0fac1e90cbd1b5b7ae5fa129b64dc63aed repository install ok Remote oceanbase-ce-3.1.2-7fafba0fac1e90cbd1b5b7ae5fa129b64dc63aed repository lib check !! [WARN] 127.0.0.1 oceanbase-ce-3.1.2-7fafba0fac1e90cbd1b5b7ae5fa129b64dc63aed require: libmariadb.so.3 Try to get lib-repository Download oceanbase-ce-libs-3.1.2-10000392021123010.el7.x86_64.rpm (155.22 K): 100% [########] Time: 0:00:00 6.76 MB/s Package oceanbase-ce-libs-3.1.2 is available. install oceanbase-ce-libs-3.1.2 for local ok Use oceanbase-ce-libs-3.1.2-94fff0ab31de053051dba66039e3185fa390cad5 for oceanbase-ce-3.1.2-7fafba0fac1e90cbd1b5b7ae5fa129b64dc63aed Remote oceanbase-ce-libs-3.1.2-94fff0ab31de053051dba66039e3185fa390cad5 repository install ok Remote oceanbase-ce-3.1.2-7fafba0fac1e90cbd1b5b7ae5fa129b64dc63aed repository lib check ok Cluster status check ok Initializes observer work home ok xybobs deployed [root@obs ~]#
4、启动 OceanBase 数据库
[root@obs ~]# obd cluster start xybobs
Get local repositories and plugins ok
Open ssh connection ok
Load cluster param plugin ok
Check before start observer ok
[WARN] (127.0.0.1) clog and data use the same disk (/)
Start observer ok
observer program health check ok
Connect to observer ok
Initialize cluster
Cluster bootstrap ok
Wait for observer init ok
+---------------------------------------------+
| observer |
+-----------+---------+------+-------+--------+
| ip | version | port | zone | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 3.1.2 | 2881 | zone1 | active |
+-----------+---------+------+-------+--------+
xybobs running
[root@obs ~]#
5、连接OceanBase数据库
安装OceanBase数据库客户端 OBClient
# yum install -y obclient
[root@obs ~]# yum install -y obclient Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Resolving Dependencies --> Running transaction check ---> Package obclient.x86_64 0:2.0.0-2.el7 will be installed --> Processing Dependency: libobclient >= 2.0.0 for package: obclient-2.0.0-2.el7.x86_64 --> Running transaction check ---> Package libobclient.x86_64 0:2.0.0-2.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ====================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================== Installing: obclient x86_64 2.0.0-2.el7 oceanbase.community.stable 40 M Installing for dependencies: libobclient x86_64 2.0.0-2.el7 oceanbase.community.stable 643 k Transaction Summary ====================================================================================================================================== Install 1 Package (+1 Dependent package) Total download size: 41 M Installed size: 188 M Downloading packages: (1/2): libobclient-2.0.0-2.el7.x86_64.rpm | 643 kB 00:00:00 (2/2): obclient-2.0.0-2.el7.x86_64.rpm | 40 MB 00:00:06 -------------------------------------------------------------------------------------------------------------------------------------- Total 6.6 MB/s | 41 MB 00:00:06 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : libobclient-2.0.0-2.el7.x86_64 1/2 Installing : obclient-2.0.0-2.el7.x86_64 2/2 Verifying : libobclient-2.0.0-2.el7.x86_64 1/2 Verifying : obclient-2.0.0-2.el7.x86_64 2/2 Installed: obclient.x86_64 0:2.0.0-2.el7 Dependency Installed: libobclient.x86_64 0:2.0.0-2.el7 Complete! [root@obs ~]#
使用Root用户登录 OceanBase 数据库
[root@obs ~]# obclient -h192.168.200.88 -P2881 -uroot
Welcome to the OceanBase. Commands end with ; or g.
Your MySQL connection id is 3221487658
Server version: 5.7.25 OceanBase 3.1.2 (r10000392021123010-d4ace121deae5b81d8f0b40afbc4c02705b7fc1d) (Built Dec 30 2021 02:47:29)
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)]> show databases;
+--------------------+
| Database |
+--------------------+
| oceanbase |
| information_schema |
| mysql |
| SYS |
| LBACSYS |
| ORAAUDITOR |
| test |
+--------------------+
7 rows in set (0.007 sec)
MySQL [(none)]> exit
Bye
切换使用obs用户登录 OceanBase 数据库
[root@obs ~]# su obs
[obs@obs root]$ obclient -h192.168.200.88 -P2881 -uroot
Welcome to the OceanBase. Commands end with ; or g.
Your MySQL connection id is 3221487837
Server version: 5.7.25 OceanBase 3.1.2 (r10000392021123010-d4ace121deae5b81d8f0b40afbc4c02705b7fc1d) (Built Dec 30 2021 02:47:29)
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)]> show databases;
+--------------------+
| Database |
+--------------------+
| oceanbase |
| information_schema |
| mysql |
| SYS |
| LBACSYS |
| ORAAUDITOR |
| test |
+--------------------+
7 rows in set (0.002 sec)
MySQL [(none)]>
6、OceanBase 数据库 常用命令
# obs帮助命令
[root@obs ~]# obd -h
Usage: obd <command> [options]
Available commands:
cluster Deploy and manage a cluster.
mirror Manage a component repository for OBD.
repo Manage local repository for OBD.
test Run test for a running deployment.
update Update OBD.
Options:
--version show program's version number and exit
-h, --help Show help and exit.
-v, --verbose Activate verbose output.
# 查看obd管理的集群列表
[root@obs ~]# obd cluster list
+------------------------------------------------------+
| Cluster List |
+--------+---------------------------+-----------------+
| Name | Configuration Path | Status (Cached) |
+--------+---------------------------+-----------------+
| xybobs | /root/.obd/cluster/xybobs | running |
+--------+---------------------------+-----------------+
# 查看集群状态
[root@obs ~]# obd cluster display xybobs
Get local repositories and plugins ok
Open ssh connection ok
Cluster status check ok
Connect to observer ok
Wait for observer init ok
+---------------------------------------------+
| observer |
+-----------+---------+------+-------+--------+
| ip | version | port | zone | status |
+-----------+---------+------+-------+--------+
| 127.0.0.1 | 3.1.2 | 2881 | zone1 | active |
+-----------+---------+------+-------+--------+
三、安装过程中的报错信息
磁盘空间不足,至少所需65G磁盘空间大小。
[root@obs ~]# vim mini-local-example.yaml
[root@obs ~]# obd cluster autodeploy xyb -c mini-local-example.yaml
Update OceanBase-community-stable-el7 ok
Update OceanBase-development-kit-el7 ok
Download oceanbase-ce-3.1.2-10000392021123010.el7.x86_64.rpm (46.45 M): 100% [####] Time: 0:00:06 7.88 MB/s
Package oceanbase-ce-3.1.2 is available.
install oceanbase-ce-3.1.2 for local ok
Cluster param config check ok
Open ssh connection ok
Generate observer configuration x
[ERROR] (127.0.0.1) / not enough disk space. (Avail: 14.9G, Need: 64.1G). Use `redo_dir` to set other disk for clog
网卡名称错误❌,本机安装使用的IP是127.0.0.1,对应的网络名称是lo。销毁集群后重新部署。
[root@obs ~]# obd cluster start xybobs
Get local repositories and plugins ok
Open ssh connection ok
Load cluster param plugin ok
Check before start observer x
[WARN] (127.0.0.1) clog and data use the same disk (/)
[ERROR] 127.0.0.1 ens32 fail to ping 127.0.0.1. Please check configuration `devname`
[root@obs ~]#
提示所需的系统内存不足,需要提升内存大小。(推荐内存大小在16GB以上)
[root@obs ~]# obd cluster start xybobs
Get local repositories and plugins ok
Open ssh connection ok
Load cluster param plugin ok
Check before start observer x
[ERROR] (127.0.0.1) not enough memory. (Free: 7.3G, Need: 8.0G)
[WARN] (127.0.0.1) clog and data use the same disk (/)
[root@obs ~]#
文章标题:oceanbase数据库「OceanBase安装操作教程」
文章链接:https://www.linkedcc.com/rjbk/16927
版权声明(详见页尾):本文内容及图片由互联网用户自发投稿贡献,该文观点仅代表作者本人。