docker环境下 Oracle 19c 标准版如何转换为19c 企业版

我们知道,ORACLE 标准版,不能直接转换为企业版,这里除了版权问题之外,也有技术上的原因,如果在DOCKER环境下,如何操作呢?

oracle 19c 标准版转换为企业版,和传统模式的转换思路一样

传统模式:卸载标准版,不删除数据,重新安装企业版软件,打开前面安装的标准版的数据文件,即可。

DOCKER下面呢?

我们来看看.

1.前提
当前是19c 标准版,可以参考下文进行创建

oracle linux 9.6上安装oracle database 19.3 标准版 docker
2.做好备份
做好备份,既是在失败情况下的一个标准步骤,也是本次操作的必要步骤。本次使用的物理备份。

2.1 物理备份
停止docker
docker stop oracle19c
使用tar 冷备

tar -zcvf /mydata/oracle_se2_backup_$(date +%Y%m%d).tar.gz /mydata/oracle/oradata

tar: Removing leading `/' from member names

/mydata/oracle/oradata/

/mydata/oracle/oradata/ORCL/

/mydata/oracle/oradata/ORCL/system01.dbf

/mydata/oracle/oradata/ORCL/sysaux01.dbf

/mydata/oracle/oradata/ORCL/undotbs01.dbf

/mydata/oracle/oradata/ORCL/users01.dbf

/mydata/oracle/oradata/ORCL/control01.ctl

/mydata/oracle/oradata/ORCL/control02.ctl

/mydata/oracle/oradata/ORCL/redo01.log

/mydata/oracle/oradata/ORCL/redo02.log

/mydata/oracle/oradata/ORCL/redo03.log

/mydata/oracle/oradata/ORCL/temp01.dbf

/mydata/oracle/oradata/ORCL/tbs_his01.dbf

/mydata/oracle/oradata/ORCL/tbs_lis01.dbf

/mydata/oracle/oradata/.ORCL.created

/mydata/oracle/oradata/dbconfig/

/mydata/oracle/oradata/dbconfig/ORCL/

/mydata/oracle/oradata/dbconfig/ORCL/spfileORCL.ora

/mydata/oracle/oradata/dbconfig/ORCL/orapwORCL

/mydata/oracle/oradata/dbconfig/ORCL/sqlnet.ora

/mydata/oracle/oradata/dbconfig/ORCL/listener.ora

/mydata/oracle/oradata/dbconfig/ORCL/tnsnames.ora

/mydata/oracle/oradata/dbconfig/ORCL/.docker_standard

/mydata/oracle/oradata/dbconfig/ORCL/oratab

2.2 逻辑备份
启动docker

docker start oracle19c

进入docker

root@docker-hub dockerfiles]# docker exec -it oracle19c bash

--进行逻辑备份

bash-4.2$ expdp \'sys/oracle_4U@orcl as sysdba\' dumpfile=se2_full.dmp logfile=se2_full.log full=y

Export: Release 19.0.0.0.0 - Production on Tue Dec 2 15:39:27 2025

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production

Starting "SYS"."SYS_EXPORT_FULL_01": "sys/********@orcl AS SYSDBA" dumpfile=se2_full.dmp logfile=se2_full.log full=y

Processing object type DATABASE_EXPORT/EARLY_OPTIONS/VIEWS_AS_TABLES/TABLE_DATA

Processing object type DATABASE_EXPORT/NORMAL_OPTIONS/TABLE_DATA
。。。

. . exported "HR"."DEPARTMENTS" 6.132 KB 8 rows

. . exported "HR"."EMPLOYEES" 8.023 KB 20 rows

. . exported "HR"."JOB_HISTORY" 0 KB 0 rows

Master table "SYS"."SYS_EXPORT_FULL_01" successfully loaded/unloaded

******************************************************************************

Dump file set for SYS.SYS_EXPORT_FULL_01 is:

/opt/oracle/admin/ORCL/dpdump/se2_full.dmp

Job "SYS"."SYS_EXPORT_FULL_01" successfully completed at Tue Dec 2 15:41:30 2025 elapsed 0 00:02:01

--文件传到指定位置

root@docker-hub dockerfiles# docker cp oracle19c:/opt/oracle/admin/ORCL/dpdump/se2_full.dmp /mydata/oracle/.

Successfully copied 3.7MB to /mydata/oracle/.

root@docker-hub dockerfiles# ls -ltr /mydata/oracle/.

total 3608

drwxrwxrwx 4 root root 55 Dec 2 22:06 oradata

-rw-r----- 1 root root 3694592 Dec 2 23:41 se2_full.dmp

3.停止并删除前面的标准版docker

docker stop oracle19c

docker rm oracle19c

rm -fr /mydata/oracle/oradata/*
chmod -R 777 /mydata/oracle/oradata

4.创建企业版的image

./buildContainerImage.sh -i -v 19.3.0 -t oracle/database:19c -e

5.运行docker

docker run -d \

--restart always \

--shm-size=4g \

-p 1521:1521 -p 5500:5500 \

-e ORACLE_SID=ORCL \

-e ORACLE_PWD=oracle_4U \

-e ORACLE_CHARACTERSET=ZHS16GBK \

-v /mydata/oracle/oradata:/opt/oracle/oradata \

--name oracle19c \

oracle/database:19c

6.停数据库

进入docker

docker exec -it oracle19c /bin/bash

lsnrctl stop
sqlplus / as sysdba

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.
7.释放标准版的数据文件到对应位置
tar /mydata/oracle_se2_backup_20251202.tar.gz -C /

8.重新打开数据库
进入docker
docker exec -it oracle19c /bin/bash

打开监听
lsnrctl start

打开数据库
sql>startup

  1. 验证版本

SQL> select * from v$version;

BANNER


BANNER_FULL


BANNER_LEGACY


CON_ID


Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

10.验证选项

SQL> SELECT parameter ,value from v$option

PARAMETER VALUE


Partitioning TRUE

Objects TRUE

Real Application Clusters FALSE

Advanced replication TRUE

Bit-mapped indexes TRUE

Connection multiplexing TRUE

Connection pooling TRUE

Database queuing TRUE

Incremental backup and recovery TRUE

Instead-of triggers TRUE

Parallel backup and recovery TRUE

PARAMETER VALUE


Parallel execution TRUE

Parallel load TRUE

Point-in-time tablespace recovery TRUE

Fine-grained access control TRUE

Proxy authentication/authorization TRUE

Change Data Capture TRUE

Plan Stability TRUE

Online Index Build TRUE

Coalesce Index TRUE

Managed Standby TRUE

Materialized view rewrite TRUE

PARAMETER VALUE


Database resource manager TRUE

Spatial TRUE

Automatic Storage Management FALSE

Export transportable tablespaces TRUE

Transparent Application Failover TRUE

Fast-Start Fault Recovery TRUE

Sample Scan TRUE

Duplexed backups TRUE

Java TRUE

OLAP Window Functions TRUE

Block Media Recovery TRUE

PARAMETER VALUE


Fine-grained Auditing TRUE

Application Role TRUE

Enterprise User Security TRUE

Oracle Data Guard TRUE

Oracle Label Security FALSE

OLAP TRUE

Basic Compression TRUE

Join index TRUE

Trial Recovery TRUE

Advanced Analytics TRUE

Online Redefinition TRUE

PARAMETER VALUE


Streams Capture TRUE

File Mapping TRUE

Block Change Tracking TRUE

Flashback Table TRUE

Flashback Database TRUE

Transparent Data Encryption TRUE

Backup Encryption TRUE

Unused Block Compression TRUE

Oracle Database Vault FALSE

Result Cache TRUE

SQL Plan Management TRUE

PARAMETER VALUE


SecureFiles Encryption TRUE

Real Application Testing TRUE

Flashback Data Archive TRUE

DICOM TRUE

Active Data Guard TRUE

Server Flash Cache TRUE

Advanced Compression TRUE

XStream TRUE

Deferred Segment Creation TRUE

Unified Auditing FALSE

Management Database FALSE

PARAMETER VALUE


I/O Server FALSE

ASM Proxy Instance FALSE

Exadata Discovery TRUE

Data Mining TRUE

Global Data Services TRUE

Adaptive Execution Plans TRUE

Table Clustering TRUE

Zone Maps TRUE

Real Application Security TRUE

Privilege Analysis TRUE

Data Redaction TRUE

PARAMETER VALUE


Cross Transportable Backups TRUE

Cache Fusion Lock Accelerator TRUE

Snapshot time recovery TRUE

Heat Map TRUE

Automatic Data Optimization TRUE

Transparent Sensitive Data Protection TRUE

In-Memory Column Store TRUE

Advanced Index Compression TRUE

In-Memory Aggregation TRUE

Centrally Managed User TRUE

87 rows selected.

企业版的功能都有了

11.无效对象

SQL> select count(*) from dba_objects where status<>'VALID';

COUNT(*)


0

12.组件

到此,标准版DOCKER转换为企业版过程结束。

13.总结一下:

需要注意,不能直接标准版的数据文件运行企业版的DOCKER,需要全新的企业版DOCKER,然后替换数据文件为前面的标准版备份的数据文件即可。

另外:标准版和企业版的版权问题,需要单独解决。

相关推荐
阿演17 分钟前
DataDjinn 新版本更新:新增 Oracle 支持,查询窗口、表预览和连接树继续打磨
数据库·oracle·ai编程·数据库连接工具
lixora36 分钟前
Oracle 11g Active Data Guard Go 自动化部署工具 v1.0
数据库·oracle
mN9B2uk171 小时前
大数据量高并发的数据库优化
服务器·数据库·oracle
我是谁??1 小时前
ubuntu22.04 通过docker部署vLLM(Qwen3-0.6B)大模型+New API+OpenWebUI
docker·容器·vllm
运维瓦工1 小时前
DevOps 生态介绍(十):Docker Compose 核心 YAML 配置详解与常用命令大全
spring cloud·docker·容器
云烟成雨TD2 小时前
Spring AI 1.x 系列【59】容器化开发支持:Docker Compose 与 Testcontainers
人工智能·spring·docker
Plastic garden2 小时前
K8s(10)NFS 的动态 PV 创建数据库给k8s的mysql和redis
docker·容器·kubernetes
与海boy2 小时前
docker compose minio
docker·容器·eureka
JimCarter3 小时前
使用Azure Devops Pipeline将Docker应用部署到你的Raspberry Pi上
docker·azure·树莓派·devops·orangepi·香橙派·raspberrypi