PostgreSQL 的数据库参数设置
internal:这些参数是只读参数,其中有些参数是 postgres 程序写死的,或者使用一些不同的编辑选项确定的;有些参数是数据库实例初始化时就确定了的,之后就不能再改变此参数值了。这类参数值不能配置在 postgresql.conf 中,因为它们是由 postgres 程序和在初始化实例时写死的。
postmaster:改变这些参数值需要重启 PostgreSQL 实例。在 postgresql.conf 文件中改变这些参数后,需要重启 PostgreSQL 实例才能生效。
sighup:在 posgtresql.conf 文件中可改变这些参数的值,不需要重启数据库,只需要向 postmaster 进程发送 SIGHUP 信号,让其重启配置新的参数值就可以了。postmaster 进程接收到 SIGHUP 信号后,也会向它的子进程发送 SIGHUP 信号,让新的参数值在所有的进程中都生效。
backend:在 postgresql.conf 更改这些设置无需重启服务器,只需要 postmaster 发送一个 SIGHUP 信号,让它重新读取 postgresql.conf 中新的配置值即可,但新的配置值只会出现在这之后的新连接中,在已有的连接中,这些参数的值不会改变。这些参数的值也可以在新连接时,由连接的一些参数改变。
superuser:这类参数可以由超级用户使用 set 来改变。而超级用户改变参数值时,只会影响自身的 session 配置,不会影响其他用户。向 postmaster 进程发送 SIGHUP 信号,也只会影响后续建的连接,不会影响现有的连接。
user:普通用户可使用 set 命令通过此类参数来改变本连接中的配置值。除了普通用户都可以改变外,这类参数与 superuser 类参数没有区别。
方法一:修改 postgresql.conf 配置文件(用于永久修改,需要重启数据库)
方法二:通过 ALTER SYSTEM 命令修改
ALTER SYSTEM SET listen_addresses='*';
非全局配置修改
DATABASE 级别
ALTER DATABASE <库名> SET listen_addresses='*';
ALTER DATABASE <库名> RESET listen_addresses;
方法一:SET 命令
SET listen_addresses='*';
SET listen_addresses TO DEFAULT;
UPDATE `pg_settings`
SET setting = '*'
WHERE name = 'listen_addresses';
``
SELECT set_config('configparameter',new_value,false);
ALTER ROLE <角色名> IN DATABASE <库名> SET listen_addresses='*';
ALTER ROLE <角色名> IN DATABASE <库名> RESET listen_addresses;
SELECT name,setting
FROM pg_settings
WHERE name = 'listen_addresses';
name | setting
------------------+-----------
listen_addresses | localhost
SELECT current_setting('listen_addresses');
current_setting
-----------------
localhost
show listen_addresses;
listen_addresses
------------------
localhost
cat /data/pg_data/postgresql.auto.conf|grep listen
listen_addresses = '*'
cat /data/pg_data/postgresql.conf | sed 's/^[ \t]*//g' | grep -v "^#" | grep -v "^$" |awk -F# '{ print $1 }' | grep -v "^$"grep listen
listen_addresses = '*'
pg_ctl -D /data/pg_data reload
SELECT pg_reload_conf();
vim /data/pg_data/postgresql.conf
cat /data/pg_data/postgresql.conf | sed 's/^[ \t]*//g' | grep -v "^#" | grep -v "^$" |awk -F# '{ print $1 }' | grep -v "^$"
listen_addresses = '*'
port = 5432
max_connections = 100
max_prepared_transactions = 100
checkpoint_timeout = 5min
max_wal_size = 1GB
min_wal_size = 80MB
wal_level = logical
max_wal_senders = 10
wal_keep_size = 512
wal_sender_timeout = 60s
track_commit_timestamp = on
hot_standby = on
max_standby_streaming_delay = 30s
wal_receiver_status_interval = 10s
hot_standby_feedback = on
wal_receiver_timeout = 60s
log_truncate_on_rotation = on
log_timezone = 'PRC'
timezone = 'PRC'
datestyle = 'iso, mdy'
lc_messages = 'en_US.UTF-8'
lc_monetary = 'en_US.UTF-8'
lc_numeric = 'en_US.UTF-8'
lc_time = 'en_US.UTF-8'
default_text_search_config = 'pg_catalog.english'
dynamic_shared_memory_type = posix
shared_buffers = 128MB
archive_mode = on
archive_command = 'cp %p /data/archive/%f'
log_destination = 'stderr'
logging_collector = on
log_rotation_size = 1GB
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_file_mode = 0600
log_rotation_age = 1d
listen_addresses:指定服务器要侦听来自客户端应用程序的连接的 TCP/IP 地址。默认值为 localhost,它只允许建立本地 TCP/IP “环回”连接。
port:服务器侦听的 TCP 端口;默认为 5432,可以更改其他端口
max_connections:确定与数据库服务器的最大并发连接数。默认值通常为 100 个连接,运行备用服务器时,必须将此参数设置为与主服务器上的值相同或更高。否则,备用服务器将不允许进行查询。
max_prepared_transactions:设置可以同时处于“已准备”状态的最大事务数,至少与 max_connections 一样大
system
WAL 设置
checkpoint_timeout:自动 WAL 检查点之间的最长时间,默认值为五分钟
max_wal_size:允许 WAL 在自动检查点期间增长的最大大小,默认值为 1 GB
min_wal_size:WAL 磁盘使用率低于此设置,旧的 WAL 文件始终会在检查点回收以供将来使用,而不是删除,默认值为 80 MB。
wal_level:主从结构,主节点设置该参数为 logical 或者 replica
max_wal_senders:指定来自备用服务器或流式处理基础备份客户端的最大并发连接数,主节点设置
wal_keep_size:指定目录中保留的过去日志文件段的最小数目,以防备用服务器需要获取它们以进行流式复制。每个段通常为 16 MB,主节点设置
wal_sender_timeout:终止非活动时间超过指定毫秒数的复制连接,默认值为 60 秒,主节点设置。
track_commit_timestamp:记录事务的提交时间,主节点设置
hot_standby:主从结构,说明这台机器不仅仅是用于数据归档,也用于数据查询,备用服务器设置
max_standby_streaming_delay:主从结构,数据流备份的最大延迟时间,默认值为 30 秒,备用服务器设置
wal_receiver_status_interval:主从结构,多久向主报告一次从的状态,当然从每次数据复制都会向主报告状态,这里只是设置最长的间隔时间,默认值为 10 秒,备用服务器设置
hot_standby_feedback:指定热备用是否将向主备用数据库或上游备用数据库发送有关当前在备用数据库上执行的查询的反馈,主从结构,备用服务器设置
wal_receiver_timeout:终止非活动时间超过指定毫秒数的复制连接,默认值为 60 秒,备用服务器设置
log_truncate_on_rotation:此参数将导致 PostgreSQL 截断(覆盖)而不是追加到任何同名的现有日志文件
log_timezone:设置用于写入服务器日志中的时间戳的时区。
查询显示设置
timezone:设置显示和解释时间戳的时区
datestyle:设置日期和时间值的显示格式,使用默认值即可
lc_messages:设置显示消息时使用的语言,使用默认值即可
lc_monetary:设置用于设置货币金额格式的区域设置,使用默认值即可。
lc_numeric:设置用于设置数字格式的区域设置,使用默认值即可
lc_time:设置用于设置日期和时间格式的区域设置,使用默认值即可
default_text_search_config:选择文本搜索配置,该配置由文本搜索函数的那些变体使用,这些变体没有指定配置的显式参数,使用默认值即可
dynamic_shared_memory_type:指定服务器应使用的动态共享内存实现,使用分配的 POSIX 共享内存
shared_buffers:设置数据库服务器用于共享内存缓冲区的内存量。默认值通常为 128 MB
archive_mode:启用后,将通过设置 archive_command 将已完成的 WAL 段发送到存档存储。
archive_command:要执行的本地 shell 命令,用于存档已完成的 WAL 文件段
log_destination:记录服务器消息的方法,包括 stderr,csvlog 和 syslog。
logging_collector:是否启用日志记录收集器
log_rotation_size:此参数确定单个日志文件的最大大小,默认值 10MB
log_directory:启用后,此参数确定将在其中创建日志文件的目录
log_filename:此参数设置所创建日志文件的文件名
log_file_mode:此参数在启用时设置日志文件的权限。
log_rotation_age:此参数确定单个日志文件的最长生存期
经过前三篇博客的操作,PostgreSQL 14 就可以开始玩了
PG14.5 软件安装
数据库初始化
免责声明:
1、本站资源由自动抓取工具收集整理于网络。
2、本站不承担由于内容的合法性及真实性所引起的一切争议和法律责任。
3、电子书、小说等仅供网友预览使用,书籍版权归作者或出版社所有。
4、如作者、出版社认为资源涉及侵权,请联系本站,本站将在收到通知书后尽快删除您认为侵权的作品。
5、如果您喜欢本资源,请您支持作者,购买正版内容。
6、资源失效,请下方留言,欢迎分享资源链接
文章评论