如何从SQL Server迁移大批量数据到Oracle

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从SQL Server迁移大批量数据到Oracle相关的知识,希望对你有一定的参考价值。

参考技术A

首先将SQLServer数据导出成txt格式文本此方法略,不会的去网上查资料,网上很多相关资料。

下面要说的是如何将txt文本数据导入到Oracle中,Dos 环境下使用SQl*Loader命令 加载。

使用其它数据库的数据转移工具,Oracle 企业管理器中的数据加载功能。


具体的技术实现

一、Dos 环境下加载

1、首先,服务器端的侦听服务必须已经开启。

测试方法:Dos 下输入

C:/>sqlplus username/password@serviceName

2、然后使用 Oracle 的 sqlldr 命令进行数据的导入

前期条件

1) Oracle 数据库端必须已经建好了需要导入的数据表的结构

2) 一个数据源文件 下面例子中为制表符分隔的文本文件 model.txt ,为Excel 表中导出的

3) 手工编辑一个XXX.CTL 的控制文件

4) 命令行加载数据


如下实例:

以下文件缺省放到C:/ 下,如果不是,就需要指明全路径

1. 命令控制文件 input.ctl 内容

命令 

说明

load data 

1、控制文件标识

infile 'model.txt' 

2、要输入的数据文件名为test.txt

append into table system.塔位属性表 

3、向表test中追加记录

fields terminated by X'09' 

4、指定分隔符,字段终止于X'09',是一个制表符(TAB)

(编号,名称,大小) 

5、定义列对应表中顺序

控制文件中指定插入数据的方式关键字

insert,为缺省方式,在数据装载开始时要求表为空

append,在表中追加新记录

replace,删除旧记录,替换成新装载的记录

truncate,同上

在 Dos 窗口下使用 SQl*Loader 命令实现数据的导入

C:/>sqlldr userid=system/manager@ serviceName control=input.ctl

默认日志文件名为:input.log

默认坏记录文件为:input.bad


二、使用其它数据库转移工具

以下以SQL Server 导入导出向导为例

1、在数据的导入导出向导中设置数据源服务器,实例中选择数据源选择SQL Server

2、然后指定要导入的Oracle 数据源

3、需要配置Oracle 的属性信息

需要注意的是,登录数据库的用户信息即为数据导入之后的方案名,即导入之后的SQL Server 中的表在Oracle 中标志名为 username.表名

以下按照提示即可,可以完全导入SQl Server 中的数据表和视图,也可以使用查询语句返回你要选择的列或者行。


三、Oracle 企业管理器中的数据加载功能

登录Oracle 的控制台界面,针对单独的数据表可以使用数据加载工具

中间需要指定控制文件等,同Dos 加载一致,不再重复

参考技术B 用sql server 自带的工具

如何从 Azure SQL 迁移到 SQL Server? [复制]

【中文标题】如何从 Azure SQL 迁移到 SQL Server? [复制]【英文标题】:How to migrate from Azure SQL to SQL Server? [duplicate] 【发布时间】:2013-05-09 12:46:33 【问题描述】:

好吧,这不是将现有的 sql server 数据库迁移到 azure 数据库。反之亦然。

我想停止使用 azure sql 数据库,并转移到 SQL Server 完整版。如何将 AZURE Sql 中的现有数据库迁移到新的 SQL Server 2008 数据库?

【问题讨论】:

这不应被标记为重复,因为自最初的问题以来技术已经发生了显着变化。 【参考方案1】:

如果您不想丢失任何数据,则必须在传输时停止使用它。我可以建议你几种方法:

第一种方法是使用SQL Azure Migration Wizard。是的。尽管它最初旨在将本地 SQL DB 迁移到 SQL Azure,但也可以反过来使用。我已经做过很多次了。只需首先将迁移向导指向您的 SQL Azure 实例,然后以本地服务器为目标。

第二种方法是使用 Azure SQL 数据库备份。 Create a bacpac archive 使用门户或通过 SSMS。然后import this BacPac package into your local SQL Server 实例。

如果您不想停机并希望完全同步数据,我建议您执行以下操作:

    最初使用上述任何方法移动架构和数据(对于实时系统,我强烈建议先创建一个新数据库 AS COPY,然后从中创建 BacPac,或使用迁移向导进行传输)。 启用SQL Data Sync 以开始将本地数据与正在进行的实时数据同步。 等待本地完全同步。 在您的应用中切换连接字符串。 减少 SQL Azure。

【讨论】:

【参考方案2】:

有许多第三方工具可让您将 SQL Azure 数据库与完整的 SQL Server 数据库同步。只需使用其中任何一个来同步结构,然后同步数据。

您可以尝试使用 Red Gate、ApexSQL、Idera 或任何其他工具......即使这些工具并不便宜,您仍然可以在试用模式下使用它们(在大多数情况下它功能齐全)来完成工作。

【讨论】:

以上是关于如何从SQL Server迁移大批量数据到Oracle的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Azure SQL 迁移到 SQL Server? [复制]

(转)如何将数据库从SQL Server迁移到MySQL

如何从 C# 代码将 SQL Server CE 迁移到 SQL Server 2012 Express

如何将数据从 Magnolia CMS Apache Jackrabbit 内容存储库迁移到普通 SQL SERVER 数据库

怎么将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL

怎么从Oracle迁移到SQL Server ?