<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [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) 協議。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看