-
数据库和实例
数据库,是信息的物理存储,是磁盘上看的见的物理文件。
实例,是服务器上运行的软件,表现为一大块内存和一系列后台进程。
如图所示:
一个数据库可以有多个实例(在RAC架构中),但一个实例属于且仅属于一个数据库。在单实例环境中,实例和数据库是一对一的。
首先,如图,打开实例,分配一系列内存空间,和启动一系列的后台进程
然后,在挂在和打开数据库:
对于单实例架构,如上图,一个实例对应一个数据库:
通过视图或参数查询实例信息:
通过视图或参数查询数据库信息:
默认情况,他们的名字是一样的。但完全不是一回事,instance_name 实例名称,可以通过参数修改。而db_name则不能随意修改,它被记录在数据文件,控制文件和日志文件中,它标识着这些文件是作为一个数据库整体的一致性存在。每个文件标记着db_name,意味着它们是一个组织单元,一起组成一个完成的数据库。所以db_name不能轻易修改。
操作系统通过instance_name去找到参数文件,然后找到需要的实例。 而实例通过db_name,找到一系列文件,这些文件一起完整组成一个数据库。
而对于RAC架构,如图,多个实例,对应一个数据库。
通过视图或参数查询实例:
节点1:
节点2:
名称是不一样的。
通过视图或参数查询数据库:
节点1:
节点2:
两个节点的数据库名称db_name,是一样的。 因为它们是共享一套数据库。
我们不能像操作文件系统的文件一样,直接修改访问数据库,必须通过实例去访问。
数据库是相对静态的,它是一个孤岛。而实例就是通往孤岛的航船。
上面说到数据库和实例的区别和联系。下面分别说明。
2. 数据库
上面说到,数据库是磁盘上一系列的物理文件,这些文件不是杂乱堆放的,上面说的DB_NAME就像是一根线,把它们串联起来。仅仅串联起来,还不能撑起一个庞大系统。所以,他们是有结构的,也就是存储结构。而存储结构又分物理结构和逻辑结构。
(1)物理存储结构
简而言之,就是划分了哪些文件,它们在物理上是怎么存储的,以及它们分别的作用是什么。
最重要的就是三大关键文件:数据文件,控制文件,在线重做日志文件。
如图:
非关键文件包括:
参数文件, 密码文件,归档日志文件,告警文件,跟踪文件,备份文件
【数据文件】:最基础的文件,存储 数据库的实际数据。 逻辑数据库结构(例如表和索引)的业务数据是物理存储在数据文件中的。维护数据结构信息的数据字典,用于实现多用户并发的回滚段等也都存储在数据文件中。
查询数据文件:
【块】: 而数据文件是由Oracle数据库的数据块组成,如图:
数据库实例根据用户的操作和需要,以Oracle数据库块为单位,将数据读入内存中。,同样,实例也会根据需要将数据库块从内存中写入磁盘中的数据文件。而数据库块由磁盘上操作系统的数据块组成。
查询 块 大小:
块 大小 是一次读或写操作的最小数据量。 一般情况下,OLTP系统,每次提取的数据较少,更小的块可能更为合适,Oracle不会因为传输大块而浪费资源。对于OLAP,每次操作,动辄上百万的数据行,使用较大的数据块则更为合适。
【数据文件首部】,数据文件的第一个数据块,为数据文件首部。它记录了维护整个数据库完整性的关键信息。像上面提到的DB_NAME 就记录在里面。还一个重要的信息,检查点结构(SCN)。
SCN,是一个逻辑时间戳,记录了改动该数据文件的最后时刻。对于数据库的恢复,至关重要。
DB_NAME 只是串联起控制文件,数据文件,重做日志文件,是它们作为一个整体。而SCN就是让它们保持步调一致,在前进的过程中,标记自己的时间坐标。
待续....
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69915315/viewspace-2641671/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/69915315/viewspace-2641671/