No.15
关于同步参数synchronous_commit,下列说法不正确的是 ()?
A.默认值为on
B.无论设置为何值,都与数据库的数据一致性无关
C.设置为remote_apply时,主库会在所有备库完成WAL持久化之后就返回成功
D.设置为off可以提高数据库性能
【答案】C
指定在命令返回"success"指示给客户端之前,一个事务是否需要等待WAL记录被写入磁盘。合法的值是on、remote_write、local和off。默认的并且安全的设置是on。当设置为off时,在向客户端报告成功和真正保证事务不会被服务器崩溃威胁之间会有延迟(最大的延迟是wal_writer_delay的三倍)。不同于fsync,将这个参数设置为off不会产生数据库不一致性的风险:一个操作系统或数据库崩溃可能会造成一些最近据说已提交的事务丢失,但数据库状态是一致的,就像这些事务已经被干净地中止。因此,当性能比完全确保事务的持久性更重要时,关闭synchronous_commit可以作为一个有效的代替手段。
No.16
现有s1、s2、s3和s4四台备库,若要设置s1、s3为同步备库,s2为潜在同步备库,s4为异步备库,则下列参数配置符合条件的是()?
A.synchronous_standby_names='2(s1,
s2, s3)'
B.synchronous_standby_names='2(s1,
s2, s3) s4'
C.synchronous_standby_names='2(s1, s3,
s2)'
D.synchronous_standby_names='1,2(s1,
s3, s2)'
【答案】C
【解析】
num_sync ( standby_name [, ...] )
其中num_sync 是事务需要等待其回复的同步后备服务器的数量,standby_name 是一个后备服务器的名称。例如,设置3 (s1,
s2, s3, s4) 会让事务提交等待,直到它们的 WAL 记录被后备服务器s1、s2、 s3和s4中选出的三个较高优先级后备服务器接收到。
评论
