oracle中几个概念

ORACLE中DB_NAME,DB_DOMAIN,GLOBAL_DBNAME,SERVICE_NAME,ORACLE_SID,INSTANCE_NAME,SCHAME概念。以前对这些概念有接触,但一直没有完全理解,今天整理下。数据库

DB_NAME:数据库名称,数据库的惟一标识。它出如今数据文件、控制文件、日志文件中。只能由字母、数字、’_’、’#’、’$’组成,并且最多8个字符。它对于单机数据库是足够,但在多个数据库构成的分布式数据库中,数据库名称可能同样,为了不形成管理上的混乱,因此引入了DB_DOMAIN的概念。服务器

DB_DOMAIN:定义一个数据库所在的域,该域的命名同互联网的’域’没有任何关系,只是数据库管理员为了更好的管理分布式数据库而根据实际状况决定的。固然为了管理方便,能够将其等于互联网的域。 网络

GLOBAL_DBNAME:全局数据库名,缺省值为DB_NAME.DB_DOMAIN。出如今Listener.ora文件中,是服务器提供的服务名,能够经过show paramerer service_names查看,并能够经过alter system set service_name='servicename' scope=both来修改。oracle

SERVICE_NAME:用ORACLE_SID来表示标识数据库的一个实例,可是在Oracle的并行环境中,一个数据库对应多个实例,这样就须要多个网络服务名,设置繁琐。为了方便并行环境中的设置,引进了SERVICE_NAME参数,该参数对应一个数据库,而不是一个实例,并且该参数有许多其它的好处。该参数的缺省值为DB_NAME.DB_DOMAIN,即等于GLOBAL_DBNAME。一个数据库能够对应多个SERVICE_NAME,以便实现更灵活的配置。该参数与ORACLE_SID没有直接关系,即没必要SERVICE_NAME 必须与ORACLE_SID同样。在有数据库域名时,是GLOBAL_DBNAME,没有数据库域名时是DB_NAME。dom

ORACLE_SID:数据库操做系统标识(oracle system identifier),由SGA(内存缓冲)和后台进程构成。在分布式数据库系统里,全局数据库名是db_name.db_domain;若是是单数据库咱们经常就是只有db_name,这时oracle_sid=db_name。分布式

INSTANCE_NAME:oracle实例名称,用来区分不一样的实例。在Oracle9i以前,该名字存储在两个地方:参数文件和数据库的内部试图(V$INSTANCE)。而在Oracle10g以后的版本中,该名字再也不出如今参数文件中,而是动态从系统中得到,默认是取自ORACLE_SID。ide

SCHAME:命名空间,数据库对象的集合,如table、index、view等,一个schema中的对象名称必须惟一。schema是基于用户的,建立了一个用户就建立了一个同名的schema。布局

TABLESPACE:表空间是实际存储数据的地方。经过使用表空间,管理员能够控制磁盘的布局,表空间的最经常使用的做用是优化性能。例如:一个最经常使用的索引能够创建在很是快的硬盘上而不太经常使用的表能够创建在便宜的硬盘上,好比用来存储用于进行归档文件的表,因此table和index通常须要创建在不一样的表空间上。一个tablespace能够有多个schema。性能

相关文章
相关标签/搜索