第10章 Oracle数据泵技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章 Oracle数据泵技术
7.估计空间导出文件的空间大小,EXPDP使用 参数ESTIMATE_ONLY计算导出数据所需要的 存储空间,显然这是个有用的参数,在导出的 数据大小不清楚时,事先知道备份文件的大小, 可以提前分配磁盘空间,防止由于磁盘空间不 足而引起的EXPDP导出作业停止。 使用EXPDP导出数据时只计算导出作业所需要 的空间。 F:\>expdp system/oracle@orcl full =y estimate_only=y estimate=statistics nologfile=y
第10章 Oracle数据泵技术
数据泵的目录对象。
数据泵作业在数据库服务器上创建所有的备份文件,而Oracle要求数据 泵必须使用目录对象,以防止用户误操作数据库服务器上特定目录下的 操作系统文件。目录对象对应于操作系统上的一个指定目录。 如果用户需要自己创建目录对象,需要具有CREATE ANY DIRECTORY权 限,如下所示,首先向SCOTT用户授权CREATE ANY DIRECTORY然后创 建属于SCOTT用户的数据泵目录对象。 授权过程: SQL> conn system/oracle@orcl 已连接。 SQL> grant create any directory to scott; 授权成功。
第10章 Oracle数据泵技术
数据泵导入导出操作实例:
3.导出特定的表,此时使用TABLES参数指定导入的表的列表,如果该表 不属于登录的用户,但是登录用户有访问这些表的权限,则在TABLES参 数的表必须使用schema.tablename的方式。 F:\>expdp system/oracle@orcl dumpfile = pump_dir:scott_tables_%u.dat tables=scott.emp,scott.dept nologfile=y job_name=only_scott 4.导出表空间,导出指定表空间使用TABESAPCES参数,如果有多个表空 间需要导出,表空间名使用逗号隔开,这里我们使用了PARALLEL参数, 指定数据导出并行线程数量,与之对应使用替换变量%U来创建相应数量 的备份数据文件,这样每个线程可以独立写一个备份数据文件,提高了 导出速度。 D:\>expdp system/oracle@orcl dumpfile=pump_dir:users_tbs_%u.dmp tablespaces=users filesize=100m parallel=2 logfile=users_tbs.log job_name =exp_users_tbs。
D:\>impdp scott/tiger@orcl dumpfile=pump_dir:MYDB_TBS_USERSANDSYSTEM_ 01.DAT nologfile=y tables= emp table_exists_action=replace
第10章 Oracle数据泵技术
4.导入指定的数据库对象 导入特地的数据库对象使用INCLUDE参数,该 例子中我们从备份文件中恢复SCOTT用户的所 有表和触发器对象,而对于已经存在的表则重 建再加载数据。 D:\>impdp scott/tiger@orcl dumpfile=pump_dir:MYDB_TBS_USERSANDS YSTEM_01.DAT nologfile=y include=table,trigger table_exists_action=replace
第10章 Oracle数据泵技术
数据泵技术是在Oracle10g及以上版本中使用的数据库备份与恢复 技术,是一种更自动化、智能化得数据库备份与恢复工具。
数据泵技术的特点: 1.导入导出速度更快:因为在数据泵导入导出作业中可以启动多 个线程,所以可以并行的实现 作业,对于移动大数据量,性能 显著提高。 2.重启失败的作业:这个功能是传统的EXP/IMP程序无法实现的, 不论是数据泵导入导出作业 停止还是失败,都可以很容易的重 启作业。同时也支持手动停止或重启作业。 3.实时交互能力:在一个运行的数据泵作业中,可以从其他屏幕 或控制终端与当前数据泵作业 交互,以监控作业的执行以及更 改作业的某些参数。
第10章 Oracle数据泵技术
3.导入指定的表 使用IMPDP导入特定的表使用TABLES参数,该参数后 是要导入的表对象的列表,如果有多个表使用,逗号 分隔。我们使用了参数TABLE_EXISTS_ACTION参数, 设置TABLE_EXISTS_ACTION=REPLACE,如果该表存 在则先删除在加载数据。
第10章 Oracle数据泵技术
2.导入表空间 使用IMPDP导入特定的表空间时,需要有备份表空间文件,需要 使用TABLESPACES参数说明要导入的表空间名,此时实际上是导 入表空间中的所有数据库对象,当然这些工作都由IMPDP自己操 作完成,由于表空间中有表对象,如果当前的数据库中的表空间 已有相应的表对象,则最好告诉IMPDP该怎么做,此时需要参数 TABLE_EXITS_ACTION参数,它的默认值为SKIP即如果表已经存 在则跳过。我们建议使用REPLACE或TRUNCATE,前者表示重建 表,后者表示删除掉当前表中的数据,然后使用备份文件中的表 数据进行加载,但是会跳过所有相关元数据。如下例所示。 D:\>impdp system/oracle@orcl dumpfile=pump_dir:MYDB_TBS_USERSANDSYSTEM_01.DAT logfile= tablespaces=users table_exists_action=replace
ห้องสมุดไป่ตู้
第10章 Oracle数据泵技术
数据泵技术特点(续)
4.独立于客户机:因为数据泵技术是基于数据库服务器的,它是 数据库服务器的一部分,一旦 启动数据泵作业,则与客户机无 关。 5.支持网络操作:支持在两个联网的数据库服务器之间导入和导 出数据文件,也支持直接的将 数据从一个数据库导入另一个数 据库,而不需要备份文件。网络操作的方式基于数据库连接 , 在数据库间直接移动数据的方法不需要磁盘存储。 6.导入功能更加细粒度:在数据泵技术中,使用INCLUDE和 EXCLUDE参数使得数据泵实用程序可 以导入或导出更加细粒度 的对象,如可以选择只导出过程或函数等。 7.支持增量备份以及快速增量备份,使得备份的数据量减少加快 了备份速度。
第10章 Oracle数据泵技术
5.只导出数据,使用EXPDP的CONTENT参数, 可以指定导出表数据和元数据(对应参数 ALL),导出表行数据(对应参数DATA_ONLY) 或只导出元数据即表以及其他数据库对象的定 义(对应参数METADATA_ONLY)。 F:\>expdp system/oracle@orcl dumpfile =pump_dir:mydb_dataonly_%u.dat filesize=100m job_name=larry full=y content =data_only logfile =pump_dir:mydb_exp_dataonly_log
第10章 Oracle数据泵技术
数据泵的目录对象(续)。
如果使用SYS用户可以直接创建数据泵目录。
SQL> create directory pump_dir as 'f:\pump';
目录已创建。
我们创建了一目录。该目录可以给其他用户使用,但是必须将读、写该目录的权 限赋予用户,我们可以将该目录的读、写权赋予SCOTT用户,如下所示。
第10章 Oracle数据泵技术
6.使用参数文件:在使用EXPDP导出数据时,由于参数很多导致每次执 行备份都输入一长串指令,这样不但繁琐而且不易修改,Oracle的数据 泵技术允许使用参数文件,用户事先在参数文件中创建各种参数,保存 该文件为praname.par文件,然后在执行导出时使用参数PARFILE指定参 数文件的位置执行导出备份,这样就不用输入一长串参数指令。 首先我们建立参数文件如下: directory =pump_dir dumpfile=para_data_only_%u.dmp content =data_only exclude =table:"in('salgrade','bonus')" logfile=para_data_only.log filesize=50m parallel=2 job_name =para_data_only 保存在文件EXP.PAR内,然后在使用EXPDP备份数据时,可以使用该参数 文件,如下所示。 D:\>expdp scott/tiger@orcl parfile=exp.par
第10章 Oracle数据泵技术
数据泵导入数据库实例: 1.导入整个数据库 导入整个数据库至少需要两个参数,一个是FULL,设 置FULL=Y说明是导入全库,一个是DUMPFILE,说明 要导入的备份文件的目录和名称,当然最好设置 JOB_NAME参数,因为它允许切换到交换模式,允许 终止或重启导入会话。如下所示。 D:\>impdp system/oracle@orcl dumpfile=pump_dir:full_db_%u.dat logfile=myfulldb.log parallel= 3 job_name=my_fulldb_impdp full =y
SQL> grant read on directory pump_dir to scott;
授权成功。
第10章 Oracle数据泵技术
数据泵导入导出操作实例:
1.导出整个数据库,我们使用SYSTEM用户登录数据库,限制备份 的数据文件的大小为100M,一旦备份数据文件满,则自动创建一 个新的备份文件,使用了替换变量%U来实现备份文件的自动创 建,其中NOLOGFILE=Y即不记录备份过程。 F:\>expdp system/oracle@orcl dumpfile = pump_dir:mydb3_%u.dat filesize = 100m nologfile = y job_name =tom full = y。 2.导出一个模式 我们导出SCOTT模式,在下例中没有SCHEMA参数,但是默认导 出登录数据库时的模式对象。 D:\>expdp scott/tiger@orcl dumpfile=pump_dir:scottschema.dmp logfile =pump_dir:scottschema.log
第10章 Oracle数据泵技术
数据泵导入数据库实例。
Oracle数据泵导入实用程序(IMPDP)将备份的数据导入整个数 据库、特定的模式、特定的表或者特定的表空间,使用IMPDP也 可以在不同平台的数据库之间迁移表空间。IMPDP实用程序通过 各种参数支持对数据过滤以及对元数据的过滤,而元数据的过滤 可以有效控制要导入的对象类型,如导入表、索引还是授权等等。 使用数据泵导入实用程序与数据泵导出实用程序一样可以使用 DIRECTORY、PARFILE、DUMPFILE和LOGFILE等参数,但是正如 ADD_FILE是数据泵导出EXPDP实用程序专有的一样,SQLFILE参 数也是数据泵导入IMPDP实用程序所专有的。在执行数据泵导入 作业时,往往需要从备份数据文件中途提取DDL语句,此时需要 使用SQLFILE。