提交 21c25a2b 编写于 作者: L LINxiansheng 提交者: wangzelin.wzl

Update docs

上级 3a2e66fc
......@@ -4,12 +4,14 @@ CREATE DATABASE
描述
-----------
-----------------------
该语句用于创建数据库,并可以指定数据库的默认属性(如数据库默认字符集,校验规则等)。
格式
-----------
`CREATE DATABASE``CREATE SCHEMA` 是等价的。
语法
-----------------------
```javascript
create_database_stmt:
......@@ -30,45 +32,42 @@ database_option:
参数解释
-------------
-------------------------
| **参数** | **描述** |
|-------------------------------------|------------------------------------|
| database_name | 指定要修改属性的数据库名称。如果不指定,会对当前默认数据库进行修改。 |
| CHARSET charset_name | 指定要修改的字符集。 |
| COLLATE collation_name | 指定校对规则。 |
| REPLICA_NUM int_num | 指定副本数。 |
| PRIMARY_ZONE zone_name | 指定主Zone。 |
| READ ONLY \| READ WRITE | 设置数据库级只读或读写属性。 |
| DEFAULT TABLEGROUP table_group_name | 设置数据库默认表组信息,NULL表示取消数据库默认表组。 |
| **参数** | **描述** |
|-----------------------------------------------------|-----------------------------------------------------|
| database_name | 指定要修改属性的数据库名称。 |
| \[DEFAULT\] {CHARACTER SET \| CHARSET} charset_name | 指定要修改的字符集。 `DEFAULT` 关键字是可选的,不影响语义。 |
| \[DEFAULT\] COLLATE collation_name | 指定校对规则。 `DEFAULT` 关键字是可选的,不影响语义。 |
| REPLICA_NUM int_num | 指定副本数。 |
| PRIMARY_ZONE zone_name | 指定数据库的 Primary Zone。 |
| READ ONLY \| READ WRITE | 设置数据库级只读或读写属性。 |
| DEFAULT TABLEGROUP table_group_name | 设置数据库默认表组信息,`NULL` 表示取消数据库默认表组。 |
示例
-----------
* 创建数据库 test2,并指定字符集为UTF8。
```javascript
OceanBase(admin@test)>create database test2 default CHARACTER SET UTF8;
Query OK, 1 row affected (0.00 sec)
```
-----------------------
* 创建数据库 `test2`,并指定字符集为 `UTF8`
```javascript
obclient> CREATE DATABASE test2 DEFAULT CHARACTER SET UTF8;
Query OK, 1 row affected (0.00 sec)
```
* 创建读写属性的数据库test3。
* 创建读写属性的数据库 `test3`
```javascript
obclient> CREATE DATABASE test3 READ WRITE;
Query OK, 1 row affected (0.03 sec)
```
```javascript
OceanBase(admin@test)>create database test3 READ WRITE;
Query OK, 1 row affected (0.03 sec)
```
......@@ -7,8 +7,8 @@ ob_trx_idle_timeout 用于设置事务空闲超时时间,即事务中两条语
| **属性** | **描述** |
|---------|------------------------------------------------------------------------------------------------------------|
| 参数类型 | int |
| 默认值 | 120s |
| 取值范围 | \[100s,+∞) |
| 默认值 | 120000000 |
| 取值范围 | \[100000000,+∞) |
| 生效范围 | * GLOBAL * SESSION |
| 是否参与序列化 | 是 |
......
ob_read_consistency
========================================
ob_read_consistency 用于设置读一致性级别。
`ob_read_consistency` 用于设置读一致性级别。
| **属性** | **描述** |
|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 参数类型 | enum |
| 默认值 | 3 |
| 默认值 | STRONG |
| 取值范围 | * 0:空字符串 * 1:FROZEN * 2:WEAK * 3:STRONG |
| 生效范围 | * GLOBAL * SESSION |
| 生效范围 | * Global * Session |
| 是否参与序列化 | 是 |
| 是否影响计划生成 | 是 |
......
......@@ -2,6 +2,11 @@ cluster
============================
cluster 用于设置本 OceanBase 集群名。
**说明**
不建议修改该配置项。
| **属性** | **描述** |
......
......@@ -5,11 +5,11 @@
获取 OceanBase 数据库最快的方式是使用 OBD 获取,因此推荐您使用此方式体验 OceanBase 数据库。您还可以通过以下方式获取 OceanBase 数据库:
* [使用源码构建 OceanBase 数据库](../4.installation-and-deployment/3.get-the-oceanbase-database-by-using-source-code.md)
* [使用源码构建 OceanBase 数据库](/zh-CN/4.installation-and-deployment/13.get-the-oceanbase-database-by-using-source-code.md)
* [使用 RPM 包安装 OceanBase 数据库](../4.installation-and-deployment/2.install-the-oceanbase-database-by-using-the-rpm-package.md)
* [使用 RPM 包安装 OceanBase 数据库](/zh-CN/4.installation-and-deployment/12.install-the-oceanbase-database-by-using-the-rpm-package.md)
......@@ -21,13 +21,13 @@
在安装 OceanBase 数据库之前,您需要确认已下信息:
* 您的机器满足软硬件要求。详情参考 [资源准备](../4.installation-and-deployment/1.resource-preparation.md)
* 您的机器满足软硬件要求。详情参考 [资源准备](/zh-CN/4.installation-and-deployment/3.resource-preparation.md)
* 您的机器可以连接公网。
如果您的机器不能连接公网,您需要 [使用 RPM 包安装 OceanBase 数据库](../4.installation-and-deployment/2.install-the-oceanbase-database-by-using-the-rpm-package.md)
如果您的机器不能连接公网,您需要 [使用 RPM 包安装 OceanBase 数据库](/zh-CN/4.installation-and-deployment/12.install-the-oceanbase-database-by-using-the-rpm-package.md)
......
......@@ -27,7 +27,7 @@ OceanBase TPC-C 性能测试报告
```unknow
create resource unit tpcc_unit max_cpu 26, max_memory 60000000000, max_iops 128, max_disk_size 53687091200, max_session_num 64, MIN_CPU=26, MIN_MEMORY=60000000000, MIN_IOPS=128;
create resource pool tpcc_pool unit = 'tpcc_unit', unit_num = 1, zone_list=('zone1','zone2','zone3');
create tenant tpcc_tenant resource_pool_list=('tpcc_pool'), charset=utf8mb4, replica_num=3, zone_list('zone1', 'zone2', 'zone3'), primary_zone=RANDOM, locality='F{2},L{1}@[zone1,zone2,zone3]' set ob_compatibility_mode=mysql;
create tenant tpcc_tenant resource_pool_list=('tpcc_pool'), charset=utf8mb4, replica_num=3, zone_list('zone1', 'zone2', 'zone3'), primary_zone=RANDOM, locality='F@zone1,F@zone2,F@zone3' set ob_compatibility_mode=mysql;
```
......
生产环境部署 OceanBase 数据库
=========================================
名词解释
-------------------------
* 中控机器
存储 OceanBase 数据库安装包和集群配置信息的机器。
* 目标机器
安装 OceanBase 数据库的机器。
* OBD
OceanBase Deployer,OceanBase 开源软件的安装部署工具,简称为 OBD。
* ODP
OceanBase Database Proxy,OceanBase 高性能反向代理服务器,简称为 ODP。
前提条件
-------------------------
在连接 OceanBase 数据库之前,请您确认以下信息:
* 您的机器满足软硬件要求。详细信息,参考 [资源准备](/zh-CN/4.installation-and-deployment/3.resource-preparation.md)
* 您拥有 root 账户权限。如无特殊说明,均使用 root 操作。
* 生产环境下,确保您已完成以下操作:
* 您已经查看资源。更多信息,参考 [查看资源](/zh-CN/4.installation-and-deployment/4.optional-check-the-operating-system.md)
* 您已经设置无密码 SSH 登录。更多信息,参考 [设置无密码 SSH 登录](/zh-CN/4.installation-and-deployment/5.optional-set-password-free-ssh-logon.md)
* 您已经配置时钟源。更多信息,参考 [配置时钟源](/zh-CN/4.installation-and-deployment/6.optional-configuring-clock-sources.md)
* 您已经规划磁盘。更多信息,参考 [规划磁盘](/zh-CN/4.installation-and-deployment/7.disk-planning.md)
* 您已经配置 limits.conf。更多信息,参考 [配置 limits.conf](/zh-CN/4.installation-and-deployment/8.optional-configure-limits-conf.md)
* 您已经配置 sysctl.conf。更多信息,参考 [配置 sysctl.conf](/zh-CN/4.installation-and-deployment/9.optional-configure-sysctl-conf.md)
* 您已经关闭防火墙和 SELinux。更多信息,参考 [关闭防火墙和 SELinux](/zh-CN/4.installation-and-deployment/10.optional-disable-the-firewall-and-selinux.md)
* 你已经创建用户。更多信息,参考 [创建用户](/zh-CN/4.installation-and-deployment/11.optional-create-a-user.md)
部署模式
-------------------------
本文采用三副本部署模式,推荐使用四台机器。其中:
* 使用一台机器部署 ODP。
* 使用三台机器部署 OceanBase 集群。
**说明**
* 在生产环境下,推荐将 ODP 和应用部署在一台机器上,以节省应用访问 ODP 的时间。 您可以在每个应用的服务器上部署一个 ODP 服务。在本例中,为了更方便使用,将 ODP 单独部署。
* 部署 ODP 的机器使用的配置可以和部署 OceanBase 数据库的机器配置不一致。部署 ODP 只需 4c/16g \~ 8c/64g 内存即可。
下载安装包
--------------------------
如您的机器可以访问公网,并能够添加三方 YUM 软件源,您可以执行以下命令,使用 OceanBase 的官方软件源安装 OBD:
```unknow
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
yum install -y ob-deploy
```
**注意**
只有 Anolis、CentOS 和 RedHat 操作系统支持此操作。
在您执行了 `obd cluster deploy` 命令之后,OBD 将检查您的目标机器是否有 OceanBase 数据库安装包。如果没有安装包,OBD 将自动从 yum 源获取。
如果您的机器不能访问公网,您可以从 OceanBase 官网下载安装包。详细信息,参考 [安装包下载说明](/zh-CN/4.installation-and-deployment/2.instructions-for-downloading-the-installation-package.md)
安装 OBD
---------------------------
**说明**
您只需要在中控机器上安装 OBD。
### 在线安装 OBD
如您的机器可以访问公网,并能够添加三方 YUM 软件源,您可以执行以下命令,使用 OceanBase 的官方软件源安装 OBD:
```unknow
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
yum install -y ob-deploy
```
### 离线安装 OBD
如果您的机器不能访问公网,您可以从 OceanBase 官网下载 OBD。详细信息,参考 [安装包下载说明](/zh-CN/4.installation-and-deployment/2.instructions-for-downloading-the-installation-package.md)。下载完成后,将 OBD 复制到您的中控机器上。
在 CentOS 或 RedHat 系统上,执行以下命令安装 OBD:
```unknow
yum install ob-deploy-1.1.0-1.el7.x86_64.rpm
```
在 Ubuntu 或 Debian 系统上,执行以下命令安装 OBD:
```unknow
alien --scripts -i ob-deploy-1.1.0-1.el7.x86_64.rpm
```
安装 OBLibs
------------------------------
**说明**
您需要在每台目标机器上安装 OBLibs。
### 在线安装 OBLibs
执行以下命令,在线安装 OBLibs:
```unknow
yum install -y oceanbase-ce-libs
```
### 离线安装 OBLibs
如果您的机器不能访问公网,您可以从 OceanBase 官网下载 OBLibs。详细信息,参考 [安装包下载说明](/zh-CN/4.installation-and-deployment/2.instructions-for-downloading-the-installation-package.md)。下载完成后,将 OBLibs 复制到您的每台机器上。
在 Anolis 7、CentOS 7 或 RedHat 7 系统上,执行以下命令安装 OBLibs:
```unknow
yum install oceanbase-ce-libs-3.1.0-3.el7.x86_64.rpm
```
在 Ubuntu 或 Debian 9 系统上,执行以下命令安装 OBLibs:
```unknow
alien -i oceanbase-ce-libs-3.1.0-3.el7.x86_64.rpm
```
在 Anolis 8、CentOS 8 或 RedHat 8 系统上,执行以下命令安装 OBLibs:
```unknow
yum install oceanbase-ce-libs-3.1.0-3.el8.x86_64.rpm
```
在 Debian 10 系统上,执行以下命令安装 OBLibs:
```unknow
alien -i oceanbase-ce-libs-3.1.0-3.el8.x86_64.rpm
```
安装 OBClient
--------------------------------
您只需要在中控机器上安装 OBClient。
**注意**
您必须首先下载 OBClient 的依赖包 LibOBClient。详细信息,参考 [安装包下载说明](/zh-CN/4.installation-and-deployment/2.instructions-for-downloading-the-installation-package.md)
### 在线安装 OBClient
执行以下命令,在线安装 OBLibs:
```unknow
yum install -y libobclient
yum install -y obclient
```
### 离线安装 OBClient
如果您的机器不能访问公网,您可以从 OceanBase 官网下载 OBClient。详细信息,参考 [安装包下载说明](/zh-CN/4.installation-and-deployment/2.instructions-for-downloading-the-installation-package.md)。下载完成后,将 OBClient 复制到您的中控机器上。
在 CentOS 或 RedHat 系统上,执行以下命令安装 OBClient:
```unknow
yum install libobclient-2.0.0-2.el7.x86_64.rpm
yum install obclient-2.0.0-2.el7.x86_64.rpm
```
在 Ubuntu 或 Debian 系统上,执行以下命令安装 OBLibs:
```unknow
alien --scripts -i libobclient-2.0.0-2.el7.x86_64.rpm
alien --scripts -i obclient-2.0.0-2.el7.x86_64.rpm
```
安装 OceanBase 数据库和 ODP
------------------------------------------
安装 OceanBase 数据库和 ODP之前,为了数据安全,建议您切换到非 root 用户。如果离线安装 OceanBase 数据库和 ODP,从 OceanBase 官网下载 OceanBase 数据库、OBLibs 和 ODP。详细信息,参考 [安装包下载说明](/zh-CN/4.installation-and-deployment/2.instructions-for-downloading-the-installation-package.md)。下载完成后,将 OceanBase 数据库和 ODP 复制到您的中控机器上。如果在线安装,跳过步骤 1\~3。
跳转至上述安装包的下载目录,按照以下步骤安装 OceanBase 数据库和 ODP:
* 删除远程仓库
```unknow
rm -fr ~/.obd/mirror/remote/*.repo
```
离线安装时,您需要删除远程仓库。
**注意**
如果您是在线安装,并且您的操作系统是 Anolis、CentOS 或 RedHat,跳过此步骤。
<!-- -->
* 将安装包添加至本地镜像
```unknow
obd mirror clone *.rpm
```
* 查看镜像列表
```unknow
obd mirror list local
```
* 下载配置文件
从 GitHub 上下载对应的配置文件。根据您的实际情况选择相应的配置文件:
* 如果您采用单机安装,即中控机器和目标机器不是同一台机器,且目标机器只有一台,请下载 [单机安装配置文件](https://github.com/oceanbase/obdeploy/blob/master/example/autodeploy/single-example.yaml)
* 如果您采用分布式安装,即中控机器和目标机器不是同一台机器,且目标机器有多台,请下载 [分布式安装配置文件](https://github.com/oceanbase/obdeploy/blob/master/example/autodeploy/distributed-with-obproxy-example.yaml)
示例采用自动部署配置文件。自动部署将根据简易配置和目标机器资源生成最大规格配置并启动 OceanBase 数据库。非自动部署 OceanBase 数据库,参考 [OBD 文档](https://github.com/oceanbase/obdeploy/blob/master/README-CN.md#%E4%BD%BF%E7%94%A8-obd-%E5%90%AF%E5%8A%A8-oceanbase-%E6%95%B0%E6%8D%AE%E5%BA%93%E9%9B%86%E7%BE%A4)。OceanBase 数据库详细参数介绍,参考 [OceanBase 数据库参数](https://github.com/oceanbase/obdeploy/blob/master/plugins/oceanbase/3.1.0/parameter.yaml)
* 修改配置文件
以部署分布式 OceanBase 数据库和 ODP 为例,按照以下步骤修改配置文件:
* 修改用户名和密码
```unknow
## Only need to configure when remote login is required
# user:
# username: your username
# password: your password if need
# key_file: your ssh-key file path if need
# port: your ssh port, default 22
# timeout: ssh connection timeout (second), default 30
```
* 修改每台机器的 IP、`home_path``data_dir``redo_dir`
```unknow
oceanbase-ce:
servers:
- name: z1
# Please don't use hostname, only IP can be supported
ip: 172.30.62.200
- name: z2
ip: 172.30.62.201
- name: z3
ip: 172.30.62.202
global:
# The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
home_path: /home/admin/oceanbase/ob
# The directory for data storage. The default value is $home_path/store.
data_dir: /data/ob
# The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
redo_dir: /redo/ob
```
**说明**
您必须根据您的真实配置修改这些参数。
* 配置 ODP 并修改 IP 和 home_path
```unknow
obproxy:
servers:
- 172.30.62.203
global:
# The working directory for obproxy. Obproxy is started under this directory. This is a required field.
home_path: /home/admin/oceanbase
```
您可以使用在线 YAML 文件校验器对您的配置文件进行检测。详细信息,参考 [YAML 在线校验器](https://www.bejson.com/validators/yaml_editor/)。
部署 OceanBae 集群
-----------------------------------
按照以下步骤部署 OceanBase 集群:
* 部署 OceanBae 集群
```unknow
obd cluster autodeploy obtest -c distributed-with-obproxy-example.yaml
```
* 查看 OceanBae 集群
```unknow
obd cluster list
```
(可选)修改集群配置
-------------------------------
OceanBase 数据库有数百个配置项,有些配置是耦合的,在您熟悉 OceanBase 数据库之前,不建议您修改示例配件文件中的配置。此处示例用来说明如何修改配置,并使之生效。
```unknow
# 使用 edit-config 命令进入编辑模式,修改集群配置
obd cluster edit-config obtest
# 修改 sys_bkgd_migration_retry_num 为 5
# 注意 sys_bkgd_migration_retry_num 值最小为 3
# 保存并退出后,OBD 会告知您如何使得此次改动生效
# 此配置项仅需要 reload 即可生效
obd cluster reload obtest
```
(可选)安装 MySQL 开发包
-------------------------------------
如果需要运行 Sysbench 或者 TPCH 等程序, 您需要安装 MySQL 开发包。
在 CentOS、RedHat 或 Anolis 系统上,执行以下命令安装 MySQL 开发包:
```unknow
yum install mariadb
yum install mariadb-libs
yum install mariadb-devel
```
在 Ubuntu 系统上,执行以下命令安装 MySQL 开发包:
```unknow
apt-get install mariadb-server
```
在 Debian 系统上,执行以下命令安装 MySQL 开发包:
```unknow
apt-get install mysql-server mysql-client libmariadbd18 libmariadbd-dev
```
连接 OceanBase 数据库
-------------------------------------
运行以下命令,使用 OBClient 客户端连接 OceanBase 数据库:
```unknow
obclient -h<your_ip> -P<obproxy_port> -uroot
```
其中,`your_ip` 为您 OceanBase 实例所在的机器 IP 地址。ODP 默认使用端口 `2883` 连接 OBClient。如果您对端口做了更改,此处使用您实际的端口号。
创建普通租户
---------------------------
要使用 OceanBase 数据库,您需要创建普通租户。您的业务数据必须在普通租户下运行。
您可以使用以下方法创建普通租户:
* 使用 OBD 创建普通租户。
```unknow
obd cluster tenant create ${cluster_name} -n ${tenant_name}
```
* 使用 SQL 语句创建普通租户。更多信息,参考 [创建用户租户](/zh-CN/6.administrator-guide/3.basic-database-management/5.tenants/2.create-a-user-tenant.md)
(可选)关闭防火墙和 SELinux
=======================================
如果您是个人用户,您可以跳过此步骤。如果您是企业用户,建议您关闭防火墙和 SELinux。
**说明**
您必须在每台机器上执行此操作。
关闭防火墙
--------------------------
依次执行以下命令,关闭防火墙:
```unknow
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
```
关闭 SELinux
-------------------------------
执行以下命令,打开 `/etc/selinux/linux` 配置文件:
```unknow
vi /etc/selinux/linux
```
`/etc/selinux/linux` 配置文件中添加以下内容:
```unknow
SELINUX=disabled
```
执行以下命令,使更改生效:
```unknow
setenforce 0
```
执行以下命令,查看更改是否生效:
```unknow
cat /etc/selinux/config
```
(可选)创建用户
=============================
如果您是个人用户,您可以直接使用 root 账号并跳过此步骤。如果您是企业用户,建议您在机器上创建普通用户,以确保安全。您可以根据实际需要,创建您的常用账户。
**说明**
您必须在每台机器上执行此操作。
按照以下步骤创建用户。此处以创建 admin 用户为例进行说明。
* 执行以下命令,创建账户 admin。
```bash
useradd -U admin -d /home/admin -s /bin/bash
mkdir -p /home/admin
sudo chown -R admin:admin /home/admin
```
* 执行以下命令,为账户 admin 设置密码。
```unknow
passwd admin
```
* (可选)为账户 admin 设置 sudo 权限。
执行以下命令,打开 `/etc/sudoers` 文件。在 `/etc/sudoers` 文件添加以下内容:
```bash
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
admin ALL=(ALL) NOPASSWD: ALL
```
* 执行以下命令,查看目录权限。
```bash
ls --al
```
返回以下结果:
```unknow
drwxr-xr-x 2 admin admin 4096 2 月 9 18:43
drwxr-xr-x 2 admin admin 4096 2 月 9 18:43 log1
```
若 admin 用户无权限,则以 root 用户执行以下命令:
```unknow
chown -R admin:admin /data
chown -R admin:admin /redo
chown -R admin:admin /home/admin
```
此处填写您真实的挂载目录。此处 `/data``/redo``/home/admin` 为示例挂载目录。
......@@ -8,7 +8,7 @@
在安装 OceanBase 数据库之前,您需要确认已下信息:
* 您的机器满足软硬件要求。详细信息,参考 [资源准备](../4.installation-and-deployment/1.resource-preparation.md)
* 您的机器满足软硬件要求。详细信息,参考 [资源准备](/zh-CN/4.installation-and-deployment/3.resource-preparation.md)
......@@ -82,4 +82,4 @@ obd mirror clone obproxy-3.1.0-1.el7.x86_64.rpm
后续操作
-------------------------
OceanBase 数据库安装完成后,您需要部署 OceanBase 数据库。详情参考 [使用 OBD 部署 OceanBase 数据库](../2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
OceanBase 数据库安装完成后,您需要部署 OceanBase 数据库。详情参考 [使用 OBD 部署 OceanBase 数据库](/zh-CN/2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
......@@ -209,7 +209,7 @@ OceanBase 数据库使用 CMake 作为构建工具,您可以直接使用 CMake
后续操作
-------------------------
您在成功构建 OceanBase 数据库之后,可以使用 OBD 部署 OceanBase 数据库。详细信息参考 [使用 OBD 部署 OceanBase 数据库](../2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
您在成功构建 OceanBase 数据库之后,可以使用 OBD 部署 OceanBase 数据库。详细信息参考 [使用 OBD 部署 OceanBase 数据库](/zh-CN/2.quickstart/4.deploy-the-oceanbase-database-by-using-obd.md)
......
安装包下载说明
============================
下表列出了不同操作系统版本适用的安装包:
| 操作系统 | 安装包下载地址 |
|---------------------------------------------------|------------------------------------------------------------------------------------------------|
| Anlios 7、CentOS 7、RedHat 7、Ubuntu 20.X、Debian 9.X | [el7 下载地址](https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/) |
| Anlios 8、CentOS 8、RedHat 8、Debian 10 | [el8 下载地址](https://mirrors.aliyun.com/oceanbase/community/stable/el/8/x86_64/) |
**注意**
建议您下载最新版本的安装包。
......@@ -6,14 +6,15 @@
OceanBase 数据库 3.1.0 版本在以下配置进行了系统性测试验证,推荐您使用以下软硬件配置:
| 项目 | 描述 |
|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 系统 | * Red Hat Enterprise Linux Server 7.2 版本(内核 Linux 3.10.0 版本及以上) <!-- --> * CentOS Linux 7.2 版本(内核 Linux 3.10.0 版本及以上) * openAnolis 8.2 版本(x86_64) |
| 内存 | * 至少 8G * 企业级用户要求至少 256G |
| 磁盘类型 | 推荐使用 SSD |
| 磁盘存储空间 | 至少 100G |
| 文件系统 | EXT4 戓 XFS |
| 网卡 | 千兆互联及以上 |
| 项目 | 描述 |
|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 系统 | * Anolis OS 8.X 版本(内核 Linux 3.10.0 版本及以上)-- 推荐 * Red Hat Enterprise Linux Server 7.X 版本、8.X 版本(内核 Linux 3.10.0 版本及以上) -- 推荐 * CentOS Linux 7.X 版本、8.X 版本(内核 Linux 3.10.0 版本及以上) -- 推荐 * Debian 9.X 版本及以上版本 (内核 Linux 3.10.0 版本及以上) * Ubuntu 20.X 版本及以上版本(内核 Linux 3.10.0 版本及以上) |
| CPU | * 企业用户最低要求 16 核,推荐 32 核及以上 * 个人用户最低要求 2 核, 推荐 8 核及以上 |
| 内存 | * 企业用户最低要求 64G,推荐 256G 及以上 * 个人用户户最低要求 8G, 推荐 64G 及以上 |
| 磁盘类型 | 推荐使用 SSD |
| 磁盘存储空间 | 内存大小的 4 倍及以上 |
| 文件系统 | EXT4 戓 XFS,当数据超过 16T 时,使用 XFS |
| 网卡 | 千兆互联及以上 |
......
(可选)查看资源
=============================
如果您是企业用户,建议您在部署 OceanBase 集群时,所有的机器使用相同的软硬件配置。如果您部署的是单机版 OceanBase 数据库,您可以跳过此步骤。OceanBase 数据库支持 Red Hat Enterprise Linux Server 7.X、CentOS 7.X 和 Anolis OS 8.X 等操作系统。详细信息,参考 [资源准备](/zh-CN/4.installation-and-deployment/3.resource-preparation.md)
**说明**
本文中的配置文件指使用 OBD 部署 OceanBase 数据库时需要配置的文件。更多配置文件信息,参考 [配置文件示例](https://github.com/oceanbase/obdeploy/tree/master/example)
查看操作系统
---------------------------
### Red Hat Enterprise Linux Server 7.X
运行以下命令,查看操作系统信息:
```unknow
cat /etc/redhat-release
```
返回结果如下:
```unknow
Red Hat Enterprise Linux Server release 7.2 (Maipo)
```
### CentOS 7.X
运行以下命令,查看操作系统信息:
```unknow
cat /etc/redhat-release
```
返回结果如下:
```unknow
CentOS Linux release 7.2.1511 (Core)
```
### Anolis OS 8.X
运行以下命令,查看操作系统信息:
```unknow
cat /etc/os-release
```
返回结果如下:
```unknow
NAME="Anolis OS"
VERSION="8.2"
ID="anolis"
ID_LIKE="rhel fedora centos"
VERSION_ID="8.2"
PLATFORM_ID="platform:an8"
PRETTY_NAME="Anolis OS 8.2"
ANSI_COLOR="0;31"
HOME_URL="https://openanolis.org/"
```
### Unbutu
运行以下命令,查看操作系统信息:
```unknow
cat /etc/os-release
```
返回结果如下:
```unknow
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
```
### Debian9
运行以下命令,查看操作系统信息:
```unknow
cat /etc/os-release
```
返回结果如下:
```unknow
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
```
查看内核
-------------------------
运行以下命令,查看内核信息:
```unknow
uname -r
```
OceanBase 数据库要求操作系统为 3.10.0 及以上。
查看内存
-------------------------
运行以下命令,查看内存:
```unknow
free -g
```
如果可用内存小于配置文件中的 `memory_limit` 值,请清理缓存或者修改配置 `memory_limit`,将 `memory_limit` 修改为小于可以内存的值。
执行以下命令,清理缓存:
```unknow
echo 3 > /proc/sys/vm/drop_caches
```
查看磁盘
-------------------------
运行以下命令,查看磁盘:
```unknow
df -h
```
确保配置文件中的 `data_dir``redo_dir``home_path` 对应的磁盘已经完成挂载。`data_dir``redo_dir` 对应目录为空,`data_dir` 对应目录的磁盘已经使用率必须低于 4%。
查看网卡名称
---------------------------
您需要为配置文件中的 `devname` 配置项指定网卡。示例配置文件如下:
```unknow
# 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: eth0
```
执行以下命令,查看网卡名称:
```unknow
ifconfig
```
**注意**
要执行 `ifconfig` 命令,您必须安装 `net-tools `依赖。
......@@ -81,3 +81,61 @@
**注意**
上述命令均仅需在中控机器上执行。
(附录)脚本参考
-----------------------------
推荐您使用以下脚本,在集群中批量执行命令和复制文件。
* 使用以下脚本,批量复制文件。
```bash
#/usr/bin/bash
hosts=(
"ob001"
"ob002"
"ob003"
"obdriver"
)
for host in "${hosts[@]}"
do
echo "begin to scp " $@ " on " $host
scp -r $1 $host:$2
done
```
* 使用以下脚本,批量执行命令。
```bash
/usr/bin/bash
hosts=(
"ob001"
"ob002"
"ob003"
"obdriver"
)
for host in "${hosts[@]}"
do
echo "begin to run " $@ " on " $host
ssh $host $@
done
```
**注意**
您必须将脚本中的 hosts 列表替换成您自己的实际机器列表。
(可选)配置时钟源
==============================
本文介绍如何为集群内的多台机器配置 NTP 时钟源。如果您在单机安装 OceanBase 数据库,则无需设置。
本文介绍如何为集群内的多台机器配置 NTP 时钟源。如果您在单机安装 OceanBase 数据库,或者做个人测试,则无需设置。
如果您使用集群安装 OceanBase,则需要保证集群内各机器的时间同步。否则集群无法启动,服务在运行时也会出现异常。如果您已配置 NTP 时钟同步,则无需重新配置。
OceanBase 集群中的服务器时间必须保持一致,否则会导致 OceanBase 集群无法启动,运行时也会出现故障。物理机与时钟服务器的误差在 50ms 以下可认为时钟是同步状态,OceanBase 集群最大容忍误差不能超过 200ms。当超过 200ms 时,会出现无主情况。恢复时钟同步后。重启 OceanBase 集群, 可以恢复正常。
前提条件
-------------------------
......
(可选)规划磁盘
=============================
OceanBase 数据库的服务器依赖数据盘、事务日志盘和 OceanBase 数据库的安装盘。本文介绍如何规划您的磁盘。如果您是个人用户, 您可以将所有数据放到一块盘上并跳过此步骤。如果您是企业用户,您必须将数据分别挂载至三块磁盘。
如果您的机器上没有三块磁盘,或者您使用的是 RAID 磁盘阵列, 您需要对磁盘或者磁盘阵列的逻辑卷进行分区。建议您采用以下方案分区:
* 数据盘
数据盘的配置参数为 `data_dir`。数据盘用来存储基线数据。在您首次启动 OceanBase 数据库时,`${data_dir}/sstable` 将自动创建。数据盘的大小由 `datafile_disk_percentage` 参数决定。`datafile_disk_percentage` 的默认值为 `95``data_dir` 创建后无法调整大小。您可以通过加减机器为 OceanBase 数据库进行扩容和缩容。目前,OceanBase 数据库不支持单机的磁盘级扩容和缩容。
* 事务日志盘
事务日志盘的配置参数为 `redo_dir`。建议您将事务日志盘的大小设置为 OceanBase 数据库内存的 3 倍到 4 倍及以上。事务日志盘包含多个固定大小的文件。这些文件位于安装目录 `${redo_dir}/{clog,ilog,slog}` 下。您可以根据您的需要自动创建和清除事务日志。事务日志达到磁盘总量的 80% 时,将触发自动清除。但是,只有事务日志对应的内存数据已经合并融至基线数据中时,事务日志才能被删除。在相同数据量的情况下,事务日志的大小约为内存数据大小的三倍。因此事务日志盘所需空间上限与两次合并后的数据总量成正比。经验公式:事务日志文件大小 = 增量数据内存上限的 3 到 4 倍。
* OceanBase 数据库安装盘
OceanBase 数据库安装盘的配置参数为 `home_path`。建议您为 OceanBase 数据库安装盘预留至少 200 G 空间,以保存 7 天及以上的日志。OceanBase 数据库的 RPM 包安装目录位于 `${home_path}` 下。其中,基线数据文件和事务日志文件会通过软链接分别指向独立的数据盘和事务日志盘。OceanBase 数据库的运行日志位于 `${home_path}/log` 下。运行日志会不断增长,并且 OceanBase 数据库无法自动删除运行日志。因此您需要定时删除运行日志。
磁盘划分后, 执行以下命令检查磁盘划分情况:
```bash
df -h
```
返回以下结果:
```bash
Filesystem Size Used Avail Use% Mounted on
devtmpfs 31G 0 31G 0% /dev
tmpfs 31G 0 31G 0% /dev/shm
tmpfs 31G 516K 31G 1% /run
tmpfs 31G 0 31G 0% /sys/fs/cgroup
/dev/vda1 493G 171G 302G 37% /
tmpfs 6.2G 0 6.2G 0% /run/user/0
/dev/vdd1 984G 77M 934G 1% /data
/dev/vdc1 196G 61M 186G 1% /redo
/dev/vdb1 492G 73M 467G 1% /home/admin/oceanbase
```
其中,`/data` 为数据盘,大小为 1 TB。`/redo` 存放 redo 日志。`/home/admin/oceanbase` 存放 OceanBase 数据库的二进制文件和运行日志。
(可选)配置 limits.conf
=======================================
您可以通过配置 `limits.conf` 限制您的进程数量。如果您是个人用户,您可以跳过此步骤。如果您是企业用户,您必须配置 `limits.conf`
您可以使用以下两种方法修改资源限制:
* 通过启动时在会话级别修改。
* 通过配置文件 `/etc/security/limits.conf` 在全局级别修改。
OceanBase 数据库的进程涉及的限制包括线程最大栈空间大小(Stack)、最大文件句柄数(Open Files)和 core 文件大小 (Core File Size)。
更改配置
-------------------------
**说明**
您必须在每台机器上执行此操作。
将会话级别的最大栈空间大小设置为 `unlimited`,最大文件句柄数设置为 `655350`,Core 文件大小设置为 `unlimited`
执行以下命令,打开 `/etc/security/limits.conf` 配置文件:
```unknow
vi /etc/security/limits.conf
```
`/etc/security/limits.conf` 配置文件中添加以下内容:
```unknow
root soft nofile 655350
root hard nofile 655350
* soft nofile 655350
* hard nofile 655350
* soft stack 20480
* hard stack 20480
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited
```
查看配置
-------------------------
退出当前会话,重新登录。执行以下命令,查看配置是否生效:
```unknow
ulimit -a
```
(可选)配置 sysctl.conf
=======================================
为保证 OceanBase 数据库正常运行,在安装 OceanBase 数据库之前,您需要修改所有机器的 `sysctl.conf` 配置,以提高 Linux 系统的性能。如果您是个人用户,您可以跳过此步骤。如果您是企业用户,您必须配置 `sysctl.conf`
**说明**
您必须在每台机器上执行此操作。
更改配置
-------------------------
执行以下命令,打开 `/etc/sysctl.conf` 配置文件:
```unknow
vi /etc/sysctl.conf
```
`/etc/sysctl.conf` 配置文件中添加以下内容:
```unknow
# for oceanbase
## 修改内核异步 I/O 限制
fs.aio-max-nr=1048576
## 网络优化
net.core.somaxconn = 2048
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.ip_local_port_range = 3500 65535
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_slow_start_after_idle=0
vm.swappiness = 0
vm.min_free_kbytes = 2097152
# 此处为 OceanBase 数据库的 data 目录
kernel.core_pattern = /data/core-%e-%p-%t
```
其中,`kernel.core_pattern` 中的 `/data` 为 OceanBase 数据库的 `data` 目录。如果您只是测试,您可以只设置 `fs.aio-max-nr=1048576`
加载配置
-------------------------
更改配置完成后,执行以下命令,加载配置,使配置生效。
```unknow
sysctl -p
```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册