《oracle基础知识》由会员分享,可在线阅读,更多相关《oracle基础知识(59页珍藏版)》请在金锄头文库上搜索。
1、ORACLE基础知识(入门)第一章 ORACLE体系结构 1.1Oracle数据库 1.2Oracle实例1.1 Oracle数据库 1.1.1物理结构 1.1.2逻辑结构因为物理结构和逻辑结构是分开的,所以对数据物理 存储的管理不影响存取逻辑结构1.1.1 物理结构 数据文件 控制文件 联机重做日志文件 辅助性文件数据文件 数据文件是操作系统的实际文件,它存 储数据库中逻辑结构的相关数据,他们 与名为表空间的逻辑结构相关联。 可以通过查询动态视图V$DATAFILE, 查询数据库中的所有数据文件控制文件(1) 控制文件是一个二进制文件,它记录数 据库的物理结构一级别的相关信息。只 要启动实例
2、并安装数据库,就会访问控 制文件中的信息。在修改数据库的物理 结构时,将更新控制文件以反映这种更 改 可以通过查询动态视图 V$CONTROLFILE,查询数据库中的所 有控制文件控制文件(2) 每个数据库必须至少拥有一个控制文件 。为了数据库安全,一般都采用复用控 制文件技术。即数据库有至少两个相同 的控制文件,保存在不同的磁盘卷上。 实例启动认可和打开所有的控制文件, 操作期间,实例维护所有的控制文件。 任一控制文件损坏,都将导致实例关闭联机重做日志文件(1) (又称重做日志文件),用于记录数据 库所做的全部变更(如增加、删除、修 改),以便在系统发生故障时,用它对 数据库进行恢复。 可以
3、通过查询动态视图V$LOGFILE,查 询数据库中的所有日志文件。联机重做日志文件(2) 一个Oracle数据库必须至少有两个重做日 志文件组,每个组中至少有一个重做日 志文件,同一组中的成员应该保存在单 独的磁盘上。 联机重做日志按循环方式使用。 日志文件组中的所有成员损坏将导致实 例不能启动辅助性文件(1) 此类文件包括: 参数配置文件:配置文件是一个ASCII文本文 件,记录Oracle数据库运行时的一些重要参数 。 口令文件:在数据库没有启动之前,数据库内 建用户是无法通过数据库来验证身份的。口令 文件中存放sysdba/sysoper用户的用户名及 口令,允许用户通过口令文件验证,在
4、数据库 未启动之前登陆辅助性文件(2) 归档日志文件:当按归档日志模式( ARCHIVELOG)运行数据库时,系统重 写联机重做日志之前,将联机重做日志 中的内容写入归档日志文件。归档日志 模式能够从磁盘故障和实例故障完成恢 复辅助文件(3) 在Oracle9i中,引入一个新文件Spfile。 Spfile用于服务器端,管理初始化参数。 使用spfile,可以使用alter system或者alter session命令来动态修改部分参数,所有 更改可以立即生效。Spfile是一个二进制 文件1.1.2逻辑结构 数据库块(BLOCK) 区(EXTENT) 段(SEGMENT) 表空间(TABL
5、ESPACE) 模式对象数据库块(BLOCK) Oracle数据块(也称为逻辑快、Oracle块 或页)是Oracle使用或分配的最小存储单 位。在建立数据库时设置数据块大小。 数据块大小应该是操作系统块大小的倍 数块管理的两个参数Pctfree和Pctused两个参数用来优化数据块 空间的使用。 PCTFREE:块中保留用于UPDATE操作 的空间百分比,当数据占用的空间达到 此上限时,新的数据将不能再插入到此 块中; PCTUSED:指定块中数据使用空间的最 低百分比;区(EXTENT) 区是数据库存储空间分配的逻辑单位, 是由一组连续数据块组成的。一个或多 个区按顺序组成一个段。当一个段
6、中的 所有空间用完后,Oracle 为它分配一个 新的区几个常用存储参数INITIAL:段建立时分配的第一个区的大小(单位:字 节) NEXT:段内分配的下一个增量区大小(单位:字节) MAXEXTENTS:分配给段的区总数。 MINEXTENTS:建立段时分配的区的总数,也就是段的 最小区数量。 PCTINCREASE:为段分配的每个增量区超过上一个区 的百分比。段(SEGMENT) 段是由一个或多个区组成的。 Oracle数据库使用四种类型的段: 数据段 索引段 临时段 回滚段表空间(TABLESPACE) 一个数据库被划分为一个或多个称为表 空间的逻辑空间单位 一个数据库可以包括两类表空
7、间: SYSTEM (系统)表空间和非SYSTEM 表空间 Oracle数据库中表空间由一个或多个物理 的数据文件组成SYSTEM表空间 SYSTEM表空间用于保存重要的内部结 构。如整个数据库的数据字典表、系统 的存储过程、系统回滚段。除非另外指 定表空间,否则SYSTEM表空间缺省对 所有数据库用户可用。 建议不要在SYSTEM表空间中建立用户 的对象,否则一旦SYSTEM表空间耗尽 存储空间,将中断整个RDBMS的操作。扩大数据库 表空间大小是组成它的数据文件的大小 ,数据库的大小是组成它的表空间的和 的大小。扩大数据库有以下三种方法: 增加数据文件 增加新的表空间 增加数据文件的大小模
8、式对象 模式对象(Schema Object)是直接引用数据 库对象或结构的逻辑结构。模式对象的 集合构成了模式(Schema)。每个数据库 用户都对应于一个模式。 模式对象包括:表、视图、索引、聚集 、序列、同义词、存储过城、包和数据 库链等结构1.2 Oracle实例 Oracle实例是存取和控制数据库的软件机 制。在数据库服务器中,每次启动一数 据库时就分配系统全局区来启动一个或 多个Oracle进程。SGA和Oracle进程的组 合就是一个Oracle实例。实例的内存和进 程用于管理相关数据库的数据,并服务 于数据库的一个或多个用户。ORACLE内存结构 ORACLE 内存区主要分成两
9、个区。分别 是: 系统全局区(SGA) 程序全局区(PGA)系统全局区(SGA) SGA管理与Oracle实例有关的数据和控制 信息。若多个用户同时连接到同一实例, 则该实例SGA中的数据在这些用户之间可 共享。 启动实例时,SGA被自动分配内存;关闭 实例时,操作系统收回内存。每个实例拥 有自己的SGA.SGA的结构 SGA包含以下结构:数据库缓冲区高速 缓存(Database Buffer Cache)、重做日志 缓冲区(Redo log buffer)、共享池(Share Pool)、大型池(Large Pool)以及JAVA池 (Java Pool)。 动态视图V$SGA显示组成SGA
10、组件的信 息。 动态视图V$SGASTAT显示SGA的详细信 息。数据库缓冲区高速缓存 数据库缓冲区高速缓存用于保存读自数据文件 的拷贝。由一组缓冲区组成。 高速缓存通过两个列表进行管理:弄脏列表 (dirty list)和最近最少使用(least recently used) 可以用单独的缓冲区配置数据库缓冲区高速缓 存。特定的模式对象可以被分配到相应的缓冲 区池,以控制它们的数据块被淘汰出高速缓存 的方法。(keep、recycle、default)重做日志缓冲区 重做日志缓冲区是一个环形缓冲区,用 于存放重做记录项。重做记录包括利用 DML或DDL操作对数据库所做更改的信 息共享池 共享
11、池主要分成两部分: 库高速缓存(LIBRARY CACHE) 字典高速缓存(DICTIONARY CACHE)库高速缓存 用于保存系统最近经常使用的SQL和 PL/SQL的一些执行计划、编译树以及文 本等内容。 作用:提高代码共享。 管理的方法是最近最少使用字典高速缓存 用于保存用户的权限信息、访问的数据 对象以及DATABASE的结果信息等等。 字典高速缓存又成为行缓存(ROW CACHE)。大型池 大型池是一个可选的内存区 在下列情况时使用: 使用备份恢复时 当配置共享服务器时,用于保存用户信 息 设置IO/SLAVESJAVA池 安装或使用JAVA 使用JAVA池 普通系统中很少用到程序
12、全局区 针对服务器进程保留下来的内存区域 独占服务器(Dedicated Server):栈空间、用户进程信息、排序区以及游 标状态 共享服务器(Share Server):栈空间、排序区以及游标状态Oracle 后台进程 一个Oracle 实例有很多后台进程,但不 是所有的都存在。Oracle实例的后台进程 有: 数据库写进程(DBW0或DBWn)用于将 缓冲区的内容写入数据文件 日志写进程(LGWR) 管理重做日志缓冲 区的进程,用于将缓冲区内的重做条目 写入磁盘上的冲做日志文件中 检查点进程(CKPT) 发生检查点时, 更新所有数据文件头和控制文件。通知 LGWR和DBWR分别写重做日志
13、项和缓 冲区到磁盘 系统监控进程(SMON) 在实例启动时 执行实例恢复,整理不再使用的临时段 和空闲空间 进程监控进程(PMON)在用户进程出 现故障时执行进程恢复。整理数据库缓 冲区的高速缓存和释放用户进程使用的 资源。 存档进程(ARCH)联机重做日志文件变 满时,拷贝它们到指定的存储设备中( ARCHIVELOG并且启动自动归档) 恢复进程(RECO)用于解决分布式事务 中的故障 服务器进程:处理来自用户进程的请求 。 用户进程:维护和执行应用程序的软件 代码,管理与服务器进程的通信。 动态视图V$BGPROCESS显示于后台进 程及其遇到的错误有关的信息第二章SQL语言基础 SQL语
14、言是数据库的核心语言。全称是“ 结构化查询语言( Structured Query Language)”。 SQL语言是所有关系数据库的公共语言 。2.1 SQL语言分类 2.1.1数据查询语言(DQL) 2.1.2数据操纵语言(DML) 2.1.3数据定义语言(DDL) 2.1.4数据控制语言(DCL)2.1.1数据查询语言(DQL) 数据查询语言就是常用的SELECT语句 基本查询 复合查询基本查询 FROM条件子句 WHERE条件子句 DISTINCT属性的用法 ORDER BY 条件子句 GROUP BY条件子句 HAVING 条件子句 BETWEENAND运算符 LIKE 操作符复合
15、查询 1、连接查询内连接:等值、不等、自然外连接:左外、右外、全外交叉连接 2、联合查询(UNION)集合函数 COUNT():统计字段值的数目 AVG():计算子段平均值 SUM():计算字段值的和 MAX():返回字段的最大值 MIN():返回字段的最小值2.1.2数据操纵语言 INSERT:用于往数据表中插入数据 DELETE:用于删除数据表中的数据 UPDATE:通过条件的限定修改特定的 数据2.1.3数据定义语言 CREATE:用于创建数据库对象 ALTER:用于对表、索引或视图等的字 段重新设计 DROP:用于删除表、索引、视图、同义 词、过程、函数、数据库链接等 TRUNCATE:用于清空表内的所有数据 ,同时保留表结构2.1.4数据控制语言 GRANT:用于赋予用户权限 REVOKE:用于回收用户的权限 COMMIT:提交事务 ROLLBACK:回滚事务。使数据库状态 回到上次最后提交事务的状态COMMIT语句 提交事务有三种类型: 显式提交 隐式提交:用SQL语句间接完成的提交 自动提交: 若把环境变量 AUTOCOMMIT设置为ON,则在插入、 修改、删除语句执行后,系统将自动进 行提交,这就是自动提交2.2 SQLPLUS工具 SQLPLUS SQLPLUS WORKSHEET ISQLPLUS2.3 ISQLP