zoukankan      html  css  js  c++  java
  • PG修改参数方法

    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的参数.
    • 1.alter system 命令修改参数.使用alter system命令将修改postgresql.auto.conf文件,而不是postgresql.conf,这样可以很好的保护postgresql.conf文件,加入你使用很多alter system命令后搞的一团糟,那么你只需要删除postgresql.auto.conf,再重新加
    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';
    SET
    postgres=# 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';
    SET
    postgres=# 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
    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代表的是文件名
    
  • 相关阅读:
    git diff的使用
    composer安装特别慢的解决方案
    laravel5.5 excel的安装和使用
    laravel中有条件使用where
    数据结构10——强连通
    数据结构9——桥
    数据结构8——割点
    数据结构7——费用流
    数据结构6——网络流
    数据结构5——二分图匹配
  • 原文地址:https://www.cnblogs.com/jenvid/p/10180544.html
Copyright © 2011-2022 走看看