SqlServer中如果只有数据库文件.mdf,则能通过附加文件把数据库再挂上,继续使用.
但如果在Oracle中,我只有表空间文件,而且能保证所有的数据全部是在这一个表空间内,我如何才能把这个表空间文件在新安装的Oracle中使用,我试了按同名方式创建一个,再覆盖,可是不管用,查了很多资料也不行.难道Oracle不能这么做吗?

解决方案 »

  1.   

    一般来说不行,因为表空间内的表等对象的数据字典的信息都存储在原来数据库的system表空间中了,且当前数据库的SCN和表空间的数据文件头的SCN不一致除非找些个人或第三方开发的工具或Oracle提供的服务把DBF数据文件中的数据读出来
      

  2.   

    如果说,你把以前的metadata导出来的话,通过使用10G,也有可能可以导入元数据,那就是表空间传输了.当然了,这取决于你的表空间是独立的,自包含的.否则也是不可以的.
      

  3.   

    那要看你有多少数据文件了。如果原系统中所有文件都有,可以覆盖,类似oracle的恢复。
      

  4.   

    感觉Oracle还真是不如SqlServer好用呀.
    我们建用户的时候默认都是user表空间,如果我不新建表空间,就用默认的,当数据很多的时候,不会发生表空间溢出吧,默认的表空间是无限扩大的吗,假设我的硬盘很大.
    我的意思就是以后我就不费力的自建表空间了,就用Oracle默认的,这样不会有问题吧.
      

  5.   

    感觉还是SqlSrver好用,我会做很多项目,这些项目都有自己的库(mdf和ldf文件),我把这些文件都建在和项目一个目录下,这样很多的项目都有各自的数据库,当格式化了操作系统,只要用SqlServer把这些库再挂上就又能用了,根本不用专门做备份.
    像Oracle是不是就得做备份,项目多的时候是很麻烦的.
    哎,真想不通为什么用户都觉得Oracle好.