oracle 把原来用户里面的所有数据导出,并重新建立用户,分配表空间,在把用户导入。

只要说出方法来,我在给你加40分。
怎么把用户的所有数据,包含存储过程,序列,表结构和表数据,视图,等等全部信息

楼主您好,其实您说的过程就是一个完整的数据迁移过程,盲目的利用筛选导出数据的方法必然会导致数丢失以及一些索引失效的问题,我可以为您介绍完整的数据迁移过程。

其实操作很简单,利用数据本身具有的DMP导出导入功能,会将原数据库用户下的所有信息以DMP文件的模式全部导出,之后再目标库进行导入即可。

在过程中有以下准备工作和注意事项,我手中有完整的迁移资料,如果有兴趣的话可以和我联系~


    在数据进行DMP导出之前,请首先在目标数据库中建立对应的用户名和表空间,注意,一定要首先规划好目标库的数据环境,进行完整的用户授权,这样才能保证数据数据源完整的进行数据导入。

    对数据源进行数据整理规划,这里一定要注意,在进行数据迁移前首先要在数据源库进行表空间整理规划,不要将数据迁移到目标库后在进行维护,否者后增加大量不必要的工作量。

    在完成上述准备工作后,既可以开始DMP导出操作,打开CMD窗口,输入指令(例):

    exp 源用户名/密码@源数据库名 owner = 源用户名 rows=y compress =n  file=导出目录\I导出文件名.dmp log=日志目录\日志名.log FEEDBACK=100000

    完成导出后,执行导入语句(例):

    --IMP 目标用户名/密码@目标数据库名  fromuser=源用户名 touser=目标用户名  file=dmp文件目录(导入目录)\dmp文件名.dmp log=日志目录\日志名.log FEEDBACK=100000


之后编译失效包,数据即可完成完整的数据迁移。dmp导入法师数据迁移最常见,最高效,安全的方法,是企业工作数据维护的重要方式,楼主可以研究一下。

关于详细的用户建立语句,授权语句,和操作流程等信息比较大,并且数据机械化语句,如果需要的话可以联系我

追问

你好,这样导出的话,只是导出了结构,数据应该没有倒出来,我导出的文件大小只有4K,正常的我库里应该很多数据,您知道怎么样能够连数据一起导出来吗?还是说用这种方法在导入,就可以把原来的数据导入进去?

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-02
数据库不大的话直接用exp 就可以,在导出前,可以查询表空间信息,记录下来,导出dmp文件后,你新建用户,表空间,再把dmp文件导进去,参数可以自己配
查询数据库文件信息的语句:
select * from dba_data_files;
select * from user_tablespaces
exp参数:
关键字 说明(默认)

----------------------------------------------
USERID 用户名/口令
FULL
导出整个文件 (N)
BUFFER 数据缓冲区的大小
OWNER 所有者用户名列表
FILE 输出文件
(EXPDAT.DMP)
TABLES 表名列表
COMPRESS 导入一个范围 (Y)
RECORDLENGTH IO
记录的长度
GRANTS 导出权限 (Y)
INCTYPE 增量导出类型
INDEXES 导出索引 (Y)
RECORD
跟踪增量导出 (Y)
ROWS 导出数据行 (Y)
PARFILE 参数文件名
CONSTRAINTS 导出限制
(Y)
CONSISTENT 交叉表一致性
LOG 屏幕输出的日志文件
STATISTICS 分析对象
(ESTIMATE)
DIRECT 直接路径 (N)
TRIGGERS 导出触发器 (Y)
FEEDBACK 显示每 x 行 (0)
的进度
FILESIZE 各转储文件的最大尺寸
QUERY 选定导出表子集的子句
第2个回答  2013-07-02
直接悬赏50分才有诚意。。。
相似回答