oracle dump



oracle dump

数据导出

按库

将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中

   exp system/[email protected] file=d:\daochu.dmp full=y
   exp system/[email protected] file=/home/oracle/dump_bak/20120814_all.dmp full=y

按用户

将数据库中system用户与sys用户的表导出

exp imap/[email protected] file=/home/bigzhu/imap.dmp owner=imap
   
   exp cust/[email protected] file=/home/bigzhu/cust.dmp owner=(cust)
   
   exp system/[email protected] file=d:\daochu.dmp owner=(system,sys)
   
   exp cust/[email protected] file=/home/bigzhu/cust.dmp owner=(cust)
   
   exp cust/[email protected] file=/home/bigzhu/cust.dmp owner=(cust)
   
   exp cust/[email protected] file=/home/bigzhu/cust_20101118.dmp owner=cust

   exp tax/[email protected] file=tax_20101216.dmp owner=tax

按表名

将数据库中的表inner_notify、notify_staff_relat导出 exp aichannel/[email protected] file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)

错误

ORACLE 错误 6550

用高版本的oracle 来 导低版本的 oracle +++按表字段 4 将数据库中的表table1中的字段filed1以”00”打头的数据导出 exp system/[email protected] file=d:\daochu.dmp tables=(table1) query=\” where filed1 like ‘00%’\”

上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩. 也可以在上面命令后面 加上 compress=y 来实现. +++导出表结构 注意dump表结构imp占用巨大表空间问题 exp acct/[email protected] file=/acct/acct.dmp owner=acct rows=n compress=n exp comm/[email protected] file=/acct/comm.dmp owner=comm rows=n compress=

exp comm/[email protected] file=/acct/comm.dmp COMPRESS=N owner=comm rows=N

不能用高版本的客户端(10g)连9i的数据库来导出,否则就是exp失败

数据的导入

imp bh/[email protected]_ORCL  file=/home/bigzhu/bh.dmp full=y IGNORE=Y

imp imap/[email protected]  file=/home/bigzhu/imap.dmp full=y IGNORE=Y

imp sys/[email protected]_ORCL  file=/home/bigzhu/imap_all_db.dmp full=y IGNORE=Y

imp comm/[email protected]  file=/home/bigzhu/comm.dmp full=y IGNORE=Y
imp acct/[email protected]  file=/home/bigzhu/acct.dmp full=y 
imp tax/[email protected]  file=/home/bigzhu/tax_20101216.dmp full=y 
imp cust/[email protected]  file=/home/bigzhu/tax_20101216.dmp full=y 

$ORACLE_HOME/bin/imp invoice/[email protected] file=/app/invoice/tax_20101216.dmp full=y

imp aichannel/[email protected] full=y file=file= d:\data\newsmgnt.dmp ignore=y 上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入. 在后面加上 ignore=y 就可以了.

2 将d:\daochu.dmp中的表table1 导入 imp system/[email protected] file=d:\daochu.dmp tables=(table1)

基本上上面的导入导出够用了.不少情况要先是将表彻底删除,然后导入.

注意: 操作者要有足够的权限,权限不够它会提示. 数据库时可以连上的.可以用tnsping TEST 来获得数据库TEST能否连上.

附录一: 给用户增加导入数据权限的操作 第一,启动sqlpuls 第二,以system/manager登陆 第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略) 第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE, DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字 第五, 运行-cmd-进入dmp文件所在的目录, imp userid=system/manager full=y file=.dmp 或者 imp userid=system/manager full=y file=filename.dmp

执行示例: F:\Work\Oracle_Data\backup>imp userid=test/test full=y file=inner_notify.dmp

屏幕显示 Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006 © Copyright 2000 Oracle Corporation. All rights reserved.

连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production With the Partitioning option JServer Release 8.1.7.0.0 - Production

经由常规路径导出由EXPORT:V08.01.07创建的文件 已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入 导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换) . 正在将AICHANNEL的对象导入到 AICHANNEL . . 正在导入表 “INNER_NOTIFY” 4行被导入 准备启用约束条件… 成功终止导入,但出现警告.

附录二: Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的. 先建立import9.par, 然后,使用时命令如下:imp parfile=/filepath/import9.par 例 import9.par 内容如下: FROMUSER=TGPMS
TOUSER=TGPMS2 (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)
ROWS=Y INDEXES=Y GRANTS=Y CONSTRAINTS=Y BUFFER=409600 file==/backup/ctgpc_20030623.dmp log==/backup/import_20030623.log