由于Oracle接触的比较少,对这方面的概念比较模糊,现在问题是这样的。服务器上有个oracle的库,测试机上有个oracle库,字段什么都一样,但是测试机上的数据好久没更新了,许多功能没法测。现在想把服务器上的数据导入到测试机上。用的是一般的exp命令。
我在服务器上用exp导出,在测试机上还原的时候要先把测试机上的实例,或者数据库删除完成后再导吗?如何删除?
------解决方案--------------------
只要建个空的用户和表空间,就可以用 imp导入了
------解决方案--------------------
1.首先将测试机上的用户drop掉
2.创建一个与服务器一样的用户名
3.用imp导入,若是导入不行有错误,请用:imp 用户名/密码 file=文件所在目录(如:d:\test.dmp) owner =用户名/密码
------解决方案--------------------
一般一个数据库里都要有几百个表吧 你一个一个的delete?
我们一般都是直接删用户 然后重新导入
删用户时,用户下边的表 函数 存储过程等内容都会级联删除的 否则oracle内部的垃圾数据也太多了 这个楼主可以放心 oracle公司不是吃素的
------解决方案--------------------
是的,大数据确实得用你说的方法搞
------解决方案--------------------
我给个详细步骤吧,之前维护的是别人银行的数据库。
1、先删除原先用户下的所有数据
egg:sql>drop user your_name cascade; //cascade记得加上
2、重新建立用户
egg:sql>create user your_name identified by your_pwd default tablespace your_tablesapce temporary tablespace temp;
//默认表空间就是你新建的表空间
3、用户授权
egg:sql>grant dba to your_name;//测试所以用的dba,权限自己斟酌
4、如果是全库导出dmp更简单。对于新手直接上截图
5、好了,按照上图大致完成了,最后的被涂鸦的用户名,一定要是你导出时使用的用户名
------解决方案--------------------
drop user username cascade;可删除该用户下的所有对象...
------解决方案--------------------
oracle的数据库的话,直接弄个plsql吧,这样对新手来说操作起来更容易,也不容易出错
不用删除你原来的数据库,直接创建一个用户,在这个用户下面导入你新的数据就行了
------解决方案--------------------
imp username/password@dbname file=file_catal.dmp
------解决方案--------------------
不建议你逐张表的导数据,太麻烦了。你直接导方案(用户)就行了。
------解决方案--------------------
你加一个cascade,就会把该用户底下的所有表等对象都级联删除了,然后再建一个相同的用户,imp导进来就可以了。之前用exp导出来的表,已经包括了你之前的那些表结构了,,所以imp之前drop用户把表也删除是正确的啦
------解决方案--------------------
imp前清理所有文件数据,然后再进行对应用户的imp