2026/4/4 16:35:05
网站建设
项目流程
网站qq交谈怎么做的,郑州seo优化外包顾问阿亮,网络营销方法有哪些举例,网站网站服务器目录pg_hba.conf 的配置含义第一个字段第二个字段第三个字段第四个字段第五个字段第六个字段案例postgresql.conf 的配置配置参数类型internal#xff08;只读参数#xff09;postmastersigupbackendsuperuseruser查看方式连接配置项安全认证参数其他参数数据库日志相关参数日…目录pg_hba.conf 的配置含义第一个字段第二个字段第三个字段第四个字段第五个字段第六个字段案例postgresql.conf 的配置配置参数类型internal只读参数postmastersigupbackendsuperuseruser查看方式连接配置项安全认证参数其他参数数据库日志相关参数日志切换和是否覆盖的几种方案日志归档WAL 归档内存参数的设置shared_bufferswork_memwal_bufferscommit_delaycommit_siblingseffective_cache_sizemaintenance_work_mempg_hba.conf 的配置类似于 MySQL 中的 userhost 的配置pg_hba.conf文件是一个黑白名单的访问控制文件可以控制允许哪些 IP 地址的机器访问数据库。默认创建的数据库无法接受远程连接因为默认情况下pg_hba.conf中没有相应的配置项。我们可以在pg_hba.conf文件中加入以下命令行host all all 0/0 md5含义第一个字段local这条记录匹配企图通过 Unix 域套接字进行的连接。host这条记录匹配企图通过 TCP/IP 进行的连接。hostssl这条记录匹配企图使用 TCP/IP 的 SSL 连接。但必须是使用 SSL 加密的连接。要使用这个选项编译服务器的时候必须打开 SSL 支持。而且在服务器启动的时候必须打开 ssl 配置选项。hostnossl这条记录与hostssl行为相反它只匹配那些在 TCP/IP 上不使用 SSL 的连接请求。hostgssenc这条记录匹配企图使用 TCP/IP 建立的连接但仅当使用 GSSAPI 加密建立连接时。要使用这个选项服务器必须具备 GSSAPI 支持。第二个字段database声明记录所匹配的数据库名称。值all表明该记录匹配所有数据库。第三个字段user为这条记录声明所匹配的数据库用户。值all表明它匹配于所有用户。第四个字段address声明这条记录匹配的客户端机器地址。可以是localhost、IP、CIDR 地址。IP-address、IP-mask这两个域可以被用作IP-address/mask-length记号法的替代方案。和指定掩码长度不同实际的掩码被指定在一个单独的列中。第五个字段auth-method指定当一个连接匹配这个记录时要使用的认证方法。常见的有trust无条件地允许链接。reject无条件地拒绝链接。md5执行 SCRAM-SHA-256 或 MD5 认证来验证用户的口令。password要求客户端提供一个未加密的口令进行认证。ident通过联系客户端的 ident 服务器获取客户端的操作系统名并且检查它是否匹配被请求的数据库用户名。Ident 认证只能在 TCP/IP 连接上使用。当为本地连接指定这种认证方式时将用peer认证来替代。peer从操作系统获得客户端的操作系统用户并且检查它是否匹配被请求的数据库用户名。这只对本地连接可用。第六个字段auth-options在auth-method域的后面可以是形如namevalue的域它们指定认证方法的选项。案例需求我们假定我们需要本地postgres/root用户可以直连数据库其他用户不允许直连数据远程备数据库10.0.0.2需要使用密码认证用户名为replica则pg_hba.conf应该设置如下# TYPE DATABASE USER ADDRESS METHOD # local is for Unix domain socket connections only local all all ident mapmymap host all all 0.0.0.0/0 md5 # Allow replication connections from localhost, by a user with the # replication privilege. local replication all ident mapmymap host replication replica 10.0.0.2/32 md5上面的配置中map表示允许系统和数据库用户名之间的映射映射关系定义在pg_ident.conf中。pg_ident.conf配置如下# MAPNAME SYSTEM-USERNAME PG-USERNAME mymap root postgres mymap postgres postgres重新加载配置生效/usr/local/bin/pg_ctl reload -Dpostgresql.conf 的配置配置参数类型internal只读参数这些参数不配置在postgresql.conf中他们由 postgres 程序和在初始化实例时写死。postmaster这些参数的值需要重启 PostgreSQL 实例。在postgresql.conf文件中改变这些参数后需要重启 PostgreSQL 实例才能生效。sigup在postgresql.conf中改变参数值不需要重启数据库只需要向数据库 postmaster 进程发送 SIGHUP 信号。backend在postgresql.conf中改变参数值不需要重启数据库只需要向数据库 postmaster 进程发送 SIGHUP 信号但是新的配置值只会在之后新的连接中有效在已有的连接中不生效。superuser需要超级用户使用set来改变超级用户改变此参数数值时只会影响自身的 session 配置不会影响其他用户。向 postmaster 进程发送 SIGHUP 信号也只会影响后续建的连接。user普通用户可以使用set命令来改变。查看方式所有配置参数都在系统视图pg_settings中SELECTenumvalsFROMpg_settingsWHEREnameclient_min_messages;通过pg_settings表中的context字段来查看参数类型SELECTname,contextFROMpg_settingsWHEREnameLIKEwal_buffers;连接配置项listen_addresses声明服务器监听客户端连接的 TCP/IP 地址改变这个参数需要重启数据库服务。如果主机有多个 IP用逗号隔开PostgreSQL 服务在多个 IP 地址上监听。当配置为0.0.0.0或*表示监听本机的所有 IP。默认值是localhost表示只允许本地使用 loopback 连接到数据库其他机器无法连接到。port指定服务器监听的 TCP 端口默认为5432。改变这个参数需要重启服务器。同一个端口用于服务器监听的所有 IP 地址。max_connections允许数据库连接的最大并发连接数改变此参数需要重启数据库服务默认100。superuser_reserved_connections为 PostgreSQL 超级用户连接而保留的连接数默认值为3。改变此参数需要重启。注意这个值必须小于max_connections。max_connections - superuser_reserved_connections 普通用户最大连接数安全认证参数ssl off ssl_ciphers HIGH:MEDIUM:3DES:!aNULL # allowed SSL ciphers ssl_prefer_server_ciphers on ssl_ecdh_curve prime256v1 ssl_dh_params_file ssl_cert_file server.crt ssl_key_file server.key ssl_ca_file 其他参数unix_socket_group unix_socket_permissions 0777 # 设置 Unix-domain socket 的访问权限 tcp_keepalives_idle 0 # 用 OS 的 sysctl 中的 tcp_keepalive_time 的值 tcp_keepalives_interval # TCP 心跳包的频率防止连接被网络设备中断 tcp_keepalives_count # 发送 TCP 心跳包的次数超过该值断开连接数据库日志相关参数logging_collector on # 日志的收集一般是需要打开的 log_directory pg_log # 日志的目录一般使用默认值即可日志切换和是否覆盖的几种方案方案一每天生成一个新的日志文件log_filename postgresql-%Y-%m-%d_%H%M%S.log log_truncate_on_rotation off log_rotation_age 1d log_rotation_size 0方案二每当日志写满一定的大小如 10MB则切换一个日志log_filename postgresql-%Y-%m-%d_%H%M%S.log log_truncate_on_rotation off log_rotation_age 0 log_rotation_size 10M方案三只保留最近 7 天的日志进行循环覆盖log_filename postgresql-%a.log log_truncate_on_rotation on log_rotation_age 1d log_rotation_size 0日志归档WAL 归档为什么要归档所谓把 WAL 日志归档其实就是把在线的已写完的 WAL 日志复制出来。在 PostgreSQL 中配置归档的方法是在配置文件postgresql.conf中配置参数archive_mode和archive_commandarchive_command的配置值是一个 UNIX 命令此命令把 WAL 日志文档复制到其他地方。案例archive_mode on archive_command cp %p /backup/pgarch/%f%p表示在线 WAL 日志文件的全路径名。%f表示不包括路径的 WAL 日志文件名。在实际执行备份时PostgreSQL 会把%p替换成实际的在线 WAL 日志文件的全路径名并把%f替换成不包括路径的 WAL 日志名。内存参数的设置shared_buffers参数含义共享内存的大小数据库共享内存缓冲区大小决定有多少内存可以被 PostgreSQL 用于缓存数据该缓冲区为所有连接共用。参数优化服务器内存较小时设置为服务器内存的 25%-40%内存较大时可适当设置。work_mem参数含义单个 SQL 执行时以及排序、HashJoin 时使用的内存SQL 运行完毕后该内存就会被释放。参数优化全局设置此参数可能会导致内存使用率过高即当同时有多个会话进行排序操作时每个会话会分配到这个参数大小的内存。设置不宜过大。如果要使用语句中有较大的排序操作可以在会话级别设置该参数如set work_mem 2GB。wal_buffers参数含义WAL预写日志记录写入的缓冲区的大小。PostgreSQL 将其 WAL 记录写入缓冲区然后将这些缓冲区刷新到磁盘。参数优化当单事务的数据修改量很大产生的日志大于 wal_buffers 时可适当调大该值。当有比较多的并发短事务时可与参数commit_delay及commit_siblings连用并适当调大该值。commit_delay参数含义事务提交后日志写到 wal_buffer 上到 wal_buffer 写到磁盘的时间间隔。参数优化当有比较多的并发短事务时可以适当增加该值使日志缓冲区一次刷盘可以刷出较多的事务减少 IO 次数提高性能。需要和commit_siblings配合使用。commit_siblings参数含义触发commit_delay等待的并发事务数即系统的并发活跃事务数达到了该值事务才会等待commit_delay的时间后才将日志刷新到磁盘。参数优化若系统中并发活跃事务达不到该值commit_delay将不起作用为防止在系统并发压力较小的情况下事务提交后空等其他事务不宜设置过大。effective_cache_size参数含义除操作系统本身和其他应用程序可用的内存外期望操作系统和数据库本身可用于缓存数据的内存大小。和shared_buffer等内存无关只是给优化器生成计划使用的一个假设值。参数优化如果设置有误会影响优化器的判断得出不合理的执行计划。建议的设置为可用空闲内存的 25%。maintenance_work_mem参数含义执行 vacuum、create index、alter table add foreign key、restoring database dumps 等操作时可使用的内存大小。参数优化由于这类操作并发数不会很大增大此参数相对较为安全如希望提升这些操作的性能可适当加大此参数。