在adhoc的基础上,我们希望从四个Oracle生产表中复制内容到QA/UAT环境。这不是直接复制,我们需要根据某些输入条件进行筛选数据的复制。
早先我们使用Sybase数据库,因此BCP实用程序在那里运行良好。然而,我们最近迁移到了Oracle,并需要类似的数据复制需求。
根据目前的分析,我已经分析出以下选项:
- RMAN(恢复管理器)- 不能使用,因为它不允许我们复制选择的表或对数据进行过滤。 - SQLLDR(SQL加载程序)- 不能使用,因为我们有BLOB列,因此不确定如何为这些BLOBS创建CSV文件。有什么建议吗? - Oracle数据泵(Expdp / Imbdp)- 不能使用,即使它允许复制所选表,它也不允许我们使用具有连接的某个查询来过滤数据(我知道它允许添加查询,但它只对单个表起作用)。解决方法是创建具有所需数据集的临时表,并使用EXPDP和IMPDP对它们进行转储。如果我在这种方法中漏掉了什么,请给我一些建议。 - 数据库链接- 这是在这种情况下可能的最佳方法。但需要检查DBA是否允许我们创建到/从PRD数据库的链接。 - SQL PLUS COPY - 不能使用,因为它无法处理BLOB字段。
请问哪种方法在性能方面最好?
早先我们使用Sybase数据库,因此BCP实用程序在那里运行良好。然而,我们最近迁移到了Oracle,并需要类似的数据复制需求。
根据目前的分析,我已经分析出以下选项:
- RMAN(恢复管理器)- 不能使用,因为它不允许我们复制选择的表或对数据进行过滤。 - SQLLDR(SQL加载程序)- 不能使用,因为我们有BLOB列,因此不确定如何为这些BLOBS创建CSV文件。有什么建议吗? - Oracle数据泵(Expdp / Imbdp)- 不能使用,即使它允许复制所选表,它也不允许我们使用具有连接的某个查询来过滤数据(我知道它允许添加查询,但它只对单个表起作用)。解决方法是创建具有所需数据集的临时表,并使用EXPDP和IMPDP对它们进行转储。如果我在这种方法中漏掉了什么,请给我一些建议。 - 数据库链接- 这是在这种情况下可能的最佳方法。但需要检查DBA是否允许我们创建到/从PRD数据库的链接。 - SQL PLUS COPY - 不能使用,因为它无法处理BLOB字段。
请问哪种方法在性能方面最好?