分类: Oracle
2015-09-17 20:31:50
一、oracle服务器及实例
oracle 服务器 = oracle 实例 + oracle 数据库
oracle 实例 = 内存结构(SGA)+ 进程结构(后台进程)
二、系统全局区及程序全局区
system global area (SGA):由所有服务器进程和后台进程共享
program global area(PGA):专用于每一个服务器进程或后台进程。每一个进程使用一个 PGA
1、SGA 包含以下数据结构:
1>Database buffer cache:缓存从数据库最近访问过的数据块
2>Red log buffer cache:高速缓存重做信息(用于实例恢复),直到可以将其写入磁盘中存储的物理重做日志文件
3>Shared pool:缓存可在用户间共享的各个结构
4>Large pool:是一个可选区域,可为某些大型进程(如 Oracle 备份和恢复操作、I/O 服务器进程)提供大量内存分配
5>Java 池:用于 Java 虚拟机 (JVM) 中所有特定会话的 Java 代码和数据
6>Streams 池:由 Oracle Streams 使用
三、前台进程
用户进程:在数据库用户请求连接到 Oracle 服务器时启动
服务器进程:可以连接到 Oracle 实例,它在用户建立会话时启动
四、后台进程
1、系统监视器 (SMON):出现故障后启动实例时执行崩溃恢复任务
2、进程监视器 (PMON):用户进程失败时执行进程清理任务
3、数据库写进程 (DBWn):将修改后的块从数据库缓冲区高速缓存写入磁盘中的数据文件
4、检查点 (CKPT):通过更新数据库的所有数据文件和控制文件指出最新的检查点
5、日志写进程 (LGWR):将重做日志条目写入磁盘
6、归档进程 (ARCn):发生日志切换时将重做日志文件复制到归档存储器
五、缓冲区高速缓存中的缓冲区可能处于以下四种状态之一:
1、 已连接:可防止多个会话同时对同一数据块进行写操作。此时,其它会话正等待访问该块。
2、干净:缓冲区现已解除连接,如果没有再次引用当前内容(数据块),该缓冲区是可以立即腾出的候选项。此时,不是缓冲区的内容已与磁盘中存储的数据块内容同步,就是缓冲区中包含块的一致读取 (CR) 快照。
3、 空闲或未使用:实例刚刚启动,缓冲区为空。此状态与“干净”状态非常相似,不同之处在于缓冲区尚未使用。
4、灰数据:缓冲区不再处于已连接状态,但是内容(数据块)已更改,DBWn 必须先将内容刷新到磁盘,才能腾出缓冲区。
六、数据库的物理架构
1、控制文件:包含关于数据库本身的数据(即物理数据库结构信息)。这些文件对数据库而言至关重要。没有这些文件,就无法打开用 于访问数据库数据的数据文件。
2、 数据文件:包含数据库中的用户数据或应用程序数据。
3、 联机重做日志文件:用于进行数据库实例恢复。如果数据库已崩溃但未丢失任何数据文件,那么使用这些文件中的信息可以通过实例 恢复数据库。
4、 参数文件:用于定义启动实例时如何配置实例。
5、 口令文件:用于将用户远程连接到数据库后执行管理任务。
6、 备份文件:用于数据库恢复。当由于出现介质故障或由于用户错误而损坏或删除了原始文件时,通常需要还原备份文件。
7、 归档日志文件:包含实例生成的数据更改(重做操作)的实时历史记录。使用这些文件和数据库备份可以恢复丢失的数据文件。也就 是说,使用归档日志可以恢复还原的数据文件。
8、预警和跟踪日志文件:预警日志文件:记录数据库运行情况的一个日志 。跟踪文件:在发生故障时,详细记录当时情况的相关信息。
七、表空间和数据文件(表空间->段->区->块)
一个表空间中包括一个或多个数据文件。
一个数据文件仅归属于一个表空间。
1、SYSTEM 和 SYSAUX 表空间
1>SYSTEM 和 SYSAUX 表空间是必需存在的表空间。
2>这些表空间是在创建数据库时创建的。
3>这些表空间必须联机。
4>SYSTEM 表空间用于核心功能(例如,数据字典表)。
5>辅助的 SYSAUX 表空间用于附加的数据库组件(例如,Enterprise Manager Repository)。
2、段、区和块
1> 段存在于表空间。
2> 段由区的集合构成。
3> 区是数据块的集合。
4>数据块会映射到磁盘块。
八、简单的查询语句
1、显示数据文件与表空间对应信息
SQL> DESC DBA_DATA_FILES;
SQL> SELECT FILE_NAME,FILE_ID,TABLESPACE_NAME,BYTES/1024/1024 MB,STATUS FROM DBA_DATA_FILES;
2、查询临时表空间信息
SQL> desc dba_temp_files;
SQL> select file_name,tablespace_name,bytes/1024/1024 mb,status from dba_temp_files;
3、查询控制文件信息
SQL> SELECT NAME,STATUS FROM V$CONTROLFILE;
4、查询日志文件信息
SQL> desc v$logfile;
SQL> select group#,status,member from v$logfile;
5、查询表空间信息
SQL> desc v$tablespace;
SQL> select name ,ts# from v$tablespace;
SQL> desc dba_tablespaces;
SQL> select tablespace_name,status from dba_tablespaces;
6、查询用户信息
SQL> desc dba_users;
SQL> select username,password,account_status from dba_users;