【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