0

当此工作负载(来自https://github.com/YugaByte/yb-sample-apps/的 SqlSecondaryIndex 工作负载)仍在运行时

% java -jar yb-sample-apps.jar --workload SqlSecondaryIndex --nodes
127.0.0.1:5433 --num_threads_read 4 --num_threads_write 2

尝试使用 ysql_dump 导出表会导致“查询错误:需要重新启动读取”错误。

$ ./ysql_dump -h 127.0.0.1 -d postgres --data-only --table sqlsecondaryindex  -f out.txt
ysql_dump: Dumping the contents of table "sqlsecondaryindex" failed: PQgetResult() failed.
ysql_dump: Error message from server: ERROR:  Query error: Restart read required at: { read: { physical: 1592265362684030 } local_limit: { physical: 1592265375906038 } global_limit: <min> in_txn_limit: <max> serial_no: 0 }

但是如果在工作负载停止时执行相同的命令,则 ysql_dump 命令成功完成,没有任何问题。这是预期的行为吗?

4

1 回答 1

1

要读取一致的快照并避免遇到“读取重启”错误,请将--serializable-deferrable选项传递给ysql_dump. 例如:

~/tserver/postgres/bin/ysql_dump -h 127.0.0.1 -d postgres \
   --data-only --table sqlsecondaryindex \
   --serializable-deferrable -f data1.csv
于 2020-07-01T05:04:51.750 回答