听说oracle和MS server 不同,在MS server 中,如开发一个新网站,新工程要用数据库,就要新建一个数据库与之对应。
但在oracle中,听说不用新建数据库,新建一个用户、方案就可以,新建数据库也可以。 不知道大家的通常是如何做的?
新建数据库和新建用户、方案有什么优缺点?谢谢!

解决方案 »

  1.   

    新建用户(user),会自动形成一个方案(shema)
      

  2.   

    oracle是一个database,多个实例,如果是另建一个新的项目,建议新建一个instance,
    这样当这个实例如果坏掉,不影响其它实例,如果多个项目在一个实例上,虽然用户不同,
    但实例坏掉,影响太多
      

  3.   

    oracle 是以表空间的概念来定义的. 表空间相对于MS SERVER的DATABASE。 ORACLE的表空间可以迁移, 特别是9I以后做可传输表空前迁移就很快了。 所有的表当然会放在表空间里。 schema 不叫方案. 中文的翻译很烂, schema 是一组对象的集合, 一般一个用户下的所有对象我们吧他理解成一个集合叫schema, 很多时候叫一个用户也叫一个SCHEMA, 这个看场合使用.  理解了这些, 那后面就简单了, 如果要开发一个全新的需求, 可以建一个行的表空间, schema和以前的完全独立.  当然,内存区域还是共享一个区域. 有了独立的表空间, 从物理上来看是和别的空间独立的。 当然很多时候做一个需求不会只建一个表空间, 很可能会针对对应的需求建立多个表空间。 不同的表空间可以因为设置的物理参数不同, 性能也完全不一样。 很久不用ms server和mysql了,个人对这种模式,没有太多的意见, 每个数据库都有自己的管理方式。 不过相对起来ORACLE的管理方式更复杂。 权限构架更加的细化。 楼上的兄弟, 说建议建立一个新的实例来独立开来, 这个意见个人是不推荐的, HA不是这么搞的,99%的时间内2个实例会一起占用资源,  所以2个实例会在一个机器上影响这个资源的分配。 除非用RAC。 不过由于物理DATAFILE都是共享的, 其实也没什么大区别了。 除非用RESOURCE MANAGER给用户分配资源的使用额度。 这些都是在一个INSTANCE里作的。这个没太必要. 上面泛泛而谈了一把。那对你来说其实很简单1. 先建立表空间
    create tablespace NEW_TBS datafile '...............' size 100M autoextend on maxsize 10G extent management local uniform size 10M segment space management auto;2. 然后建立schema, 
    create user NEW_PROJECT identified by [PASSWORD]  default tablespace NEW_TBS quota unlimited on NEW_TBS;3.记得给权限, 权限不够的情况下再给, 不推荐吧DBA权限给这个用户。
    conn / as sysba
    grant connect to NEW_PROJECT;
    grant resource to NEW_PROJECT;4. 登录开始作操作
    sqlplus  NEW_PROJECT/NEW_PROJECT
    create table .....
    delete ...
    select...