注意:

使用 DBeaver 通过 PostgreSQL 连接到 Oracle Cloud Infrastructure Database

简介

在本教程中,我们将探讨如何使用 DBeaver 等数据库管理工具通过 PostgreSQL 连接到 Oracle Cloud Infrastructure Database。

DBeaver 是一款免费的开源数据库管理工具,通过为数据库管理、开发和数据分析提供用户友好的界面,可显著提高 PostgreSQL 数据库管理员 (DBA) 的效率。也可以考虑其他任何工具。

本教程将演示如何在专用子网内使用 PostgreSQL 预配 OCI 数据库。此外,在第二个和第三个任务中,我们将预配一个计算实例作为同一虚拟云网络 (Virtual Cloud Network,VCN) 中的堡垒主机,从而允许通过数据库管理工具(如 DBeaver)访问 PostgreSQL 数据库。

以下方案描述了方法。

架构视图

目标

先决条件

任务 1:在专用子网中创建 PostgreSQL 数据库实例

我们可以使用多种方法创建 PostgreSQL 数据库实例,例如 OCI 控制台、CLI 和 API。有关更多信息,请参见 Creating a Database System

在此任务中,我们将使用 OCI 控制台创建托管 PostgreSQL 数据库系统。

  1. 登录到 OCI 控制台,导航到数据库 PostgreSQL ,然后单击数据库系统

    图像

  2. 单击创建 PostgreSQL 数据库系统

    图像

  3. Create PostgreSQL Database system(创建 PostgreSQL 数据库系统)页中,选择 Create new Database system(创建新数据库系统),然后单击 Next(下一步)

    图像

  4. 数据库系统配置部分中,输入以下信息。

    • 数据库系统名称:输入数据库系统的名称。

    • 说明(可选):输入数据库系统的说明。

    • PostgreSQL 主版本:选择 PostgreSQL 数据库的主版本。唯一允许使用的值为 14。

  5. 数据库系统部分中,输入节点计数的值。需要一个主节点。额外的节点保留为读取副本节点。

  6. 为数据库选择性能层。有关更多信息,请参见绩效层

  7. 选择数据放置

    • 区域:数据持久存储在该区域的多个可用性域中。
    • 特定于可用性域:数据持久存储在所选可用性域中。

    图像

  8. 硬件配置部分中,输入以下信息。

    • OCPU 计数:选择每个节点的 OCPU 数。

    • 可用配置:选择数据库节点的配置。

  9. Network configuration 部分中,输入以下信息。

    • 虚拟云网络:选择要在其中创建数据库的 VCN。如果需要创建 VCN,请单击创建 VCN 。有关更多信息,请参见VCN and Subnet Management

    • 子网:选择所选 VCN 的专用子网。

    • 专用 IP 地址:数据库实例的子网中的专用 IP 地址。该值是可选的。如果未提供 IP 地址,则从指定子网中的可用 IP 地址中选择一个 IP 地址。

    图像

  10. 数据库系统管理员身份证明部分中,输入数据库的身份证明。管理员无法获取超级用户访问权限。具有 PostgreSQL 管理员用户的 OCI 数据库可以创建用户和角色。

    • 用户名:指定管理员的用户名。在创建数据库系统后无法更改此值。

    • 密码选项:请选择以下选项之一。

      • 输入密码:

        • 口令:输入管理员口令。

        • 确认口令:确认管理员口令。

      • 使用 OCI Vault:

        • Vault:选择包含管理员密码的 Vault。

        • Secret:选择包含管理员密码的密钥。

        • 秘密版本:选择密钥版本。

    图像

  11. 配置数据库系统后,单击下一步

  12. 查看数据库系统配置,然后单击提交

    图像

  13. 创建成功后,访问数据库系统的常规信息页。

    图像

任务 2:创建 OCI 计算实例以连接到 PostgreSQL

PostgreSQL 数据库正在专用网络中部署,我们将创建具有公共 IP 地址的实例并授予其对 PostgreSQL 的访问权限。此新创建的实例将用作 PostgreSQL 数据库的入口点。

  1. 转到 OCI 控制台,导航到计算实例

    图像

  2. 在预配了 OCI PostgreSQL 数据库实例的同一 VCN 中选择公共子网。

    图像

  3. 通过 SSH 连接到实例并运行以下命令。这将安装 PostgreSQL 版本 14 的客户机。

    sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    sudo dnf -qy module disable postgresql
    sudo dnf install -y postgresql14-server
    sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
    sudo systemctl enable postgresql-14
    sudo systemctl start postgresql-14
    

    rm -rf ~/.pgpass

  4. 转到 OCI PostgreSQL 概览页,单击 CA 证书中的复制,或者下载证书并在终端中运行以下命令。

    sudo nano ./dbsystem.pub
    

    将完整证书复制并粘贴到 dbsystem.pub 文件中。保存并关闭该文件。

  5. 使用以下命令测试连接。

    psql -h [DB Private IP] -U [user name] -d postgres
    

    例如:

    psql -h 10.0.1.165 -U admin -d postgres
    
  6. 以测试身份运行语句以检查连接。

    SELECT VERSION();
    

    图像

  7. 以用户身份运行以下语句进行连接。

    psql "sslmode=verify-full sslrootcert=./dbsystem.pub host=<endpoint_fqdn> hostaddr=[DB private IP] dbname=postgres user=<user_name>"
    

    例如:

    psql "sslmode=verify-full sslrootcert=dbsystem.pub host=
    yfya3utrulnsbuzniy7545tsnwvuzq-primary.postgresql.eu-madrid-1.oc1.oraclecloud.com hostaddr=10.0.1.165 dbname=postgres user=admin"
    
  8. 运行以下语句以测试连接是否正常工作。

    SELECT VERSION();
    

任务 3:使用 DBeaver 进行连接

在本任务中,我们将安装 DBeaver 并连接到 PostgreSQL。

  1. 从此处下载并安装 DBeaver:DBeaver 社区

  2. 添加身份证明以使用 PostgreSQL 连接到 OCI 数据库。

    图像

  3. 输入虚拟机 (virtual machine,VM) IP 地址和端口 22。DBeaver 将使用 SSH 访问具有 PostgreSQL 数据库的 OCI 数据库,从而在公共子网中使用相同的 VM 实例。

    图像

  4. 可选)运行以下语句以使用 DBeaver 创建表并加载数据。

    DROP TABLE cars;
    CREATE TABLE cars (
      brand VARCHAR(255),
      model VARCHAR(255),
      year INT
    );
    INSERT INTO cars (brand, model, year)
    VALUES
      ('Toyota', 'Camry', 2023),
      ('Honda', 'Accord', 2022),
      ('Ford', 'Mustang', 2024),
      ('Chevrolet', 'Corvette', 2023),
      ('BMW', '3 Series', 2021),
      ('Mercedes-Benz', 'C-Class', 2022),
      ('Volkswagen', 'Golf', 2023),
      ('Audi', 'A4', 2024);
    COMMIT;
    SELECT * FROM cars;
    

    概述创建的表。

    图像

确认

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心