PG修改引數方法

2022-07-13 10:06:10 字數 3455 閱讀 4086

1.檢視引數檔案位置

postgres=# show config_file;

config_file

----------------------------------

/data/pgsql_data/postgresql.conf

(1 row)

postgres=# show hba_file;

hba_file

------------------------------

/data/pgsql_data/pg_hba.conf

(1 row)

postgres=# show ident_file;

ident_file

--------------------------------

/data/pgsql_data/pg_ident.conf

(1 row)

2.檢視當前會話引數
show all;

postgres=# show enable_hashjoin;

enable_hashjoin

-----------------

on(1 row)

postgres=# \x

expanded display is on.

postgres=# select * from pg_settings where name in ('enable_hashjoin');

-[ record 1 ]---------------------------------------------

name | enable_hashjoin

setting | on

unit |

category | query tuning / planner method configuration

short_desc | enables the planner's use of hash join plans.

extra_desc |

context | user

vartype | bool

source | default

min_val |

max_val |

enumvals |

boot_val | on

reset_val | on

sourcefile |

sourceline |

3.修改引數值

3.1全域性修改pg的引數.

postgres=# show work_mem;

-[ record 1 ]-

work_mem | 4mb

postgres=# alter system set work_mem='8mb';

alter system

postgres=# show work_mem;

-[ record 1 ]-

work_mem | 4mb

[postgres@mysql56 pgsql_data]$ cat postgresql.auto.conf

# do not edit this file manually!

# it will be overwritten by alter system command.

work_mem = '8mb'

3.2修改會話級引數

使用set命令,在會話層修改,修改之後將被用於未來的每乙個事務,只對當前會話有效

postgres=# set work_mem='16mb';

setpostgres=# show work_mem;

-[ record 1 ]--

work_mem | 16mb

postgres=# set session work_mem='32mb';

set

3.3新增local關鍵字,只在當前事務中修改,只在當前事務內有效:
postgres=# show work_mem;

-[ record 1 ]--

work_mem | 32mb

postgres=# begin;

begin

postgres=# set local work_mem='8mb';

setpostgres=# show work_mem;

-[ record 1 ]-

work_mem | 8mb

postgres=# commit;

commit

postgres=# show work_mem;

-[ record 1 ]--

work_mem | 32mb

postgres=#

4.reset回覆預設值
postgres=# show work_mem;

-[ record 1 ]--

work_mem | 32mb

postgres=# reset work_mem;

reset

postgres=# show work_mem;

-[ record 1 ]-

work_mem | 4mb

# reset all回覆所有預設值

5.為特定的資料庫裡的所有的使用者設定引數,例如為test資料庫所有的連線設定work_mem為16mb:
postgres=# alter database bluemoon set work_mem='16mb';

alter database

6.為資料庫中的某個特定使用者設定引數.例如為brent使用者,設定work_mem為2mb:
postgres=# alter role bluemoon set work_mem='2mb';

alter role

# 資料庫中與使用者粒度為準

7.當前的引數值是從何處指定,可以通過查詢pg_setttings中的source欄位獲取
postgres=# select name,setting,source from pg_settings where name='work_mem';

-[ record 1 ]-----

name | work_mem

setting | 4096

source | default

archive_command = 'date=`date +%y%m%d`; dir="/mysqldata/pg/pgarch/$date; (test -d $dir||mkdir -p $dir)&&cp %p $dir/%f"'

# %p代表的是相對目錄$pgdata下的pg_xlog, %f代表的是檔名

PG複製引數

複製引數 流複製 單向複製 級聯複製 雙向複製 下面說流複製的引數 1 傳送伺服器 max wal senders integer 指定來自備用伺服器或流基礎備份客戶端的併發連線的最大數目 即同時運 行 wal 傳送者程序的最大數目 預設值是零,這意味著禁用複製。此引數不能高於max connect...

PG引數調優

修改方式 alter system set configuration parameter 檢視方式 show all show value max connections 預設值是100。fsync 預設值是on,強制把資料同步到磁碟。shared buffers 預設值是24m,決定有多少記憶體...

PG均衡方法

簡單記錄幾條命令 1 設定集群僅支援luminous 或者l之後的 客戶端 ceph osd set require min compat client luminous 或ceph osd set require min compat client luminous yes i really me...