返回介绍

Create and manage databases

发布于 2025-01-26 00:51:48 字数 7015 浏览 0 评论 0 收藏 0

在 OpenStack 中,数据库服务由 Trove 提供。Trove 是一个支持多种数据库引擎的管理服务,允许用户在 OpenStack 云中轻松创建和管理数据库实例。通过 Trove,您可以快速部署、备份、恢复和扩展数据库。

以下是如何创建和管理数据库实例的完整指南:


1. 什么是 OpenStack Trove?

  • Trove 的核心功能
  • 提供 数据库即服务 (DBaaS) 功能。
  • 支持多种数据库引擎,例如 MySQL、PostgreSQL、MongoDB、Cassandra 等。
  • 提供一键部署、备份/恢复、横向扩展和监控等功能。
  • Trove 的典型用途
  • 部署和管理生产数据库。
  • 创建开发和测试环境中的数据库实例。
  • 自动化数据库备份和高可用性。

2. 创建数据库实例

2.1 前提条件

  1. 登录到 OpenStack 环境 :确保您有管理员或项目用户的访问权限。
  2. 启用 Trove 服务 :Trove 服务需要由管理员部署并启用。
  3. 检查项目配额
  • 确保有足够的资源(如虚拟机配额、存储空间等)来创建数据库实例。

2.2 使用 Horizon 创建数据库实例

  1. 登录 OpenStack Horizon 控制台
  2. 导航到 Project → Database → Instances
  3. 单击 Launch Instance 按钮。
  4. 填写以下参数:
  • Instance Name :数据库实例的名称(例如 my_database )。
  • Database Type :选择数据库引擎类型(如 MySQL、PostgreSQL)。
  • Flavor :选择数据库实例的规格(CPU、内存等)。
  • Volume Size :指定数据库实例的存储大小(以 GB 为单位)。
  • Network :选择数据库实例的网络(例如私有网络)。
  1. 单击 Launch 开始创建数据库实例。
  2. 创建完成后,可以在 Instances 页面查看实例状态(如 BUILDINGACTIVE )。

2.3 使用命令行(CLI)创建数据库实例

  1. 确保安装并配置了 OpenStack CLI 工具。
  2. 使用以下命令创建数据库实例:
   openstack database instance create INSTANCE_NAME \
       --flavor FLAVOR_ID \
       --size VOLUME_SIZE \
       --datastore DATASTORE_TYPE \
       --datastore-version DATASTORE_VERSION \
       --nic net-id=NETWORK_ID

示例:

   openstack database instance create my_database \
       --flavor m1.small \
       --size 20 \
       --datastore mysql \
       --datastore-version 5.7 \
       --nic net-id=private-network-id
  1. 查看数据库实例状态:
   openstack database instance list

3. 管理数据库实例

3.1 创建数据库和用户

创建数据库实例后,您可以在其中创建数据库和用户。

通过 Horizon

  1. 转到 Project → Database → Instances
  2. 找到目标实例,单击实例名称。
  3. Databases 标签页中,单击 Create Database
  • 输入数据库名称(如 mydb )。
  1. Users 标签页中,单击 Create User
  • 输入用户名和密码。
  • 为用户分配访问的数据库。

通过 CLI

  1. 创建数据库:
   openstack database database create INSTANCE_NAME DB_NAME

示例:

   openstack database database create my_database mydb
  1. 创建用户:
   openstack database user create INSTANCE_NAME USER_NAME PASSWORD

示例:

   openstack database user create my_database dbuser password123

3.2 扩展数据库实例存储

当数据库实例存储不足时,可以扩展存储大小。

通过 Horizon

  1. 转到 Project → Database → Instances
  2. 找到目标实例,单击 Resize Volume
  3. 输入新的存储大小(以 GB 为单位),单击 Resize

通过 CLI

使用以下命令扩展存储:

openstack database instance resize-volume INSTANCE_NAME NEW_SIZE

示例:

openstack database instance resize-volume my_database 50

3.3 备份和恢复

创建备份

  1. 通过 Horizon
  • 转到 Project → Database → Backups
  • 单击 Create Backup
  • 填写备份名称,选择数据库实例,单击 Create
  1. 通过 CLI
   openstack database backup create BACKUP_NAME --instance INSTANCE_NAME

示例:

   openstack database backup create my_backup --instance my_database

恢复数据库实例

  1. 通过 Horizon
  • 转到 Project → Database → Backups
  • 找到备份,单击 Restore Backup
  • 填写新实例的名称并启动恢复。
  1. 通过 CLI
   openstack database instance create NEW_INSTANCE_NAME \
       --backup BACKUP_ID \
       --flavor FLAVOR_ID \
       --size VOLUME_SIZE

示例:

   openstack database instance create restored_db \
       --backup backup-id \
       --flavor m1.small \
       --size 20

3.4 删除数据库实例

当数据库实例不再需要时,可以将其删除。

  1. 通过 Horizon
  • 转到 Project → Database → Instances
  • 找到目标实例,单击 Delete
  1. 通过 CLI
   openstack database instance delete INSTANCE_NAME

4. 数据库实例的监控

  • 通过 Horizon
  • 转到 Project → Database → Instances ,查看实例的状态、性能和资源使用情况。
  • 通过 CLI
  • 查看实例的详细信息: bash openstack database instance show INSTANCE_NAME

5. 支持的数据库引擎

Trove 支持以下常见数据库引擎(可能因部署不同而有所差异):

  • 关系型数据库
  • MySQL、PostgreSQL、MariaDB、Oracle 等。
  • NoSQL 数据库
  • MongoDB、Cassandra、Redis 等。

6. 常见问题与解决方案

6.1 无法连接数据库

  • 原因 :数据库实例的安全组未开放端口。
  • 解决方案
  • 确保数据库实例的安全组规则中允许外部访问相应端口(如 MySQL 使用 3306 端口)。

6.2 数据库实例创建失败

  • 原因 :存储不足、配额限制或模板配置错误。
  • 解决方案
  • 检查项目配额。
  • 查看数据库实例的事件日志。

6.3 备份失败

  • 原因 :存储不足或备份服务未配置。
  • 解决方案
  • 检查备份存储空间是否足够。
  • 联系管理员确认备份服务状态。

7. 总结

Trove 提供了强大的数据库管理功能,使用户能够在 OpenStack 中快速创建和管理数据库实例。通过它,您可以高效地部署数据库、执行备份、进行扩展,并轻松完成开发和生产环境中的数据库操作。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文