linux增加imp命令 linux imp命令( 三 )


3.如果是写在参数文件中,则连接字符串需要用双引号了:USERID="sys/change_on_install@instance as sysdba"
10.表空间传输(建议:10g以上使用,但我试了在9i没有找到相对应的检查表空是否传输的语句,10g 支持跨平台的表空间传输)
注意:
l.索引在待传输表空间集中而表却不在 。(注意,如果表在待传输表空间集中,而索引不在并不违反自包含原则,当然如果你坚持这样传输的话,会造成目标库中该表索引丢失) 。
2.分区表中只有部分分区在待传输表空间集(对于分区表,要么全部包含在待传输表空间集中,要么全不包含) 。
3.待传输表空间中,对于引用完整性约束,如果约束指向的表不在待传输表空间集 , 则违反自包含约束;但如果不传输该约束,则与约束指向无关 。
4.对于包含LOB列的表,如果表在待传输表空间集中,而Lob列不在,也是违反自包含原则的 。
a.查看表空间包含那些XML文件
select distinct p.tablespace_name
from dba_tablespaces p, dba_xml_tables x, dba_users u, all_all_tables t
where t.table_name = x.table_name
and t.tablespace_name = p.tablespace_name
and x.owner = u.username
b.检测一个表空间是否符合传输标准的方法:
SQLexec sys.dbms_tts.transport_set_check('tablespace_name',true);
SQLselect * from sys.transport_set_violations;
c.简要使用步骤
1.设置表空间为只读(假定表空间名字为APP_Data 和APP_Index)
SQLalter tablespace app_data read only;
SQLalter tablespace app_index read only;
2.发出EXP 命令
SQL host exp userid='''sys/password as sysdba''' transport_tablespace=y
tablespaces=(app_data, app_index)
以上需要注意的是:(或则参考我自己写的 表空间导入和导出例题)
·为了在SQL中执行EXP,USERID 必须用三个引号,在UNIX 中也必须注意避免"/"的使用
·在816 和以后,必须使用sysdba 才能操作
·这个命令在SQL中必须放置在一行(这里是因为显示问题放在了两行)
3.拷贝.dbf数据文件(以及.dmp 文件)到另一个地点,即目标数据库可以是cp(unix)或copy(windows)或通过ftp 传输文件(一定要在bin方式)
4.把本地的表空间设置为读写
$ alter tablespace app_data read write;
$ alter tablespace app_index read write;
5.在目标数据库附加该数据文件 (直接指定数据文件名)
(表空间不能存在,必须建立相应用户名或者用fromuser/touser)
$ imp file=expdat.dmp userid=”””sys/password as sysdba”””
transport_tablespace=y datafiles=(“c:/app_data.dbf,c:/app_index.dbf”)
tablespaces=app_data,app_index tts_owners=hr,oe
6.设置目标数据库表空间为读写
$ alter tablespace app_data read write;
$ alter tablespace app_index read write;
11.优化IMP/EXP的速度(修改参数配置文件)
EXP:
加大large_pool_size,可以提高exp 的速度
采用直接路径的方式(direct=y),数据不需要经过内存进行整合和检查.
设置较大的buffer,如果导出大对象 , 小buffer 会失败 。
export文件不在ORACLE 使用的驱动器上,不要export到NFS 文件系统
UNIX环境:用管道模式直接导入导出来提高imp/exp 的性能
IMP:
建立一个indexfile , 在数据import完成后在建立索引
将import 文件放在不同的驱动器上
增加DB_BLOCK_BUFFERS
增加LOG_BUFFER
用非归档方式运行ORACLE:ALTER DATABASE NOARCHIVELOG;
建立大的表空间和回滚段,OFFLINE 其他回滚段 , 回滚段的大小为最大表的1/2
使用 COMMIT=N
使用ANALYZE=N
单用户模式导入
UNIX环境:用管道模式直接导入导出来提高imp/exp 的性能

推荐阅读