Oracle10g系统管理18

76.EXP和IMP是客户端工具程序,既可以在客户端使用,也可以在服务器端使用。
EXPDP和IMPDP是服务器端工具程序。

 

77.expdp工具的命令行选项
content:指定要导出的内容,默认值为ALL
directory:指定转储文件和日志文件所在的位置,目录对象是使用create directory语句建立的对象
dumpfile:指定转储文件的名称
expdp scott/tiger directory=dump dumpfile=a.dmp content=metadata_only
exclude:指定执行导出操作时要排除的对象类型或相关对象
expdp scott/tiger directory=dump dumpfile=a.dmp exclude=view
filesize:指定导出文件的最大尺寸,默认值为0(表示文件尺寸无限制)
flashback_scn:指定导出特定scn时刻的表数据
flashback_time:指定导出特定时间点的表数据
flashback_scn和flashback_time不能同时使用
expdp scott/tiger directory=dump dumpfile=a.dmp flashback_scn=385823
expdp scott/tiger directory=dump dumpfile=a.dmp flashback_time="to_timestamp('25-08-2010 14:35:00','DD-MM-YYYY HH24:MI:SS')"
full:指定数据库导出模式,默认值为N,为Y时,表示执行数据库导出
expdp scott/tiger directory=dump dumpfile=full.dmp full=y
expdp help=y :显示导出选项的帮助信息
logfile:指定导出日志文件的名称
expdp scott/tiger directory=dump dumpfile=a.dmp logfile=a.log
network_link:指定数据库链名。如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项
expdp scott/tiger directory=dump dumpfile=a.dmp network_link=orcl
expdp scott/tiger dumpfile=dump:a.dmp nologfile=y
parallel:指定导出操作的并行进程个数,默认值为1
expdp scott/tiger directory=dump dumpfile=a.dmp parallel=3
parfile:指定导出参数文件的名称
parm.txt
 tables=detp,emp
 directory=dump
 dumpfile=tab.dmp
expdp scott/tiger parfile=d:\dump\parm.txt
schemas:指定执行方案模式导出,默认为当前用户方案
expdp system/manager directory=dump dumpfile=a.dmp schemas=scott,system
tablespaces:指定要导出的表空间列表,将一个或多个表空间的所有对象及数据存储到存储文件中
expdp system/manager directory=dump dumpfile=a.dmp tablespaces=user01
transport_tablespaces:指定执行表空间模式导出
expdp system/manager directory=dump dumpfile=b.dmp transport_tablespaces=user01

 

调用EXPDP
首先建立DIRECTORY对象,并且需要为数据库用户授予使用DIRECTORY对象的权限
conn system/management
create directory dump_dir as '/tmp/dump';
grant read,write on directory dump_dir to scott;

 

要求具有DBA角色或EXP_FULL_DATABASE角色
导出表
expdp scott/tiger directory=dump_dir dumpfile=tab.dmp tables=dept,emp
导出方案
expdp system/management directory=dump_dir dumpfile=schema.dmp schemas=system,scott
导出表空间
expdp system/management directory=dump_dir dumpfile=tablespace.dmp tablespaces=user01,user02
导出数据库,不会导出SYS,ORDSYS,ORDPLUGINS,CTXSYS,MDSYS,LBACSYS及XDB等方案的对象
expdp system/management directory=dump_dir dumpfile=full.dmp full=y

 

78.impdp所特有的命令行选项
remap_datafile:将源数据文件名转变为目标数据文件名
impdp scott/tiger full=y directory=dump dumpfile=full.dmp
remap_datafile='DB1$:tbs6.f':'/db1/hrdata/payroll/tbs6.f'
remap_schema:将源方案的所有对象装载到目标方案中
impdp system/manager directory=dump dumpfile=tab.dmp remap_schema=scott:system
remap_tablespace:将源表空间的所有对象导入到目标表空间中
impdp system/manager directory=dump dumpfile=tab.dmp remap_tablespace=user01:user02
reuse_datafiles:指定建立表空间时是否覆盖已存在的数据文件,默认值为N
impdp system/manager directory=dump dumpfile=tab.dmp reuse_datafiles=y
skip_unusable_indexes:指定导入时是否要跳过不可使用的索引,默认值为N
table_exists_action:指定当表已经存在时导入作业要执行的操作,默认值为SKIP,SKIP|APPEND|TRUNCATE|REPLACE
transport_datafiles:指定搬移表空间时要被导入到目标数据库的数据文件
impdp system/manager directory=dump dumpfile=tts.dmp transport_datafiles='/user01/data/tbs1.f'
transport_tablespace:指定要搬移的表空间名


调用IMPDP
导入表
impdp scott/tiger directory=dump_dir dumpfile=tab.dmp tables=dept,emp
impdp system/management directory=dump_dir dumpfile=tab.dmp tables=scott.dept,scott.emp remap_schema=scott:system
导入方案
impdp scott/tiger directory=dump_dir dumpfile=schema.dmp schemas=scott
impdp system/management directory=dump_dir dumpfile=schema.dmp schemas=scott remap_schema=scott:system
导入表空间
impdp system/management directory=dump_dir dumpfile=tablespace.dmp tablespaces=user01
导入数据库
impdp system/management directory=dump_dir dumpfile=full.dmp full=y

79.使用EXPDP和IMPDP搬移表空间
V$TRANSPORTABLE_PLATFORM显示在哪些OS平台之间搬移表空间
select platform_name from v$transportable_platform;

 

搬移表空间具有一些限制
源数据库和目标数据库必须具有相同的数据库字符集和民族字符集
通过查询数据字典视图NLS_DATABASE_PARAMETERS
DBA用户可以取得数据库字符集NLS_CHARACTERSET和民族字符集NLS_NCHAR_CHARACTERSET
不能搬移SYSTEM表空间和SYS用户对象所在的表空间
初始化参数compatible设置为10.0以上

 

确定自包含表空间集合(Self-Contained Tablespace Sets)
自包含表空间集合是指具有关联关系的表空间集合。搬移表空间时,如果连个表空间之间存在关联关系,必须同时搬移这两个表空间。

 

检查USERS表空间是否为自包含表空间集合
execute sys.dbms_tts.transport_set_check('users',true)
select * from sys.transport_set_violations;
查询transport_set_violations返回了违反自包含表空间集合规则的详细错误信息

生成要搬移的表空间集合
alter tablespace users read only;
expdp system/management directory=dump_dir dumpfile=transport.dmp transport_tablespaces=users

传送转储文件和数据文件到目标数据库
cp或copy命令
cp ...users.dbf ...users.dbf

插入表空间到目标数据库
impdp system/management@orcl directory=dump_dir dumpfile=transport.dmp
transport_datafiles=....users.dbf remap_schema=scott:hr

alter tablespace users read write;

 

80.当使用传统导出工具EXP时,导出表使用TABLES选项,导出方案使用OWNER选项,导出数据使用FULL=Y选项
   exp scott/tiger@prod file=tab.dmp tables=dept,emp
   exp system/manager@prod file=scott.dmp owner=scott
   exp system/manager@prod file=prod.dmp full=y
使用IMP导入表
   imp scott/tiger@prod file=tab.dmp tables=dept,emp
使用IMP导入方案,需要指定FROMUSER选项
   imp system/manager@prod file=scott.dmp fromuser=scott
使用IMP导入数据库,指定FULL=Y选项
   imp system/manager@prod file=prod.dmp full=y


表空间传输是8i新增加的一种快速在数据库间移动数据的一种方法,是把一个数据库上的格式数据文件附加到另外一个数据库中,传输表空间移动数据就像复制文件一样快。

 

使用EXP和IMP搬移表空间
alter tablespace users read only;

生成要搬移的表空间集合
exp system/management transport_tablespace=y tablespaces=users file=a.dmp

传送转储文件和数据文件到目标数据库
使用cp或copy命令
插入表空间到目标数据库
imp system/management transport_tablespace=y file=a.dmp datafiles=...users.dbf
alter tablespace users read write;

exp transport_tablespace=y tablespaces=test file=d:/test.dmp

imp transport_tablespace=y datafiles='D:/oracle/oradata/testdbtest.dbf' tablespaces=test file=d:/test.dmp

你可能感兴趣的:(oracle10g)