暂无图片
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
打赏 0
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
打赏 0
王君慧

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

暂无图片 评论
暂无图片 有用 0
打赏 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
打赏 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
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
数据库服务器开了防火墙后,weblogic就连接不上了,怎么办?
回答 1
开放oracle监听端口,使得应用可以访问
Oracle一般做同步库用什么工具或者软件?
回答 7
做dg吧,简单可用
oracle dg搭建传输时间估算
回答 2
受网络和服务器网卡配置的限制,我这边旧服务器是千兆网卡目标端万兆,但也就只能按千兆算,每秒传输90Mb左右,3T过一点的数据我大概需要8个小时左右。
Oracle数据库字段date怎么才能走索引?
回答 3
todate格式不同,影响查询是否走索引数据量在全表数据的10%以上,有可能走的是全表扫描,而不走索引。对字段进行类型转换,不会走索引借用你的问题,做了个小测试,希望对你有所帮助,地址:https:/
Oracle12.1.0.2标准版如何迁移至企业版?
回答 2
1、最少停机时间,最好使用OGG方式进行。
Oracle Apex 如何做ACL权限控制列表?以及如何发邮件(具体配置)
回答 3
我百度了很多,是基于Oracle的但是我配置了Oracleacl之后一直报错提示验证过不去因为我需要用OracleApex的发送邮件功能
oracle如何快速上云
回答 2
60小时窗口,时间很富裕了。无论是inmdp方式或者xtts,都可以。xtts方式比较省心一些,物理方式,不用核对数据之类
请教个SQL
回答 6
已采纳
droptablet;createtablet(emidvarchar(20),c1varchar(20),c2varchar(20),c3varchar(20),dtdate);insertinto
deadlock
回答 2
已采纳
没理解要什么产出物?两个及以上事务中交差操作数据就死锁了。
AWR分析报告问题求助:想知道怎么对我现有数据库进行优化?
回答 3
硬解析较多,看SQLorderedbyParseCalls部分应该是框架生成的sql,可能得优化这类sql。服务器内存64G,数据库sga20G,可以适当增当sga大小,看是否能减少硬解析比例。awr