oracle实例、schema,以及多租户方案

本文探讨了Oracle数据库中的实例与schema概念,并详细介绍了Oracle的多租户解决方案,帮助读者理解如何在大型企业环境中高效管理数据库资源。
写这篇博客的起源,是前几天讨论我们的一个应用如何实现多租户,引发一些思考,在此记录一下

场景是这样的,我们的应用是企业应用,所以与互联网应用有先天的区别。互联网应用,比如淘宝、新浪微博等,面向的是终端用户,天然必须是多用户共享一个系统

而我们的应用面向的是项目,目前是单个应用支撑单个项目。如果需要支撑多个项目,会用部署多个应用的方式来解决

但是随着接入项目数量增多,一个项目必须部署一套应用,硬件成本也随之上升,最终就给一线成本带来压力。为了降低项目成本,产品规划开始往多租户发展,即单个应用服务多个项目



ORACLE的基本结构如上图:

数据库:本质上就是文件的集合,RDBMS的各种表,最终是以数据文件(.ora等)的方式保存的

实例:进程和内存的集合。oracle客户端不能直接操作数据库的数据文件,而是通过实例来操作。实际上oracle client和实例,构成了C/S的关系

schema:schema是oracle特有的概念,和user是一一对应的。表和索引等,不会直接挂载在数据库下,而是挂载在不同的schema下

表:就是应用程序最经常打交道的数据库表

打一个比方来说明:

数据库就是一座公寓,所有的东西都在公寓里面。然后实例就是这座公寓的管理处,外面的人不能直接跟公寓打交道,需要通过管理处来打交道。一个实例只能加载一个数据库,但是在RAC环境下,一个数据库可以被多个实例同时加载

公寓里有很多房间,这些房间就是schema。每个房间都有一个主人,这个主人就是user。主人和房间是一一对应的。所有的表、索引等,都是房间里的家具,不属于公寓,而是属于具体的房间

schema.table,才是一张表的唯一标识。有点像JAVA里的类标识,一个类名并不能唯一标识一个class,而是跟ClassLoader组合在一起,C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值