OceanBase學習之路54|如何配置多租戶管理?

老樹樁12發表於2023-01-18

OceanBase 資料庫透過設定配置項和系統變數來完成配置管理。

配置項

配置項主要用於運維,常用於控制機器及其以上級別的系統行為。可以作為 OBServer 啟動引數和租戶建立引數,也可以在 OBServer 執行時進行修改以調整系統行為。 有關配置項的詳細介紹請參見  。

系統變數

系統變數通常和使用者 Session 繫結,用於控制 Session 級別的 SQL 行為。

支援設定 Global 和 Session 級別的變數。設定 Global 級別的系統變數後,當前 Session 上不會生效,新建的任何 Session 都能讀到新的變數值。設定 Session 級別的系統變數後,僅對當前 Session 生效。

有關係統變數的詳細介紹請參見  。

系統配置項和系統變數對比

對比項 系統配置項 系統變數
生效範圍 叢集、租戶、Zone、機器。 租戶的 Global 級別或 Session 級別。
生效方式
  • 動態生效: edit_level 為 dynamic_effective
  • 重啟生效: edit_level 為  static_effective
  • 設定 Session 級別的變數僅對當前 Session 有效,對其他 Session 無效。
  • 設定 Global 級別的變數對當前 Session 無效,需要重新登入建立新的 Session 才會生效。
修改方式
  • 支援透過 SQL 語句修改,示例如下:
    obclient> Alter SYSTEM SET schema_history_expire_time='1h';
  • 支援透過啟動引數修改,示例如下:
    cd /home/admin && ./bin/observer -o "schema_history_expire_time='1h'"
僅支援透過 SQL 語句修改,示例如下:  obclient> SET ob_query_timeout = 20000000;
obclient> SET GLOBAL ob_query_timeout = 20000000;
持久化 持久化到內部表與配置檔案,可以在  /home/admin/oceanbase/etc/observer.config.bin 與  /home/admin/oceanbase/etc/observer.config.bin.history 檔案中查詢該配置項。 僅 GLOBAL 級別的變數會持久化,SESSION 級別的變數不會進行持久化。
生命週期 長,從程式啟動到退出。 短,需要租戶的 Schema 建立成功以後才生效。
查詢方式 可以使用  SHOW PARAMETERS 語句查詢。示例如下:
obclient> SHOW PARAMETERS LIKE 'schema_history_expire_time';
可以使用  SHOW [GLOBAL] VARIABLES 或  SELECT 語句查詢。 示例如下: obclient> SHOW VARIABLES LIKE 'ob_query_timeout';
obclient> SHOW GLOBAL VARIABLES LIKE 'ob_query_timeout';
obclient> SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME = 'ob_query_timeout';
obclient> SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'ob_query_timeout';


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026075/viewspace-2932561/,如需轉載,請註明出處,否則將追究法律責任。

相關文章