返回

一文看懂:Docker搭建Oracle数据库的正确姿势

后端

Docker 搭建 Oracle 数据库的完整指南

简介

Oracle 数据库是一款功能强大的关系型数据库管理系统,广泛应用于企业级系统中。Docker 技术的兴起为 Oracle 数据库的部署和管理带来了新的可能性。本文将深入探讨如何使用 Docker 构建 Oracle 数据库的正确方法,从基础概念到详细的步骤演示。

CDB 和 PDB

在了解 Docker 构建 Oracle 数据库之前,我们需要先熟悉 CDB 和 PDB 的概念。

  • CDB(容器数据库): 是 Oracle 数据库的最高层容器,可容纳多个 PDB。
  • PDB(可插拔数据库): 是 CDB 的子容器,可在 CDB 内独立运行。

搭建步骤

1. 安装 Docker

首先,在您的服务器上安装 Docker。从 Docker 官网下载适用于您操作系统的安装包并按照说明进行安装。

2. 创建 CDB

安装 Docker 后,创建 CDB。以下命令将创建名为 "my-cdb" 的 CDB:

docker run -d --name my-cdb -p 1521:1521 oracle/database:12.2.0.1

3. 创建 PDB

接下来,创建 PDB。以下命令将创建名为 "my-pdb" 的 PDB:

docker exec -it my-cdb /bin/bash
sqlplus / as sysdba
create pluggable database my-pdb admin user myuser identified by mypassword;

4. 连接到 PDB

创建 PDB 后,使用以下命令连接到 PDB:

docker exec -it my-cdb /bin/bash
sqlplus myuser/mypassword@//localhost:1521/my-pdb

实例演示

为了更清楚地理解 Docker 构建 Oracle 数据库的过程,让我们来看一个示例:

  1. 安装 Docker。
  2. 创建名为 "my-cdb" 的 CDB:
docker run -d --name my-cdb -p 1521:1521 oracle/database:12.2.0.1
  1. 创建名为 "my-pdb" 的 PDB:
docker exec -it my-cdb /bin/bash
sqlplus / as sysdba
create pluggable database my-pdb admin user myuser identified by mypassword;
  1. 连接到 PDB:
docker exec -it my-cdb /bin/bash
sqlplus myuser/mypassword@//localhost:1521/my-pdb

现在,您可以使用 SQL 命令对 PDB 进行操作,就像操作一个独立的数据库一样。

注意事项

在使用 Docker 构建 Oracle 数据库时,需要注意以下事项:

  • 创建 CDB 时,指定正确的 Oracle 版本。
  • 创建 PDB 时,指定正确的 CDB 名称和 PDB 名称。
  • 连接到 PDB 时,使用正确的 PDB 名称。

总结

Docker 是构建 Oracle 数据库的理想选择。它提供了隔离的环境,简化了数据库的部署和管理。通过了解 CDB 和 PDB 的概念,并按照本指南中的步骤进行操作,您可以轻松地使用 Docker 创建和管理自己的 Oracle 数据库。

常见问题解答

1. 什么是 CDB 和 PDB?

  • CDB 是容器数据库,可容纳多个 PDB。PDB 是 CDB 的子容器,可在 CDB 内独立运行。

2. 为什么使用 Docker 构建 Oracle 数据库?

  • Docker 提供了隔离的环境,简化了数据库的部署和管理。

3. 如何创建 CDB?

  • 使用以下命令创建 CDB:
docker run -d --name my-cdb -p 1521:1521 oracle/database:12.2.0.1

4. 如何创建 PDB?

  • 使用以下命令创建 PDB:
docker exec -it my-cdb /bin/bash
sqlplus / as sysdba
create pluggable database my-pdb admin user myuser identified by mypassword;

5. 如何连接到 PDB?

  • 使用以下命令连接到 PDB:
docker exec -it my-cdb /bin/bash
sqlplus myuser/mypassword@//localhost:1521/my-pdb