实例→表空间→用户→表

(一)一个运行着的数据库程序就是一个实例(SID/Instance_name)(一台主机上可以运行多个数据库)

实例是操作系统中访问数据库所需要的一系列的进程和内存的集合。即使没有任何数据文件,实例也可以启动。但是要想访问数据库,必须把数据库文件加载进实例中。实例和数据库的区别可以简单概括为:实例是临时的,它只在相关的进程和内存集合存在时存在,而数据库是永久的,只要文件存在它就存在。一个实例只能对应一个数据库,但是一个数据库可以由多个实例对应(如RAC)。RAC就是多个实例同时打开一个数据库文件的系统,在结构上是多台机器,每台机器运行一个实例,每个实例都打开同一个数据库 (这个是用磁盘共享技术实现的),这些实例之间需要同s步高速缓存,这样保证多个实例是完全一致的,不会相互冲突乃至覆盖。

1,数据库实例名(instance_name:用于和操作系统之间的联系。 操作系统与数据库之间的交互则必须使用数据库实例名。数据库安装完成后,数据库实例名称存储在参数文件中,同时存储在注册表中。 

数据库名与实例名一般是一一对应的关系,即:有一个数据库名就有一个实例名,而在oracle9i的并行服务器结构中是一对多的关系,即:一个数据库对应多个实例。 
■ 对数据名称的查询: 
查询参数文件 instance_name的数值 
select instance_name from v$instance 
SQL>show parameter instance_name 
 
2,操作系统环境变量(oracle_sid):用于与数据库实例名相对应。instance_name是oracle数据库参数 -oracle_sid是操做系统环境变量,即在操作系统要得到实例名必须通过操做系统环境变量oracle_sid,oracle_sid与 instance_name必须相同。 
是数据库和操作系统的接口,由操作系统使用,是操作系统区分多个数据库的依据。oracle_sid存储在注册表中。如果数据库的oracle_sid与实际的instance_name不同,在操作系统下运行的oracle所有命令将产生错误。 
■ 对数据实例名的定义: 
SQL>set oracle_sid=数据库实例名 

(二)一个实例下可以分配多个表空间(namespace)

(三)一个表空间下可以建立多个用户(User)

(四)默认会在建用户的同时为该用户建一个同名的schema

(五)一个用户下可以有多张

(六)SERVICE_NAME

    1,SERVICE_NAME是oracle8i新引进的,8i之前,一个数据库只能由一个实例对应,但是随着高性能的需求,并行技术的使用,一个数据库可以由多个实例对应了,比较典型的应用如RAC。为了充分利用所有实例,并且令客户端连接配置简单ORACLE提出了SERVICE_NAME的概念。该参数直接对应数据库,而不是某个实例。

    2,service_name是这个数据库对外宣称的名字,外面的人要想连接我这个数据库,你就在客户端的连接串里写上service_name。它就像一个部门的名字,这个部门的名称在看门大爷(listener)那里有登记,看门大爷一看你是要找SERVICE_NAME这个部门,就告诉你我们公司确实有这个部门,于是你就找到了,连接就建立了。

(七)JDBC 的三种方式

格式一:jdbc:oracle:thin:@//<host>:<port>/<service_name>
格式二:jdbc:oracle:thin:@<host>:<port>:<SID>
格式三:jdbc:oracle:thin:@<TNSName>

参考内容

1, 一个运行着的数据库程序就是一个实例(电脑上可以运行多个数据库).实例就像一个大仓库.由于仓库太大,我们租给不同的企业,每个企业根据自身的需求划定仓库的一片区域,这片区域称为表空间.企业允许员工在自己这片区域的仓库的房间内放自己的东西.每位员工只有一个房间,当放上你的一件东西后这个房间就属于你,并且以你的名字自动命名.你就是用户,而房间就是方案(schema).你可以在你的房间(方案)里置办不同的器具放不同类的东西如:鞋柜 衣橱 床等等(这些对应着表 索引 视图 触发器等等).你在这些器具里面放的具体的东西比如鞋子 衣服就是数据了.

2, https://www.cnblogs.com/hllnj2008/p/4031683.html

posted @ 2020-05-15 18:05  快看,阳光!  阅读(394)  评论(0编辑  收藏  举报