Postgresql数据库的小技巧

断开其他用户与Postgresql数据的连接

吃水不忘挖井人:http://blog.csdn.net/liuchunming033/article/details/46878473

SELECT pg_terminate_backend(pg_stat_activity.pid)  
FROM pg_stat_activity  
WHERE datname='ymw' AND pid<>pg_backend_pid(); 

上述SQL语句是用来断开当前其他与Postgresql的数据库ymw正连接的用户连接。
删除表或数据库的时候报错:

ERROR:  database "ymw" is being accessed by other users
DETAIL:  There are 8 other sessions using the database.

因为正处于连接状态。

上面语句说明:

  • pg_terminate_backend:用来终止与数据库的连接的进程id的函数。
  • pg_stat_activity:是一个系统表,用于存储服务进程的属性和状态。
  • pg_backend_pid():是一个系统函数,获取附加到当前会话的服务器进程的ID。

备份与恢复

恢复数据库:

psql -h localhost -U postgres -d 'databasename' <  bak.sql

一、数据库备份
吃水不忘挖井人:http://blog.csdn.net/niuxinzan/article/details/17243103
1、备份数据库结构

su - postgres
pg_dump -Fc -s -f testdbschema.sql testdb

2、备份数据库数据

su - postgres
pg_dump -Fc -a -f testdbdata.sql testdb

3、备份数据库结构和数据

su - postgres
pg_dump -Fc -f testdbschemadata.sql testdb

4、备份数据库中指定表结构

 pg_dump -Fc -s -t citycode -f citycode_schema.sql testdb

5、备份数据库中指定表数据

 pg_dump -Fc -a -t citycode -f citycode_data.sql testdb

.6、备份数据库中指定表(结构和数据)

 pg_dump -Fc -t citycode -f citycode_schemadata.sql testdb

二、删除数据库

su - postgres
dropdb testdb

三、恢复数据库
1、创建新数据库testdb

su - postgres
createdb testdb;

2、 恢复数据结构(only schema)

su - postgres
 pg_restore -s -d testdb testdbschema.sql 

3、恢复数据库数据(only data)

su - postgres
pg_restore -a -d testdb testdbdata.sql

4、恢复数据库结构和数据(schema and data)

su - postgres
pg_restore -d testdb testdbschemadata.sql

5、指定表数据恢复
1)删除表

psql testdb
DROP TABLE citycode;

2)恢复表结构

pg_restore -s -t citycode -d testdb citycode_schema.sql

3)恢复表数据

pg_restore -a -t citycode -d testdb citycode_data.sql

4)恢复表(结构和数据)

pg_restore -t citycode -d testdb citycode_schemadata.sql

以上备份恢复相关操作可用于静态(无数据增长)数据库。

重要提示:pg_restore 可用来恢复pg_dump命令以 (Fc\Ft)格式备份的数据文件。执行pg_dump备份命令时若无此格式参数声明,pg_restore 恢复时可能出现错误提示“pg_restore: [archiver] input file does not appear to be a valid archive”。
C:\Users\cennavi-101>D:/software/postgresql/bin/pg_restore.exe -hlocalhost -p5433 -Upostgres -dMap13SprMIFK13 -v "E:\Map13SprMIFK13(Postgresql).backup"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,088评论 19 139
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 12,400评论 0 27
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,023评论 6 13
  • 曾记得在上学时候,听过易中天先生关于中国饮食文化的讲座,重点介绍了广州与成都两座城市的饮食文化不同。易中天先生细致...
    粗茶配淡饭阅读 4,260评论 0 51
  • 并未做好讲故事的打算,于是也并没有对故事进行筛选。讲一个爱情故事吧,爱情故事,应该是最容易信手拈来的故事。 L小姐...
    凉_小台阅读 1,657评论 0 0

友情链接更多精彩内容