正德厚生,臻于至善

PostgreSQL实例初始化、基本配置

内容
	初始化数据库实例
	数据库连接
	参数介绍、优化
	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
赞(0) 打赏
未经允许不得转载:徐万新之路 » PostgreSQL实例初始化、基本配置

评论 抢沙发

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫

微信扫一扫

登录

找回密码

注册