在数据库维护时,有时因为特殊的数据库维护,在维护期间,需要禁止应用访问,下面总结下常见的禁止应用访问的方法。
方法一:停应用
最常见的方法也就是停应用,将应用程序停掉,这种方法也有不足,当应用服务器很多,有十几台甚至几十台时,一台台停显然太慢了,下面有几种方法是从数据库服务器考虑的。
方法二:设置pg_hba.conf
设置 $PGDATA/pg_hba.conf ,对外所有IP不允许连接。 在$PGDATA/pg_hba中加一条
1 |
# IPv6 local connections: |
同时将允许的行注释掉
1 |
# host all all 0.0.0.0/0 md5 |
设置好后,重新载入 pg_hba,只需要以下命令
1 |
[postgres@pg1 pg_root]$ pg_ctl reload -D $PGDATA |
这样,就不允许所有的IP连接数据库了,当然,对已经连上数据库的会话不受影响,如有需要,可以通过”pg_teminate_backend” 结束已经连接的会话 (PG 8.4或者以下版本)。
方法三:修改数据库连接数
修改数据库 mydb 的连接数为2
1 |
postgres=# alter database mydb connection limit 2; |
已经2个连接的情况下,再次连接
1 |
[postgres 1 ~]$ psql mydb skytf |
方法四:修改应用帐号密码
修改应用帐号的密码,数据库维护操作完成后再修改回来。
修改密码语法
1 |
postgres=# alter role dwetl with encrypted password '111111'; |
方法五:设置OS层防火墙
通过OS层面设置防火墙访问策略,由于这个设置需要ROOT权限,这里暂时不讨论。
总结
上面介绍了五种方法,为了省事,本人经常采用方法4, 同时推荐用方法2和3, 具体采用哪种方法也要根据具体情况选择。
原创文章,作者:306829225,如若转载,请注明出处:https://blog.ytso.com/236356.html