pg 由一系列进程组成,主进程是postmaster,一个postmaster监听一个对应端口,每个服务器进程对应一个数据目录, 一个数据目录对应最多一个服务器进程
启动 pg_ctl -D DATADIR start 或者service postgressql start
net start postgres(WINDOWS)
快速停止 pg_ctl -D DATADIR -m fast stop
-m fast 相当于oracle中的immediate选项,但是postgres在这里有一个优势, 就是回滚速度会比较快
紧急停止 pg_ctl -D DATADIR stop -m immediate
相当于oracle中的shutdown abort
reload pg_ctl -D /var/lib/pgsql/data reload 或者service postgresql reload
快速重启 pg_ctl -D DATADIR restart -m fast
tips:下面两条命令可以在重启前后手动保存和加载数据缓存,需要安装pg_cacheutils组件,现在更名为pgfincore
(http://pgfoundry.org/frs/?group_id=1000444)
psql -c "select pg_cache_save('mycache')"
pg_ctl -D datadir -m immediate restart
psql -c "select pg_cache_warm('mycache')"
阻止新的连接
暂停回话池
停止服务
ALTER DATABASE db_name CONNECTION LIMIT 0;
ALTER USER username CONNECTION LIMIT 0;
更改pg_hba.conf ,使用reject
复制pg_hba_lockdown.conf到pg_hba.conf---
复制pg_hba.conf 为pg_hba_access.conf---这里暂时没明白
限制某角色连接数
postgres=# ALTER ROLE fred CONNECTION LIMIT 1;
踢出用户回话
select pg_terminate_backend(pid)
pid可以从pg_stat_activity(类似于sqlserver中的sysprocesses)中获取
Schema
理解为跟sqlserver类似
Database----类似sqlserver
默认用户有登陆权限就可以连接所有数据库
postgres=# create database fred owner = fred 创建数据库时指定owner
postgres=# REVOKE connect ON DATABASE fred FROM public 移除其他用户连接权限
postgres=# GRANT connect ON DATABASE fred TO fred 单独授权