论坛首页> 系统管理

postgresql日常运维

一、 数据库常规检查

1. 数据库启动:

1) pg_ctl start  –D 数据库路径 

2) postgres  –D  数据库路径 start

2. 数据库关闭:

1) pg_ctl –D 数据库路径 stop –m smart   不允许新的连接,等待会话结束

2) pg_ctl –D 数据库路径 stop –m fast     不允许新的连接,终止正在进行的会话

3) pg_ctl –D 数据库路径 stop –m immediate 立即退出,相当于abort

3. psql使用

1) psql –p 端口号

2) sql –p 端口号 -d 数据库名

3) psql –p 端口号 -d 数据库名 –U 用户名

4) 在psql 中切换用户 \c – 用户名

4. 数据库活动状态

1) 查询数据库名称

Select datname from pg_database;

2) 查询数据库连接状态

Select datname,username,

client_addr,wait_event,state,query

 from pg_stat_activity

3) 查询数据库参数

Select name ,setting from pg_settings;

4) 查询锁等待

SELECT pid, wait_event_type, wait_event 

FROM pg_stat_activity 

WHERE pid <> pg_backend_pid()  

and wait_event is NOT NULL;

5) 查看监听端口

netstat –lanp |grep  端口号


5. 数据库空间查询

1) 查询数据库大小

select datname ,

pg_size_pretty(pg_database_size(datname)) as size 

from pg_database;

2) 查看表空间大小

Select spcname, 

pg_size_pretty(pg_tablespace_size(spname) as size

              from pg_tablespace where spname not like(‘virtual%’) 

              order by 2; 

3) 查看项目中表的空间占用

Select relname,

pg_size_pretty(pg_relation_size(relid)) as size  

              from pg_stat_user_tables

              where schemaname=lower(‘项目名’)

              order by 2; 

4) 查看数据库磁盘空间

df –h

6. 服务器状态检查(sar)

1) cpu与iowait

sar –u 1 3

2) 查看平均负载

Sar –q 3 3

3) 查看内存使用

Sar –r 3 3

4) 查看交换区

Sar –W 3 3

5) 查看IO

Sar –b 3 3

6) 查看网络接口

Sar –n DEV 1 1

7) 查看tcp 连接统计

Sar –n TCP 1 1

        

7. 参数调优

1) 系统参数:

关闭numa

关闭透明大页

设置noatime

wm.swappiness = 0

vm.owvercommit_memory = 2

Vm.dirty_background_ratio = 5

Vm.dirty_radio = 10


2) 参数设置:

Shared_buffers: 内存的max(内存的10%,8G) 

Work_men:4M

Fsync=off

effective_cache_size= Shared_buffers 

Commit_siblings &commit_delay(20,100) 

archive_mode =off

Autovacuum = on;

Autovacuum_naptime

Full_page_wirtes=off

全部回复

暂无更多回复内容