本文檔旨在介紹如何在 ODC 上使用分區計劃,包括對建立和刪除的表分區進行自動管理。
背景資訊
分區計劃是專門針對 Range 分區的擴充功能,ODC 支援依據使用者佈建的分區策略對 Range 分區表進行自動管理,使用者無需手動建立新分區,以方便維護 Range 分區表。
Range 分區:Range 分區是最常見的分區類型,通常與日期一起使用。在進行 Range 分區時,資料庫根據分區鍵的值範圍將行映射到分區。詳情請參見 設定分區規則 和 分區類型。
分區計劃:分區計劃是專門針對 Range 分區的擴充功能,ODC 支援依據使用者佈建的分區策略對 Range 分區表進行自動管理,使用者無需手動建立新分區,以方便維護 Range 分區表。
建立策略:ODC 支援依據使用者佈建的分區細則對錶進行自動分區。建立分區策略方式包括順序遞增和自訂。
順序遞增:建立分區策略方式,僅適用於時間、數字和字元欄位類型。

自訂:建立分區策略方式,所有欄位類型支援通過自訂 SQL 運算式建立分區策略。

刪除策略:根據設定的分區保留數量保留最新的分區並刪除多餘的分區。
分區計劃執行流程

對錶設定建立分區策略/刪除分區策略。
指定策略執行循環。
審批任務流程。
執行分區計劃。
注意事項
僅支援 OceanBase MySQL 和 OceanBase Oracle 資料來源。
僅支援 Range 分區表。
Range 分區表中的最後一個分區上限值為 MAXVALUE 時,資料庫不允許新增分區,因此不支援通過 ODC 分區計劃任務建立分區策略。
分區計劃預設每小時的 00 分 00 秒執行。
資料庫已存在一個分區計劃時,新建立的分區計劃審批通過後覆蓋原有分區計劃。
如果表屬於表組(tablegroup),建立分區可能會失敗或破壞負載平衡,請謹慎配置建立策略。
建立分區可能會導致表組(tablegroup)失效,因為同屬於一個表組的表必須擁有完全一致的分區,而建立分區可能會破壞這種現狀,導致表組失效。
如果表包含全域索引,刪除分區會導致全域索引失效,請謹慎操作;如果選擇重建全域索引可能因耗時較久導致業務問題,或者重建全域索引失敗導致線上問題。
重建全域索引選項僅對 Oracle 模式下有效,MySQL 模式下無此選項,因 MySQL 模式下預設會重建全域索引。
建立分區計劃
樣本:在資料來源 mysql4253 下資料庫 test_data 中,每隔 1 個月預建立 1 個 order 表分區。
資訊項 | 樣本值 |
專案名稱 | odc_test |
所屬資料來源 | mysql4253 |
資料庫名稱 | test_data |
表名稱 | order |
在 SQL 視窗中,編輯 SQL 陳述式以建立表 order。

CREATE TABLE `order` ( `time` date NOT NULL, `parti_key` int(11), `name` varchar(120) DEFAULT NULL ) partition by range columns(time, parti_key) (partition p2023_01 values less than ('2023-01-01', 20230101), partition p2023_02 values less than ('2023-02-01', 20230201))在 SQL 開發視窗的 工單 頁簽中單擊 分區計劃 > 建立分區計劃。

在 建立分區計劃 面板中指定以下資訊。

資訊項
說明
資料庫
選擇建立分區計劃所屬資料庫。
分區策略
勾選所屬庫中的 Range 分區表,並單擊
編輯對應的分區策略。具體配置請參見設定分區策略和分區策略使用樣本。說明勾選 分區策略 右側的 僅顯示未設定的表 時,支援過濾未設定的表。
勾選 Range 分區表時,支援大量設定分區策略。
設定策略執行循環
建立策略執行循環:設定所有的分區建立策略的執行時機,例如每晚 2 點執行。
刪除策略執行循環:勾選自訂刪除策略執行循環,設定所有的分區刪除策略的執行時機,如果不勾選,分區刪除策略將會和分區建立策略一起被調度執行。
樣本:建立策略執行循環每晚 3 點,刪除策略執行循環每晚 1 點。表示每晚 3 點將會運行該資料庫下所有的分區建立策略,每晚 1 點將會運行該資料庫下所有的分區刪除策略。

任務設定
選擇任務錯誤處理方式:
停止任務:停止任務為預設,運行指令碼的過程中出現錯誤時會停止運行。
忽略錯誤繼續任務:選擇忽略錯誤繼續任務方式,在運行指令碼出現錯後將跳過錯誤語句繼續執行。
執行逾時時間
預設 2 小時。
備忘
描述專案的業務背景資訊,例如變更目的、預期目標等。
指定上述資訊後,單擊面板右下角的 提交 按鈕完成建立分區計劃任務。
任務產生後會自動彈出 工作中樞 面板,在工作中樞可以查看任務審批狀態和任務資訊。

查看分區計劃
任務資訊
在 工單 的分區計劃列表中,單擊操作列中的 查看 按鈕。

在彈出的 任務詳情 面板中,單擊 任務資訊 頁簽查看任務基本資料和設定資訊。
資訊項
說明
任務基本資料
顯示 任務狀態、任務編號、任務類型、所屬資料來源、風險等級、備忘、建立人 和 建立時間 等資訊。
任務設定資訊
顯示建立分區計劃任務時所選擇的 Range 分區表的分區策略資訊。
在任務資訊面板右下角,單擊 再次發起,可以重新發起任務。
任務流程
在 任務詳情 面板中,單擊 任務流程 頁簽查看 發起任務狀態、審批狀態、執行狀態 和 完成結果 等資訊。
在面板右下角,單擊 再次發起,可重新發起任務。
關聯記錄
在 任務詳情 面板中,單擊 關聯記錄 頁簽查看 任務編號、所屬庫、建立時間、任務狀態 和 查看 操作等資訊。
在面板右下角,單擊 再次發起,可重新發起任務。
任務日誌
在 任務詳情 面板中,單擊 任務日誌 標籤查看任務的全部日誌和警示日誌。

資訊項
說明
全部日誌
全部日誌顯示任務的 INFO、ERROR 和 WARN 日誌等全量資訊。 單擊 尋找、下載 和 複製 按鈕,可尋找資訊、下載或複製全部日誌資訊。
警示日誌
警示日誌單獨顯示任務的 ERROR 和 WARN 日誌。當任務失敗時,可通過警示日誌查看錯誤資訊。 單擊 尋找、下載 和 複製 按鈕,可尋找資訊、下載或複製警示日誌資訊。
單擊 再次發起,可重新發起任務。
匯入 分區計劃任務
您可以將OceanBase 中的執行個體遷移到 OB Cloud,並將已遷移執行個體中包含的分區計劃任務遷移到 OB Cloud。
步驟一:從OceanBase 匯出分區計劃任務
在 OceanBase 管理主控台 的左側導覽列中,單擊 資料研發 。
單擊 工單 > 分區計劃 ,在 分區計劃頁面中,勾選目標工單,單擊 大量匯出。

在匯出定時任務頁面中,確認需要匯出的任務,單擊 全部匯出。

匯出成功後,在彈窗中複製密鑰,並妥善儲存,在後續匯入該 分區計劃時需要填寫。

步驟二:匯入分區計劃任務到 OB Cloud
在 OceanBase 管理主控台 的左側導覽列中,單擊 生態整合,選擇 SQL 開發 > OceanBase 開發人員中心。

在開發人員中心,單擊 工單 > 分區計劃,在 分區計劃頁面中,勾選目標工單,單擊 匯入 分區計劃。

在匯入分區計劃的頁面中,添加步驟一中匯出的 zip 檔案,填寫 檔案密鑰,選擇匯入專案後,單擊 下一步:預覽。

在預覽頁面中,選擇新的目標資料庫後,勾選 我已確認匯入的工單新舊資料庫物件一致,單擊 匯入。

匯入成功後,可以在分區計劃列表中看到匯入的分區計劃。
