18_数据传输技术.ppt
文本预览下载声明
数据传输技术 单世民 概述 为了方便地使用异构数据环境中的数据,Oracle Database 10g提供了一整套的数据传输和数据转换的工具。使用这些工具可以高效地完成所需要的数据传输和数据转换。另外,在决策支持系统中,需要不断地把数据库中的数据加载到数据仓库中,这些操作也离不开数据传输和数据转换的工具。 为什么传输数据 作为数据库管理员,必须理解如何管理数据,了解如何在应用程序和不同环境之间引入和引出数据。由于需求的多样性,在许多环境中都需要移动数据、制作数据的拷贝、归档历史数据等。 传输数据是数据库管理员的日常任务。这些传输数据的任务既可以是非常简单的,也可能是非常复杂的。 为什么传输数据 一般情况下,把数据从一个环境中传输到另外一个环境中,需要考虑以下3个方面的因素: 确认数据源; 指定数据的目标地; 操纵数据的传输和转换过程; 数据转换过程 互操作性是引入引出数据的主要原因。由于环境不同,所以在引入引出数据的过程中需要转换数据源中的数据。如果只是映射不同的数据类型,那么这种转换是简单的;但是,如果需要分解或组合数据,那么转换过程就可能是复杂的。常见的数据转换方式如下: 改变数据的格式; 转换和映射数据; 保持数据的一致性; 校验数据; 调度数据的转换过程; 在异构环境中转换数据。 数据泵(Data Pump) 数据泵的体系架构 Oracle Database 10g系统引入了Data Pump(数据泵)体系架构。在以前的版本中,使用imp命令引入数据或使用exp命令引出数据。现在,可以使用Oracle Data Pump来代替这些引入引出数据的命令。在Oracle Database 10g系统中,imp命令和exp命令依然可以使用,且Oracle Data Pump可以读取exp命令生成的引出数据的文件。 数据泵的体系架构 Oracle Data Pump提供了在两个数据库之间移动数据的方法。在Oracle Data Pump体系结构中提供了许多组件。 Data Pump引出数据 与Oracle 9i中的exp命令相比,Oracle Database 10g系统中的expdp命令有了很大的变化,增加了许多功能。 下面首先介绍expdp命令的新增功能,然后介绍如何使用expdp命令。最后,通过示例讲述加何执行操作。 expdp命令的新增功能 在没有实际向引出文件写入数据时,可以估计expdp命令引出的文件大小。 根据用户需要,既可以悬挂引出作业,也可以重新启动中止的作业。 根据用户需要,既可以分离引出作业,也可以附加引出作业。 在许多情况下,可以从失败点重新启动失败的作业。 在执行引出操作时可以引出粒度更小的对象,例如,可以仅仅引出过程和函数。 可以控制引出操作中使用的线程数量。 可以使用两种数据访问方法,即外部表访问法和直接路径访问法,使用的方法由引出进程自动选择。 支持网络模式操作,允许通过网络连接直接加载另外一个数据库。 可以控制引出对象的版本。这种功能使得用户可以从一个Oracle数据库中引出数据,且保证这些引出的数据与低版本的Oracle数据库兼容。但是,这种功能只能适用于Oracle Database 10g以后的功能,以前的功能则不适用。 可以选择引出数据的方法:只引出元数据(例如,创建表或索引的语句);只引出数据库中的数据;同时引出数据库的元数据和数据。 使用Data Pump引出数据 在使用expdp之前,应该在数据所在的数据库中创建一个目录对象。可以使用create directory命令来创建目录,使用grant命令进行授权。 创建目录的原因是使所有与Data Pump相关的文件都存储在服务器上,而不是存储在客户机上,这是Data Pump写入文件或读取文件的位置。 Data Pump引入数据 与expdp工具对应的是impdp工具。impdp工具可以执行Data Pump引入数据操作。 Data Pump引入数据的新增功能 支持使用元数据过滤器,允许用户控制引入对象的类型,例如索引、函数、过程等。 可以根据需要悬挂或重新启动引入作业。 可以分离或附加某个已有的引入作业。 可以从失败点启动大多数失败的引入作业。 可以控制引入操作过程中使用的线程数量。 支持网络模式操作,允许直接加载其他数据库。 可以控制引入对象的类型。允许用户引入某个版本的Oracle数据库,并且确保数据库各版本之间的兼容性。该功能只能用于Oracle Database 10g以后的系统。 SQL*Loader SQL*Loader SQL*Loader(SQLLDR)是Oracle的高速批量数据加载工具,可用于从多种平面文件格式向Oracle数据库加载数据。它可以在极短的时间内加载数量庞大的数据。 两种工作模式: 传统
显示全部