我的问题如下:
1、有一台服务器S,操作系统是windows,数据服务器是oracle9i,服务器从不停止运行,但是要每天分析数据库(datab)里面方案wd的数据。
2、为了安全,每天使用exp命令将方案wd里面的数据(表,索引,函数等等)全部备份出来,用imp命令恢复到另一台机器A上分析。3、但是每次恢复之前,由于机器A里面的数据是过时的,我必须将机器A里面数据库datab中方案wd的表,索引函数等等全部删除(删除需要很长的时间),然后用imp命令把备份的dmp文件恢复回去再进行分析。有没有什么办法可以让我在3上面花的时间少一些,最好是不要每次都删除机器A里面方案wd的数据。
或者有没有更好的恢复dmp数据文件的方法。
1、有一台服务器S,操作系统是windows,数据服务器是oracle9i,服务器从不停止运行,但是要每天分析数据库(datab)里面方案wd的数据。
2、为了安全,每天使用exp命令将方案wd里面的数据(表,索引,函数等等)全部备份出来,用imp命令恢复到另一台机器A上分析。3、但是每次恢复之前,由于机器A里面的数据是过时的,我必须将机器A里面数据库datab中方案wd的表,索引函数等等全部删除(删除需要很长的时间),然后用imp命令把备份的dmp文件恢复回去再进行分析。有没有什么办法可以让我在3上面花的时间少一些,最好是不要每次都删除机器A里面方案wd的数据。
或者有没有更好的恢复dmp数据文件的方法。
drop user wd cascade;然后再重建用户wd,最后再导入把这个过程做成脚本或批处理文件执行。
各位继续补充....
不过数据库文件实在是太大了。
在另一台机器上删除整个表空间,重建,导入.我目前就这么干.DELETE 数据会慢死人的.
如果是这样,为何不用standby?
不是正合适吗?
在OPEN状态下不行,除非SHUTDOWN,
COPY 数据文件,控制文件和REDO文件可以,相当于冷备,恢复.
老库里的有的记录,当新库里没有的时候导入后新库里依旧出现。
imp 只能在新库的基础上增加新数据、修改已经存在的数据。
第一次导serverA:
create user [user1] ....
imp [datab]第二次导serverA:
create user [user2] ....
imp [datab]
导入同时或置后执行 drop user [user1] cascade第三次导serverA:
create user [user1] ....
imp [datab]
导入同时或置后执行 drop user [user2] cascade这样就节省了你删用户的时间,user1和user2交替使用,
导1删2,导2删1 ....
oracle imp/exp 帮助
http://www.vcmy.com/article/2006-3-15/127-1.htm应该实现不了,那位能用imp直接实现了别忘了交流一下哈~~~~~
另外我对oracle不太熟悉。
所有的设置都能用Sql来实现的!
表空间的创建一般是用Enterprise Manager Console来实现比较方便,特别是要配置表空间的容量、增量、数据文件等等。但表空间的设置你可以只设置依次,只要不删除表空间即可。
你可以把两个用户user1和user2执行已经设置好的表空间即可。
Drop User user1 cascade;
create user user2 identified by [password] default tablespace [tableSpaceName];
grant dba to user2;
$imp user2/[password]@[connStr] file=c:\XXX.dmp fromuser=[oldUserName] touser=user2 ;
以次类推即可。