日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

無鎖結構變更

為解決變更數據庫表結構時的鎖表問題,ODC V4.2.0 及之后的版本提供了無鎖結構變更功能,該功能可以較好地規避因鎖表以致于阻塞業務。本文檔旨在介紹如何通過提交無鎖變更工單實現數據庫無鎖結構變更。

背景信息

原理介紹

無鎖結構變更的執行過程如下圖所示:

image

  1. 創建臨時表。

  2. 變更臨時表結構。

  3. 全量拷貝數據。

  4. 增量數據同步。

  5. 數據一致性校驗。

  6. Kill Session。

  7. 切換新舊表。

無鎖結構變更工單執行流程

image

  1. 用戶提交無鎖結構變更工單。

  2. 對用戶輸入的 SQL 語句進行預檢查。

  3. 審批任務流程。

  4. 執行無鎖結構變更任務。

支持的變更范圍

分類

操作

是否支持

備注

列操作

列類型修改

重排列(before/after/first)

轉換字符集

列重命名

增加列

刪除列

增加主鍵列

主鍵

增加主鍵

表存在非空唯一鍵

修改主鍵

表存在非空唯一鍵

刪除主鍵

表存在非空唯一鍵

分區

刪除分區

truncate 分區

重分區

非分區表改為分區表

注意事項

  • 確保數據庫磁盤空間充足。

  • 表中必須存在主鍵或非空唯一鍵且表中不存在外鍵。

  • 當前表在執行無鎖結構變更同時,執行其它 DDL 操作會導致任務失敗。

  • OceanBase MySQL 模式下的表名稱不超過 54 個字符。

  • ODC 連接 OceanBase 社區版數據庫時,數據源配置信息中需包含集群名和 SYS 租戶賬號。

  • 如果 OceanBase MySQL 模式版本小于 V4.3.0,ODC 通過鎖定用戶且關閉會話的方式避免表名切換過程中數據的寫入。

  • 無鎖結構變更期間,發起其它關于該表的 DDL 變更將導致任務失敗。

新建無鎖結構變更任務

本文以 OceanBase 社區版和企業版 OMS 為例,演示場景為將表 student 中的列 birth 類型修改為 datetime。該示例所使用的項目名稱為 odc_4.2.0,數據庫名稱為 odc_test,表名稱為 student。

  1. 在 SQL 窗口中,編輯 SQL 語句以創建表 student 到數據庫 odc_test 中。

    image

  2. 工單 頁簽中單擊 無鎖結構變更 > 新建無鎖結構變更。

    image

  3. 新建無鎖結構變更 頁面中,輸入以下信息。

    image

    信息項

    說明

    數據庫

    選擇需變更的數據庫。

    鎖定用戶

    • 如果指定鎖定用戶,則表名切換之前 ODC 會鎖定所指定的數據庫賬號,并關閉該賬號對應的所有會話信息,以保障表名切換期間數據一致性的同時盡可能降低對業務的影響。

    • 如果未指定任何賬號,ODC 將不會進行任何賬號鎖定及關閉會話操作,需自主確保切換期間數據的一致性。

    重要

    執行無鎖結構變更任務期間,執行該任務的用戶不可執行與無鎖結構變更相關表的變更操作。

    變更定義

    • CREATE TABLE:OceanBasese 不支持的語法需要使用 CREATE 語句。

    • ALTER TABLE:OceanBasese V4.0.0 及之后的版本,ALTER TABLE OFFLINE 模式可以使用 ALTER 語句。

    SQL 內容

    在編輯區中錄入 SQL 腳本。

    切換表設置

    數據一致后將原表切換為目標表。

    • 鎖表超時時間:切換表過程會鎖表,超時未切換完成可能導致執行失敗。

    • 失敗重試次數:超過鎖表時間后,未切換完成可自動重試。

    • 完成后源表清理策略:選擇 重命名不處理,重命名源表,不刪除。選擇 立即刪除,無鎖結構變更完成后刪除源表。

    任務設置

    • 選擇 立即執行/定時執行 設置任務執行方式。

    • 無鎖結構變更工具提供兩種任務錯誤處理方式:

      • 停止任務:停止任務為默認方式,運行腳本的過程中出現錯誤時會停止運行。

      • 忽略錯誤繼續任務:選擇忽略錯誤繼續任務方式,在運行腳本出現錯后將跳過錯誤語句繼續執行。

    • 選擇 自動切換/手動切換 表名。

    • 配置限流策略:

      • 行限流:每秒操作數據總行限制。

      • 數據大小限流:每秒操作數據總大小限制。

    描述

    可在 描述 文本框中輸入不超過 200 個字符的描述信息,該項為選填項。

  4. 單擊 新建,完成新建無鎖結構變更。

  5. 任務生成后可以在 工單 > 無鎖結構變更 列表中查看任務信息。

    image

查看無鎖結構變更任務

查看任務信息

  1. 任務中心 的無鎖結構變更列表中,單擊操作列中的 查看 按鈕。

  2. 在彈出的任務詳情面板中,單擊 任務信息 頁簽查看所屬數據庫、任務類型、風險等級、SQL 內容和回滾內容等信息。

  3. 單擊 再次發起,可重新發起無鎖結構變更任務。

查看任務流程

在任務詳情面板中,單擊 任務流程 頁簽查看發起任務狀態、審批狀態、執行狀態和執行結果等信息。

查看執行記錄

在任務詳情面板中,單擊 執行記錄 頁簽查看新表和源表 DDL。

查看任務日志

在任務詳情面板中,單擊 任務日志 頁簽查看任務的全部日志和告警日志。

信息項

說明

全部日志

全部日志顯示任務的 INFO、ERROR WARN 日志等全量信息。 單擊 查找、下載 復制 按鈕,可查找信息、下載或復制全部日志信息。

告警日志

告警日志單獨顯示任務的 ERROR WARN 日志。當任務失敗時,可通過告警日志查看錯誤信息。 單擊 查找下載 復制 按鈕,可查找信息、下載或復制告警日志信息。

相關文檔