一、安装
安装过程中的几个关键点:全局数据库名、系统标识符(SID,实例名)、服务器参数文件(SPFILEXXX(实例名).ORA)。
监听器的配置: server\NETWORK\ADMIN 文件夹下的参数文件(listener.ora,tnsnames.ora)。


二、Oracle 体系结构

1、实例
实例是后台进程和内存结构的集合,必须启动实例才能访问数据库中的数据,一个实例只能打开并使用一个数据库。
实例启动时,将分配一个系统全局区(SGA)并启动一系列的后台进程,每个后台进程执行不同的任务。


2、数据库
Oracle 数据库物理上指一组操作系统文件(数据文件),逻辑上指数据库创建后的逻辑关系。


3、会话
会话时用户与 Oracle 服务器的单个连接,建立连接时创建,断开连接时关闭。
当一个数据库用户同时对服务器产生多个连接时,则为该用户创建多个并行会话。


4、内存
Oracle 内存结构包含以下两个内存区:
  系统全局区(SGA):实例启动时分配该内存区。
  程序全局区(PGA):服务器进程启动时分配该内存区。

A、系统全局区(SGA,System Global Area 共享全局区)
用来存储数据库信息,并由服务器进程共享。
按作用可分为:

   ● 共享池(Shared Pool)【操作共享】
共享池包括 库缓存区(Shared SQL & PL/SQL) 和 数据字典缓存。
a.库缓存区:包括最近执行的 SQL 解释版本,PL/SQL 过程、函数等程序单元的编译版本,方便用户共享调用,节省开销及提高进程速度。
b.数据字典缓存:把频繁用到的数据字典(表,列,索引、权限等信息)存储到内存中,能减少 SQL语句引起的性能上冲突。

   ● 数据缓冲区(Data Buffer Cache)【记录共享】
主要作用是将需要读取或者存取的数据块进行一个缓冲,从而减少太过频繁的对磁盘进行读和写的操作。所有同时上线的用户都可以共享这个区域。进程在处理一个查询时,优先查找内存中是否有所需的数据块,提高了读取速度。

   ● 日志缓冲区(Redo Log Buffer)
该区域是将所有记录数据操作的信息都存储在该缓冲中,在适当的时机由LGWR进程将他们写入到磁盘的日志文件中。

   ● 大共享区(Large Pool)
Oracle 可选特征,主要用于多线程。

B、程序全局区(Program Global Area)
PGA是数据库服务器内存中为单个用户进程分配的专用的内存区域,是用户进程私有的,不能共享。
它由用户连接到数据库并创建一个会话时自动分配,当会话结束后自动释放。



5、进程
用户进程:数据库用户请求连接 Oracle 服务器时启动。
服务器进程:用户建立会话连接时启用,处理一个或多个用户进程请求。
后台进程:Oracle 实例启动时启动,提高系统效能和协调多用户。
    数据写进程(DBWR):负责将块缓冲区的数据写入到磁盘中的数据文件里。
    日志写进程(LGWR):将重做日志缓冲区的信息写入到重做日志文件中。
    系统监控(SMON):如果数据库遇到不正常关闭的情况,比如突然断电等。那么再次启动数据库时SMON进程进行必要的 数据修复操作。
    进程监控(PMON):负责在一个Oracle进程失败时清理资源,用于恢复失败的用户进程。
    检查点进程(CKPT):负责在每当缓冲区中的更改永久地纪录在数据库中时,更新控制文件和数据文件中的数据库状态信息,确保数据库的同步。
    归档进程(ARCH):在每次日志切换时把已满的日志组进行备份归档,有归档方式和非归档方式(默认)。



6、数据库逻辑结构
数据库、表空间(tablespace)、段(segment)、区(extent)、数据块(block)




7、数据库物理结构
    数据文件:用于存放所有的数据(*.DBF),每个数据库有一组数据文件,一个数据文件只能对应一个数据库。
    日志文件:记录了对数据库进行的所有操作(*.LOG),主要用于数据库故障时恢复。 
    控制文件:记录了数据库所有文件的控制信息(*.CTL)。 

语法查看:
C:\> sqlplus "sys/test1234 as sysdba"

SQL> DESC v$controlfile
SQL> SELECT status,name FROM v$controlfile

SQL> DESC v$datafile
SQL> SELECT file#,status,name FROM v$datafile

SQL> DESC v$logfile
SQL> SELECT member FROM v$controlfile