如何关闭postgreSQL的auto commit功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何关闭postgreSQL的auto commit功能相关的知识,希望对你有一定的参考价值。

参考技术A 最早以前, postgresql服务端有 autocommit开关,
然而又有语句 begin transaction 来控制事务, 这样可能会造成混乱, 比如 autocommit=on的情况下, 用begin transaction启动手工事务,此时autocommit到底是on 还是off?

后来干脆就取消autocommit开关, 只有一条命令begin transaction来管理事务, 越简单越不易混乱. 望采纳

如何阻止 MacOS 更新覆盖我的 auto_master 文件? [关闭]

【中文标题】如何阻止 MacOS 更新覆盖我的 auto_master 文件? [关闭]【英文标题】:How do I stop MacOS updates from overwriting my auto_master file? [closed] 【发布时间】:2021-05-04 15:14:01 【问题描述】:

如何阻止 MacOS 更新覆盖我的 auto_master 文件? 每个重要的 MacOS 更新总是删除我的自定义 auto_master 并放入默认的 auto_master。我实际上只在文件末尾添加了一行,甚至不修改现有的行,因为它们与我无关。

【问题讨论】:

【参考方案1】:

我花了很多时间弄清楚 OS X 中 NFS 共享的自动挂载...

在某个地方,Apple 决定不允许直接安装到 /Volumes 中:

/etc/auto_master (见最后一行)

#
# Automounter master map
#
+auto_master        # Use directory service
/net            -hosts      -nobrowse,hidefromfinder,nosuid
/home           auto_home   -nobrowse,hidefromfinder
/Network/Servers    -fstab
/-          -static
/-          auto_nfs    -nobrowse,nosuid

/etc/auto_nfs (这都是一行)

/Volumes/my_mount    -fstype=nfs,noowners,nolockd,noresvport,hard,bg,intr,rw,tcp,nfc nfs://192.168.1.1:/exports/my_share
    

确保你:

sudo chmod 644 /etc/auto_nfs

否则自动挂载程序将无法读取配置并在/var/log/messages 中出现... parse_entry: getmapent for map failed... 错误

尽管它“应该”,但这将不起作用(不再!)。

$ sudo automount -cv
...
automount: /Volumes/my_mount: mountpoint unavailable

请注意,如果您使用mkdir 手动创建挂载点,它将挂载。 但是,在重新启动时,OS X 会删除挂载点,并且自动挂载会失败。

解决办法是什么?

当我发现它时,我的下巴很容易掉下来。 基本上,我们是在欺骗 OS X,让其认为我们正在安装其他地方。

当您谈论几乎任何环境中的路径时,根文件夹是您可以到达的最高路径,无论是 C:\ (windows) 还是 / (*nix)

当您处于此路径时,尝试通过.. 到达父路径将使您保持在根路径。

例如:/../../../../ 仍然只是 /

到目前为止,你们中的一些人已经弄清楚了。

TL;DR / 解决方案:

更改您的 /etc/auto_nfs 配置(这都是一行)

/Volumes/my_mount    -fstype=nfs,noowners,nolockd,noresvport,hard,bg,intr,rw,tcp,nfc nfs://192.168.1.1:/exports/my_share

对于前 Catalina:致 (仅此一行)

/../Volumes/my_mount    -fstype=nfs,noowners,nolockd,noresvport,hard,bg,intr,rw,tcp,nfc nfs://192.168.1.1:/exports/my_share

Catalina 及以上:致(仅此一行)

/System/Volumes/Data/../Data/Volumes/my_mount    -fstype=nfs,noowners,nolockd,noresvport,hard,bg,intr,rw,tcp,nfc nfs://192.168.1.1:/exports/my_share

然后重新运行自动挂载程序:

$ sudo automount -cv
...
automount: /Volumes/my_mount: mounted

......你去!从技术上讲,/../Volumes 仍然是 /Volumes,但自动挂载程序不会这样看;)

此配置在重新启动后保留挂载,并自动创建挂载点。

来源 github:https://gist.github.com/L422Y/8697518

【讨论】:

其实我并没有尝试使用 /Volumes。我觉得很烦人的是,Apple 决定除了标准名称之外,没有任何名称对我的文件系统根目录有效。我添加的行如下: /qnap auto_qnap 我当然有 auto_qnap 文件中 /qnap 中的映射。每当 MacOS 进行操作系统更新时,它都会丢弃我的线路,并且通常甚至不会在重新定位的文件中为它制作保存文件(如果他们一直在制作保存文件,我不会打扰)。

以上是关于如何关闭postgreSQL的auto commit功能的主要内容,如果未能解决你的问题,请参考以下文章

如何自动关闭 PostgreSQL 中的空闲连接?

PostgreSQL AUTO INCREMENT(自动增长)

PostgreSQL AUTO INCREMENT(自动增长)

如何阻止 MacOS 更新覆盖我的 auto_master 文件? [关闭]

如何在 postgresql 中为数据库创建用户? [关闭]

如何将 postgresql 与 javascript 一起使用? [关闭]