ITPub博客

首页 > Linux操作系统 > Linux操作系统 > exp_imp实战

exp_imp实战

原创 Linux操作系统 作者:zhangshengdong 时间:2012-06-11 18:10:57 0 删除 编辑
导出操作:
第一步:首先进入sqlplus客户端,以sysdba进入
sqlplus "/as sysdba"
第二步:查看你要导入的数据表和对应的owner
select owner,table_name from dba_tables where table_name like 'T_BAIDU%';
查看得出是:zhangsd
第三步:连接到你所属的zhangsd用户里面
conn zhangsd/zhangsd
第四步:查看zhangsd用户下的表,哪些是你要导入的
select * from tab;
select * from tab where tname like 'XXXXX%';
第五步:exp语句
exp zhangsd/zhangsd@ORACLE9I  direct=y recordlength=65532 buffer=20480000 file=D:
\dump\%date:~0,10%_baike.dmp log=D:\dump\%date:~0,10%_baike.log tables=
(T_BAIDU_DOC,T_BAIDU_DOC_CATEGORY,T_BAIDU_DOC_CATEGORY_OLD,T_BAIDU_DOC_HIS,T_BAIDU
_DOC_HISBAK,T_BAIDU_DOC_INNERLINK,T_BAIDU_DOC_TITLE,T_BAIDU_DOC_UPPER,T_BAIDU_DOC_
UPPER_ALL,T_BAIDU_TITLE_UPPER_MINUS)
参数解释:
direct 直接路径,这个有别于传统模式,基本上是用来加速oracle的导出操作,跳过不必要
的数据转换,直接将记录返回到客户端,直接写入到文件中。
file  写入文件的dmp
log   记录日志
buffer 设置最大缓存,加速exp速度
recordlength IO记录的最大长度,减少IO读写的次数,加速exp速度
tables 要导出的表

导出完毕后,要再进行测试,看你的导出的dmp是否可用。

导入操作:
第一步:查看源数据段,用户和表对应的表空间,(我这里有个lob字段,它直接独立存储在
一个空间里面了)
查看语句:
select username,default_tablespace from user_users;
select table_name,tablespace_name from user_tables;
在本地建立相应的表空间,进行测试(大家可以根据情况相应设置)
create tablespace BAIDU_DOC
logging
datafile 'F:\app\zsd\oradata\oracle11g\BAIDU_DOC.dbf'
size 32m
autoextend on
next 32m maxsize 20480m
extent management local;
 
create tablespace GAIBAN_DATA
logging
datafile 'F:\app\zsd\oradata\oracle11g\GAIBAN_DATA.dbf'
size 32m
autoextend on
next 32m maxsize 20480m
extent management local;
 
create user BAIDU_DOC identified by BAIDU_DOC
default tablespace BAIDU_DOC
 
create user zhang identified by zhang
default tablespace BAIDU_DOC
 
grant connect,resource to zhang;
 
grant imp_full_database to zhang;
 
imp语句
imp zhang/zhang@oracle11g recordlength=65532 buffer=20480000 fromuser=zhangsd
touser=zhang file=F:\2012-06-11_baike.dmp log=F:\2012-06-11_baike.log
 
最后,如果是windows 2003写,每天都做一个备份,然后只保留一个星期的策略脚本:
exp.bat:
 
@echo off
exp daiqi/daiqidaiqi@ORACLE9I  direct=y recordlength=65532 buffer=20480000
file=D:\dump\%date:~0,10%_baike.dmp log=D:\dump\%date:~0,10%_baike.log tables=
(T_BAIDU_DOC,T_BAIDU_DOC_CATEGORY,T_BAIDU_DOC_CATEGORY_OLD,T_BAIDU_DOC_HIS,T_BAIDU
_DOC_HISBAK,T_BAIDU_DOC_INNERLINK,T_BAIDU_DOC_TITLE,T_BAIDU_DOC_UPPER,T_BAIDU_DOC_
UPPER_ALL,T_BAIDU_TITLE_UPPER_MINUS)
 
rm.bat:
 
forfiles /p "d:\dump" /m *.dmp /d -7 /c "cmd /c del @path"
 
在wins下,把两个脚本放置到任务计划中,每天凌晨2点和3点分别执行:
linux的定期执行可使用crontab。删除的七天之前的脚本要使用find命令。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26446098/viewspace-732489/,如需转载,请注明出处,否则将追究法律责任。

下一篇: rzsz有关问题
请登录后发表评论 登录
全部评论

注册时间:2011-11-18

  • 博文量
    25
  • 访问量
    73826