实例和数据库的关系
实例是运行在内存中的一系列进程,用于相应客户端请求,在内存中缓存数据以及与数据库交互等等。而数据库是实际存储数据的组织。
Oracle中一个实例只能对应一个数据库,或多个实例对应一个数据库,这种架构称为RAC--Real Application Cluster。对于每个实例,有一个SID(System ID)来唯一标识,在连接到数据库服务器时需要提供(或者提供service name也可以)。关于SID和Service name的区别可自行搜索。
SQL Server中一个实例可以对应多个数据库,同时一台机器可以按照多个实例。由于同一台机器上的多个实例需要互相区分,因此如果仅安装一个实例则使用默认实例,如果安装多个实例,则需要使用命名实例。
数据存储结构
Oracle中,关于存储的逻辑概念有:
block--由多个IO blocks组成,一般为4或8KB
extent--一段连续的blocks,用于存储特定的信息
segment--由一系列的extents构成,用于存储特定的数据库对象,例如表。每个数据库对象都存储在单独的segment中。需要注意的是segment可以跨多个data file。
tablespace -- 一个数据库有两个tablespace: System tablespace & Data tablespace。每个tablespace可有多个data file,但data file不可跨tablespace,也不可跨磁盘。
关于存储的物理结构有:
IOS block--指磁盘层面的最小读写单元
data file--数据文件,在ios层面可实际观察到的文件
具体请参考:
http://docs.oracle.com/cd/E11882_01/server.112/e40540/logical.htm#CNCPT301
SQL Server中存储的逻辑概念有:
data page--SQL Server存储数据的最小单元,大小为8KB。
extent--8个data pages构成一个extent,因此一个extent的大小为64KB。extent又分为两种,uniform and mixed。通常一个数据库对象由多个uniform extent构成,但当对象足够小的时候,也可以由多个对象共用多个mixed extents。</