用Oracle 10g Data Pump重组表空间

Oracle 10g版本对数据输入与输出的操作功能进行重新设计,在输入或输出工作中增加断开和连接的功能。对这些功能做微小改动,就可利于DBA表空间的操作。

作为整体单元输出表空间

过去的输出和输入功能有3种模式:依赖于对象输出,如索引的单个表格;输出某个用户所有的对象;输出整个数据库。但是表空间是一个难于处理的问题。不同用户的对象存储在给定的表空间中,但是某些对象可能存储在其它表空间。

因此,唯一的解决方法则是使用查询数据字典查找列表及其从属主,然后使用“table-mode export”输出单个整体单元。

Oracle 10g版本中,由于包含输出“Data Pump”(expdp),可以直接从表空间输出所有对象。TABLESPACES参数允许指定需要输出的表空间。

TABLESPACES=name [,...]

如果数据库继承很多基于字典的表空间,以上方法显得更加非常有用。并且,可在本地重新创建表空间而减少碎片,然后再重新导入内容。

在输入时重命名数据文件名

如果将数据库从一平台转移到另一平台,在数据文件导入之前,DBA需要预先创建表空间。为什么呢?因为在转储文件中包含原始数据库操作系统格式的数据文件路径,将转储文件输入到其他操作系统时,则有可能产生错误。

在Oracle 10g版本的输入(impdp)功能,其REMAP_DATAFILE参数可重命名数据文件,以消除以上问题。其格式如下:

REMAP_DATAFILE=source_datafile:target_datafile

这一选项只作用于FULL输入,并且指定的userID必须为IMP_FULL_DATABASE。

输入时更改表空间名称

Impdp功能允许向不同的表空间加载对象。在10g版本出现以前,这一操作非常复杂。首先,因为没有写操作权限,必须移除原始表空间的限额,然后再设置表空间。

再输入过程中,原始表空间中的对象可以存储在设置后的表空间中。当任务完成后,必须进行将表空间恢复到原来状态。

在10g输入中,REMAP_TABLESPACE参数设置使得这一工作大大简化。只需要对目标表空间进行限额,而不需要其他条件。设置参数的格式如下:

REMAP_TABLESPACE=source_tablespace:target_tablespace

时间: 2024-08-04 04:02:31

用Oracle 10g Data Pump重组表空间的相关文章

探索ORACLE之RMAN_07整个业务表空间丢失恢复

探索ORACLE之RMAN_07整个业务表空间丢失恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com   1.     整个业务表空间丢失恢复 注意:以下的所有实验,都是基于上面的全库备份来做的恢复. 2.1 删除wwl表空间的所有数据文件 [root@wwldb ~]# cd /DBData/WWL/ [root@wwldb WWL]# rm -rf wwl* [root@wwldb WWL]#

命令行中使用oracle命令创建数据库和表空间

本文详细介绍命令行中使用oracle命令创建数据库和表空间 1.使用超级用户登录sqlplus. 2.创建表空间: SQL> create tablespace test 2 datafile 'D:\oracle\oradata\test\test.dbf' 3 size 100M autoextend on next 10M maxsize unlimited extent management local; 3.创建用户和密码: SQL> create user Username ide

Oracle学习(一)表空间和区

1.表空间:表空间是数据库的逻辑划分,一个表空间只属于一个数据库.每个表空间由一个或多个 数据文件组成. 表空间中其他逻辑结构的数据存储在这些数据文件中.在Oracle安装完成后,会自动建立多个表空间 , 主要有: (1)System表空间:该表空间用于存放Oracle系统内部表和数据字典的数据,如表名.列名.用户 名等. (2)undo表空间:该表空间是存储撤销信息的表空间.当用户对数据库表进行修改(insert, update,delete)时, Oracle会自动使用undo表空间来临时存

Oracle Database 10g:改善的表空间管理

oracle 表空间管理得到了重大的改进,这可以归因于一个 sparser SYSTEM.为用户定义一个默认表空间的支持.新的 SYSAUX.甚至重命名 您曾经多少次因用户在 SYSTEM 表空间中创建了非 SYS 和 SYSTEM 的段而伤透脑筋? 在 Oracle9i Database 之前,如果在创建用户时没有指定默认表空间,那么它将默认为 SYSTEM 表空间.如果用户在创建一个段时没有显式地指定一个表空间,那么这个段将在 SYSTEM 中创建-前提是用户在 SYSTEM 表空间中拥有配

oracle数据库错误ORA-01157: cannot identify/lock data file导致表空间无法online

朋友和我聊到一个案例,一个表空间本来有一个数据文件(已经有大量数据进入),然后他加入7个数据文件,这个时候他发现他加多了文件,想删除这些数据文件,可是又不怎么懂数据库,直接offline 表空间,然后rm掉相关数据文件,最后表空间无法online.我对其场景进行了模拟恢复测试,使用bbed和dul对其进行恢复 模拟场景表空间有一个数据文件,里面有数据,然后加入一个新数据文件,进入offline tbs,然后rm数据文件 offline表空间后,该表空间存在的数据文件也会offline  代码如下

Oracle在不同平台间表空间迁移

平台环境:   1.源库:         Windows Service 2003 SP2 x86         Oracle Service 10.2.0.4 x86    2.目标库          Redhat Linux   5.5  X64          Oracle Service 10.2.0.5    3.检查目标数据库的系统环境 /G'xLC*M.D!zH!_&d206744233.检查目标系统环境O,[`Qf%s20674423内存大小:M:Y@8Z0sV20674

Oracle技术:手动实现表空间基于时间点的恢复

实验说明: (1)先创建2个表空间. create tablespace user01 datafile '/opt/oracle/oradata/ocp/user01.dbf' size 1M; create tablespace user02 datafile '/opt/oracle/oradata/ocp/user02.dbf' size 1M; (2)在每个表空间上各创建一张表. create table scott.customers (cust_id int,cust_name v

oracle逻辑结构(1)表空间概述

1. 表空间(tablespace) 表空间是数据库中的基本逻辑结构,一系列数据文件的集合.一个表空间可以包含多个数据文件, 但是一个数据文件只能属于一个表空间. 查询表空间: SQL>select * form dba_data_files; 查询表空间的空闲信息: SQL>select * from dba_free_space; SQL>alter tablespace ***? offline; 限制表空间大小: SQL>alter user *** quota ***m

Oracle Bigfile Tablespace大文件表空间

  Oracle表空间Tablespace是逻辑结构的最高层次,其他分别对应段对象segment.区extent和块block.而物理层面的Oracle数据库是通过一系列的文件构成,其中数据文件datafile是与Tablespace进行对应的对象.     Tablespace与Datafile的关系是一对多的关系.一个表空间Tablespace可以对应多个Datafile,Datafile则是只能归属在一个Tablespace里.传统的Oracle管理概念中,倡导一个表空间中创建多个数据文件