sql server 2016向oracle 18c数据库迁移 [英] Sql server 2016 to oracle 18c database migration

查看:133
本文介绍了sql server 2016向oracle 18c数据库迁移的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将在SQL Server 2016中创建的数据库迁移到Oracle 18c。



两个数据库实例都安装在VM中。



然而,迁移失败提供了一条我无法理解的消息,因为我对Oracle RDBMS并不深入。



现在两个虚拟机都有4GB的RAM,每个都用于托管特定的RDBMS(分别是SQL Server 2016和Oracle 18c)



两个RDBMS都安装了默认选项。原始数据库(SQL Server 2016)是一个非常简单的数据库,没有触发器或存储过程或类似的东西。它只对表关系有PK-FK约束。



目标数据库是一个空数据库(或Oracle调用它的用户),具有选项中提供的所有权限。



该过程遵循迁移向导中的默认选项,选择它的唯一选项是截断目标数据库(如果有任何表....在我的情况下,我真的不在乎,因为我想从头开始进行干净的迁移,包括结构和数据。显示的错误指出以下内容:如果未设置密钥,则无法检索对象。到目前为止我找不到任何关于这个问题的东西。



SQL Server 2016 OS是Windows Server 2016,Oracle 18c OS是2008R2 Datacenter版本。



如果您需要任何可以提供帮助的详细信息,请告知我们。



我尝试过:



尝试从SQL Server 2008 R2迁移,以防万一不兼容。授予DB的所有权限。试图只迁移数据库约束(数据库没有任何索引,触发器或存储过程)。

解决方案

因为你被卡住了,我会:



1)在SQL Server中,右键单击db和Tasks | Generate Scripts ...



2)脚本整个数据库和所有数据库对象



3)保存到文件...高级...脚本的数据类型 ...架构和数据。



4)将生成的sql和数据文本文件挖空,直到Oracle接受它为止。



警告:大数据库=大导出的文本文件。


显然,我误解了迁移过程在Oracle中是如何工作的。

一段时间后,我注意到您需要创建一个迁移用户,该用户将用作中间人将架构和数据从SQL服务器迁移到Oracle。

程序完成后,您需要运行生成的脚本迁移就像一个魅力。



以上内容与OTN(Oracle技术网)和YouTube上的一些教程和文档相同。

I'm trying to migrate a database created in SQL Server 2016 to Oracle 18c.

Both database instances are installed in VMs.

However the migration fails providing a message which I could not understand as I'm not that deep into Oracle RDBMS.

Now, both VMs have 4GB of RAM and each one is used to host the specific RDBMS (SQL Server 2016 & Oracle 18c respectively)

Both RDBMSs were installed with default options. The origin database (SQL Server 2016) is a very simple one, no triggers or stored procedures or anything like that. It only has PK-FK constraints for table relations.

The target database is an empty DB (or User as Oracle calls it) with all privileges provided in the options.

The process is followed with the default options in the migration wizard, with the only option selected it to truncate the target DB (if there are any tables....in my case I don't really care since I want a clean migration from scratch, both structure and data). The error shown states the following : "Cannot retrieve object if key is not set". I couldn't find anything so far regarding the issue.

SQL Server 2016 OS is Windows Server 2016, Oracle 18c OS is 2008R2 Datacenter edition.

Please let me know If you need any further details that can help.

What I have tried:

Tried migrating from SQL Server 2008 R2 just in case there is an incompatibility. Granted all privileges to the DB. Tried to migrate only the DB constraints (the DB does not have any indices, triggers or stored procedures).

解决方案

Since you're stuck, I would:

1) In SQL Server, right-click db and "Tasks | Generate Scripts..."

2) "script entire database and all database objects'

3) "Save to file" ... "Advanced" ... "Types of data to script" ... "schema and data".

4) Hack the resultant sql and data "text file" until Oracle accepts it.

Warning: Big database = Big exported text file.


Apparently, I've misunderstood how the migration procedure works in Oracle.
I've noticed, after some time, that you need to create a migration user which will be used as a middleman to migrate the schema and data from SQL server to Oracle.
After the procedure is complete, you need to run the generated script and the migration works like a charm.

The above was used in par with some of the tutorials and documents found on OTN (Oracle Technology Network) and YouTube.


这篇关于sql server 2016向oracle 18c数据库迁移的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆