绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
PostgreSQL修改数据库名
2021-04-27 16:50:55
点击上方蓝字关注我


修改数据库名
修改数据库的脚本其实很简单,如下:
alter  database  db1  rename  to  db2;
但处理时检查如遇到如下的错误信息,导致无法修改库名,错误信息如下:
ERROR:  database "db1" is being accessed by other usersDETAIL:  There are 17 other sessions using the database.
 处理办法:因提示的是数据库正在被其他用户所使用,所以需要先关闭连接该库的会话即可。
关闭连接的方式在PostgreSQL9.2及以上版本可以直接通过以下方式处理:
 SELECT pg_terminate_backend(pg_stat_activity.pid)FROM pg_stat_activity WHERE datname='db1' AND pid<>pg_backend_pid();-- 再次修改 alter database db1 rename to db2;
以上SQL简单说明一下:
pg_terminate_backend:用来终止与数据库的连接的进程id的函数。pg_stat_activity:是一个系统表,用于存储服务进程的属性和状态。pg_backend_pid():是一个系统函数,获取附加到当前会话的服务器进程的ID。
PS:
1)  删除数据库也经常会出现此错误,处理方式相同,都是先关闭连接再处理
2)很多数据库的修改或者offline数据库时都需要先关闭对应的连接,例如SQL SERVER。

想要学习PostgreSQL的同学可以学习一下如下两本经典的书籍。


往期精彩回顾

1.  MySQL高可用之MHA集群部署

2.  mysql8.0新增用户及加密规则修改的那些事

3.  比hive快10倍的大数据查询利器-- presto

4.  监控利器出鞘:Prometheus+Grafana监控MySQL、Redis数据库

5.  PostgreSQL主从复制--物理复制

6.  MySQL传统点位复制在线转为GTID模式复制

7.  MySQL敏感数据加密及解密

8.  MySQL数据备份及还原(一)

9.  MySQL数据备份及还原(二)

扫码关注     

分享好友

分享这个小栈给你的朋友们,一起进步吧。

数据库干货铺
创建时间:2021-12-13 09:36:52
致力于分享数据库、大数据、运维等方面相关知识,并通过生产环境遇到的实战案例分享排坑技巧等
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 数据库干货铺
    栈主

小栈成员

查看更多
  • miemieMIA
  • janefengwang
戳我,来吐槽~