gaussdb 设置数据库只读

GaussDB 设置数据库只读

Gauss没有严格意义上的只读模式,只能通过调整参数或设置事务模式可以将后续登录的SESSION或者当前事务设置为只读模式。

1. 设置数据库只读
注意,这里设置只读只对新session生效,而且数据库不需要重启也永久生效。

alter user {
    
    user_name} set default_transaction_read_only=on;

2. 设置数据库可写
注意,这里设置只读只对新session生效,而且数据库不需要重启也永久生效。

alter user {
    
    user_name} set default_transaction_read_only=off;

3. 示例

  • 设置用户只读
GAUSSDB1=# alter user user_ufo set default_transaction_read_only=on; 
ALTER ROLE
  • 杀掉用户连接
    注意用户名需要大写匹配
select pg_terminate_backend(PID) from pg_stat_activity where usename = 'USER_UFO' ;
  • 重连用户session
    重新登录即可,对于应用来说,一般是有重连机制的。
[dbadmin@cn-north3a-DBA-DB01 ~]$ gsql -h111.111.111.111 -p8635 -Uuser_ufo -dufo
Password for user benchmarksql: 
gsql (9.2.1) 
Type "help" for help. 
 
ufo=> 
ufo=> 
ufo=> select * from test; 
 ID | NAME 
----+------ 
 1  | ufo111
 2  | ufo112
(2 rows) 
  • 测试用户读写
ufo=> insert into test values ('3', 'ufo113'); 
ERROR:  cannot execute INSERT in a read-only transaction 
ufo=>

猜你喜欢

转载自blog.csdn.net/qq_42226855/article/details/109724640