修改數據庫參數
更新時間 2024-11-21 15:26:32
最近更新時間: 2024-11-21 15:26:32
分享文章
本章節主要介紹如何修改數據庫參數。
集群創建成功后,用戶可以根據實際需要修改集群的數據庫參數。在DWS 管理控制臺,您可以查看或設置一些常用的數據庫參數,詳情請參見操作步驟。也可以查看歷史參數修改記錄,詳情請參見查看參數修改歷史。如需查看或設置其他數據庫參數,您可以通過SQL命令的方式,詳情請參見《數據倉庫服務用戶開發指南》中的有關“配置GUC參數”的內容。
前提條件
只有當集群無運行中的任務時,才能修改參數。
操作步驟
- 登錄DWS管理控制臺。
- 在左側導航欄中,單擊“集群 > 專屬集群”。
- 在集群列表中找到所需要的集群,單擊集群名稱,進入“集群詳情”頁面。
- 單擊“參數修改”頁簽,修改相應的參數值,然后單擊“保存”。
- 在“修改預覽”窗口,確認修改無誤后,單擊“保存”。
- 用戶可根據修改參數所在行的“是否重啟集群”列,判斷集群是否進行重啟操作。
說明
若修改參數無需進行重啟集群操作,則參數修改后立即生效。
若修改參數需進行重啟集群操作,參數修改任務下發成功后頁面顯示修改后的參數值,待集群重啟成功后修改的參數值生效。
參數說明
由于數據庫參數較多,下表僅顯示部分參數說明,用戶可在控制臺集群參數修改頁面搜索查看,操作詳情請參見操作步驟。
說明以下參數默認值僅為參考值,具體與當前集群版本有關。詳情請參見《[數據倉庫服務開發指南](//www.daliqc.cn/document/10014061/10025616)》的“GUC參數”章節。
參數說明表
| 參數名稱 | 參數描述 | 默認值 |
|---|---|---|
| session_timeout | Session閑置超時時間,單位為秒,0表示關閉超時限制。取值范圍:0 ~ 86400。 | 600 |
| datestyle | 設置日期和時間值的顯示格式。 | ISO,MDY |
| failed_login_attempts | 輸入密碼錯誤的次數達到該參數所設置的值時,帳戶將會被自動鎖定。配置為0時表示不限制密碼輸入錯誤的次數。取值范圍:0 ~ 1000。 | 10 |
| timezone | 設置顯示和解釋時間類型數值時使用的時區。 | UTC |
| log_timezone | 設置服務器寫日志文件時使用的時區。 | UTC |
| enable_resource_record | 設置是否開啟資源記錄功能。 當SQL語句實際執行時間大于resource_track_duration參數值(默認為60s,可自行設置)時,監控信息將會歸檔。 此功能開啟后會引起存儲空間膨脹及輕微性能影響,不用時請關閉。 說明 歸檔:監控信息保存在history視圖,歸檔在info表。歸檔時間為三分鐘,歸檔后history視圖中的記錄會被清除。 history視圖GS_WLM_SESSION_HISTORY,對應存入info表GS_WLM_SESSION_INFO。 history視圖GS_WLM_OPERATOR_HISTORY,對應存入info表GS_WLM_OPERATOR_INFO。 |
off |
| query_dop | 用戶自定義的查詢并行度。 配置為0表示查詢并行度自適應。 配置為1表示查詢不并行。 配置為2表示查詢并行度為2。 |
0 |
| resource_track_cost | 設置對語句進行資源監控的最小執行代價。 值為-1或者執行語句代價小于10時,不進行資源監控。值大于等于0時,執行語句的代價大于等于10并且超過這個參數的設定值就會進行資源監控。 SQL語句的預估執行代價可通過執行SQL命令Explain進行查詢。 |
100000 |
| resource_track_duration | 設置當前會話資源監控實時視圖中記錄的語句執行結束后進行歸檔的最小執行時間,單位為秒。 值為0時,資源監控實時視圖中記錄的所有語句都會進行歷史信息歸檔。 值大于0時,資源監控實時視圖中記錄的語句的執行時間超過設定值就會進行歷史信息歸檔。 |
60 |
| password_effect_time | 設置帳戶密碼的有效時間,臨近或超過有效期系統會提示用戶修改密碼。 取值范圍為0 ~999,單位為天。設置為0表示不開啟有效期限制功能。 |
90 |
| update_lockwait_timeout | 該參數控制并發更新同一行時單個鎖的最長等待時間。當申請的鎖等待時間超過設定值時,系統會報錯。0表示不等待,有鎖時直接報錯,單位為毫秒。 | 120000 |
| enable_resource_track | 設置是否開啟資源監控功能。開啟后可以對SQL語句進行監控。 | on |
| password_policy | 使用CREATE ROLE/USER命令創建或ALTER ROLE/USER命令修改DWS帳戶時,該參數決定是否進行密碼復雜度檢查。 0表示不采用任何密碼復雜度策略。 1表示采用默認密碼復雜度校驗策略。 |
1 |
| password_reuse_time | 在使用ALTER USER或ALTER ROLE修改用戶密碼時,該參數指定是否對新密碼進行可重用天數檢查。 取值范圍:0~3650,單位為天。0表示不檢查密碼可重用天數。正數表示新密碼不能為該值指定的天數內使用過的密碼。 說明 修改密碼時會檢查配置參數password_reuse_time和password_reuse_max。 password_reuse_time和password_reuse_max只要滿足其中任一個為正數時,即認為密碼可重用。 password_reuse_time為0時,表示不限制密碼重用天數,僅限制密碼重用次數。 password_reuse_time和password_reuse_max都為0時,表示不對密碼重用進行限制。 |
60 |
| password_reuse_max | 在使用ALTER USER或ALTER ROLE修改用戶密碼時,該參數指定是否對新密碼進行可重用次數檢查。 0表示不檢查密碼可重用次數。正整數表示新密碼不能為該值指定的次數內使用過的密碼。 說明 修改密碼時會檢查配置參數password_reuse_time和password_reuse_max。 password_reuse_time和password_reuse_max只要滿足其中任一個為正數時,即認為密碼可重用。 password_reuse_max為0時,表示不限制密碼重用次數,僅限制密碼重用天數。 password_reuse_time和password_reuse_max都為0時,表示不對密碼重用進行限制。 |
0 |
| password_lock_time | 該參數指定帳戶被鎖定后自動解鎖的時間。 0表示密碼驗證失敗時,自動鎖定功能不生效。 正數表示帳戶被鎖定后,當鎖定時間超過該參數設定的值時,帳戶將會被自行解鎖。 |
1 |
| password_encryption_type | 該字段決定采用何種加密方式對用戶密碼進行加密存儲。 0表示采用md5方式對密碼加密。 1表示采用sha256方式對密碼加密,兼容postgres客戶端的md5用戶認證方式。 2表示采用sha256方式對密碼加密。md5為不安全的加密算法,不建議用戶使用。 |
2 |
| password_notify_time | 該字段決定帳戶密碼到期前提醒的天數。 0表示不開啟提醒功能。 1~999表示帳戶密碼到期前提醒的天數。 |
7 |
| enable_stateless_pooler_reuse | pooler復用切換開關,重啟集群生效。 on表示使用pooler復用模式。 off表示關閉pooler復用模式。 說明 CN和DN需要同步設置。如果CN設置為off,DN設置為on時會導致集群不能正常通信,因此必須對該參數做CN和DN全局相同的配置,重啟集群才會生效。 |
off |
| work_mem | 設置內部排序操作和Hash表在開始寫入臨時磁盤文件之前使用的內存大小,單位為KB。 ORDER BY,DISTINCT和merge joins都要用到排序操作。 Hash表在散列連接、散列為基礎的聚集、散列為基礎的IN子查詢處理中都要用到。 對于復雜的查詢,可能會同時并發運行好幾個排序或者散列操作,每個都可以使用此參數所聲明的內存量,不足時會使用臨時文件。同樣,好幾個正在運行的會話可能會同時進行排序操作。因此使用的總內存可能是work_mem的好幾倍。 |
64MB |
| maintenance_work_mem | 設置在維護性操作(比如VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY等中可使用的最大的內存,單位為KB。 說明 該參數的設置會影響VACUUM、VACUUMFULL、CLUSTER、CREATE INDEX的執行效率。 |
128MB |
| enable_orc_cache | 設置是否允許在初始化cstore_buffers時,將1/4的cstore_buffers空間預留,用于緩存orc元數據。 on表示開啟緩存orc元數據,可提升hdfs表的查詢性能,但是會占用列存buffer資源,導致列存性能下降。 off表示關閉緩存orc元數據。 |
on |
| sql_use_spacelimit | 限制單個SQL在單個DN上,觸發落盤操作時,落盤文件的空間大小,管控的空間包括普通表、臨時表及中間結果集落盤占用的空間,單位為KB。其中-1表示沒有限制。 | -1 |
| enable_bitmapscan | 控制優化器對位圖掃描規劃類型的使用。 on表示使用。 off表示不使用。 |
on |
| enable_hashagg | 控制優化器對Hash聚集規劃類型的使用。 on表示使用。 off表示不使用。 |
on |
| enable_hashjoin | 控制優化器對Hash連接規劃類型的使用。 on表示使用。 off表示不使用。 |
on |
| enable_indexscan | 控制優化器對索引掃描規劃類型的使用。 on表示使用。 off表示不使用。 |
on |
| enable_indexonlyscan | 控制優化器對僅索引掃描規劃類型的使用。 on表示使用。 off表示不使用。 |
on |
| enable_mergejoin | 控制優化器對融合連接規劃類型的使用。 on表示使用。 off表示不使用。 |
off |
| enable_nestloop | 控制優化器對內表全表掃描嵌套循環連接規劃類型的使用。雖然不能完全消除嵌套循環連接,但關閉該參數會使優化器在存在其他方法的時候優先選擇其他方法。 on表示使用。 off表示不使用。 |
off |
| enable_seqscan | 控制優化器對順序掃描規劃類型的使用。雖然不能完全消除順序掃描,但關閉該參數會讓優化器在存在其他方法的時候優先選擇其他方法。 on表示使用。 off表示不使用。 |
on |
| enable_tidscan | 控制優化器對TID掃描規劃類型的使用。 on表示使用。 off表示不使用。 |
on |
| enable_kill_query | CASCADE模式刪除用戶時,會刪除此用戶擁有的所有對象。此參數標識是否允許在刪除用戶的時候,取消鎖定此用戶所屬對象的query。 on表示允許取消鎖定。 off表示不允許取消鎖定。 |
off |
| enable_vector_engine | 控制優化器對向量化執行引擎的使用。 on表示使用。 off表示不使用。 |
on |
| enable_broadcast | 控制優化器對stream代價估算時對broadcast分布方式的使用。 on表示使用。 off表示不使用。 |
on |
| skew_option | 控制是否使用優化策略。 off:關閉策略。 normal:采用激進策略。對于不確定是否出現傾斜的場景,認為存在傾斜,并進行相應優化。 lazy:采用保守策略。對于不確定是否出現傾斜場景,認為不存在傾斜,不進行優化。 |
normal |
| default_statistics_target | 為沒有用ALTER TABLE SET STATISTICS設置字段目標的表設置缺省統計目標。此參數設置為正數是代表統計信息的樣本數量,為負數時,代表使用百分比的形式設置統計目標,負數轉換為對應的百分比,即-5代表5%。 | 100 |
| enable_codegen | 標識是否允許開啟代碼生成優化,目前代碼生成使用的是LLVM優化。 on表示允許開啟代碼生成優化。 off表示不允許開啟代碼生成優化。 |
on |
| autoanalyze | 標識是否允許在生成計劃的時候,對于沒有統計信息的表進行統計信息自動收集。 on表示允許自動進行統計信息收集。 off表示不允許自動進行統計信息收集。 說明 當前不支持對外表觸發autoanalyze,如需收集,需用戶手動執行analyze操作。 不支持對帶有ON COMMIT [DELETE ROWS l DROP]選項的臨時表觸發autoanalyze,如需收集,需用戶手動執行analyze操作。 如果在autoanalyze某個表的過程中數據庫發生異常,當數據庫正常運行之后再執行語句有可能仍提示需要收集此表的統計信息。此時需要用戶對該表手動執行一次analyze操作,以同步統計信息數據。 |
off |
| enable_sonic_hashagg | 標識是否依據規則約束使用基于面向列的hash表設計的Hash Agg算子。 on表示在滿足約束條件時使用基于面向列的hash表設計的Hash Agg算子。 off表示不使用面向列的hash表設計的Hash Agg算子。 |
on |
| log_hostname | 默認狀態下,連接消息日志只顯示正在連接主機的IP地址。打開此選項同時可以記錄主機名。由于解析主機名可能需要一定的時間,可能影響數據庫的性能。on表示可以同時記錄主機名。off表示不可以同時記錄主機名。 | off |
| max_active_statements | 設置全局的最大并發數量。此參數只應用到CN,且針對一個CN上的執行作業。設置為-1和0表示對最大并發數不做限制。 | 60 |
| enable_resource_track | 是否開啟資源監控功能。 | on |
| resource_track_level | 設置當前會話的資源監控的等級。該參數只有當參數enable_resource_track為on時才有效。 none,不開啟資源監控功能。 query,開啟query級別資源監控功能,開啟此功能會把SQL語句的計劃信息(類似explain輸出信息)記錄到top SQL中。 perf,開啟perf級別資源監控功能,開啟此功能會把包含實際執行時間和執行行數的計劃信息(類似explain analyze輸出信息)記錄到top SQL中。 operator,開啟operator級別資源監控功能,開啟此功能不僅會把包含實際執行時間和執行行數的信息記錄到top SQL中,還會把算子級別執行信息刷新到top SQL中。 |
query |
| enable_dynamic_workload | 是否開啟動態負載管理功能。 on表示打開動態負載管理功能。 off表示關閉動態負載管理功能。 |
on |
| topsql_retention_time | 設置歷史TopSQL中gs_wlm_session_info和gs_wlm_operator_info表中數據的保存時間。單位為天。 值為0時,表示數據永久保存。 值大于0時,表示數據能夠保存的對應天數。 |
0 |
| track_counts | 控制收集數據庫活動的統計數據。 on表示開啟收集功能。 off表示關閉收集功能。 |
off |
| autovacuum | 控制數據庫自動清理進程(autovacuum)的啟動。自動清理進程運行的前提是將track_counts設置為on。 on表示開啟數據庫自動清理進程。 off表示關閉數據庫自動清理進程。 |
off |
| autovacuum_mode | 該參數僅在autovacuum設置為on的場景下生效,它控制autoanalyze或autovacuum的打開情況。 analyze表示只做autoanalyze。 vacuum表示只做autovacuum。 mix表示autoanalyze和autovacuum都做。 none表示二者都不做。 |
mix |
| autoanalyze_timeout | 設置autoanalyze的超時時間。在對某張表做autoanalyze時,如果該表的analyze時長超過了autoanalyze_timeout,則自動取消該表此次analyze,單位為秒。 | 5min |
| autovacuum_io_limits | 控制autovacuum進程每秒觸發IO的上限。其中-1表示不控制,而是使用系統默認控制組。 | -1 |
| autovacuum_max_workers | 設置能同時運行的自動清理線程的最大數量。其中0表示不會自動進行autovacuum。 | 3 |
| autovacuum_naptime | 設置兩次自動清理操作的時間間隔,單位為秒。 | 10min |
| autovacuum_vacuum_threshold | 設置觸發VACUUM的閾值。當表上被刪除或更新的記錄數超過設定的閾值時才會對這個表執行VACUUM操作。 | 50 |
| autovacuum_analyze_threshold | 設置觸發ANALYZE操作的閾值。當表上被刪除、插入或更新的記錄數超過設定的閾值時才會對這個表執行ANALYZE操作。 | 50 |
| autovacuum_analyze_scale_factor | 設置觸發一個ANALYZE時增加到autovacuum_analyze_threshold的表大小的縮放系數。 | 0.1 |
| statement_timeout | 當語句執行時間超過該參數設置的時間(從服務器收到命令時開始計時)時,該語句將會報錯并退出執行,單位為毫秒。 | 0 |
| deadlock_timeout | 設置死鎖超時檢測時間。當申請的鎖超過設定值時,系統會檢查是否產生了死鎖,單位為毫秒。 | 1s |
| lockwait_timeout | 控制單個鎖的最長等待時間。當申請的鎖等待時間超過設定值時,系統會報錯,單位為毫秒。 | 20min |
| max_query_retry_times | 指定SQL語句出錯自動重試功能的最大重跑次數(目前支持重跑的錯誤類型為“Connection reset by peer”、“Lock wait timeout”和“Connection timed out”等,設定為0時關閉重跑功能。 | 6 |
| max_pool_size | CN的連接池與其它某個CN/DN的最大連接數。 | 800 |
| enable_gtm_free | 大并發場景下同一時刻存在活躍事務較多,GTM下發的快照變大且快照請求變多的情況下,瓶頸卡在GTM與CN通訊的網絡上。為消除該瓶頸,引入GTM-FREE模式。取消CN和GTM的交互,取消CN下發GTM獲取的事務信息給DN。CN只向各個DN發送query,各個DN由本地產生快照及xid等信息,開啟該參數支持分布式事務讀最終一致性,即分布式事務只有寫外部一致性,不具有讀外部一致性。 | off |
| enable_fast_query_shipping | 控制查詢優化器是否使用分布式框架。 | on |
| enable_crc_check | 設置是否允許開啟數據校驗功能。寫入表數據時生成校驗信息,讀取表數據時檢查校驗信息。不建議用戶修改設置。 | on |
| explain_perf_mode | 此參數用來指定explain的顯示格式。 normal:代表使用默認的打印格式。 pretty:代表使用DWS改進后的新顯示格式。新的格式層次清晰,計劃包含了plan node id,性能分析簡單直接。 summary:是在pretty的基礎上增加了對打印信息的分析。 run:在summary的基礎上,將統計的信息輸出到csv格式的文件中,以便于進一步分析。 |
pretty |
| udf_memory_limit | 控制每個CN、DN執行UDF時可用的最大物理內存量,單位為KB。 | 200MB |
| default_transaction_read_only | 設置每個新創建事務是否是只讀狀態。on表示只讀狀態。off表示非只讀狀態。 | off |
查看參數修改歷史
由于修改參數的操作可能較頻繁,如果多次修改后無法確認哪些參數已經生效,可按如下流程檢查參數修改記錄。
操作步驟
- 登錄DWS管理控制臺。
- 在左側導航欄中,單擊“集群 > 專屬集群”。
- 在集群列表中找到所需要的集群,單擊集群名稱,進入“集群詳情”頁面。
- 單擊“參數修改”頁簽,并在頁面頂部切換到“修改歷史”模塊。
說明若修改參數無需進行重啟集群操作,則參數修改后立即生效,修改狀態為“已同步”。
若修改參數需進行重啟集群操作,則修改記錄的狀態為“需重啟生效”,此時單擊左側的下拉展開可以看到具體哪些參數未生效。在重啟集群后,該記錄的狀態會更新為“已同步”。
- 該頁面默認查詢一段時間之內的修改記錄,同時也可以在右上角的輸入框中輸入要查詢的參數,可以查找該參數所有的修改。