暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Halo数据库主要参数

原创 贾桂军 2023-11-13
15314

Halo数据库的参数主要通过参数文件(默认为$PGDATA/postgresql.conf

进行配置。

vi $PGDATA/pg_hba.conf

 

添加如下项

host    all       all           0.0.0.0/0                md5

注意:如要设置某个网段能访问就用192.168.231.0/0

 

1 参数设置说明

所有参数名都是大小写不敏感的。每个参数可以接受以下五种类型之一的值:

布尔型。值可以被写成on/off、true/false、yes/no、1/0。

字符串。通常值被包括在单引号内。,值内部的任何单引号都需要被转义。

数值。可以接受十六进制(以0x开头)和十进制数值。不能使用千位分隔符。

带单位的数值。可用的内存单位是B(字节)、kB(千字节)、MB(兆字节)、GB(吉字节)。注意内存单位的乘数是1024。可用的时间单位是us(微妙)、ms(毫秒)、s(秒)、min(分钟)、h(小时)和d(天)。

枚举型。枚举类型的参数以与字符串参数相同的方式指定,但被限制到一组有限的值。 这样一个参数可用的值可以在pg_settings.enumvals 中找到。

 

根据参数性质和功能的不同,参数设置的影响时间也有差异。一部分参数是需要重启数据库实例后才能生效(即启动时生效);一部分参数可以通过SIGHUP信号,例如:

 

pg_ctl reload

 

即可生效。还有一小部分参数是只读的,无法更改。

 

2 网络参数

listen_addresses(字符串)

设置在哪些地址上进行监听。默认值localhost,即只允许本地连接。该参数

只能在实例启动时设置。

port(数值)

监听端口。默认值1921。该参数只能在实例启动时设置。

max_connections(数值)

最大并发连接数。默认值100。该参数只能在实例启动时设置。

superuser_reserved_connections(数值)

保留的连接数(超级用户,通常为halo)。默认值3。该参数只能在实例启

动时设置。

 

unix_socket_directories(字符串)

进程目录。默认值/var/run/halo。该参数只能在实例启动时设置。

 

3 安全认证参数

authentication_timeout(数值)

认证超时时间。默认值1m(1分钟)。该参数可在运行期间设置。

 

failed_login_attempts(数值)

用户登录失败的最大次数。超过该次数后,用户将锁定。超级用户halo不

受该参数影响。默认值0(即禁用该功能)。该参数可在运行期间设置。

 

shared_preload_libraries = passwordcheck(数值)

密码复杂度策略,加载passwordcheck。该参数只能在实例启动时设置。

 

passwordcheck.enable (数值)

打开密码复杂度开关,该参数可在运行期间设置。

 

passwordcheck.password_condition_digit(数值)

口令至少包含几个字母,取值范围为[2,61],缺省为2,该参数可在运行期间设置。

 

 

4 内存参数

shared_buffers(数值)

共享内存池(SBP)的大小。该参数直接影响数据库的性能。默认值128MB。通常默认值是不足够的,需要根据自己实际的服务器配置进行测算决定。建议进行性能及压力测试后来设置该值。该参数只能在实例启动时设置。

 

huge_pages(枚举型)

共享内存池是否使用大页。有效值是try、on和off。默认值try。该参数只能在实例启动时设置。

 

temp_buffers(数值)

每个会话进程(Backend Process)设置临时缓冲区的最大内存。该内存区域用来存储临时表。默认值8MB。该参数可在运行期间设置。

 

work_mem(数值)

每个会话进程(Backend Process)进行排序、连接等操作时的最大内存。默认值4MB。该参数可在运行期间设置。

 

maintenance_work_mem(数值)

维护性操作,如VACUUM、CREATE INDEX等使用的最大内存。默认值64MB。该参数可在运行期间设置。

 

autovacuum_work_mem(数值)

每个清理工作进程(vacuum worker)的最大可使用内存。默认值-1,表示使用maintenance_work_mem的设置值。该参数可在运行期间设置。

 

wal_buffers(数值)

WAL缓冲区大小。默认值-1,表示约%3*shared_buffers。

 

 

5 I/O参数

temp_file_limit(数值)

一个进程能用于临时文件(例如排序、哈希计算时的临时文件)的最大磁盘使用量。超过这个限制的事务将被取消。默认值-1,表示不限制磁盘使用。该参数只能在实例启动时设置。

 

bgwriter_delay(数值)

数据写进程(Background Writer)写数据活动的间隔。默认值200ms(200毫秒)。该参数只能在实例启动时设置。

 

bgwriter_lru_maxpages(数值)

数据写进程每次可写入的页面数。默认值100。该参数只能在实例启动时设置。

 

bgwriter_lru_multiplier(数值)

用于估计数据写进程下一次需要写入的页面数。默认值2.0。该参数可在运行期间设置。

 

bgwriter_flush_after(数值)

强制进行脏数据写入磁盘的阈值。默认值512kB。该参数只能在实例启动时设置。

 

effective_io_concurrency(数值)

I/O并发操作的最大值。允许的范围是1-1000。默认值1。该参数只能在实例启动时设置。

 

maintenance_io_concurrency(数值)

与effective_io_concurrency类似,用于会话进程。默认值10。该参数只能在实例启动时设置。

 

6 进程参数

max_worker_processes(数值)

后台进程的最大数量。默认值8。该参数只能在实例启动时设置。

 

max_parallel_workers(数值)

max_parallel_workers_per_gather(数值)

max_parallel_maintenance_workers(数值)

并发查询相关参数。

 

old_snapshot_threshold(数值)

最旧快照的时间阈值。合理使用该参数可以规避使用快照时出现“snapshot too old” 错误。默认值-1,表示禁用该功能。

 

max_spins_per_delay(数值)

自旋锁每次最大的旋转次数。默认值1000。可取值范围为10-1000。在某些情况下,适当降低该值可能带来更好的性能表现。请记住,在更改此参数前请进行详尽的测试。该参数只能在实例启动时设置。

 

spins_num_delays(数值)

自旋锁最大的旋转机会。默认值1000。可取值范围为10-1000。此参数通常配合max_spins_per_delay参数一起使用。在某些情况下,适当降低该值可能带来更好的性能表现。请记住,在更改此参数前请进行详尽的测试。该参数只能在实例启动时设置。

7 WAL参数

wal_level(枚举型)

WAL(Write-Ahead Log,预写式日志)的级别。默认replica。其它可选的值包括minimal、logical。

 

fsync(布尔型)

是否尝试确保数据已写入磁盘。默认值on。

full_page_writes(布尔型)

是否将整页写入到WAL日志中。默认为on。

 

wal_compression(布尔型)

是否对WAL日志进行压缩。默认值off。

 

wal_recycle(布尔型)

是否重用WAL日志文件。默认值on。

 

min_wal_size(数值)

max_wal_size(数值)

WAL日志空间消耗的上下限。min_wal_size默认值80MB。max_wal_size默认值1GB。

 

archive_mode(枚举型)

是否开启日志归档。默认值off。

vi $PGDATA/postgresql.conf

修改如下项

archive_mode = on

archive_command = 'test ! -f /data/halo/pg_archive/%f && cp %p /data/halo/pg_archive/%f'

 

archive_command(字符串)

归档使用的命令。一个简单且较常用的命令类似'test ! -f <归档路径>/%f && cp %p <归档路径>/%f'。

 

8 查询优化参数

seq_page_cost(数值)

顺序扫描时的估计成本。默认值1.0。

 

random_page_cost(数值)

随机扫描时的估计成本。默认值4.0。SSD类型的磁盘通常拥有较好的随机访问性能,该值需根据实际配置情况而定。

 

effective_cache_size(数值)

该参数只是用于优化器成本估计目的。该值越大,优化器越倾向于使用索引。默认值4GB。

 

9 自动清理参数

autovacuum(布尔型)

是否使用自动清理。默认值on。

 

autovacuum_max_workers(数值)

清理工作进程的最大数量。默认值3。

 

autovacuum_vacuum_threshold(数值)

autovacuum_vacuum_scale_factor(数值)

更新操作(UPDATE)、删除操作(DELETE)触发清理工作的阈值。该阈值由公式autovacuum_vacuum_scale_factor *表总行数+ autovacuum_vacuum_threshold来决定。其中,autovacuum_vacuum_scale_factor默认值0.2(20%),autovacuum_vacuum_threshold默认值50(行)。

 

autovacuum_vacuum_insert_threshold(数值)

autovacuum_vacuum_insert_scale_factor(数值)

插入操作(INSERT)触发清理工作的阈值。该阈值由公式autovacuum_vacuum_insert_scale_factor * 表总行数+ autovacuum_vacuum_insert_threshold来决定。autovacuum_vacuum_insert_scale_factor默认值0.2(20%),autovacuum_vacuum_insert_threshold默认值1000(行)。

 

autovacuum_analyze_threshold(数值)

autovacuum_analyze_scale_factor(数值)

插入操作、更新操作、删除操作触发统计信息收集工作(ANALYZE)的阈值。该阈值由公式autovacuum_analyze_scale_factor * 表总行数 + autovacuum_analyze_threshold来决定。autovacuum_analyze_scale_factor默认值0.1(10%),autovacuum_analyze_threshold默认值50(行)。

 

autovacuum_freeze_max_age(数值)

一个表上允许的事务最大年龄。该值可由pg_class.relfrozenxid获得。超过该设置值,该表上的事务将被强制冻结。默认值200000000。

 

10 其它参数

database_compat_mode(枚举型)

数据库运行模式。默认值postgresql。其它可取值包括oracle、sybase、sqlserver、db2。

 

standard_parserengine_auxiliary(布尔型)

是否需要标准编译引擎协同。默认值on。

 

heap_default_fillfactor(数值)

表上FILLFACTOR的默认值。默认值100。

 

enable_col_output_upcase(布尔型)

列名输出是否采用大写。默认值off。

 

use_datetime_as_date(布尔型)

是否使用DATETIME类型来替换DATE类型。该参数只在oracle模式下生效。默认值off。

 

timezone(字符串)

时区设置。默认值GMT。

 

search_path(字符串)

对象搜索时使用的模式(SCHEMA)顺序。默认情况下,当运行模式为postgresql时,pg_catalog为第一个搜索模式。当运行模式为oracle时,oracle为第一个搜索模式。以此类推。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论