暂无图片
19c数据库不小心创建成的非容器数据库,有什么办法可以修改成容器数据库么?
我来答
分享
Link
2024-03-27
19c数据库不小心创建成的非容器数据库,有什么办法可以修改成容器数据库么?
暂无图片 10M
ORA-65090: operation only allowed in a container database
我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
钟波

在Oracle 19c中,如果不小心创建了一个非容器数据库(Non-CDB),也就是一个传统的单一实例数据库,是没有直接的命令或者选项可以改变它成为一个容器数据库(CDB)。Oracle官方推荐的方式是使用数据泵导出/导入(Data Pump Export/Import)工具,或者迁移工具如RMAN(Recovery Manager)进行迁移。

以下是将非容器数据库迁移到容器数据库的大致步骤:

  1. 创建容器数据库 - 你需要首先创建一个新的容器数据库,这将作为目标数据库。

  2. 准备数据泵目录 - 在非容器数据库和容器数据库上创建数据泵目录,并给相应的用户赋予权限。

  3. 导出非容器数据库 - 使用数据泵导出工具(datapump expdp)导出非容器数据库的全数据库或所需的模式/表等。

  4. 导入到容器数据库 - 使用数据泵导入工具(datapump impdp)将导出的文件导入到容器数据库的一个新建的可插拔数据库(PDB)中。

  5. 完成迁移 - 检查可插拔数据库的数据,确保迁移过程中所有必要的数据和对象都正确无误。

这个过程需要谨慎进行,涉及到导出和导入数据库的关键步骤,并且在整个过程中,都需确保所有的数据备份是最新的并且可用。此外,这个迁移过程可能需要相应的停机时间,因此在执行之前需要规划适当的维护窗口。

建议在进行这类操作前详细阅读Oracle的官方文档,并在测试环境中充分实践以确保熟练掌握操作过程,并减小操作风险。如果需要更具体的步骤和命令,请查阅Oracle的官方迁移指导或求助于有经验的数据库管理员。

暂无图片 评论
暂无图片 有用 1
lianR

在Oracle  19c中,你不能直接将非容器数据库(Non-CDB)转换为容器数据库(CDB)。但是,你可以通过以下步骤来实现这一目标:

1.  创建一个新的容器数据库。
2.  使用Data  Pump或者RMAN将非容器数据库迁移到新的容器数据库中。

以下是详细步骤:

1.  创建一个新的容器数据库:
     这可以通过DBCA(数据库配置助手)或者手动创建实现。在DBCA中,你需要选择"创建一个新的容器数据库"选项。

2.  使用Data  Pump或者RMAN迁移数据:
     -  使用Data  Pump:你可以使用Data  Pump的expdp和impdp命令来导出和导入数据。首先,你需要在源数据库(非CDB)上运行expdp命令来导出数据,然后在目标数据库(CDB)上运行impdp命令来导入数据。
     -  使用RMAN:你可以使用RMAN的DUPLICATE命令来复制数据。首先,你需要在源数据库(非CDB)上运行RMAN备份命令来备份数据,然后在目标数据库(CDB)上运行RMAN的DUPLICATE命令来复制数据。

注意:在迁移数据之前,你需要确保源数据库和目标数据库的字符集是一致的。如果字符集不一致,你需要先转换字符集。

此外,你还需要确保源数据库和目标数据库的Oracle版本是一致的。如果版本不一致,你需要先升级或者降级数据库版本。

最后,你还需要确保源数据库和目标数据库的补丁级别是一致的。如果补丁级别不一致,你需要先应用相应的补丁。

暂无图片 评论
暂无图片 有用 0
王君慧

删除重建,或者考虑迁移至PDB,可以用逻辑方式,或者参考官方文档进行复制迁移。
https://docs.oracle.com/en/database/oracle/oracle-database/18/spucs/create-pdb-using-a-non-cdb.html

暂无图片 评论
暂无图片 有用 0
CHEN Y.F.

在Oracle 19c数据库中,将非容器数据库(Non-CDB)转换为容器数据库(CDB)并不是一项直接的操作,但可以通过迁移数据的方式来实现。以下是将非容器数据库转换为容器数据库的一般步骤:

  1. 创建新的容器数据库(CDB): 首先,您需要创建一个新的容器数据库,可以选择在同一服务器上或不同的服务器上创建。使用CREATE DATABASE语句创建新的CDB。

  2. 创建PDB: 在新的CDB中创建一个或多个Pluggable Database(PDB)。您可以使用CREATE PLUGGABLE DATABASE语句创建PDB,并通过从原始数据库中导入数据来填充PDB。

  3. 导入数据: 使用Oracle提供的数据迁移工具(如Data Pump导出/导入或者Transportable Tablespaces)将原始数据库中的数据导入到新创建的PDB中。这可能需要一些时间,具体取决于数据的大小和复杂性。

  4. 重建应用程序和配置: 确保重新配置应用程序以连接到新的容器数据库,并进行必要的测试以确保应用程序正常运行。

  5. 验证和测试: 在迁移过程完成后,进行充分的验证和测试,确保数据完整性和应用程序功能没有受到影响。

需要注意的是,将非容器数据库转换为容器数据库是一项复杂的操作,需要谨慎计划和执行,以避免数据丢失或应用程序中断。在执行此操作之前,请务必备份所有关键数据,并在测试环境中进行充分的测试和验证。最好在生产环境之外的环境中执行这样的操作,以降低风险。

暂无图片 评论
暂无图片 有用 0
请叫我囧半仙

1、创建一个新的CDB;

2、在新创建的CDB创建一个到non-cdb的dblink;

3、在新创建的CDB中执行CREATE PLUGGABLE DATABASE pdb_name FROM NON$CDB@dblink;

4、ALTER SESSION SET CONTAINER=new_pdb_name;

5、执行$ORACLE_HOME/dbms/admin/noncdb_to_pdb

6、执行转换脚本后,openpdb。

注:第三步之前,non-cdb数据库要处于只读模式,第三步完成后,新创建的PDB不要OPEN,执行完第五步后进行open。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏