内容
初始化数据库实例
数据库连接
参数介绍、优化
PG12新特性
数据库体系结构
初始化数据库实例
initdb --help
initdb -D /opt/pg12/data -E UTF8 --locale=zh_CN.utf8
数据库连接
pg_hba.conf
从上到下的生效顺序
格式:
type database user address method
以何种方式
连接哪个库
连接用户
连接地址
认证方式
vim $PG_DATA/pg_hba.conf
host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 md5
连接方式
locale 匹配使用Unix域套接字的连接
host 匹配使用TCP/IP建立的连接,同时匹配SSL和非SSL连接
hostssl 匹配必须是使用SSL的TCP/IP连接
hostnossl 只匹配非SSL的TCP/IP连接
认证方式
trust 无条件允许连接,不需要口令或者其他任何认证
rejest 无条件拒绝连接,常用于从一个组中“过滤出”特定主机,例如一个reject行可以阻塞一个特定的主机连接,而后面一行允许一个特定网络中的其余主机进行连接
md5 双重md5加密
password 明文加密,注意安全
其他 https://www.postgresql.org/docs/current/static/auth-methods.html
pg_ident.conf
编辑pg_ident.conf, 增加如下配置。
参数配置
操作系统修改postgresql.conf文件
操作系统修改postgresql.auto.conf文件
启动时制定参数
psql -c
sql语句修改
alter system
alter database
......
参数生效方式: http://postgres.cn/11/view-pg-settings.html
重启数据库
重新载入数据库配置文件
pg_ctl -D $PG_DATA reload
/etc/init.d/postgresql-11.x reload (el6)
systemctl reload service.postgresql.11.x (el7)
sql语句
elect pg_reload_conf();
alter system set max_connections=500;
psql -Upostgres -dpostgres
select name, context from pg_settings where name='max_connections';
show all;
参数查看
pg_settings 系统表
select * from pg_settings;
current_settings()函数
select current_settings(name);
show all/name
show all/shared_buffers;
参数优先级
postgresql.conf
postgresql.auto.conf
command line options
all role
database
role
session
transaction
初始化后基本优化
listen_address='*'
max_connections='2000'
superuser_reserved_connections='10'
shard_buffers='1024MB' --1/4物理内存,一般不超过16GB
wal_buffers='16MB'
初始化后基本优化
log_destination='csvlog'
logging_connector='on'
log_line_prefix='%m - %a - %u - %d - %p:'
#log_line_prefix = '%t,%u,%d,%p,'
standard_conforming_settings='on'
escape_string_warning='off'
初始化后基本优化
archive_mode='on' --备库日志归档always
archive_command='/bin/true'
max_parallel_workers_per_gather='0'
max_parallel_workers='0'
log_min_duration_statement='1000' ---超过1秒的sql记录到日志
初始化后基本优化
random_page_cost=1.1 ssd
alter system set hot_standby=on;
alter system set max_wal_size='15GB'; 防止备库失效
alter system set min_wal_size='10GB'; 防止备库失效
wal_keep_segments --老版本参数,不需要使用了,个数16M一个文件,跟大小2个参数都需要同时满足。
初始化后基本优化
alter system set wal_level='replica';
alter system set full_page_writes=on;
alter system set tcp_keepalives_idle=10;
alter system set tcp_keepalives_interval=10;
alter system set tcp_keepalives_count=3;
alter system set checkpoint_timeout=1200;
alter system set effective_cache_size='4GB'; --物理内存-shared_buffers-用户连接数*work_mem
set maintenance work_mem=512M; --建索引,执行维护作业时临时设置
select name, context from pg_settings where name like'%work_mem%';
用户权限控制
建用户
create user/role
授权
grant
除权
revoke
查看权限
select * from INFORMATION_SCHEMA.role_table_grants;
\du
\h grant
http://postgres.cn/docs/12/sql-grant.html
http://postgres.cn/docs/12/infoschema-role-table-grants.html
PG12新特性
文章推荐: https://postgres.fun/20190809161300.html
https://postgres.fun
PostgreSQL实例初始化、基本配置
未经允许不得转载:徐万新之路 » PostgreSQL实例初始化、基本配置
最新评论
这个牛
放下欲望,男人从来不醉,充分且必要
勇气、责任、自信、创新,为天下先!
软件即数据,软件即服务,软件即管理,软件就是对人类各种社会活动的仿真和记录。软件很重要,但软件不可能凌驾于业务之上,尤其不可能高人一等。