人大金仓--运维--03--数据库服务器配置
【代码】人大金仓--运维--03--数据库服务器配置。
·
人大金仓–运维–03–数据库服务器配置
配置
# 服务器将接受的最大客户端连接数。根据实际并发量配置
max_connections=3000
# 共享内存的大小,缓存查询过的数据,建议值物理内存的1/3,实际使用过程中,数据库会使用大于此值的内存。
# RAM指内存,最大设置为64GB
shared_buffers=48GB
# 设置每个服务进程的工作内存大小,工作内存只在正在进行排序或者连接运算的服务进程中被分配,并会随着运算结束而释放。
# work_mem过小导致排序内存放不下就写临时文件了,
work_mem =4MB
# 设置维护工作内存的大小。索引的创建速度取决于maintenance_work_mem的设置。较大的值将会减少索引创建所需的时间,
maintenance_work_mem=2GB #如业务频繁更新插入,建议增大
# 该参数帮助PostgreSQL查询优化器评估特定查询的成本,并据此选择最佳的查询计划。优化器会利用这个估计值来决定是否使用索引、扫描表的方式等,以优化查询性能。
# 这个值不影响时间使用内存
effective_cache_size=96GB #RAM指内存(free -g)
# 控制每个事务能够得到对象锁的最大个数。这个参数直接影响到数据库在处理并发事务时的锁资源分配。
max_locks_per_transaction=1024
#KingbaseES中,在执行检查点后会删除或回收不需要的重做日志段文件。可以通过配置参数max_wal_size和min_wal_size来限制检查点后的重做日志段文件的数量。
# max_wal_size
# 在检查点之间允许重做日志增长到的最大尺寸。这是一个软限制, 在特殊的情况下重做文件尺寸可能会超过max_wal_size。。增加这个参数 可能导致崩溃恢复所需的时间
# min_wal_size
# 只要重做日志磁盘用量保持在这个设置之下,在检查点时旧的重做日志文件总是被回收以便未来使用,而不是直接被删除。这可以被用来确保有足够的重做日志空间被保留来应付重做日志使用的高峰,例如运行大型的批处理任务。
min_wal_size=64GB
max_wal_size=128GB
# 原理:两个相邻检查点之间的时间间隔,用于刷数据到磁盘。
# 应用范围:根据系统写的负载设置,一般不要太频繁。可以和后台写线程配置相关参数配合使用,一般pk测试过程中会设置的很长(如果内存够的话),可以不用频繁刷。
checkpoint_timeout=20min
# 指定了检查点操作应该在下一个检查点启动之前的大约多少时间内完成。它的值是一个介于0和1之间的浮点数,表示检查点完成时间占整个检查点间隔时间的比例。
checkpoint_completion_target=0.9
# 设置系统支持的最大后台进程数,默认值是8,如果是OOAP(大数据,非实时),可以将这个参数调大
max_worker_processes=8
# 指定了在执行并行查询时,每个Gather节点可以分配的最大并行工作者数量。这些工作者进程负责执行查询的并行部分,并将结果返回给Gather节点进行汇总
max_parallel_workers_per_gather=4
# -----------日志相关-----------
# 启用日志收集器
logging_collector=on
# 将日志消息发送到标准错误输出(stderr)。这是默认的输出目的地。
log_destination='stderr'
log_directory='sys_log'
log_filename='kingbase-%d.log'
log_truncate_on_rotation=on
log_rotation_age=1d
log_rotation_size=1000MB
log_statement='ddl'
lc_messages='C'
log_min_duration_statement=1000
log_line_prefix='%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h'
#允许列名大写
enable_upper_colname=on
# 空字符串在输入过程中会被自动转换为 NULL。这意味着,在插入数据时,如果输入值为空字符串,它将在数据库中存储为 NULL。
ora_input_emptystr_isnull=on
# 客户端空闲时间,0表示不主动释放连接,除非客户端断开,建议这个配置修改为比客户端连接池的最小空闲时间来的大,保证客户端的连接是有效的
client_idle_timeout=0
# 通过设置archive_timeout,数据库会在指定的时间间隔后自动切换WAL段,并将旧的WAL段归档到指定的目录中。
# 这有助于确保WAL日志的完整性和持久性,从而在数据库出现介质失败时,可以使用归档的WAL日志来恢复数据库。
archive_timeout=0
# 用于设置客户端与数据库服务器进行认证交互时,允许的最大无响应时间。
# 功能:如果在设定的超时时间内,服务器没有对客户端的认证请求进行响应或认证失败,则服务器会自动断开与客户端的连接。这有助于防止出问题的客户端无限制地占用连接资源。
authentication_timeout=60
# 用于设置数据库块自动修复的超时时间。当数据库系统检测到坏块并尝试进行自动修复时,如果在设定的超时时间内未能完成修复操作,则可能会中断修复过程或采取其他相应的处理措施。
auto_bmr.auto_bmr_req_timeout=60
# 指定了在开始检测死锁之前,数据库系统在单个锁上等待的最大时间量。单位毫秒
# 功能:当两个或多个事务相互等待对方释放锁,从而形成死锁时,deadlock_timeout 参数决定了数据库系统在检测到这种死锁情况之前愿意等待的时间。如果在这个时间内死锁仍未被解决,数据库系统将报错并中断相关事务。
deadlock_timeout=1000
定义:idle_in_transaction_session_timeout 参数指定了一个事务在空闲状态下可以保持的最长时间。0表示一直保持连接
功能:当事务在指定的时间内没有执行任何操作(即处于空闲状态)时,数据库系统会自动终止该事务的会话。这有助于防止被遗忘的事务长时间占用资源,如锁和内存,从而影响数据库的性能和稳
idle_in_transaction_session_timeout=0
定义:lock_timeout 参数用于设置应用程序在尝试获取锁时愿意等待的最大时间量。0表示一直循环请求
功能:当应用程序请求一个锁而该锁当前被其他事务占用时,lock_timeout 参数决定了应用程序愿意等待该锁被释放的最长时间。如果在这个时间内锁仍未被释放,应用程序将收到一个错误,并可能终止其当前操作或事务。
lock_timeout =0
# statement_timeout 参数用于控制 SQL 语句执行的最大时长。将 statement_timeout 设置为 0,意味着不对 SQL 语句的执行时间进行限制,允许它们运行任意长的时间(当然,实际执行时间还会受到系统资源、负载等因素的影响)。
statement_timeout=0
# 将 tcp_user_timeout 设置为 0 时,数据库系统将使用其内部配置或操作系统的默认值来管理 TCP 连接的超时时间。这通常意味着连接会在一定的不活动期后自动关闭,但具体的时间取决于系统配置。
tcp_user_timeout=0
# -----------主备节点同步相关-----------
# 指定备机上的 redo 接收者进程向主服务器发送复制进度信息的最小频度。单位毫秒
wal_receiver_timeout=60000
# wal_sender_timeout 参数用于设置 WAL 发送进程(walsender)等待来自备用服务器(或流式基础备份客户端)的响应的最长时间。当 wal_sender_timeout 设置为 60000 毫秒(即 60 秒)时,意味着如果 walsender 进程在 60 秒内未收到备用服务器的任何响应,它将可能断开与该备用服务器的连接。
wal_sender_timeout=60000
更多推荐




所有评论(0)