1
逻辑导入 备份方法:
在主机服务器的DOS提示符下输入:
EXP USERID=ZLHIS/HIS BUFFER=4096 FILE=D:\\20040101.dmp LOG=D:\\20040101.log OWNER=(ZLHIS) ROWS=Y INDEXES =Y CONSTRAINTS =Y GRANTS=Y DIRECT=N 表示只导出zlhis用户的数据对象 Buffer:该值越大,导出的时间略短。 File:表示导出的dmp的文件路径 Log:表示导出的日志文件路径 其余参数可以通过exp help=y查询。 2
逻辑导出
在主机服务器的DOS提示符下输入:
IMP USERID=ZLHIS/HIS FROMUSER=(ZLHIS) TOUSER=(ZLHIS) BUFFER=30720 FILE=D:\\20040101.dmp LOG=D:\\20040101.log ROWS=Y INDEXES=Y CONSTRAINTS =Y GRANTS =Y SHOW=N COMMIT =Y IGNORE=Y 表示只导入zlhis用户的数据对象 Buffer:该值越大,导入的时间略短。 File:表示导入的dmp的文件路径 Log:表示导入的日志文件路径
Ignore:Oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore参数的设置来决定如何操作。若ignore=y,Oracle不执行CREATE TABLE语句,直接将数据插入到表中,如果插入的记录违背了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。若ignore=n,Oracle不执行CREATE TABLE语句,
同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。 其余参数可以通过imp help=y查询。 3
工作小技巧
执行imp命令时,切记不要在工作站上导入数据到服务器。以免在导入过程中,万一与服务器数据库断开连接造成导入错误。导入imp一定到在服务器上执行,dmp文件也只能放在服务器本地磁盘。 4
自动逻辑备份
通过编写dos命令脚本生成批处理命令文件,然后在主机服务器上添加计划任务来实现。 备份方法:
在任何磁盘上根目录下新建bak文件夹,在bak文件夹中新建week0.dmp,将下面的dos命令复制到新建txt中,把x:\\修改为实际的路径,然后将*.txt命令为zlautoexp.bat批处理文件。
@ECHO OFF IF EXIST X:\\bak\\WEEK0.DMP X:\\oracle\\product\\10.2.0\\db_1\\BIN\\Exp.exe userid=sys/his buffer=4096 file=X:\\bak\\WeekBak0.dmp grants=y full=y IF EXIST X:\\bak\\WEEK1.DMP X:\\oracle\\product\\10.2.0\\db_1\\BIN\\Exp.exe userid=sys/his buffer=4096 file=X:\\bak\\WeekBak1.dmp grants=y full=y IF EXIST X:\\bak\\WEEK2.DMP X:\\oracle\\product\\10.2.0\\db_1\\BIN\\Exp.exe userid=sys/his buffer=4096 file=X:\\bak\\WeekBak2.dmp grants=y full=y IF EXIST X:\\bak\\WEEK3.DMP X:\\oracle\\product\\10.2.0\\db_1\\BIN\\Exp.exe userid=sys/his buffer=4096 file=X:\\bak\\WeekBak3.dmp grants=y full=y IF EXIST X:\\bak\\WEEK4.DMP X:\\oracle\\product\\10.2.0\\db_1\\BIN\\Exp.exe userid=sys/his buffer=4096 file=X:\\bak\\WeekBak4.dmp grants=y full=y IF EXIST X:\\bak\\WEEK5.DMP X:\\oracle\\product\\10.2.0\\db_1\\BIN\\Exp.exe userid=sys/his buffer=4096 file=X:\\bak\\WeekBak5.dmp grants=y full=y IF EXIST X:\\bak\\WEEK6.DMP X:\\oracle\\product\\10.2.0\\db_1\\BIN\\Exp.exe userid=sys/his buffer=4096 file=X:\\bak\\WeekBak6.dmp grants=y full=y
IF EXIST X:\\bak\\WEEK6.DMP REN X:\\bak\\WEEK6.DMP WEEK7.DMP
IF EXIST X:\\bak\\WEEK5.DMP REN X:\\bak\\WEEK5.DMP WEEK6.DMP IF EXIST X:\\bak\\WEEK4.DMP REN X:\\bak\\WEEK4.DMP WEEK5.DMP IF EXIST X:\\bak\\WEEK3.DMP REN X:\\bak\\WEEK3.DMP WEEK4.DMP IF EXIST X:\\bak\\WEEK2.DMP REN X:\\bak\\WEEK2.DMP WEEK3.DMP IF EXIST X:\\bak\\WEEK1.DMP REN X:\\bak\\WEEK1.DMP WEEK2.DMP IF EXIST X:\\bak\\WEEK0.DMP REN X:\\bak\\WEEK0.DMP WEEK1.DMP IF EXIST X:\\bak\\WEEK7.DMP REN X:\\bak\\WEEK7.DMP WEEK0.DMP
@ECHO ON
如下图:注意修改路径。
然后在控制面板的计划任务添加zlautoexp的计划任务执行时间,根据用户的需求来调整备份时间,使用administrator用户必须给该用户添加密码。 或者在dos命令提示符下输入以下命令可以实现自动备份: at 2:00 /every:m,t,w,th,f,s,su \"X:\\bak\\zlautoexp.bat\"
时间每周七天自动备份文件路径
同理在zlautoexp中添加主机字符串,同样可以在工作站上实现异地自动逻辑备份。 添加自动备份任务:保证服务里Task Scheduler打开,而且在命令提示符中输入的自动备份命令完全是在后台自动执行,前台不会出现任何提示 5
数据泵导入导出
SQL> Create directory TEST as 'd:\est'; SQL> Grant read,write on directory TEST to system; 查看数据库中已创建的directory的两个视图: SELECT * FROM ALL_DIRECTORIES; SELECT * FROM dba_DIRECTORIES; 然后在目标磁盘下手工创建文件夹d:\est
数据泵导出
数据泵导出的方法有多种,这里我们只介绍两种: 单个用户方案导出
Expdp[用户名]/[密码]@[主机字符窜]schemas=[用户名] dumpfile=X.dmp logfile=X.log directory=TEST 数据库全库导出
Expdp[用户名]/[密码]@[主机字符窜] full=y dumpfile=X.dmp logfile=X.log directory=TEST 数据泵导入
按以上导出方式: 单个用户方案导入
impdp[用户名]/[密码]@[主机字符窜]schemas=[用户名] dumpfile=X.dmp
logfile=X.log directory=TEST_EXPDPignore=y 数据库全库导入 impdp
system/his@orcl
full=y
dumpfile=X.dmp
logfile=X.log
directory=TEST_EXPDPignore=y 6
drop directory test 删除目录
因篇幅问题不能全部显示,请点此查看更多更全内容