在oracle db上移动数据文件,如mssql

时间:2014-06-26 00:08:54

标签: sql-server oracle oracle10g database-administration

对于客户端应用程序,我想管理不同的数据库,具体取决于我想在特定时刻使用的数据。 我无法更改应用程序代码,我发现了一个非常适合MSSQL的解决方案,但我还需要使用Oracle DB复制它。 请考虑该应用程序与DB(名称和主机)的“硬编码”连接。

使用MSSQL,我发现这个解决方案从收集不同数据文件开始,用于同一个数据库(称为XXDB),每个数据文件包含不同的数据,因此我可以通过这种方式轻松更改数据:

  • 关闭应用程序
  • 我从SQL分离数据库
  • 现在我可以移动mdf和ldf文件
  • 插入其他mdf和ldf文件
  • 使用其他mdf和ldf文件附加数据库
  • 重新启动应用程序

通过这种方式,我可以快速更改用于应用程序测试的数据。

我想在Oracle DB 10g上复制这个简单的路径,这可能吗?

我是否需要评估其他解决方案来切换相同名称和用户连接到数据库的数据?

谢谢!

2 个答案:

答案 0 :(得分:1)

最接近的模拟是使用transportable tablespaces,假设所有对象都在一个(或多个)自包含表空间中。尽管这个过程与您在SQL Server中所做的大致相似,但它在Oracle中并不是那么无缝。可传输的表空间旨在让您有效地将大量数据从一个数据库移动到另一个数据库,而不是用于此类事务。

我们谈论了多少数据?使用DataPump根据需要导出和导入数据可能是一个不会牺牲太多性能的更简单的解决方案。

答案 1 :(得分:0)

您能澄清一下:您的代码已经连接到Oracle数据库并对其起作用,您只需要一个解决方案来更改Oracle中的源数据以进行测试吗?

Oracle的后端远比SQL复杂,我建议您忘记自动化Oracle数据文件来获取不同的数据集。

更改数据集以进行测试的常规方法是将应用程序指向不同的实例/数据库/用户,而不是在应用程序中对连接进行硬编码。实际上,Oracle连接字符串与SQL连接字符串完全不同,因此您需要更改应用程序中的连接详细信息才能执行此操作。