【PG管理】postgresql数据库管理相关
--单用户启动 postgres --single -D /pgdata/10/data postgres --单用户作用 当多用户模式不接收所有命令时,可以使用单用户连接到数据库 initdb的阶段 修复系统表 --相关参数设置 select * from pg_settings; --相关参数描述,单位 select name,short_desc,unit from pg_settings limit 4; --参数类别 --internal:这些参数是只读参数,其中有些参数是postgres程序写死的。 --postmaster:改变这些参数值需要重启实例。 --sighup:在postgresql.conf文件中改变这些参数值,无需重启数据库,只需向postmater进程发送SIGHUP信号,让其重启装载配置新的参数值就可以了。 --backend:跟sighup类似,改变生效只适用于新的链接,已有连接中无效.select pg_reload_conf(); --superuser:这类参数可以由超级用户使用set改变,session级别。 --user:同supperuser类似。 --查看参数修改是否需要重启 select name,context from pg_settings where name like 'wal_buffers'; --连接数据库的相关参数 max_connections:默认100,允许和数据库连接的最大并发连接数 superuser_reserved_connections:默认3,防止普通用户消耗掉所有连接,确保超级用户可以连接数据库。 --空闲180秒后尝试连接,每隔10秒连接一次,最多连接三次,尝试失败后关闭连接 tcp_keepalives_idle=180 tcp_keepalives_interval=10 tcp_keepalives_count=3 --内存配置 shared_buffers:通常设置系统内存的25%,max_connections(MB) 数值的两倍 temp_buffers:用于临时表 work_mem:排序、hash maintenance_work_mem:维护操作中使用的最大内存 synchronous_commit:提交事务是否需要等wal日志写入磁盘再返回。默认on --日志相关 logging_collector=on --打开日志 log_min_duration_statement --如果如果某个sql运行大于多少毫秒,记录到日志 log_min_error_statement -- sql错误信息可以记录到日志中 log_statement -- 是否记录ddl、dml等操作 --常用管理命令 select version(); --数据库启动时间 select pg_postmater_start_time(); --查看最后load配置文件时间 select pg_conf_load_time(); --查看参数配置 select current_settlings('shared_buffers'); show shared_buffers; --查看当前正在写的wal select pg_xlogfile_name(pg_current_xlog_location()); --查看当前wal的buffer中有多少字节没有写入到磁盘中 select pg_xlog_location_diff(pg_current_xlog_insert_location(),pg_current_xlog_location()); --查看数据库状态 select pg_is_in_recovery(); --查看数据库大小 select pg_size_pretty(pg_relation_size('ipdb2')); --表大小 select pg_size_pretty(pg_total_relation_size('ipdb2')); --总大小 --查看表空间大小 select pg_size_pretty(pg_tablespace_size('pg_global')); --kill长时间运行sql id select pid,usename,query_start,query from pg_stat_activity; select pg_cancel_backend(567); select pg_terminate_backend(567);
标题名称:【PG管理】postgresql数据库管理相关
文章出自:http://pwwzsj.com/article/iippdj.html