[TOC]
# OceanBase Deploy
**OceanBase Deploy** (簡稱 OBD)是 OceanBase 開源軟件的安裝部署工具。OBD 同時也是包管理器,可以用來管理 OceanBase 所有的開源軟件。本文介紹如何安裝 OBD、使用 OBD 和 OBD 的命令。
## 安裝 OBD
您可以使用以下方式安裝 OBD:
### 方案1: 使用 RPM 包(Centos 7 及以上)安裝。
```shell
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
sudo yum install -y ob-deploy
source /etc/profile.d/obd.sh
```
### 方案2:使用源碼安裝。
使用源碼安裝 OBD 之前,請確認您已安裝以下依賴:
- gcc
- wget
- python-devel
- openssl-devel
- xz-devel
- mysql-devel
Python2 使用以下命令安裝:
```shell
pip install -r requirements.txt
sh build.sh
source /etc/profile.d/obd.sh
```
Python3 使用以下命令安裝:
```shell
pip install -r requirements3.txt
sh build.sh
source /etc/profile.d/obd.sh
```
## 快速啟動 OceanBase 數據庫
安裝 OBD 后,您可以使用 root 用戶執行這組命令快速啟動本地單節點 OceanBase 數據庫。
在此之前您需要確認以下信息:
- 當前用戶為 root。
- `2882` 和 `2883` 端口沒有被占用。
- 您的機器內存應該不低于 8G。
- 您的機器 CPU 數目應該不低于 2。
> **說明:** 如果以上條件不滿足,請移步[使用 OBD 啟動 OceanBase 數據庫集群](#使用-obd-啟動-oceanbase-數據庫集群)。
```shell
obd cluster deploy c1 -c ./example/mini-local-example.yaml
obd cluster start c1
# 使用 mysql 客戶端鏈接到到 OceanBase 數據庫。
mysql -h127.1 -uroot -P2883
```
## 使用 OBD 啟動 OceanBase 數據庫集群
按照以下步驟啟動 OceanBase 數據庫集群:
### 第 1 步. 選擇配置文件
根據您的資源條件選擇正確的配置文件:
#### 小規格開發模式
適用于個人設備(內存不低于 8G)。
- [本地單節點配置樣例](https://github.com/oceanbase/obdeploy/blob/master/example/mini-local-example.yaml.md)
- [單節點配置樣例](https://github.com/oceanbase/obdeploy/blob/master/example/mini-single-example.yaml.md)
- [三節點配置樣例](https://github.com/oceanbase/obdeploy/blob/master/example/mini-distributed-example.yaml.md)
- [單節點 + ODP 配置樣例](https://github.com/oceanbase/obdeploy/blob/master/example/mini-single-with-obproxy-example.yaml.md)
- [三節點 + ODP 配置樣例](https://github.com/oceanbase/obdeploy/blob/master/example/mini-distributed-with-obproxy-example.yaml.md)
#### 專業開發模式
適用于高配置 ECS 或物理服務器(不低于 16 核 64G 內存)。
- [本地單節點配置樣例](https://github.com/oceanbase/obdeploy/blob/master/example/local-example.yaml)
- [單節點配置樣例](https://github.com/oceanbase/obdeploy/blob/master/example/single-example.yaml)
- [三節點配置樣例](https://github.com/oceanbase/obdeploy/blob/master/example/distributed-example.yaml)
- [單節點 + ODP 配置樣例](https://github.com/oceanbase/obdeploy/blob/master/example/single-with-obproxy-example.yaml)
- [三節點 + ODP 配置樣例](https://github.com/oceanbase/obdeploy/blob/master/example/distributed-with-obproxy-example.yaml)
本文以 [小規格開發模式-本地單節點](./example/mini-local-example.yaml) 為例,啟動一個本地單節點的 OceanBase 數據庫。
```shell
# 修改 home_path, 這是 OceanBase 數據庫的工作目錄。
# 修改 mysql_port,這是 OceanBase 數據庫 SQL 服務協議端口號。后續將使用此端口連接數據庫。
# 修改 rpc_port,這是 OceanBase 數據庫集群內部通信的端口號。
vi ./example/mini-local-example.yaml
```
如果您的目標機器(OceanBase 數據庫程序運行的機器)不是當前機器,請不要使用 `本地單節點配置樣例`,改用其他樣例。
同時您還需要修改配置文件頂部的用戶密碼信息。
```yaml
user:
username: <您的賬號名>
password: <您的登錄密碼>
key_file: <您的私鑰路徑>
```
`username` 為登錄到目標機器的用戶名,確保您的用戶名有 `home_path` 的寫權限。`password`和`key_file`都是用于驗證改用戶的方式,通常情況下只需要填寫一個。
> **注意:** 在配置秘鑰路徑后,如果您的秘鑰不需要口令,請注釋或者刪掉`password`,以免`password`被視為秘鑰口令用于登錄,導致校驗失敗。
### 第 2 步. 部署和啟動數據庫
```shell
# 此命令會檢查 home_path 和 data_dir 指向的目錄是否為空。
# 若目錄不為空,則報錯。此時可以加上 -f 選項,強制清空。
obd cluster deploy lo -c local-example.yaml
# 此命令會檢查系統參數 fs.aio-max-nr 是否不小于 1048576。
# 通常情況下一臺機器啟動一個節點不需要修改 fs.aio-max-nr。
# 當一臺機器需要啟動 4 個及以上的節點時,請務必修改 fs.aio-max-nr。
obd cluster start lo
```
### 第 3 步. 查看集群狀態
```shell
# 參看obd管理的集群列表
obd cluster list
# 查看 lo 集群狀態
obd cluster display lo
```
### 第 4 步. 修改配置
OceanBase 數據庫有數百個配置項,有些配置是耦合的,在您熟悉 OceanBase 數據庫之前,不建議您修改示例配件文件中的配置。此處示例用來說明如何修改配置,并使之生效。
```shell
# 使用 edit-config 命令進入編輯模式,修改集群配置
obd cluster edit-config lo
# 修改 sys_bkgd_migration_retry_num 為 5
# 注意 sys_bkgd_migration_retry_num 值最小為 3
# 保存并退出后,obd 會告知您如何使得此次改動生效
# 此配置項僅需要 reload 即可生效
obd cluster reload lo
```
### 第 5 步. 停止集群
`stop` 命令用于停止一個運行中的集群。如果 `start` 命令執行失敗,但有進程沒有退出,請使用 `destroy` 命令。
```shell
obd cluster stop lo
```
### 第 6 步. 銷毀集群
運行以下命令銷毀集群:
```shell
# 啟動集群時失敗,可以能會有一些進程停留。
# 此時可用 -f 選項強制停止并銷毀集群
obd cluster destroy lo
```
## 其他 OBD 命令
**OBD** 有多級命令,您可以在每個層級中使用 `-h/--help` 選項查看該子命令的幫助信息。
### 鏡像和倉庫命令組
#### `obd mirror clone`
將本地 RPM 包添加為鏡像,之后您可以使用 **OBD 集群** 中相關的命令中啟動鏡像。
```shell
obd mirror clone <path> [-f]
```
參數 `path` 為 RPM 包的路徑。
選項 `-f` 為 `--force`。`-f` 為可選選項。默認不開啟。開啟時,當鏡像已經存在時,強制覆蓋已有鏡像。
#### `obd mirror create`
以本地目錄為基礎創建一個鏡像。此命令主要用于使用 OBD 啟動自行編譯的 OceanBase 開源軟件,您可以通過此命令將編譯產物加入本地倉庫,之后就可以使用 `obd cluster` 相關的命令啟動它。
```shell
obd mirror create -n <component name> -p <your compile dir> -V <component version> [-t <tag>] [-f]
```
例如您根據 [OceanBase 編譯指導書](https://open.oceanbase.com/docs/community/oceanbase-database/V3.1.0/get-the-oceanbase-database-by-using-source-code)編譯成功后,可以使用 `make DESTDIR=./ install && obd mirror create -n oceanbase-ce -V 3.1.0 -p ./usr/local` 將編譯產物加入OBD本地倉庫。
選項說明見下表:
選項名 | 是否必選 | 數據類型 | 說明
--- | --- | --- |---
-n/--name | 是 | string | 組件名。如果您編譯的是 OceanBase 數據庫,則填寫 oceanbase-ce。如果您編譯的是 ODP,則填寫 obproxy。
-p/--path | 是 | string | 編譯目錄。執行編譯命令時的目錄。OBD 會根據組件自動從該目錄下獲取所需的文件。
-V/--version | 是 | string | 版本號
-t/--tag | 否 | string | 鏡像標簽。您可以為您的創建的鏡像定義多個標簽,以英文逗號(,)間隔。
-f/--force | 否 | bool | 當鏡像已存在,或者標簽已存在時強制覆蓋。默認不開啟。
#### `obd mirror list`
顯示鏡像倉庫或鏡像列表
```shell
obd mirror list [mirror repo name]
```
參數 `mirror repo name` 為 鏡像倉庫名。該參數為可選參數。不填時,將顯示鏡像倉庫列表。不為空時,則顯示對應倉庫的鏡像列表。
#### `obd mirror update`
同步全部遠程鏡像倉庫的信息
```shell
obd mirror update
```
### 集群命令組
OBD 集群命令操作的最小單位為一個部署配置。部署配置是一份 `yaml` 文件,里面包含各個整個部署的全部配置信息,包括服務器登錄信息、組件信息、組件配置信息和組件服務器列表等。
在使用 OBD 啟動一個集群之前,您需要先注冊這個集群的部署配置到 OBD 中。您可以使用 `obd cluster edit-config` 創建一個空的部署配置,或使用 `obd cluster deploy -c config` 導入一個部署配置。
#### `obd cluster edit-config`
修改一個部署配置,當部署配置不存在時創建。
```shell
obd cluster edit-config <deploy name>
```
參數 `deploy name` 為部署配置名稱,可以理解為配置文件名稱。
#### `obd cluster deploy`
根據配置部署集群。此命令會根據部署配置文件中組件的信息查找合適的鏡像,并安裝到本地倉庫,此過程稱為本地安裝。
在將本地倉庫中存在合適版本的組件分發給目標服務器,此過程稱為遠程安裝。
在本地安裝和遠程安裝時都會檢查服務器是否存在組件運行所需的依賴。
此命令可以直接使用 OBD 中已注冊的 `deploy name` 部署,也可以通過傳入 `yaml` 的配置信息。
```shell
obd cluster deploy <deploy name> [-c <yaml path>] [-f] [-U]
```
參數 `deploy name` 為部署配置名稱,可以理解為配置文件名稱。
選項說明見下表:
選項名 | 是否必選 | 數據類型 | 默認值 | 說明
--- | --- | --- |--- |---
-c/--config | 否 | string | 無 | 使用指定的 yaml 文件部署,并將部署配置注冊到 OBD 中。<br>當`deploy name` 存在時覆蓋配置。<br>如果不使用該選項,則會根據 `deploy name` 查找已注冊到OBD中的配置信息。
-f/--force | 否 | bool | false | 開啟時,強制清空工作目錄。<br>當組件要求工作目錄為空且不使用改選項時,工作目錄不為空會返回錯誤。
-U/--ulp/ --unuselibrepo | 否 | bool | false | 使用該選項將禁止 OBD 自動處理依賴。不開啟的情況下,OBD 將在檢查到缺失依賴時搜索相關的 libs 鏡像并安裝。使用該選項將會在對應的配置文件中天 **unuse_lib_repository: true**。也可以在配置文件中使用 **unuse_lib_repository: true** 開啟。
#### `obd cluster start`
啟動已部署的集群,成功時打印集群狀態。
```shell
obd cluster start <deploy name> [-s]
```
參數 `deploy name` 為部署配置名稱,可以理解為配置文件名稱。
選項 `-s` 為 `--strict-check`。部分組件在啟動前會做相關的檢查,當檢查不通過的時候會報警告,不會強制停止流程。使用該選項可開啟檢查失敗報錯直接退出。建議開啟,可以避免一些資源不足導致的啟動失敗。非必填項。數據類型為 `bool`。默認不開啟。
#### `obd cluster list`
顯示當前 OBD 內注冊的全部集群(deploy name)的狀態。
```shell
obd cluster list
```
#### `obd cluster display`
展示指定集群的狀態。
```shell
obd cluster display <deploy name>
```
參數 `deploy name` 為部署配置名稱,可以理解為配置文件名稱。
#### `obd cluster reload`
重載一個運行中集群。當您使用 edit-config 修改一個運行的集群的配置信息后,可以通過 `reload` 命令應用修改。
需要注意的是,并非全部的配置項都可以通過 `reload` 來應用。有些配置項需要重啟集群,甚至是重部署集群才能生效。
請根據 edit-config 后返回的信息進行操作。
```shell
obd cluster reload <deploy name>
```
參數 `deploy name` 為部署配置名稱,可以理解為配置文件名稱。
#### `obd cluster restart`
重啟一個運行中集群。當您使用 edit-config 修改一個運行的集群的配置信息后,可以通過 `restart` 命令應用修改。
> **注意:** 并非所有的配置項都可以通過 `restart` 來應用。有些配置項需要重部署集群才能生效。
請根據 edit-config 后返回的信息進行操作。
```shell
obd cluster restart <deploy name>
```
參數 `deploy name` 為部署配置名稱,可以理解為配置文件名稱。
#### `obd cluster redeploy`
重啟一個運行中集群。當您使用 edit-config 修改一個運行的集群的配置信息后,可以通過 `redeploy` 命令應用修改。
> **注意:** 該命令會銷毀集群,重新部署,您集群中的數據會丟失,請先做好備份。
```shell
obd cluster redeploy <deploy name>
```
參數 `deploy name` 為部署配置名稱,可以理解為配置文件名稱。
#### `obd cluster stop`
停止一個運行中的集群。
```shell
obd cluster stop <deploy name>
```
參數 `deploy name` 為部署配置名稱,可以理解為配置文件名稱。
#### `obd cluster destroy`
銷毀已部署的集群。如果集群處于運行中的狀態,該命令會先嘗試執行`stop`,成功后再執行`destroy`。
```shell
obd cluster destroy <deploy name> [-f]
```
參數 `deploy name` 為部署配置名稱,可以理解為配置文件名稱。
選項 `-f` 為 `--force-kill`。檢查到工作目錄下有運行中的進程時,強制停止。銷毀前會做檢查是有還有進程在運行中。這些運行中的進程可能是 **start** 失敗留下的,也可能是因為配置與其他集群重疊,進程是其他集群的。但無論是哪個原因導致工作目錄下有進程未退出,**destroy** 都會直接停止。使用該選項會強制停止這些運行中的進程,強制執行 **destroy**。非必填項。數據類型為 `bool`。默認不開啟。
### 測試命令組
#### `obd test mysqltest`
對 OcecanBase 數據庫或 ODP 組件的指定節點執行 mysqltest。mysqltest 需要 OBClient,請先安裝 OBClient。
```shell
obd test mysqltest <deploy name> [--test-set <test-set>] [flags]
```
參數 `deploy name` 為部署配置名稱,可以理解為配置文件名稱。
選項說明見下表:
選項名 | 是否必選 | 數據類型 | 默認值 | 說明
--- | --- | --- |--- | ---
-c/--component | 否 | string | 默認為空 | 待測試的組件名。候選項為 oceanbase-ce 和 obproxy。為空時,按 obproxy、oceanbase-ce 的順序進行檢查。檢查到組件存在則不再遍歷,使用命中的組件進行后續測試。
--test-server | 否 | string | 默指定的組件下服務器中的第一個節點。 | 必須是指定的組件下的某個節點名。
--user | 否 | string | root | 執行測試的用戶名。
---password | 否 | string | 默認為空 | 執行測試的用戶密碼。
--mysqltest-bin | 否 | string | mysqltest | 指定的路徑不可執行時使用 OBD 自帶的 mysqltest。
--obclient-bin | 否 | string | obclient | OBClient 二進制文件所在目錄。
--test-dir | 否 | string | ./mysql_test/t | mysqltest 所需的 **test-file** 存放的目錄。test 文件找不到時會嘗試在 OBD 內置中查找。
--result-dir | 否 | string | ./mysql_test/r | mysqltest 所需的 **result-file** 存放的目錄。result 文件找不到時會嘗試在 OBD 內置中查找。
--tmp-dir | 否 | string | ./tmp | 為 mysqltest tmpdir 選項。
--var-dir | 否 | string | ./var | 將在該目錄下創建log目錄并作為 logdir 選項傳入 mysqltest。
--test-set | 否 | string | 無 | test case 數組。多個數組使用英文逗號(,)間隔。
--test-pattern | 否 | string | 無| test 文件名匹配的正則表達式。所有匹配表達式的case將覆蓋test-set選項。
--suite | 否 | string | 無 | suite 數組。一個 suite 下包含多個 test。可以使用英文逗號(,)間隔。使用該選項后 --test-pattern 和 --test-set 都將失效。
--suite-dir | 否 | string | ./mysql_test/test_suite | 存放 suite 目錄的目錄。suite 目錄找不到時會嘗試在 OBD 內置中查找。
--all | 否 | bool | false | 執行 --suite-dir 下全部的 case。存放 suite 目錄的目錄。
--need-init | 否 | bool | false | 執行init sql 文件。一個新的集群要執行 mysqltest 前可能需要執行一些初始化文件,比如創建 case 所需要的賬號和租戶等。存放 suite 目錄的目錄。默認不開啟。
--init-sql-dir | 否 | string | ../ | init sql 文件所在目錄。sql 文件找不到時會嘗試在obd內置中查找。
--init-sql-files | 否 | string | | 需要 init 時執行的 init sql 文件數組。英文逗號(,)間隔。不填時,如果需要 init,OBD 會根據集群配置執行內置的 init。
--auto-retry | 否 | bool | false | 失敗時自動重部署集群進行重試。
## Q&A
### Q: 如何指定使用組件的版本?
A: 在部署配置文件中使用版本聲明。例如,如果您使用的是 OceanBase-CE 3.1.0 版本,可以指定以下配置:
```yaml
oceanbase-ce:
version: 3.1.0
```
### Q: 如何指定使用特定版本的組件?
A: 在部署配置文件中使用 package_hash 或 tag 聲明。
如果您給自己編譯的 OceanBase-CE 設置了t ag,您可以使用 tag 來指定。如:
```yaml
oceanbase-ce:
tag: my-oceanbase
```
您也可以通過 package_hash 來指定特定的版本。當您使用 `obd mirror` 相關命令時會打印出組件的 md5 值,這個值即為 package_hash。
```yaml
oceanbase-ce:
package_hash: 929df53459404d9b0c1f945e7e23ea4b89972069
```
### Q:我修改了 OceanBase-CE 了代碼,需要修改啟動流程怎么辦?
A:您可以修改 `~/.obd/plugins/oceanbase-ce/` 下的啟動相關插件。比如您為 3.1.0 版本的 OceanBase-CE 添加了一個新的啟動配置,可以修改 ``~/.obd/plugins/oceanbase-ce/3.1.0/start.py``。
## 協議
OBD 采用 [GPL-3.0](./LICENSE) 協議。
- 前言
- 1.說明
- 2.文檔更新說明
- docker
- 01.docker安裝
- 02.docker加速器
- 03.docker基本使用
- 04.docker 鏡像與容器
- 05.Dockerfile
- 06.docker阿里鏡像倉庫
- 07.docker私有鏡像倉庫harbor
- 08.docker網絡
- 09.docker項目實戰01
- 10.docker項目實戰02
- 11.docker componse
- 12.docker-compose常用命令
- 13.docker compose 案例
- 14.docker swarm集群
- 15.docker swarm常用命令
- 16.docker swarm 案例
- 17.volume
- 18.network
- 19.idea中部署項目到docker
- 20.docker目錄方式掛載sqlite
- 21.docker常用命令補充
- 22.nginx容器代理靜態文件403解決
- 23.docker集群管理平臺
- k8s
- 01.Kubernetes介紹
- 02.K8s基本概念
- 03.K8s架構圖
- 04.Minikube單節點環境搭建
- 05.kubeadm集群安裝1.14.0
- 06.虛擬機靜態網絡配置
- 07.kubeadm高可用集群安裝1.14.0
- 08 高可用VIP配置(keepalived+haproxy)
- 09.高可用免密登錄
- 10.kubeadm init流程
- 11.k8s體驗
- 12.網絡插件
- 13.Ingress
- 14.Ingress分類
- 15.Dashboard
- 16.存儲
- 01.Volumes
- 02.nfs
- 03.PV PVC
- 04.StorageClass
- 17.基礎組件
- 01.Pod
- 02.Service
- 03.ReplicaSet(RS)
- 04.Deployment
- 06.Namespace
- 02.DaemonSet
- 03.StatefulSet
- 04.ReplicationController(RC)
- 06.Job
- 09.PetSet
- 10.StatefulSets
- 11.Federation
- 12.Secret
- 05.Resources
- 13.UserAccount/ServiceAccount
- 14.RBAC
- 18.核心組件
- Master組件
- 01.kube-apiserver
- 02.etcd
- 03.kube-controller-manager
- 04.cloud-controller-manager
- 05.kube-scheduler
- 06.DNS
- Node組件
- 01.kubelet
- 02.kube-proxy
- 03.docker
- 04.RKT
- 05.supervisord
- 06.fluentd
- kubectl
- 19.K8S服務更新部署
- 20.CI/CD
- 01.java安裝
- 02.maven安裝
- 03.gitlab安裝
- 04.git安裝
- 05.jenkins安裝
- 06.k8s集群
- 07.DockerHub
- 08.實戰
- 21.日志
- 01.不同組件日志
- 02.LogPilot+ES+Kibana
- 22.監控
- 23.k8s部署ocp項目[mysql]
- 01.ocp介紹
- 02.環境準備
- 03.鏡像準備
- 04.部署說明
- 05.eureka-server
- 06.mysql
- 07.redis
- 08.auth-server
- 09.user-center
- 10.new-api-gateway
- 11.back-center
- 飛致云kubeoperator
- 01.kubeoperator介紹
- 02.kubeoperator安裝
- 飛致云DataEase
- 項目介紹
- 系統架構
- 安裝部署
- 在線安裝
- 離線安裝
- 用戶手冊
- 通用功能
- 數據源
- 數據集
- 視圖
- 儀表板
- 系統管理
- 用戶管理
- 飛致云JumpServer
- TIDB
- 網絡
- 交換機
- ISO/OSI協議模型詳解
- 交換CCNP
- RSTP快速生成樹協議
- MST多生成樹協議
- 以太網信道【應用廣泛】
- 廣播和多播抑制
- 多層交換
- ARP地址解析協議抑制
- VLAN間路由
- 熱備份路由協議HSRP【思科私有】
- 虛擬路由器冗余協議VRRP
- linux
- 01.時間同步
- linux時間不能同步
- Linux掛載磁盤
- 安裝ftp
- linux環境ftp賬號
- HTTP狀態碼
- 寶塔
- Centos安裝vsftp
- nginx ssl 配置
- datax
- 1.geom類型遷移擴展
- python安裝
- 消息中間件
- 1.RocketMQ
- 1.RocketMQ單機環境安裝
- 前端
- node踩坑之npm
- 數據庫
- Mysql安裝
- ClickHouse
- OceanBase數據庫
- OceanBase介紹
- OceanBase數據庫整體架構
- 快速入門
- 資源準備
- 安裝 OBD部署 OceanBase 數據庫
- 基本操作
- 數據庫操作
- 表操作
- 索引操作
- 插入數據
- 刪除數據
- 更新數據
- 提交事務
- 回滾事務
- 安裝部署
- 使用 RPM 包安裝 OceanBase 數據庫
- 使用源碼構建 OceanBase 數據庫
- 設置無密碼 SSH 登錄
- 配置時鐘源
- 數據分布
- 集群管理
- 租戶與資源管理
- 數據分布1
- 數據副本與服務
- 數據均衡
- 數據模型
- 多租戶架構
- 系統租戶
- 普通租戶
- 表格和表組
- 二級索引
- 無主鍵表
- 視圖
- 高可用
- 高可用方案
- 部署模式
- redo 日志管理控制
- 事務管理
- 隔離級別
- 并發控制
- 全局時間戳服務
- 本地事務
- 分布式事務
- 分布式查詢
- 存儲架構
- LSM Tree 架構
- 內存表 MemTable
- 塊存儲 SSTable
- 轉儲和合并
- 緩存機制
- 讀寫流程
- DDL
- SQL 引擎
- SQL 請求執行流程
- 查詢改寫
- 基于規則的查詢改寫
- 基于代價的查詢改寫
- 查詢優化
- 訪問路徑
- 基于規則的路徑選擇
- 基于代價的路徑選擇
- 聯接算法
- 聯接算法
- 聯接順序
- SQL 執行計劃
- 執行計劃算子
- TABLE SCAN
- TABLE LOOKUP
- JOIN
- COUNT
- GROUP BY
- WINDOW FUNCTION
- SUBPLAN FILTER
- DISTINCT
- SEQUENCE
- MATERIAL
- SORT
- LIMIT
- FOR UPDATE
- SELECT INTO
- SUBPLAN SCAN
- UNION
- INTERSECT
- EXCEPT/MINUS
- INSERT
- DELETE
- UPDATE
- MERGE
- EXCHANGE
- GI
- 執行計劃緩存
- 快速參數化
- 實時執行計劃展示
- 分布式執行計劃
- 分布式執行和并行查詢
- 分布式計劃的生成
- 分布式執行計劃調度
- 分布式執行計劃管理
- 并行查詢的執行
- 并行查詢的參數調優
- 備份與恢復
- 備份架構
- 恢復架構
- Backup Set
- Archive Log Round
- 管理員指南
- 數據庫基礎組件介紹
- 數據庫管理工具介紹
- OceanBase 客戶端
- MySQL 客戶端
- 數據庫基礎管理
- OceanBase 集群管理
- 集群參數管理
- 查詢集群參數
- 修改集群參數
- Zone 管理
- 增加或刪除 Zone
- 啟動或停止 Zone
- 修改 Zone
- OBServer 管理
- 查看 OBServer 狀態
- 停止 OBServer
- 啟動 OBServer
- 管理 OBServer 節點狀態
- 資源管理
- 創建資源單元
- 查看資源單元
- 修改資源單元
- 刪除資源單元
- 創建資源池
- 查看資源配置
- 修改資源池
- 刪除資源池
- 租戶管理
- 創建用戶租戶
- 新建租戶
- 查看租戶
- 修改租戶
- 刪除租戶
- 查看租戶會話
- 終止租戶會話
- 租戶管理變量
- 內存管理
- OceanBase 內存結構
- OceanBase 數據庫內存上限
- 系統內部內存管理
- 租戶內部內存管理
- 執行計劃緩存
- 常見內存問題
- 數據庫對象管理
- 管理表
- 關于表
- 創建表
- 定義自增列
- 定義列的約束類型
- 查看表的定義
- 更改表
- 清空表
- 刪除表
- 管理表組
- 關于表組
- 表組管理命令
- 管理索引
- 關于索引
- 創建索引
- 查看索引
- 刪除索引
- 視圖和同義詞管理
- 管理視圖
- 管理同義詞
- 數據分布和鏈路管理
- 分區表和分區索引管理
- 關于分區
- 分區策略
- 創建分區表
- 一級分區表
- 二級分區表
- 維護分區表
- 一級分區表
- 二級分區表
- 分區裁剪
- 分區命名與查詢
- 在分區表上建立索引
- 局部索引
- 全局索引
- 使用索引
- 副本管理
- 表級副本的使用
- Locality 管理
- 修改租戶的 Locality
- 事務管理
- 提交事務
- 回滾事務
- 事務隔離級別
- 用戶權限管理
- 創建用戶
- 修改用戶權限
- 查看白名單
- 鎖定和解鎖用戶
- 刪除用戶
- 數據高可用
- 回收站管理
- 回收站支持的對象
- 數據庫、表和索引級回收站
- 租戶級回收站
- 物理備份與恢復管理
- 部署 NFS
- 備份數據
- 通過命令行備份
- 查看備份進度
- 停止備份
- 刪除過期的備份
- 清理備份數據
- 取消清理備份數據
- 恢復數據
- 執行恢復
- 查看恢復進度和結果
- 備份維護
- 開發者指南
- 關于OceanBase數據庫
- OceanBase 集群簡介
- OceanBase 租戶簡介
- MySQL 租戶數據庫對象
- MySQL 客戶端
- OceanBase 客戶端(obclient)
- 關于結構化查詢語言
- Java 數據庫連接驅動(JDBC)
- 連接OceanBase數據庫
- 通過 MySQL 客戶端連接 OceanBase 租戶
- 通過 obclient 連接 OceanBase 租戶
- 創建 OceanBase 示例數據庫 TPCC
- 通過 obclient 探索 OceanBase MySQL 租戶
- 查詢表數據
- 關于查詢語句
- 查詢表里符合特定搜索條件的數據
- 對查詢的結果進行排序
- 從多個表里查詢數據
- 在查詢中使用操作符和函數
- 查看查詢執行計劃
- 在查詢中使用 SQL Hint
- 關于查詢超時設計
- 關于 DML 語句和事務
- 關于 DML 語句
- 關于 INSERT 語句
- 關于 UPDATE 語句
- 關于 DELETE 語句
- 關于 REPLACE INTO 語句
- 關于事務控制語句
- 提交事務
- 回滾事務
- 事務保存點
- 關于事務超時
- 創建和管理數據庫對象
- 關于 DDL 語句
- 創建數據庫
- 創建和管理表
- 關于 SQL 數據類型
- 創建表
- 關于自增列
- 關于列的約束類型
- 關于表的索引
- 閃回被刪除的表
- 創建和管理分區表
- 分區路由
- 分區策略
- 分區表的索引
- 分區表使用建議
- 創建和管理表組
- 關于表組
- 創建表時指定表組
- 查看表組信息
- 向表組中增加表
- 刪除表組
- 創建和管理視圖
- 創建視圖
- 修改視圖
- 刪除視圖
- 向 OceanBase 遷移數據
- DataX
- 不同數據源的 DataX 讀寫插件示例
- OceanBase 數據加載技術
- 附錄
- OceanBase 常用參數和變量
- OceanBase 常用 SQL
- SQL參考
- 基本元素
- 運算符
- 函數
- 函數
- 聚集函數
- 分析函數
- 信息函數
- 其它函數
- 查詢和子查詢
- 連接
- 集合
- SQL語句
- 通用語法
- ALTER DATABASE
- ALTER OUTLINE
- ALTER RESOURCE POOL
- ALTER RESOURCE UNIT
- ALTER SYSTEM
- ALTER TABLE
- ALTER TABLEGROUP
- ALTER TENANT
- ALTER USER
- CREATE DATABASE
- CREATE INDEX
- CREATE OUTLINE
- CREATE RESOURCE POOL
- CREATE RESOURCE UNIT
- CREATE RESTORE POINT
- CREATE SYNONYM
- CREATE TABLE
- CREATE TABLEGROUP
- CREATE TENANT
- CREATE USER
- CREATE VIEW
- DELETE
- DROP DATABASE
- DROP INDEX
- DROP OUTLINE
- DROP RESOURCE POOL
- DROP RESOURCE UNIT
- DROP RESTORE POINT
- DROP TABLE
- DROP TABLEGROUP
- DROP TENANT
- DROP SYNONYM
- DROP USER
- DROP VIEW
- EXPLAIN
- FLASHBACK DATABASE
- FLASHBACK TABLE
- FLASHBACK TENANT
- GRANT
- INSERT
- KILL
- PURGE DATABASE
- PURGE INDEX
- PURGE RECYCLEBIN
- PURGE TABLE
- PURGE TENANT
- RENAME TABLE
- RENAME USER
- REPLACE
- REVOKE
- SAVEPOINT
- SCHEMA
- SELECT
- SESSION
- SET PASSWORD
- SHOW GRANTS
- SHOW RECYCLEBIN
- TRANSACTION
- TRUNCATE TABLE
- UPDATE
- SQL調優指南
- SQL請求執行流程
- SQL 執行計劃
- SQL 執行計劃簡介
- 執行計劃算子
- TABLE SCAN
- TABLE LOOKUP
- JOIN
- COUNT
- GROUP BY
- WINDOW FUNCTION
- SUBPLAN FILTER
- DISTINCT
- SEQUENCE
- MATERIAL
- SORT
- LIMIT
- FOR UPDATE
- SELECT INTO
- SUBPLAN SCAN
- UNION
- INTERSECT
- EXCEPT/MINUS
- INSERT
- DELETE
- UPDATE
- MERGE
- EXCHANGE
- GI
- 執行計劃緩存
- 快速參數化
- 實時執行計劃展示
- 分布式執行計劃
- 分布式執行和并行查詢
- 分布式計劃的生成
- 分布式執行計劃調度
- 分布式執行計劃管理
- 并行查詢的執行
- 并行查詢的參數調優
- 參考指南
- 系統視圖
- 概述
- 字典視圖
- mysql.help_topic
- mysql.help_category
- mysql.help_keyword
- mysql.help_relation
- mysql.db
- mysql.proc
- mysql.time_zone
- mysql.time_zone_name
- mysql.time_zone_transition
- mysql.time_zone_transition_type
- mysql.user
- information_schema.CHARACTER_SETS
- information_schema.COLLATIONS
- information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
- information_schema.COLUMNS
- information_schema.DBA_OUTLINES
- information_schema.ENGINES
- information_schema.GLOBAL_STATUS
- information_schema.GLOBAL_VARIABLES
- information_schema.KEY_COLUMN_USAGE
- information_schema.PARAMETERS
- information_schema.PARTITIONS
- information_schema.PROCESSLIST
- information_schema.REFERENTIAL_CONSTRAINTS
- information_schema.ROUTINES
- information_schema.SCHEMATA
- information_schema.SCHEMA_PRIVILEGES
- information_schema.SESSION_STATUS
- information_schema.SESSION_VARIABLES
- information_schema.STATISTICS
- information_schema.TABLES
- information_schema.TABLE_CONSTRAINTS
- information_schema.TABLE_PRIVILEGES
- information_schema.USER_PRIVILEGES
- information_schema.USER_RECYCLEBIN
- information_schema.VIEWS
- oceanbase.CDB_OB_BACKUP_ARCHIVELOG_SUMMARY
- oceanbase.CDB_OB_BACKUP_JOB_DETAILS
- oceanbase.CDB_OB_BACKUP_SET_DETAILS
- oceanbase.CDB_OB_BACKUP_PROGRESS
- oceanbase.CDB_OB_BACKUP_SET_EXPIRED
- oceanbase.CDB_OB_BACKUP_ARCHIVELOG_PROGRESS
- oceanbase.CDB_OB_BACKUP_CLEAN_HISTORY
- oceanbase.CDB_OB_BACKUP_TASK_CLEAN_HISTORY
- oceanbase.CDB_OB_RESTORE_PROGRESS
- oceanbase.CDB_OB_RESTORE_HISTORY
- oceanbase.CDB_CKPT_HISTORY
- oceanbase.CDB_OB_BACKUP_VALIDATION_JOB
- oceanbase.CDB_OB_BACKUP_VALIDATION_JOB_HISTORY
- oceanbase.CDB_OB_TENANT_BACKUP_VALIDATION_TASK
- oceanbase.CDB_OB_BACKUP_VALIDATION_TASK_HISTORY
- oceanbase.CDB_OB_BACKUP_BACKUP_ARCHIVELOG_SUMMARY
- oceanbase.CDB_OB_BACKUP_BACKUPSET_TASK_HISTORY
- oceanbase.CDB_OB_BACKUP_BACKUPSET_TASK
- oceanbase.CDB_OB_BACKUP_BACKUPSET_JOB_HISTORY
- oceanbase.CDB_OB_BACKUP_BACKUPSET_JOB
- oceanbase.CDB_OB_BACKUP_SET_OBSOLETE
- 性能視圖
- gv$plan_cache_stat
- gv$plan_cache_plan_stat
- gv$session_event
- gv$session_wait
- gv$session_wait_history
- gv$system_event
- gv$sesstat
- gv$sysstat
- gv$sql_audit
- gv$latch
- gv$memory
- gv$memstore
- gv$memstore_info
- gv$plan_cache_plan_explain
- gv$obrpc_outgoing
- gv$obrpc_incoming
- gv$sql
- gv$sql_plan_monitor
- gv$outline
- gv$concurrent_limit_sql
- gv$sql_plan_statistics
- gv$server_memstore
- gv$unit_load_balance_event_history
- gv$tenant
- gv$database
- gv$table
- gv$unit
- gv$partition
- gv$lock_wait_stat
- gv$session_longops
- gv$tenant_memstore_allocator_info
- gv$minor_merge_info
- gv$tenant_px_worker_stat
- gv$partition_audit
- gv$ps_stat
- gv$ps_item_info
- gv$sql_workarea
- gv$sql_workarea_histogram
- gv$ob_sql_workarea_memory_info
- gv$server_schema_info
- gv$merge_info
- gv$lock
- gv$sstable
- gv$ob_trans_table_status
- v$statname
- v$event_name
- v$session_event
- v$session_wait
- v$session_wait_history
- v$sesstat
- v$sysstat
- v$system_event
- v$memory
- v$memstore
- v$memstore_info
- v$plan_cache_stat
- v$plan_cache_plan_stat
- v$plan_cache_plan_explain
- v$sql_audit
- v$obrpc_outgoing
- v$obrpc_incoming
- v$sql
- v$sql_monitor
- v$sql_plan_monitor
- v$sql_plan_statistics
- v$unit
- v$partition
- v$lock_wait_stat
- v$session_longops
- v$latch
- v$tenant_memstore_allocator_info
- v$tenant_px_worker_stat
- v$partition_audit
- v$ob_cluster
- v$ob_standby_status
- v$ob_cluster_stats
- v$ob_cluster_event_history
- v$ps_stat
- v$ps_item_info
- v$sql_workarea
- v$sql_workarea_active
- v$sql_workarea_histogram
- v$ob_sql_workarea_memory_info
- v$ob_timestamp_service
- v$server_schema_info
- v$merge_info
- v$lock
- v$sql_monitor_statname
- v$restore_point
- v$ob_cluster_failover_info
- v$encrypted_tables
- v$encrypted_tablespaces
- v$sstable
- v$ob_trans_table_status
- 系統變量
- 系統變量概述
- auto_increment_increment
- auto_increment_offset
- autocommit
- character_set_client
- character_set_connection
- character_set_database
- character_set_results
- character_set_server
- character_set_system
- collation_connection
- collation_database
- collation_server
- interactive_timeout
- last_insert_id
- max_allowed_packet
- sql_mode
- time_zone
- tx_isolation
- version_comment
- wait_timeout
- binlog_row_image
- character_set_filesystem
- connect_timeout
- datadir
- debug_sync
- div_precision_increment
- explicit_defaults_for_timestamp
- group_concat_max_len
- identity
- lower_case_table_names
- net_read_timeout
- net_write_timeout
- read_only
- sql_auto_is_null
- sql_select_limit
- timestamp
- tx_read_only
- version
- sql_warnings
- max_user_connections
- init_connect
- license
- net_buffer_length
- system_time_zone
- query_cache_size
- query_cache_type
- sql_quote_show_create
- max_sp_recursion_depth
- sql_safe_updates
- ob_proxy_partition_hit
- ob_log_level
- ob_max_parallel_degree
- ob_query_timeout
- ob_read_consistency
- ob_enable_transformation
- ob_trx_timeout
- ob_enable_plan_cache
- ob_enable_index_direct_select
- ob_proxy_set_trx_executed
- ob_enable_aggregation_pushdown
- ob_last_schema_version
- ob_global_debug_sync
- ob_proxy_global_variables_version
- ob_enable_trace_log
- ob_enable_hash_group_by
- ob_enable_blk_nestedloop_join
- ob_bnl_join_cache_size
- ob_org_cluster_id
- ob_plan_cache_percentage
- ob_plan_cache_evict_high_percentage
- ob_plan_cache_evict_low_percentage
- recyclebin
- ob_capability_flag
- ob_stmt_parallel_degree
- is_result_accurate
- error_on_overlap_time
- ob_compatibility_mode
- ob_create_table_strict_mode
- ob_sql_work_area_percentage
- ob_route_policy
- ob_enable_transmission_checksum
- foreign_key_checks
- ob_enable_truncate_flashback
- ob_tcp_invited_nodes
- sql_throttle_current_priority
- sql_throttle_priority
- sql_throttle_rt
- sql_throttle_network
- auto_increment_cache_size
- ob_enable_jit
- ob_timestamp_service
- plugin_dir
- undo_retention
- ob_sql_audit_percentage
- ob_enable_sql_audit
- optimizer_use_sql_plan_baselines
- optimizer_capture_sql_plan_baselines
- parallel_max_servers
- parallel_servers_target
- ob_trx_idle_timeout
- block_encryption_mode
- ob_reserved_meta_memory_percentage
- ob_check_sys_variable
- tracefile_identifier
- transaction_isolation
- ob_trx_lock_timeout
- validate_password_check_user_name
- validate_password_length
- validate_password_mixed_case_count
- validate_password_number_count
- validate_password_policy
- validate_password_special_char_count
- default_password_lifetime
- ob_trace_info
- secure_file_priv
- ob_pl_block_timeout
- performance_schema
- transaction_read_only
- resource_manager_plan
- 系統配置項
- 系統配置項概述
- auto_leader_switch_interval
- auto_delete_expired_backup
- autoinc_cache_refresh_interval
- audit_sys_operations
- audit_trail
- balancer_idle_time
- balancer_log_interval
- balancer_timeout_check_interval
- balancer_task_timeout
- balancer_tolerance_percentage
- balancer_emergency_percentage
- balance_blacklist_failure_threshold
- balance_blacklist_retry_interval
- backup_concurrency
- backup_dest
- backup_net_limit
- backup_recovery_window
- backup_region
- builtin_db_data_verify_cycle
- bf_cache_miss_count_threshold
- bf_cache_priority
- cache_wash_threshold
- clog_cache_priority
- clog_sync_time_warn_threshold
- clog_disk_usage_limit_percentage
- clog_transport_compress_all
- clog_transport_compress_func
- clog_persistence_compress_func
- clog_max_unconfirmed_log_count
- cluster
- cluster_id
- cpu_count
- cpu_quota_concurrency
- cpu_reserved
- config_additional_dir
- data_copy_concurrency
- data_dir
- datafile_disk_percentage
- dtl_buffer_size
- datafile_size
- debug_sync_timeout
- default_compress_func
- default_compress
- default_progressive_merge_num
- default_row_format
- devname
- data_disk_usage_limit_percentage
- disk_io_thread_count
- dead_socket_detection_timeout
- enable_clog_persistence_compress
- election_cpu_quota
- enable_one_phase_commit
- enable_sys_unit_standalone
- enable_pg
- enable_smooth_leader_switch
- election_blacklist_interval
- enable_election_group
- enable_auto_leader_switch
- enable_global_freeze_trigger
- enable_manual_merge
- enable_merge_by_turn
- enable_perf_event
- enable_rebalance
- enable_record_trace_log
- enable_record_trace_id
- enable_early_lock_release
- enable_rereplication
- enable_rich_error_msg
- enable_rootservice_standalone
- enable_sql_audit
- enable_sql_operator_dump
- enable_async_syslog
- enable_syslog_recycle
- enable_syslog_wf
- enable_upgrade_mode
- enable_separate_sys_clog
- enable_ddl
- enable_major_freeze
- enable_rebuild_on_purpose
- enable_log_archive
- enable_monotonic_weak_read
- external_kms_info
- freeze_trigger_percentage
- flush_log_at_trx_commit
- fuse_row_cache_priority
- force_refresh_location_cache_interval
- force_refresh_location_cache_threshold
- get_leader_candidate_rpc_timeout
- global_major_freeze_residual_memory
- global_write_halt_residual_memory
- ignore_replay_checksum_error
- global_index_build_single_replica_timeout
- high_priority_net_thread_count
- ignore_replica_checksum_error
- ignore_replay_checksum_error
- index_cache_priority
- index_clog_cache_priority
- index_info_block_cache_priority
- internal_sql_execute_timeout
- large_query_worker_percentage
- large_query_threshold
- leak_mod_to_check
- lease_time
- location_cache_cpu_quota
- location_cache_expire_time
- location_cache_priority
- location_cache_refresh_min_interval
- location_fetch_concurrency
- location_refresh_thread_count
- log_archive_checkpoint_interval
- log_archive_concurrency
- log_restore_concurrency
- major_freeze_duty_time
- max_kept_major_version_number
- max_string_print_length
- max_syslog_file_count
- merge_stat_sampling_ratio
- major_compact_trigger
- memory_chunk_cache_size
- memory_limit
- memory_limit_percentage
- memory_reserved
- merge_thread_count
- merger_check_interval
- merger_completion_percentage
- merger_switch_leader_duration_time
- merger_warm_up_duration_time
- max_px_worker_count
- migration_disable_time
- min_observer_version
- minor_deferred_gc_time
- minor_freeze_times
- minor_warm_up_duration_time
- mysql_port
- minor_merge_concurrency
- multiblock_read_gap_size
- multiblock_read_size
- micro_block_merge_verify_level
- migrate_concurrency
- minor_compact_trigger
- memstore_limit_percentage
- net_thread_count
- obconfig_url
- ob_enable_batched_multi_statement
- partition_table_check_interval
- partition_table_scan_batch_count
- plan_cache_evict_interval
- px_task_size
- px_workers_per_cpu_quota
- replica_safe_remove_time
- resource_hard_limit
- resource_soft_limit
- rootservice_async_task_queue_size
- rootservice_async_task_thread_count
- rootservice_list
- rootservice_ready_check_interval
- row_compaction_update_limit
- row_purge_thread_count
- rpc_port
- rpc_timeout
- restore_concurrency
- rootservice_memory_limit
- rebuild_replica_data_lag_threshold
- schema_history_expire_time
- ssl_client_authentication
- server_check_interval
- server_data_copy_in_concurrency
- server_data_copy_out_concurrency
- server_permanent_offline_time
- stack_size
- server_balance_critical_disk_waterlevel
- server_balance_disk_tolerance_percent
- system_memory
- server_balance_cpu_mem_tolerance_percent
- server_cpu_quota_max
- server_cpu_quota_min
- sql_audit_memory_limit
- sys_bkgd_io_high_percentage
- sys_bkgd_io_low_percentage
- sys_bkgd_io_timeout
- sys_bkgd_net_percentage
- sys_bkgd_migration_change_member_list_timeout
- sys_bkgd_migration_retry_num
- syslog_level
- switchover_process_thread_count
- system_cpu_quota
- sys_cpu_limit_trigger
- syslog_io_bandwidth_limit
- tablet_size
- tableapi_transport_compress_func
- tenant_task_queue_size
- tenant_groups
- trace_log_slow_query_watermark
- trace_log_sampling_interval
- trx_2pc_retry_interval
- trx_force_kill_threshold
- tde_method
- token_reserved_percentage
- unit_balance_resource_weight
- user_block_cache_priority
- user_row_cache_priority
- user_tab_col_stat_cache_priority
- user_iort_up_percentage
- use_large_pages
- virtual_table_location_cache_expire_time
- workers_per_cpu_quota
- wait_leader_batch_count
- writing_throttling_maximum_duration
- writing_throttling_trigger_percentage
- weak_read_version_refresh_interval
- workarea_size_policy
- zone
- zone_merge_concurrency
- zone_merge_order
- zone_merge_timeout
- ob_ssl_invited_common_names
- ssl_external_kms_info
- ob_event_history_recycle_interval
- backup_log_archive_checkpoint_interval
- plsql_ccflags
- plsql_code_type
- plsql_debug
- plsql_optimize_level
- plsql_v2_compatibility
- plsql_warnings
- recyclebin_object_expire_time
- log_archive_batch_buffer_limit
- clog_disk_utilization_threshold
- backup_backup_archive_log_batch_count
- backup_backup_archivelog_retry_interval
- backup_backupset_batch_count
- backup_backupset_retry_interval
- open_cursors
- fast_recovery_concurrency
- 預留關鍵字
- 部署實踐
- 設置無密碼 SSH 登錄
- 單機安裝
- 本地安裝
- 分布式安裝
- 創建租戶
- OceanBaseDeploy(OBD)常用命令
- 大數據
- 數據倉庫分層
- 數據倉庫分層實踐
- hive安裝
- hive命令
- hadoop安裝
- jdk安裝
- 應龍inlong
- 網關
- apisix
- apisix2.7源碼安裝
- apisix rpm2.6安裝
- apisix-dashboard2.7 rpm安裝
- apisix-dashboard使用
- apisix-dashboard進階