我们知道,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
9. 验证版本
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,然后替换数据文件为前面的标准版备份的数据文件即可。
另外:标准版和企业版的版权问题,需要单独解决。

1204

被折叠的 条评论
为什么被折叠?



