oracle 删除dmp文件

zhang568745144 2010-01-13 05:55:53
本人刚初接触oracle
我的oracle是在系统Solaris系统下安装的。
我朋友已经把/home/jbns目录下的一个dmp文件导入到数据库中了。
可当我来导入的时候,却说报错,00019错误,
是数据重复的错误。
我想那么如何把oracle的bin目录下的dmp文件删除掉呢。这个文件里面有200张表。9.2G
我现在想把这个bin目录下的dmp文件删除掉重新再导入。那么就不会有重复数据的错误出现了。
请大家指点迷津。
我现在一头的雾水。

想覆盖也盖不了。
导入又出错。
白忙活了两天。
帮帮小弟,小弟感激不尽。
...全文
796 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
傻儿哥 2010-01-14
  • 打赏
  • 举报
回复
导入所用的imp版本号>=导出所用的exp版本号。
否则会有问题。
exp的语法结构。
|||||||||||||||||||||||||||||||||||||||||||
正常模式
exp cdfs/7226631 file='/oradata/cdfs.dmp' full=y

1.在生产机器上把数据导出
exp cdfs/7226631 file='/oradata/cdfs.dmp' owner=cdfs

2.在备份机器上建立相关用户,表空间,赋予相应权限
用oem建立相关的用户,表空间,做赋予权限工作
如果是全库,要给用户赋予
exp_full_database
import_full_database
这样,用户在做全库备份还原的时候才不会出错。

3.在备份机器上做import操作
imp userid=cdfsxt/cdfsxt@cdcz02 fromuser=cdfsxt touser=cdfsxt file='/oradata/cdfsxt.dmp'
全库备份的话,敲这个命令
imp userid=cdfsxt/cdfsxt@cdcz02 full=y file='/oradata/cdfsxt.dmp'

4.exp/IMP,以及在9i下用SYS用户来执行exp/IMP时,都需要使用SYSDBA才可。我们可以使用下面方式连入exp/IMP:

exp "'sys/sys as sysdba'" file=1.dmp tables=gototop.t rows=n
exp "'sys/oracle as sysdba'" file='/home/oracle/bakup.dmp' full=y

xu841027 2010-01-14
  • 打赏
  • 举报
回复
帮顶
SambaGao 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 csucxcc 的回复:]
导入所用的imp版本号>=导出所用的exp版本号。
否则会有问题。
exp的语法结构。
|||||||||||||||||||||||||||||||||||||||||||
正常模式
exp cdfs/7226631  file='/oradata/cdfs.dmp' full=y

1.在生产机器上把数据导出
exp cdfs/7226631  file='/oradata/cdfs.dmp'  owner=cdfs 

2.在备份机器上建立相关用户,表空间,赋予相应权限
用oem建立相关的用户,表空间,做赋予权限工作
如果是全库,要给用户赋予
exp_full_database
import_full_database
这样,用户在做全库备份还原的时候才不会出错。

3.在备份机器上做import操作 
  imp userid=cdfsxt/cdfsxt@cdcz02  fromuser=cdfsxt touser=cdfsxt file='/oradata/cdfsxt.dmp'
全库备份的话,敲这个命令
imp userid=cdfsxt/cdfsxt@cdcz02  full=y file='/oradata/cdfsxt.dmp'

4.exp/IMP,以及在9i下用SYS用户来执行exp/IMP时,都需要使用SYSDBA才可。我们可以使用下面方式连入exp/IMP:

exp "'sys/sys as sysdba'" file=1.dmp tables=gototop.t rows=n
exp "'sys/oracle as sysdba'" file='/home/oracle/bakup.dmp' full=y


[/Quote]
..
zhang568745144 2010-01-13
  • 打赏
  • 举报
回复
问题是我在导入的时候出现了数据重复的错误。
然而在oracle的bin目录下有个dmp文件。
我在jbns用户下还有个同样的dmp文件。
不知道我将bin下面的dmp导出的话,那些数据还在不在。
现在就是这个数据重复困扰了我一天。
人要疯了。
fly2749 2010-01-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhang568745144 的回复:]
本人刚初接触oracle
我的oracle是在系统Solaris系统下安装的。
我朋友已经把/home/jbns目录下的一个dmp文件导入到数据库中了。
可当我来导入的时候,却说报错,00019错误,
是数据重复的错误。
我想那么如何把oracle的bin目录下的dmp文件删除掉呢。这个文件里面有200张表。9.2G
我现在想把这个bin目录下的dmp文件删除掉重新再导入。那么就不会有重复数据的错误出现了。
请大家指点迷津。
我现在一头的雾水。

想覆盖也盖不了。
导入又出错。
白忙活了两天。
帮帮小弟,小弟感激不尽。
[/Quote]
你为什么要把dmp文件删除掉呢,这个文件应该是你导入时需要的导入文件,你只需把特定的库或用户删除掉就可以,这个可以通过dbca实现
1、提供了oracle数据库备份脚本,导出dmp文件 2、定时任务由操作系统提供的支持,在操作系统中设置定时任务,由操作系统定期执行脚本 3、补充。压缩包脚本有点问题,不能删除旧的备份文件。需要自动删除历史备份文件请用最新脚本: @echo off @echo ================================================ @echo windows环境下Oracle数据库的自动备份脚本 @echo 说明:启动备份时,需要配置以下变量 @echo 1、BACKUP_DIR 指定要备份到哪个目录 @echo 2、ORACLE_USERNAME 指定备份所用的Oracle用户名 @echo 3、ORACLE_PASSWORD 指定备份所用的Oracle密码 @echo 4、ORACLE_DB 指定备份所用的Oracle连接名 @echo 5、BACK_OPTION 备份选项,可以为空,可以为full=y,可以为owner=a用户,b用户 等等.... @echo 6、RAR_CMD 指定RAR命令行压缩工具所在目录 @echo ================================================ rem 以下变量需要根据实际情况配置 set BACKUP_DIR=D:\tools\oracle_bak\backup230 set ORACLE_USERNAME=PLATADMIN set ORACLE_PASSWORD=123456 set ORACLE_DB=ORCL set BACK_OPTION=owner=PLATADMIN set RAR_CMD="D:/Program Files/WinRAR/Rar.exe" rem for /f "tokens=1,2" %%a in ('date/t') do set TODAY=%%a rem set BACK_NAME=%ORACLE_DB%_%TODAY%(%time:~0,2%时%time:~3,2%分)_ set BACK_NAME=%Date:~0,4%%Date:~5,2%%Date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2% set BACK_FULL_NAME=%BACKUP_DIR%/%BACK_NAME% rem 开始备份 exp %ORACLE_USERNAME%/%ORACLE_PASSWORD%@%ORACLE_DB% %BACK_OPTION% file="%BACK_FULL_NAME%.dmp" log="%BACK_FULL_NAME%exp.log" rem 压缩并删除原有文件 %RAR_CMD% a -df "%BACK_FULL_NAME%back.rar" "%BACK_FULL_NAME%.dmp" "%BACK_FULL_NAME%exp.log" rem 删除15天前的备份文件 forfiles /p %BACKUP_DIR% /s /m *.rar /d -15 /c "cmd /c del @file"

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧