处理PostgreSQL Transactoin in Read Only Mode一例
问题描述: 解决过程: db_2d91u=> select current_user;
-[ RECORD 1 ]+----------
current_user | hsu_nq545
db_2d91u=> drop table 一级河流4l;
错误: 不能在一个只读模式的事务中执行DROP TABLE
依然报同样的错误,也就是所有的客户端连接上后都是只读模式。 因此判断应该是PostgreSQL的default_transaction_read_only模式值为on了,使用工具进行查看如下: db_2d91u=> show default_transaction_read_only;
-[ RECORD 1 ]-----------------+---
default_transaction_read_only | on
db_2d91u=> select * from pg_settings where name='default_transaction_read_only';
-[ RECORD 1 ]------------------------------------------------------
name | default_transaction_read_only
setting | on
unit |
category | Client Connection Defaults / Statement Behavior
short_desc | Sets the default read-only status of new transactions.
extra_desc |
context | user
vartype | bool
source | database
min_val |
max_val |
enumvals |
boot_val | off
reset_val | on
sourcefile |
sourceline |
db_2d91u=# select * from pg_db_role_setting;
-[ RECORD 1 ]-------------------------------------------------------------------
-------
setdatabase | 12029
setrole | 0
setconfig | {"search_path="$user",public,sde"}
-[ RECORD 2 ]-------------------------------------------------------------------
-------
setdatabase | 17418
setrole | 0
setconfig | {"search_path="$user",sde",default_transaction_read_onl
y=true}
db_2d91u=# select datname from pg_database where oid=17418;
-[ RECORD 1 ]-----
datname | db_2d91u
从结果上看该参数生效的值的确是on,导致整个系统处于只读模式。 source | database和pg_db_role_setting中的查询结果,说明在数据库级别上设置了其值为on,并覆盖了system上的设置。 需要将database级别上的参数修改成off。 db_2d91u=# alter database db_2d91u set default_transaction_read_only=off;
错误: 不能在一个只读模式的事务中执行ALTER DATABASE db_2d91u=# set default_transaction_read_only=off;
SET db_2d91u=# alter database db_2d91u set default_transaction_read_only=off;
ALTER DATABASE db_2d91u=# select * from pg_settings where name='default_transaction_read_only';
-[ RECORD 1 ]------------------------------------------------------
name | default_transaction_read_only
setting | off
unit |
category | Client Connection Defaults / Statement Behavior
short_desc | Sets the default read-only status of new transactions.
extra_desc |
context | user
vartype | bool
source | database
min_val |
max_val |
enumvals |
boot_val | off
reset_val | off
sourcefile |
sourceline |
使用桌面重新连接后,发现可以成功删除图层。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- cocos2d-x3.6 连连看完整源码
- Flex中如何在某一容器通过visible属性或者使用hideEffect以
- 何时使用Ajax vs Json进行Javascript事件?
- [cocos2dx]Cocos Code IDE使用教程
- ruby-on-rails – 如何从Ruby on Rails应用程序打印(条形码
- oracle11g自动维护任务
- [原]as3 flash web 应用 (5)js与flash的交互
- 用axis2解析xml失败的原因分析和解决方法
- postgresql – 如何在Postgres 8.4中导入模块或安装扩展?
- ORA-00313: open failed for members