开发者社区 > PolarDB开源 > PolarDB 分布式版 > 正文

各位大佬,请教一个问题,在docker上安装PolarDB,重启服务器时,polarDB数据库会挂掉

各位大佬,请教一个问题,在docker上安装PolarDB,重启服务器时,polarDB数据库会挂掉。这个问题已经困扰很久,这是什么原因导致的呢?有对应的解决方案吗?希望看到问题的大佬能帮忙答疑解惑,非常感谢69ed9a32deac07e4702b4a652c3a171.png0f87f0a758965b5b3a1a1e82ed36877.png而且数据库挂了之后,就再也起不来了无论是重启docker,还是重启服务器,都无法恢复

展开
收起
圆葱猪肉包 2023-05-23 13:33:11 48005 6
4 条回答
写回答
取消 提交回答
  • 您好,如果在 Docker 上安装了 PolarDB,那么在重启服务器时,PolarDB 实例可能会因为数据卷未正确挂载而导致数据库挂掉。解决方法如下:

    确认数据卷已正确挂载:在 Docker 中,数据卷是将主机的文件或目录挂载到容器内部的一种方式。如果您没有正确挂载数据卷,那么您的 PolarDB 实例将无法访问其所需的文件和目录。请确保您已经正确地挂载了数据卷。

    确认 PolarDB 服务是否正在运行:如果您的 PolarDB 服务没有自动启动,那么它可能不会在重启后自动启动。您可以使用以下命令来检查 PolarDB 服务的状态:

    systemctl status polardb-server
    

    如果它没有正在运行,请使用以下命令来启动它:

    systemctl start polardb-server
    
    2023-08-30 08:22:54
    赞同 展开评论 打赏
  • 您好,如果您在 Docker 上安装了 PolarDB,那么在重启服务器时,PolarDB 实例可能会因为数据卷未正确挂载而导致数据库挂掉。

    解决方法如下:

    1. 确认数据卷已正确挂载:在 Docker 中,数据卷是将主机的文件或目录挂载到容器内部的一种方式。因此,在重启服务器后,需要确认数据卷已正确挂载到容器中。您可以使用 docker inspect 命令来查看挂载的数据卷是否正确。

    2. 启动容器时添加 --restart=always 参数:在启动容器时,可以添加 --restart=always 参数,这样在容器意外退出时,Docker 会自动重启容器,从而保证 PolarDB 实例的稳定运行。

    3. 使用 Docker Compose 管理容器:如果您需要管理多个容器,建议使用 Docker Compose 来管理容器。Docker Compose 可以帮助您定义和运行多个 Docker 容器,并且提供了自动重启容器的功能。

    2023-05-23 17:15:51
    赞同 6 展开评论 打赏
  • 应该是走了容器网络,docker 容器重启后, 分配的ip变了,导致gms 里面的元数据不一致。 你试下--network host 来启动容器。此回答整理自微信群“阿里云 PolarDB-X开源交流2号群”

    2023-05-23 14:35:23
    赞同 2 展开评论 打赏
  • Polardb 数据库无法启动,可能是由于 Polardb 服务没有自动启动导致的。您可以使用 systemctl enable polardb 命令将 Polardb 服务添加到启动项中,以确保在服务器重启后 Polardb 服务能够自动启动。另外,如果您在使用 Polardb 时发现数据库挂了之后无法恢复,可能是因为 Polardb 数据库的数据文件损坏或者数据库服务配置不正确导致的。您可以尝试以下解决方案:

    1. 检查 Polardb 数据库的数据文件是否存在损坏。在 Polardb 数据库容器内部,Polardb 数据库的数据文件通常位于 /var/lib/polardb 目录下。您可以使用 ls -lh /var/lib/polardb 命令来查看数据文件的大小和修改时间。如果数据文件的大小为 0 或者修改时间很早,可能意味着数据文件已经损坏,需要进行修复。您可以使用 polardb -c "pg_resetxlog /var/lib/polardb/data" 命令来修复数据文件。请注意,此命令将会删除所有未提交的事务,因此建议在备份数据文件后再执行此命令。修复数据文件后,您可以尝试重新启动 Polardb 数据库。

    2. 检查 Polardb 数据库服务的配置是否正确。在 Polardb 数据库容器内部,Polardb 数据库服务的配置文件通常位于 /etc/polardb 目录下。您可以使用 cat /etc/polardb/polardb.conf 命令来查看服务的配置信息。请确保服务的配置信息正确,并与您在启动 Polardb 数据库时所使用的命令参数相匹配。如果配置信息不正确,您可以使用 vi /etc/polardb/polardb.conf 命令来编辑配置文件,并保存修改后重启 Polardb 数据库服务。

    3. 如果以上方法都无法解决问题,您可以尝试重新安装 Polardb 数据库。在重新安装之前,请备份 Polardb 数据库的数据文件,以免数据丢失。您可以使用 docker stop <container_name>docker rm <container_name> 命令来停止和删除 Polardb 数据库容器,然后重新执行安装命令来重新安装 Polardb 数据库。在重新安装完成后,您可以将备份的数据文件恢复到 Polardb 数据库容器中,并尝试重新启动 Polardb 数据库。

    2023-05-23 14:19:26
    赞同 2 展开评论 打赏

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。

热门讨论

热门文章

相关电子书

更多
应用 Docker 进行持续交付:用技术改变交付路程 立即下载
从Docker到容器服务 立即下载
Docker@Alibaba——超大规模Docker化的实战经验 立即下载