fsync属性 | 描述 |
|---|---|
类型 | boolean |
默认值 | on |
级别 |
如果打开这个参数,KingbaseES服务器将尝试确保更新被物理地写入到磁盘,做法是发出 fsync() 系统调用或者使用多种等价的方法(见 wal_sync_method )。这保证了数据库集簇在一次操作系统或者硬件崩溃后能恢复到一个一致的状态。
虽然关闭 fsync 常常可以得到性能上的收益,但当发生断电或系统崩溃时可能造成不可恢复的数据损坏。因此,只有在能很容易地从外部数据中重建整个数据库时才建议关闭 fsync 。
能安全关闭 fsync 的环境的例子包括从一个备份文件中初始加载一个新数据库集簇、使用一个数据库集簇来在数据库被删掉并重建之后处理一批数据,或者一个被经常重建并却不用于失效备援的只读数据库克隆。单独的高质量硬件不足以成为关闭 fsync 的理由。
当把 fsync 从关闭改成打开时,为了可靠的恢复,需要强制在内核中的所有被修改的缓冲区进入持久化存储。这可以在多个时机来完成:在集簇被关闭时或在 fsync 因为运行 initdb --sync-only 而打开时、运行 sync 时、卸载文件系统时或者重启服务器时。
在很多情况下,为不重要的事务关闭 synchronous_commit 可以提供很多关闭 fsync 的潜在性能收益,并不会有的同时, 关闭fsync可以提供很多潜在的性能优势,而不会有伴随着的数据损坏风险。
fsync 只能在 kingbase.conf 文件中或在服务器命令行上设置。如果关闭这个参数,请也考虑关闭 full_page_writes 。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




