说个实际的场景:公司有一个数据库服务器,公司有两个项目(甚至更多)用到这台数据库服务器,在使用mssqlserver2005时,我们就会在数据系统中,为每一个项目建立一个"数据库".当使用oracle时,每建一个"数据库",就会相应的增加服务进程,当这些服务进程多进,系统明显就变得慢了.这在mssqlserver中是不存在的.
请问,oracle中,对于多个项目共一台服务器,又该如何处理?

解决方案 »

  1.   

    可以只建立一个数据库db,用多个schema来表示多个数据库。
    比如项目a用scema a,项目b用schema b。
      

  2.   


    sqlserver中的数据库类似与oracle里的schema,一个oracle的实例中包含多个schema,实例里的每个user对应同名称的schema,每个schema是相互分开的,如果有相应的权限,可以通过schemauser.objectname来进行夸schema的对象的访问。
      

  3.   

    那么,如果mssqlserver中的每个项目一个数据库的话,备份恢复就很简单,可以直接对相应的物理文件复制还原就可以了.但是oracle中如果以schema中区分的话,多个数据库的数据,实际上还是会共同存在那些物理文件上的吧?如果复制文件,就包含了几个项目的数据,而不是一个项目的数据.这是一个方面,还有安全管理等等,相应的操作都复杂了?
    不太理解oracle为何要这样做......
      

  4.   

    Oracle的強大在于事務的處理,不過它的操作確實比較複雜。
    對於不同的schema你可以用不同的datafile來保存,這樣可以實現你說的sqlserver的情況,直接複製文件作為本分。
    不過oracle推薦你用Recovery MANager來做備份與恢復。
      

  5.   

    Oracle里的备份分为库级备份,表空间和数据文件级别的备份,一般Oracle的管理,都会给不同的user做不同的默认表空间,这样通过表空间把不同的schema的对象隔开,同时Oracle也提供了基于库级的恢复,表空间级以及数据文件级的恢复与备份相对应,操作上确实比sqlserver要复杂的多,但是感觉对系统故障的安全性恢复更可靠。同时Oracle也提供exp/imp expdp/impdp这样的备份和迁移的简易方法。
      

  6.   


    在oracle中,可以建多个用户就是schema来解决,一个项目一个用户(可以多个表空间)、多个用户对象,就OK了!
      

  7.   

    在你所说的实际场景中,sqlserver的你说的数据库实际上就是一个项目,大概等同于oracle的schema.而当你说oracle每建一个数据库,会增加服务进程,这里的数据库确是一个新的数据库服务器,需要一个新的数据库实例去挂载它.如果多个项目共一台服务器,oracle是用schema来解决,这也是最普遍的做法.schema中文一般翻译为模式,是一组同属于特定schema的对象的集合,如表,索引,视图,存储过程函数等等.这并不会增加服务进程,因为服务进程在数据库实例启动的时候就已经开启了.
      

  8.   

    SQL SERVER 中的数据库 对应 Oracle 中的 schema, Oracle 中的一个数据库,则是一个instance.
      

  9.   

    Oracle的数据库是分字符集的,如有你要的数据库都是英文状态下的,那你只需要创建一个英文库就可以了,其他的都可以用表空间和用户来代替了
      

  10.   

    ORACLE可以在一台服务器上的一个ORACLE的DBMS中创建多个数据库吗?
    并且单独启动其中的某个数据库,可以吗?
    我就是总不明白这个。
      

  11.   

    Oracle主机上可以建立多个DB instance。一个DB instance 里可以建多个表空间来管理。
      

  12.   

    公司有两个项目(甚至更多)用到这台数据库服务器
    ================================================
    如果是开发或者测试,这样做是可以的。如果是生产数据库,通常不会将多个业务放到一台服务器上,甚至一个数据库
    实例下,这样会互相影响。一个服务器 down 机,会影响多组业务。
      

  13.   

    实际上SQLServer中一个项目也极少用几个数据库的,而且它里面也有schema,称为架构.