用户之间imp的问题

简介: 今天同事说申请了一个从生产导出的dump文件,需要导入测试库进行测试。之前做的基本都是本库导出,本库导入的操作,例如:imp test/***@test tables=tbl_fuel file=H:\dev\data\tbl_fuel.dmp ignore=y这样的指令操作。
今天同事说申请了一个从生产导出的dump文件,需要导入测试库进行测试。
之前做的基本都是本库导出,本库导入的操作,例如: imp test/***@test tables=tbl_fuel file=H:\dev\data\ tbl_fuel.dmp ignore=y这样的指令操作。
今天的情况是从一个库的用户导出dump,然后导入到另外一个库的用户中。

导出:
exp p_x/**  FILE=tables.dmp TABLES=e.pre_ldp,e.tbl_flight log=tables.log rows=y

几种错误的导入:
imp test/***@test tables=(tbl_a,tbl_b) file=tables.dmp log=test.log full=y
提示:
IMP-00024: Only one mode (TABLES, FROMUSER, or FULL) can be specified
TABLES、FROMUSER和FULL参数只能使用一个

imp test/***@test file=tables.dmp log=test.log ignore=n
提示:
Warning: the objects were exported by P_X, not by you
import done in ZHS16CGB231280 character set and AL16UTF16 NCHAR character set
import server uses ZHS16GBK character set (possible charset conversion)
export client uses ZHS16GBK character set (possible charset conversion)
export server uses UTF8 NCHAR character set (possible ncharset conversion)
IMP-00031: Must specify FULL=Y or provide FROMUSER/TOUSER or TABLES arguments
IMP-00000: Import terminated unsuccessfully
FULL=Y、FROMUSER/TOUSER和TABLES参数必须指定其中之一

imp test/***@test  file=tables.dmp log=test.log ignore=n fromuser=user ouser=test
提示:
Warning: the objects were exported by P_X, not by you
import done in ZHS16CGB231280 character set and AL16UTF16 NCHAR character set
import server uses ZHS16GBK character set (possible charset conversion)
export client uses ZHS16GBK character set (possible charset conversion)
export server uses UTF8 NCHAR character set (possible ncharset conversion)
IMP-00034: Warning: FromUser "USER" not found in export file
Import terminated successfully with warnings.
说明From User "USER"不包含在dump文件中。但通过这种方式可以找到是哪个用户使用exp导出的这份dump文件

imp test/***@test file=tables.dmp log=test.log ignore=n tables=tbl_a
提示:
Warning: the objects were exported by P_X, not by you
import done in ZHS16CGB231280 character set and AL16UTF16 NCHAR character set
import server uses ZHS16GBK character set (possible charset conversion)
export client uses ZHS16GBK character set (possible charset conversion)
export server uses UTF8 NCHAR character set (possible ncharset conversion)
. importing P_X's objects into TEST
IMP-00033: Warning: Table "TBL_A" not found in export file
说明TBL_A表并不在导出的dump中,个人认为,因为这里未使用FROMUSER这些参数,默认就是dump中包含的数据是从本地test用户的,因此这会报错


imp test/***@test file=tables.dmp log=test.log ignore=n fromuser=e touser=test(未建立表结构)
imp test/***@test file=tables.dmp log=test.log ignore=y fromuser=e touser=test(已建立表结构)
这里表示删除了表后,ignore=n,dump的来源是e这个schema或用户,导入到这个测试test用户下

当然,由于test用户没有导出库的一些角色,因此如下这些权限操作可能会失败,但不影响使用这些测试。
IMP-00017: following statement failed with ORACLE error 1917:
 "GRANT UPDATE ON "TBL_A" TO "B_E""

参数:
fromuser具体指定那个用户下的对象需要导入,所以如果这里使用p_x,会报错,因为表不在p_x用户下。
touser具体指定导入那个用户,该参数必须跟fromuser一起使用。
show在屏幕显示文件内容,具体不会做导入操作。
ignore忽略导入过程中创建对象的错误(确保数据能够导入),但不会忽略写入数据的错误(如导入的数据跟当前表里的数据有违反唯一性约束的错误)。
commit该参数为Y时,导入的过程会提交数据行,若buffer设置得太小,则会过去频繁的提交数据,对性能有一定的影响。使用commit还有一个好处,就是做测试数据导入时,如果有些错误未插入数据库,使用commit后会将符合的记录commit提交,不会导致整个导入操作回滚,因为毕竟是做测试,多一些少一些数据问题不是很大。
full导入整个文件。
tables导入表名列表,多个表名,逗号分隔。
rows该参数为Y的时候将导入数据,默认是导入数据。但出于某种原因可以将该参数设置成N即不导入数据行。
目录
相关文章
|
SQL Oracle 关系型数据库
探秘Oracle表空间、用户、表之间的关系
 之前的DRP项目虽然用到了oracle,但是所有数据库对象的建立都是按文档来的,并没有仔细思考总结,后面再次用到oracle时,不能再那么糊里糊涂的用了,得稍微探索一下下了,究竟这些oracle中的数据库对象之间都存在什么关系呢?
探秘Oracle表空间、用户、表之间的关系
|
10月前
|
Oracle 关系型数据库
【Oracle】建立关联三个表的视图
【Oracle】建立关联三个表的视图
|
Linux
linux驱动开发--copy_to_user 、copy_from_user函数实现内核空间数据与用户空间数据的相互访问
<strong><u>设备读操作</u></strong><br><p>如果该操作为空,将使得read系统调用返回负EINVAL失败,正常返回实际读取的字节数</p> <p><strong>ssize_t (*read)(struct file *filp, char __user *buf, size_t  count, lofft *f_pos);</strong><br><span
11676 0
|
SQL 监控 Oracle
Oracle 12c之后CDB上创建公共用户无法访问PDB 上v$session表内容
Oracle 12c CDB模式下,创建公共用户,登录到CDB,无法查看PDB下一些表的信息,如v$session,登录到具体PDB才能看到,这篇文章将介绍如何给公共用户授权解决这个问题。
1592 0
|
存储 监控 Oracle
Oracle数据库实例、用户、表、表空间之间关系
数据库:   Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。   其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是Oracle就只有一个大数据库。
2108 0
|
SQL Oracle 关系型数据库
[20180328]不要在sys建立用户对象.txt
[20180328]不要在sys建立用户对象.txt --//好几年前遇到的问题,开发安装UTL_DBWS在linux下遇到问题,最后选择winows下安装. --//随着业务增加,无法支撑,需要数据库组迁移到linux下,也就是我当时的安装笔记: --//http://blog.
958 0
|
数据库 网络协议 关系型数据库