微软有哪些数据库迁移工具,用什么工具可以从mysql迁到oracle
来源:整理 编辑:黑码技术 2024-05-15 07:51:07
1,用什么工具可以从mysql迁到oracle
ETLOGG其他专门做数据迁移的工具 DBMOVER 付费的,轻量级的,操作简单只是数据转过去吗?还是由已知的oraclemysql中创建表和导数据一起完成?
2,数据迁移的数据迁移的工具选择
数据迁移工具的开发、部署主要有2种选择,即自主开发程序或购买成熟的产品。这2种选择都有各自不同的特点,选择时还要根据具体情况进行分析。纵观目前国内一些大型项目,在数据迁移时多是采用相对成熟的ETL产品。可以看到这些项目有一些共同特点,主要包括:迁移时有大量的历史数据、允许的宕机时间很短、面对大量的客户或用户、存在第三方系统接入、一旦失败所产生的影响面将很广。同时也应该看到,自主开发程序也被广泛地采用。目前,许多数据库厂商都提供数据抽取工具,如Informix的InfoMover、Microsoft SQLServer的DTS和0raele的Oracle Warehouse Builder等。这些工具在一定范围内解决了数据的提取和转换。但这些工具基本都不能自动完成数据的抽取,用户还需利用这些工具编写适当的转换程序。例如Oracle的Oracle Warehouse Builder(OWB)数据抽取工具提供的功能包括:模型构造和设计,数据提取、移动和装载,元数据管理等。但OWB提供的流程繁琐,维护很困难,不易于使用。在第三方产品中,Ascential Software公司的DataStage是一套相对比较完善的产品。DataStage可以从多个不同的业务系统、从多个平台的数据源中抽取数据,完成转换和清洗,装载到各种系统里面,其中每步都可以在图形化工具里完成;同样可以灵活地被外部系统调度,提供专门的设计工具来设计转换规则和清洗规则等,实现了增量抽取、任务调度等多种复杂而实用的功能。其中简单的数据转换可以通过在界面上拖拉操作和调用一些DataStage预定义转换函数来实现,复杂转换可以通过编写脚本或结合其他语言的扩展来实现,并且DataStage提供调试环境,可以极大地提高开发和调试抽取、转换程序的效率。
3,如何使用 bcp 将数据库迁移到 Windows Azure SQL Database
它不是一个迁移工具。它不会提取或创建架构。首先,您必须通过使用一种架构迁移工具(如“生成脚本”向导),或通过提取并部署数据层应用程序 (DAC) 包,将架构转移到 Windows Azure SQL Database 中的一个数据库。有关确定架构迁移过程的帮助,请参阅 选择用于将数据库迁移到 Windows Azure SQL Database 的工具。bcp 实用工具调用的 SQL Server 大容量复制功能也公开在 SQL Server 的应用程序编程接口 (API) 中。若干迁移工具(如 Windows Azure SQL Database 迁移向导和 DAC BACPAC)也使用大容量复制功能来传输数据。建议利用大容量复制最佳实践,以提高在将数据复制到大型目标表时的性能。例如: 使用-N 选项在本机模式下传输数据,这样,就不需要进行任何数据类型转换。使用 –b 选项指定批大小。每个批处理均作为单独的事务插入和记录。默认情况下,数据文件中的所有行均作为一个批次导入。如果某个事务失败,则只回滚当前批处理中的插入。确定最佳批处理大小并使用此批处理大小是一个很好的做法,这可以减少在数据迁移期间与 Windows Azure SQL Database 断开连接的几率。使用bcp 提示:对导入使用 –h “TABLOCK” 提示,以便指定在大容量加载操作期间使用大容量更新表级锁定。这样,通过使用单个表锁定(而不是对每行使用一个锁定),可以减少锁定开销。对导出使用 –h “ORDER(…)” 提示可对数据文件排序。如果根据表的聚集索引对要导入的数据排序,则将提高大容量导入的性能。对于大型表,将导入副本拆分为您可以同时运行的多个流。如果您已将源表中的数据大容量复制到单个数据文件中,则使用 –F firstrow 和–L lastrow 参数指定 bcp 的每次运行应处理数据文件的哪个部分。有关大容量复制最佳实践的详细信息,请参阅优化大容量导入性能。如果您要使用 IDENTITY 生成表中的主键,请使用 bcp –E 参数以保留在源数据库中生成的键。-E 应防止在导入过程中出现任何外键违规,前提是在运行导入时没有对表进行任何其他更新。确保不可能有其他更新,例如将数据库放在只读模式下。注意bcp 一次运行一个表,因此,当从源数据库中提取数据时,它不维护多个表间的事务完整性。您可以通过在导出过程中将源数据库放在单用户或只读模式来解决此问题。[返回页首]限制和局限目标数据库中的表必须是空的,才能进行大容量复制导入。除非您截断或删除由以前的大容量复制插入的所有行,否则,您不能对同一个表执行多个批量复制导入。[返回页首]先决条件bcp 随SQL Server 提供。从 SQL Server2008 R2 或更高版本的 SQL Server 安装客户端实用工具,以获得能够与 Windows Azure SQL Database 结合使用的 bcp 版本。[返回页首]使用bcp 迁移数据使用bcp 将数据从源数据库中的一个表移到目标数据库中该表的副本涉及五个步骤:迁移架构。 使用架构传输机制(如“生成脚本”向导或 DAC BACPAC)在 Windows Azure SQL Database 中创建数据库的副本。在这一进程结束时,所有表应已在 SQL Database 数据库中创建,但不包含任何数据。将数据导出到数据文件。 对于源 SQL Server 数据库中的每个表,运行 bcp out 操作,以将表中的数据复制到数据文件。这是将数据从一个表导出到数据文件的示例:bcp tableName out C:\filePath\exportFileName.dat –S serverName –T –n -q out 参数指示从 SQL Server 复制出数据。-n 参数使用数据的本机数据库数据类型执行大容量复制操作。-q 参数在 bcp 实用工具与数据库引擎实例之间的连接中执行 SET QUOTED_IDENTIFIERS ON 语句。执行大容量复制优化 对任何目标数据库架构进行所需的更改,以提高将数据复制到大型表的性能,如禁用非聚集索引、触发器和约束。将数据文件导入SQL Database 对于Windows Azure SQL Database 目标数据库中的每个表,运行 bcp 实用工具,同时将导出数据文件中的数据复制到表中。此示例包括 bcp 的三次运行,其作用是将数据从大约具有 300,000 行的数据文件复制到单个表中。每次运行复制的行数约为 100,000。Bcp tableName in c:\filePath\exportFileName.dat –n –U userName@serverName –S tcp:serverName.database.windows.net –P password –b 200 –L 99999 –h”TABLOCK” Bcp tableName in c:\filePath\exportFileName.dat –n –U userName@serverName –S tcp:serverName.database.windows.net –P password –b 200 –F 100000 –L 199999 –h”TABLOCK” Bcp tableName in c:\filePath\exportFileName.dat –n –U userName@serverName –S tcp:serverName.database.windows.net –P password –b 200 –F 200000 –h”TABLOCK” in 参数指示将数据复制到 Windows Azure SQL Database 中。–b 参数指定每批导入数据的行数。–L lastrow 和–F firstrow 参数用于指定每次运行应处理数据文件的哪个部分。删除架构优化 还原已删除的任何架构项,以优化大容量插入。例如,启用在步骤 3 中禁用的任何非聚集索引、触发器或约束。sql server是微软的关系数据库产品,其最新版本是sql server 2008 r2。sql azure 是微软云计算平台(windows azure platform)的三大组成部分之一,是一个部署在云端的关系型数据库引擎,它支持sql server中绝大多数和开发有关的功能。也可以简单的认为sql azure就是sql server的云端版本,但是sql azure不支持以下管理功能: (1)数据库复制 (2)sql profiler (3)sql trace flag (4)命令行备份 (5) 配置和使用存储过程sp_configure
文章TAG:
微软 哪些 数据 数据库 微软有哪些数据库迁移工具