YugaByte 创建数据库失败

YugaByte CREATE DATABASE failure

我尝试 运行 yugabyte 2.0.8.0 快速启动演示根据这些说明:

https://docs.yugabyte.com/latest/quick-start/install/

https://docs.yugabyte.com/latest/quick-start/create-local-cluster/

有 3 个本地节点

./bin/yb-ctl --rf 3 create

然后探索ysql:

https://docs.yugabyte.com/latest/quick-start/explore-ysql/

但是数据库创建失败:

yugabyte=# CREATE DATABASE yb_demo;
CREATE DATABASE yb_demo;
ERROR:  Timed out: Write(tablet: 00000000000000000000000000000000, num_ops: 1, num_attempts: 9, txn: 00000000-0000-0000-0000-000000000000) passed its deadline 3393.992s (passed: 65.317s): Remote error (yb/rpc/outbound_call.cc:440): Service unavailable (yb/tserver/tablet_service.cc:291): Soft memory limit exceeded (at 93.81% of capacity), score: 0.00

yugabyte=# CREATE DATABASE yb_demo;
CREATE DATABASE yb_demo;
ERROR:  Already present: Keyspace 'yb_demo' already exists

yugabyte=# DROP DATABASE yb_demo;
DROP DATABASE yb_demo;
ERROR:  database "yb_demo" does not exist

yugabyte=# \c yb_demo;
FATAL:  database "yb_demo" does not exist
Previous connection kept

所以数据库创建失败。我无法重新创建它,但似乎我也无法删除它或连接到它。错误消息提示内存不足。

免费输出为:

              total        used        free      shared  buff/cache   available
Mem:        4045992     1400276     1419504       64104     1226212     2319448
Swap:       4194300           0     4194300

问题:

运行ning YugaByte 需要多少内存?在这种情况下,运行时间环境是 4GB Ubuntu 16.4 VirtualBox VM with desktop。您的硬件要求至少为 2GB https://docs.yugabyte.com/latest/deploy/checklist/.

如何恢复这个错误?是删除失败的数据库还是完成数据库创建?

感谢您的支持。

How much memory is required for running YugaByte? In this case the runtime environment is 4GB Ubuntu 16.4 VirtualBox VM with desktop. Your HW requirements say min 2GB https://docs.yugabyte.com/latest/deploy/checklist/.

确实,2GB 最小值是针对每个节点的。 由于您是 运行 一台机器上的 3 节点集群,因此应该有助于将其增加到 6GB 或更多。

或者,如果增加内存不是一个选项,您可以调整进程的内存限制。 默认情况下,Yugabyte 将总内存的 10% 分配给 yb-master 进程(元数据服务器),将 85% 分配给 yb-tserver 进程(平板电脑服务器)。

在您的情况下,内存问题很可能与 yb-master 进程有关(CREATE DATABASE 命令将为新数据库初始化元数据)。 您可以使用 Web UI 检查当前内存设置和使用情况以确认。

  • yb-master: <node-ip>/7000/mem-trackers
  • yb-tserver: <node-ip>:9000/memz

注意:对于 3 节点 yb-ctl 集群,节点 IP 通常为 127.0.0.1127.0.0.2127.0.0.3

要更新 yb-master 内存限制,您可以使用 memory_limit_hard_bytes 标志(相同的标志可用于 yb-tserver)。 例如,将其增加到 600MB:

./bin/yb-ctl stop && ./bin/yb-ctl start --master_flags="memory_limit_hard_bytes=629145600"

注意:您也可以在创建集群时直接使用相同的选项:

./bin/yb-ctl destroy && ./bin/yb-ctl create --master_flags="memory_limit_hard_bytes=629145600"

How can I recover this error? Either drop the failed db or finalize the db creation?

关于导致新数据库处于该状态的内存问题,如果 DDL 命令(CREATE DATABASE 因系统错误在 2.0.8中间)。

目前,如果这是一个测试集群,最简单的修复方法是销毁集群然后重新创建它(在具有更多内存或更新标志的机器上,如上所示)。 否则,您可以使用 yb-admin 工具清理部分元数据。

./bin/yb-admin delete_namespace ysql.yb_demo

注意:最近 [1], [2] 已经提交了一些解决此类问题的承诺,并且应该在下一个版本中(尽管我无法确认他们是否会解决这个特定问题)。