高分请教一下,oracle中的所说"数据库"和mssql中所说的"数据库"到底有何不同? 说个实际的场景:公司有一个数据库服务器,公司有两个项目(甚至更多)用到这台数据库服务器,在使用mssqlserver2005时,我们就会在数据系统中,为每一个项目建立一个"数据库".当使用oracle时,每建一个"数据库",就会相应的增加服务进程,当这些服务进程多进,系统明显就变得慢了.这在mssqlserver中是不存在的.请问,oracle中,对于多个项目共一台服务器,又该如何处理? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以只建立一个数据库db,用多个schema来表示多个数据库。比如项目a用scema a,项目b用schema b。 sqlserver中的数据库类似与oracle里的schema,一个oracle的实例中包含多个schema,实例里的每个user对应同名称的schema,每个schema是相互分开的,如果有相应的权限,可以通过schemauser.objectname来进行夸schema的对象的访问。 那么,如果mssqlserver中的每个项目一个数据库的话,备份恢复就很简单,可以直接对相应的物理文件复制还原就可以了.但是oracle中如果以schema中区分的话,多个数据库的数据,实际上还是会共同存在那些物理文件上的吧?如果复制文件,就包含了几个项目的数据,而不是一个项目的数据.这是一个方面,还有安全管理等等,相应的操作都复杂了?不太理解oracle为何要这样做...... Oracle的強大在于事務的處理,不過它的操作確實比較複雜。對於不同的schema你可以用不同的datafile來保存,這樣可以實現你說的sqlserver的情況,直接複製文件作為本分。不過oracle推薦你用Recovery MANager來做備份與恢復。 Oracle里的备份分为库级备份,表空间和数据文件级别的备份,一般Oracle的管理,都会给不同的user做不同的默认表空间,这样通过表空间把不同的schema的对象隔开,同时Oracle也提供了基于库级的恢复,表空间级以及数据文件级的恢复与备份相对应,操作上确实比sqlserver要复杂的多,但是感觉对系统故障的安全性恢复更可靠。同时Oracle也提供exp/imp expdp/impdp这样的备份和迁移的简易方法。 在oracle中,可以建多个用户就是schema来解决,一个项目一个用户(可以多个表空间)、多个用户对象,就OK了! 在你所说的实际场景中,sqlserver的你说的数据库实际上就是一个项目,大概等同于oracle的schema.而当你说oracle每建一个数据库,会增加服务进程,这里的数据库确是一个新的数据库服务器,需要一个新的数据库实例去挂载它.如果多个项目共一台服务器,oracle是用schema来解决,这也是最普遍的做法.schema中文一般翻译为模式,是一组同属于特定schema的对象的集合,如表,索引,视图,存储过程函数等等.这并不会增加服务进程,因为服务进程在数据库实例启动的时候就已经开启了. SQL SERVER 中的数据库 对应 Oracle 中的 schema, Oracle 中的一个数据库,则是一个instance. Oracle的数据库是分字符集的,如有你要的数据库都是英文状态下的,那你只需要创建一个英文库就可以了,其他的都可以用表空间和用户来代替了 ORACLE可以在一台服务器上的一个ORACLE的DBMS中创建多个数据库吗?并且单独启动其中的某个数据库,可以吗?我就是总不明白这个。 Oracle主机上可以建立多个DB instance。一个DB instance 里可以建多个表空间来管理。 公司有两个项目(甚至更多)用到这台数据库服务器================================================如果是开发或者测试,这样做是可以的。如果是生产数据库,通常不会将多个业务放到一台服务器上,甚至一个数据库实例下,这样会互相影响。一个服务器 down 机,会影响多组业务。 实际上SQLServer中一个项目也极少用几个数据库的,而且它里面也有schema,称为架构. ORACLE GROUP BY进行多字段分组的问题 100分求帮忙设计一个表结构! 当Oracle数据文件或者日志文件丢失时,可采用的措施 什么是OS备份? 如何在c#中知道表中哪个字段不可为空呢? 急!weblogic8如何存储ORACLE10g里的clob字段?在线等待! server的存储过程怎么转成oracle的 next_day命令的使用 有关于oracle数据文件大小的问题 一个小问题!请高人指点一下,不盛感谢,在线等候(立即给分^_^^_^)! [SOS 急急急] oracle日志文件被误删,怎么办哪? linux中网络配置,测试时不能更改密码.
比如项目a用scema a,项目b用schema b。
sqlserver中的数据库类似与oracle里的schema,一个oracle的实例中包含多个schema,实例里的每个user对应同名称的schema,每个schema是相互分开的,如果有相应的权限,可以通过schemauser.objectname来进行夸schema的对象的访问。
不太理解oracle为何要这样做......
對於不同的schema你可以用不同的datafile來保存,這樣可以實現你說的sqlserver的情況,直接複製文件作為本分。
不過oracle推薦你用Recovery MANager來做備份與恢復。
在oracle中,可以建多个用户就是schema来解决,一个项目一个用户(可以多个表空间)、多个用户对象,就OK了!
并且单独启动其中的某个数据库,可以吗?
我就是总不明白这个。
================================================
如果是开发或者测试,这样做是可以的。如果是生产数据库,通常不会将多个业务放到一台服务器上,甚至一个数据库
实例下,这样会互相影响。一个服务器 down 机,会影响多组业务。