ORACLE 数据库管理员教程

50
ORACLE 数数数数数数数数 SQL*DBA

description

SQL*DBA. ORACLE 数据库管理员教程. 序. 数据库管理员是一个或一组全面负责管理和控制数据库系统的人员。 简称 :DBA(Data Base Administrator). 数据库管理员的主要职责. 了解 ORACLE 数据库的体系结构 负责数据库管理系统的安装和升级 启动和关闭数据库 管理和监控数据库用户 管理数据库特权 管理存储空间 建立数据库 后备和恢复数据库. 第 一 章. ORACLE 的体系结构. ORACLE 的体系结构 体系结构概述. 物理结构 数据文件、日志文件、控制文件、参数文件 - PowerPoint PPT Presentation

Transcript of ORACLE 数据库管理员教程

Page 1: ORACLE 数据库管理员教程

ORACLE数据库管理员教程

SQL*DBA

Page 2: ORACLE 数据库管理员教程

中 软中 软 CS&SCS&S 中软网络技术股份有限公司中软网络技术股份有限公司

CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.

数据库管理员是一个或一组全面

负责管理和控制数据库系统的人员。

简称 :DBA(Data Base Administrator)

序序

Page 3: ORACLE 数据库管理员教程

中 软中 软 CS&SCS&S 中软网络技术股份有限公司中软网络技术股份有限公司

CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.

数据库管理员的主要职责了解 ORACLE 数据库的体系结构负责数据库管理系统的安装和升级启动和关闭数据库管理和监控数据库用户管理数据库特权管理存储空间建立数据库后备和恢复数据库

Page 4: ORACLE 数据库管理员教程

第 一 章

ORACLE 的体系结构

Page 5: ORACLE 数据库管理员教程

中 软中 软 CS&SCS&S 中软网络技术股份有限公司中软网络技术股份有限公司

CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.CS&S NETWORK TECHNOLOGY JOINT STOCK CO.,LTD.

ORACLE 的体系结构 体系结构概述

物理结构 数据文件、日志文件、控制文件、参数文件内存结构系统全局区( System Global Area )

共享池、数据缓冲区、日志缓冲区进 程

用户进程、服务器进程、后台进程

Page 6: ORACLE 数据库管理员教程

共享池 数据缓冲区日志缓冲区SGASGA

数据文件 日志文件

参数文件 控制文件

DBWR

ARCHCKPT

LGWR

PMON LCKn RECO SMON

存储介质

Server

UserUserUser

ORACLEORACLE 的体系结构的体系结构 体系结构图示体系结构图示

Page 7: ORACLE 数据库管理员教程

• 数据文件

• 日志文件

• 控制文件

• 参数文件

ORACLEORACLE 的体系结构 的体系结构 物理结构物理结构

Page 8: ORACLE 数据库管理员教程

数据文件( Data File )是物理存储 O

RACLE 数据库数据的文件。其特点如下:

• 每一个数据文件只与一个数据库相联系。• 数据文件一旦被建立则不能修改其大小。• 一个表空间可包含一个或多个数据文件。

ORACLEORACLE 的体系结构 的体系结构 物理结构物理结构

Page 9: ORACLE 数据库管理员教程

日志文件( Log File )记录所有对数

据库数据的修改,以备恢复数据时使用。其特

点如下:

• 每一个数据库至少包含两个日志文件组。• 日志文件组以循环方式进行写操作。• 每一个日志文件成员对应一个物理文件。

ORACLEORACLE 的体系结构 的体系结构 物理结构物理结构

Page 10: ORACLE 数据库管理员教程

日志开关( Log Switch )是为实现日

志文件组的循环使用而设置的。出现日志开关

的情况如下:

• 当一个日志文件组被填满时• 关闭数据库时• DBA 手动转移日志开关

ORACLEORACLE 的体系结构 的体系结构 物理结构物理结构

Page 11: ORACLE 数据库管理员教程

日志文件写操作图示

Log File 1 Log File 2

Group 1Group 1 Group 2Group 2

Member 2.1Member 1.1

ORACLEORACLE 的体系结构 的体系结构 物理结构物理结构

Page 12: ORACLE 数据库管理员教程

镜像日志文件是为防止日志文件的丢失,在不同磁盘上同时维护两个或多个联机日志文件的副本。其特点如下:• 每个日志文件组至少包含两个日志文件成员。• 每组的成员数目相同。• 同组的所有成员同时被修改。• 同组的成员大小相同,不同组的成员大小可不同。

ORACLEORACLE 的体系结构 的体系结构 物理结构物理结构

Page 13: ORACLE 数据库管理员教程

镜像日志文件图示Group 1Group 1 Group 2Group 2

Log File 1 Log File 2

Member 2.1Member 1.1

Log File 3 Log File 4

Member 2.2Member 1.2

Disk 1

Disk 2

ORACLEORACLE 的体系结构 的体系结构 物理结构物理结构

Page 14: ORACLE 数据库管理员教程

控制文件( Control File )是一个较小的二进制文件,用于描述数据库结构。

描述信息如下:• 数据库建立的日期。• 数据库名。• 数据库中所有数据文件和日志文件的文件名及路径。• 恢复数据库时所需的同步信息。

要点注意:• 在打开和存取数据库时都要访问该文件。• 镜像控制文件。• 记录控制文件名及路径的参数为: CONTROL_FILES

ORACLEORACLE 的体系结构 的体系结构 物理结构物理结构

Page 15: ORACLE 数据库管理员教程

参数文件( Parameter File )是一个文本文件,可直接使用操作系统下的文本编辑器对其内容进行修改。该文件只在建立数据库或启动实例时才被访问,在修改该文件之前必须关闭实例。初始参数文件: init.ora生成参数文件: initSID.ora config.ora

ORACLEORACLE 的体系结构 的体系结构 物理结构物理结构

Page 16: ORACLE 数据库管理员教程

参数文件的作用:

• 确定存储结构的大小。

• 设置数据库的全部缺省值。

• 设置数据库的范围。

• 设置数据库的各种物理属性。

• 优化数据库性能。

ORACLEORACLE 的体系结构 的体系结构 物理结构物理结构

Page 17: ORACLE 数据库管理员教程

参数文件中参数的数据类型:• 整型 例: DB_BLOCK_SIZE = 2048• 字符型 例: DB_NAME = ‘ora7’• 逻辑型 例: CHECKPOINT_PROCESS = true

ORACLEORACLE 的体系结构 的体系结构 物理结构物理结构

Page 18: ORACLE 数据库管理员教程

• 共 享 池

• 数据库缓冲区

• 日 志 缓 冲 区

ORACLEORACLE 的体系结构 的体系结构 系统全局区系统全局区

Page 19: ORACLE 数据库管理员教程

实例( INSTANCE )

是存取和控制数据库的软件机制,它

由系统全局区( System Global Area ,简称

SGA )和后台进程组成。

ORACLEORACLE 的体系结构 的体系结构 系统全局区系统全局区

Page 20: ORACLE 数据库管理员教程

SGA 是 ORACLE 系统为实例分配的一组共

享缓冲存储区,用于存放数据库数据和控制信

息,以实现对数据库数据的管理和操作。

ORACLEORACLE 的体系结构 的体系结构 系统全局区系统全局区

Page 21: ORACLE 数据库管理员教程

共享池( Shared Pool )由共享 SQL 区和数据字典区组成。参数 SHARED_POOL_SIZE 确定共享池的大小。

共享 SQL 区包括• SQL 或 PL/SQL 语句的文本• SQL 或 PL/SQL 语句的语法分析形式• SQL 或 PL/SQL 语句的执行方案

数据字典区用于存放数据字典信息行。

ORACLEORACLE 的体系结构 的体系结构 系统全局区系统全局区

Page 22: ORACLE 数据库管理员教程

数据缓冲存储区( Database Buffer Cache )用于存储从数据文件中读的数据的备份。

数据缓冲区

数据文件

DB_BLOCK_SIZE 确定数据块的大小,一般为 2K或 4K ,对于大数据块的数据库,此参数值为物理块的倍数。

DB_BLOCK_BUFFERS 确定数据块的数目。

ORACLEORACLE 的体系结构 的体系结构 系统全局区系统全局区

Page 23: ORACLE 数据库管理员教程

数据缓冲存储区分为

• 脏列表 包括被修改过但尚未写到数据文件的缓冲块。• LRU ( Least Recently Used )列表 包括空闲缓冲块、正在存取的缓冲块、已被修改但尚未移到脏列表的缓冲块。

ORACLEORACLE 的体系结构 的体系结构 系统全局区系统全局区

Page 24: ORACLE 数据库管理员教程

日志缓冲存储区( Log Buffer )以记录项的形式备份数据库缓冲区中被修改的缓冲块,这些记录将被写到日志文件中。

LOG_BUFFER

确定日志缓冲区的大小。

日志缓冲区

日志文件

ORACLEORACLE 的体系结构 的体系结构 系统全局区系统全局区

Page 25: ORACLE 数据库管理员教程

• 用 户 进 程

• 服务器进程

• 后 台 进 程

ORACLEORACLE 的体系结构 的体系结构 进 程进 程

Page 26: ORACLE 数据库管理员教程

ORACLE 实例分为单进程实例和多进程实例两种。

• SINGLE_PROCESS

单进程 / 多进程实例的转换。

ORACLEORACLE 的体系结构 的体系结构 进 程进 程

Page 27: ORACLE 数据库管理员教程

单进程 / 单用户

一个进程执行全部ORACLE代码。

S G A

ORACLE Server

数据库应用

ORACLEORACLE 的体系结构 的体系结构 进 程进 程

Page 28: ORACLE 数据库管理员教程

多进程 / 多用户 使用多个进程执行 ORACLE 的不同代码,对于每一个连接的用户都有一个进程。

S G A

服务器进程

用户进程

后 台 进 程

ORACLEORACLE 的体系结构 的体系结构 进 程进 程

Page 29: ORACLE 数据库管理员教程

专用服务器方式 为每个用户单独开设一个服务器进程。适用于实时系统。不设置参数:MTS_SERVICEMTS_DISPATCHERSMTS_SERVERSMTS_LISTERNET_ADDRESS

S G A

服务器进程

用户进程

后 台 进 程

服务器进程

用户进程

ORACLEORACLE 的体系结构 的体系结构 进 程进 程

Page 30: ORACLE 数据库管理员教程

多线索服务器方式 通过调度器为每个用户进程分配服务器进程。设置参数:MTS_SERVICEMTS_DISPATCHERSMTS_SERVERSMTS_LISTERNET_ADDRESS

用户进程

S G A

服务器进程

后 台 进 程

服务器进程

用户进程 用户进程

调度器

ORACLEORACLE 的体系结构 的体系结构 进 程进 程

Page 31: ORACLE 数据库管理员教程

参数的涵义

• MTS_SERVICE :服务器名,缺省值为 DB_NAME

• MTS_DISPATCHERS :调度器个数

• MTS_SERVERS :可以启动的服务器进程的个数

• MTS_LISTERNET_ADDRESS : SQL*NET监听器地

• MTS_MAX_SERVERS :服务器进程的最大数

ORACLEORACLE 的体系结构 的体系结构 进 程进 程

Page 32: ORACLE 数据库管理员教程

用户进程

当用户运行一个应

用程序时,就建立一个用户进

程。

ORACLEORACLE 的体系结构 的体系结构 用户用户进程进程

Page 33: ORACLE 数据库管理员教程

服务器进程

处理用户进程的请求。

处理过程• 分析 SQL命令并生成执行方案。• 从数据缓冲存储区中读取数据。• 将执行结果返回给用户。

ORACLEORACLE 的体系结构 的体系结构 服务器服务器进程进程

Page 34: ORACLE 数据库管理员教程

后台进程

为所有

数据库用户异步

完成各种任务。

主要的后台进程有• DBWR 数据库写进程• LGWR 日志写进程• CKPT 检查点写进程• SMON 系统监控进程• PMON 进程监控进程• ARCH 归档进程• RECO 恢复进程• LCKn 封锁进程

ORACLEORACLE 的体系结构 的体系结构 后台后台进程进程

Page 35: ORACLE 数据库管理员教程

DBWR ( Data Base Writer ) 将数据缓冲区中所有修改过的缓冲块数据写到数据文件中,并使用 LRU算法来保持缓冲区中的数据块为最近经常使用的,以减少 I/O次数。该进程在启动实例时自动启动。

ORACLEORACLE 的体系结构 的体系结构 后台后台进程进程

Page 36: ORACLE 数据库管理员教程

DBWR 进行写操作的情况:• 脏列表达到最低限制。 相当于参数 DB_BLOCK_WRITE_BATCH值的一半。• 一个进程在 LRU 列表中扫描指定数目的缓冲块,未找到空闲缓冲块。 参数 DB_BLOCK_MAX_SCAN_CNT确定扫描数目。

ORACLEORACLE 的体系结构 的体系结构 后台后台进程进程

Page 37: ORACLE 数据库管理员教程

DBWR 进行写操作的情况:•出现超时 3秒钟内该进程未活动,则该进程将在 LRU 列表中查找尚未查找的缓冲块,这组缓冲块的数目相当于参数 DB_BLOCK_WRITE_BATCH 值的 2 倍。• 出现检查点。

ORACLEORACLE 的体系结构 的体系结构 后台后台进程进程

Page 38: ORACLE 数据库管理员教程

LGWR ( Log Writer ) 将日志缓冲区中的所有记录项写到日志文件中。 该进程在启动实例时自动启动。

ORACLEORACLE 的体系结构 的体系结构 后台后台进程进程

Page 39: ORACLE 数据库管理员教程

LGWR 进行写操作的情况:• 用户进程提交一个事务( Commit )• 日志缓冲区达到 1/3 范围• DBWR 对一个检查点需要清除缓冲块• 出现超时( 3秒钟内未活动,则进行一次写操作。)

ORACLEORACLE 的体系结构 的体系结构 后台后台进程进程

Page 40: ORACLE 数据库管理员教程

检查点( Checkpoint ) : 在检查点出现期间, DBWR 进程将数据缓冲区中的所有脏缓冲块写到数据文件中, LGWR 进程将日志缓冲区中的所有记录项写到日志文件中,以确保上一个检查点至今修改过的所有数据块都被写到磁盘上。

ORACLEORACLE 的体系结构 的体系结构 后台后台进程进程

Page 41: ORACLE 数据库管理员教程

检查点:• 预定数目的记录项被填满。 参数 LOG_CHECKPOINT_INTERVAL确定了预定数目。• 设置指定的秒数。 参数 LOG_CHECKPOINT_TIMEOUT确定了间隔秒数。• 每个日志开关处• 关闭实例时

• DBA 手动操作。• 表空间离线。

ORACLEORACLE 的体系结构 的体系结构 后台后台进程进程

Page 42: ORACLE 数据库管理员教程

CKPT(Checkpointer) 在控制文件中记录检查点。参数 CHECKPOINT_PROCESS 确定了检查点的启动 / 不启动状态。 若 CKPT 进程不启动,则该进程的工作将由 LGWR 进程代劳。(如果数据库的数据文件过多,这样操作会降低系统性能。)

ORACLEORACLE 的体系结构 的体系结构 后台后台进程进程

Page 43: ORACLE 数据库管理员教程

ARCH(Archiver) 在日志文件组出现切换时,将旧日志文件的内容拷贝到脱机存储介质上,出现介质失败时用于恢复数据。• LOG_ARCHIVE_START 确定了该进程的启动 / 不启动状态。

ARCH

存储介质

ORACLEORACLE 的体系结构 的体系结构 后台后台进程进程

Page 44: ORACLE 数据库管理员教程

ARCH(Archiver)• LOG_ARCHIVE_DEST 当数据库在归档模式下操作时,该参数确定了日志文件的归档目标。• LOG_ARCHIVE_FORMAT 当数据库在归档模式下操作时,该参数确定了归档日志文件的缺省文件名格式。

ARCH

存储介质

ORACLEORACLE 的体系结构 的体系结构 后台后台进程进程

Page 45: ORACLE 数据库管理员教程

SMON ( System Monitor ) 负责完成自动实例恢复。该进程在启动实例时自动启动。

PMON ( Process Monitor ) 撤消异常中断的用户进程,并释放该进程已获得的系统资源或锁。

ORACLEORACLE 的体系结构 的体系结构 后台后台进程进程

Page 46: ORACLE 数据库管理员教程

RECO ( Recover ) 在分布式操作的情况下,恢复一个事务的失败。

LCKn ( Lock ) 在并行服务器系统间加锁,最多可加 10 个锁,分别为 LCK0 , LCK1 ,, LCK9 。

ORACLEORACLE 的体系结构 的体系结构 后台后台进程进程

Page 47: ORACLE 数据库管理员教程

处理 SQL 语句的三个阶段• 语法分析• 执行• 返回指令

Server

共享池 数据缓冲区日志缓冲区SGASGA

UserUserUser SQL> SELECT ename FROM emp ;

Server

共享池 数据缓冲区日志缓冲区SGASGA

UserUserUser

SMITH

ALLEN

WARD

Server

共享池 数据缓冲区日志缓冲区SGASGA

ORACLEORACLE 的体系结构 的体系结构 示 例示 例

Page 48: ORACLE 数据库管理员教程

SELECT 操作

SQL> SELECT sal FROM emp

WHERE job = ‘CLERK’ ;

Server

共享池 数据缓冲区SGASGA

UserUserUser

B1 B2

EMP TableBlock 1 Block2

ORACLEORACLE 的体系结构 的体系结构 示 例示 例

Page 49: ORACLE 数据库管理员教程

UPDATE 操作 为了支持读一致性,恢复和回滚,所有修改操作需要回滚段。修改操作执行:

• 将数据块送到数据缓冲区• 将回滚块送到数据缓冲区• 在修改行上设置行锁• 保存回滚数据到回滚段块• 将修改写到数据块

ORACLEORACLE 的体系结构 的体系结构 示 例示 例

Page 50: ORACLE 数据库管理员教程

UPDATE 操作

SQL> SELECT sal FROM emp

WHERE job = ‘CLERK’ ;

Server1

UserUserUser1

Server2

UserUserUser2

共享池 数据缓冲区SGASGA

B1 B2R2R1

EMP TableBlock 1 Block2

RB01R1 R2

Data File 1 Data File 2

SQL> UPDATE emp SET sal = sal * 1.1

WHERE job = ‘CLERK’ ;

ORACLEORACLE 的体系结构 的体系结构 示 例示 例