oracle基教程础学习笔记zl.docx
《oracle基教程础学习笔记zl.docx》由会员分享,可在线阅读,更多相关《oracle基教程础学习笔记zl.docx(43页珍藏版)》请在冰点文库上搜索。
oracle基教程础学习笔记zl
一、课程总体目标
课程总体目标:
–安装、创建和管理OracleDatabase10g企业版
–为应用配置数据库
–实现备份和恢复策略
–使用基本的监控过程
•本课目标:
–了解课程总体目标
–了解OracleDatabase10g体系结构
二、Oracle数据库体系结构
•一个Oracle服务器:
–是一个数据管理系统,它提供开放的,全面的,近乎完整的信息管
理
–由一个Oracle实例和一个Oracle数据库组成
–问题:
何为oracle实例?
网络解释:
一个数据库只能有一个数据库名,用以标识一个数据库;一个数据库可以拥有多个实例(在RAC环境中多实例访问一个数据库);实例名是实例的名称标识,实例是一组运行在内存中的程序和后台进程的集合;通常情况下ORACLE_SID表示实例,在参数文件里可以查看的到;每个服务都有相对应的名称表示,ORACLE也一样,只是ORACLE服务是针对ORACLE的
STDDEV标准偏差
理解:
数据库实例、数据库对象、数据库系统。
等
第一章、系统概序
1.1Oracle产品简史
●Oracle,甲骨文
●2003年9月,Oracle公司发布了其最新数据库产品,即OracleDatabase10g。
1.2网格计算的概念和特点
●企业IT不断承受使用越来越少的资源做好越来越多事情的压力。
同时,为了应付计算需求的不可预测性和即时性,公司一般扩大服务器规模来适应高峰负载。
●为了解决这些问题,出现了一种新的计算模型,即网格计算模型。
但是也有其他说法:
–按需计算(computingondemand)
–自适应计算(adaptivecomputing)
–效用计算(utilitycomputing)
–托管计算(hostedcomputing)
–有机计算(organiccomputing)
–泛在计算(ubiquitouscomputing)
1.3OracleDatabase10g系统特点
可选用产品:
●Oracle真正应用集群(realapplicationcluster,RAC)
●Oracle分区
●Oracle高级安全性
●Oracle标签安全性
●OracleOLAP
●Oracle数据挖掘
●OracleSpatial
●OracleProgrammer
●OracleDatabaseLite
1.4数据库技术特点
●本节从数据库和实例、表、视图、索引、数据存储、数据保护、可编程的结构等几个方面概括介绍OracleDatabase10g系统的技术特点。
1.4.1数据库和实例
●每一个Oracle数据库都是一个数据的集合,这些数据包含在一个或多个文件中。
数据库有物理和逻辑两种结构。
●在开发应用程序的过程中,用户创建表和索以便于数据进行保存和快速检索。
用户可以为对象的名称创建方便的同义词,通过将数据库链接到不同的数据库中查看对象,并且能够限制对象的访问权限。
●用户还可以使用外部表访问当前数据库之外的文件中的数据,就像访问表中的数据一样。
●Oracle实例由被称为系统全局区(systemglobalarea,SGA)的内存区域和相应的后台进程组成。
这些后台进程负责SGA和数据库磁盘文件之间的交互。
●在OracleRAC中,可以有多个实例同时使用同一个数据库。
这些实例通常位于不同的服务器上,并且保持着高速互联。
1.4.2表、视图和索引
●在Oracle数据库中,表是最基本的结构。
OracleDatabase10g系统支持多种类型的表,这些表包括关系表、对象关系表、索引编排表、外部表、分区表、物化视图、临时表、群集表、删除的表。
●可以使用视图访问表中的数据。
视图可以处理连接和聚集、限制返回的数据行、更改显示的列名称等。
在OracleDatabase10g系统中,视图既可以是只读的,也可以是可更新的,既可以引用本地表,也可以引用远程表。
●为了提高对表中数据的访问效率,Oracle系统支持多种类型的索引,这些索引包括B树索引、位图索引、反转键值索引、基于函数的索引、分区索引、文本索引等。
1.4.3数据存储
●数据库中的所有逻辑结构都必须存储在数据库中的某个地方。
Oracle系统提供了一个记录与所有对象(对象所有者、定义、相关的优先级等)相关的元数据的数据字典。
对于需要物理空间保存的对象,Oracle系统会在一个表空间中为其分配空间。
●表空间由一个或多个文件组成,数据文件可能是表空间的全部,也可能是一个表空间的一部分。
●为了支持事务,Oracle系统能够动态地创建、管理、撤销数据段。
●OracleDatabase10g系统提出的回收站概念,使得表空间和数据文件对空间的需求发生了变化。
1.4.4数据保护
●在Oracle系统中,可以完全控制数据的访问权限。
可以为用户授予执行select、update等特定操作所需要的权限。
可以对角色授权,然后把角色授予用户,从而简化权限的管理。
●Oracle系统支持一系列非常详细的权限级别,例如,可以控制哪些数据行可以被访问、在审核期间哪些行将触发审核事件等。
如果使用虚拟专用数据库(virtualprivatedatabase,VPD)选项,那么用户的所有查询操作都将受到限制,而不管他们用什么样的方法访问表。
在OracleDatabase10g系统中,VPD的功能大为增强,包含了列隐藏等功能,这样可以安全方便地存放敏感数据。
1.4.5可编程结构
●SQL语言是操纵数据库的最基本的方法。
●可以使用PL/SQL创建存储过程和函数,可以在查询中调用已创建的函数,过程和函数可以集中存放在程序包中。
可以使用PL/SQL创建触发器,用于通知数据库当不同的事件发生时应该分别采取什么样的操作。
●动态SQL,指的是在程序运行时产生SQL命令。
●SQL*Plus向Oracle数据库提供了一个简单的接口,可以很好地满足各种潜在的报表需求,也可以支持脚本编程。
SQL*Plus为从数据字典中检索数据和创建数据库对象提供了一个统一的接口。
●Oracle系统对Java和JDBC提供支持,用户可以使用Java取代PL/SQL完成很多操作。
●在Oracle系统中,用户可以使用Oracle的XML接口和XML类型,通过XML执行数据的插入和检索。
●基于SQL和PL/SQL的面向对象功能,可以使用Oracle创建和访问面向对象的结构,包括用户定义的数据类型、方法、大对象、对象表、嵌套表等。
●DataPumpImport和DataPumpExport的功能大大增强了原来使用Import和Export实用程序的可管理性和效率。
●可以使用SQL*Loader把数据文件快速加载到数据库中。
●UTL_MAIL是OracleDatabase10g系统引入的一个程序包,它允许PL/SQL应用程序开发人员直接发送电子邮件。
1.5数据库管理员的工作任务
●作为一个DBA(databaseadministrator,DBA),应该做好下面12项任务:
1.任务一:
安装和配置
2.任务二:
容量规划
●容量规划指的是对整个OracleDatabase10g系统进行一个总体的规划。
这种规划的重点应该放在解决瓶颈问题上。
●从内容上来看,应该考虑的具体内容包括:
硬件容量规划、软件规划、网络规划。
硬件容量规划包括磁盘空间、CPU、I/O等规划。
软件规划包括操作系统的安装和配置规划、数据库规划、数据库对象内容和数量规划等。
网络规划包括网络硬件、网络软件和协议、网络客户数量流量和分布、网络拓扑结构等规划。
●从期限上来看,应该考虑短期、中期和长期规划。
短期规划的目的是为了满足当前日常的需要。
中期规划主要是为了满足发展的需要。
长期规划主要是为了满足极限需要等。
●例如,如果预测某个系统的当前用户数量是500,3年后的用户可能达到2000万,那么现在既不能按照500用户的需求来设计,也不能一下子按照2000万用户的需求来设计,一定要采取一个折中的形式。
3.任务三:
应用架构设计
●应用架构设计包括数据库设计、应用程序设计和相应的技术架构设计,这些设计要满足用户需求。
●数据库设计应该考虑数据库的逻辑需求、数据库的创建方式和数量、数据库数据文件和日志文件的存放位置等。
●应用设计应该考虑开发工具的选择、API技术、内部资源和外部资源的结合、应用架构的分布等内容。
在应用设计时,需要强调的一点是,DBA应该与开发人员共同工作,确保其编写出优化的代码,并且尽可能地使用服务器的资源。
●技术架构设计主要包括表示层、逻辑层和数据层的分布。
这些分布应该考虑到硬件资源和用户需求。
既不能片面地追求过高的硬件资源,也不能仅仅局限于当前的环境,一定要按照符合可扩展的观点来考虑。
4.任务四:
管理数据库对象
5.任务五:
存储空间管理
6.任务六:
安全管理
7.任务七:
备份和恢复
8.任务八:
性能监视和调优
9.任务九:
作业调度
10.任务十:
网络管理
●作为一种网格数据库,网络管理的任务更加地重要。
OracleDatabase10g提供了许多网络管理工具和服务,DBA应该借助这些工具和服务规划和管理网络操作。
为了做好网络管理工作,DBA应该能够回答下面的问题:
●如何定义数据库的连接?
●是使用专用服务器,还是使用共享服务器?
●怎样使用OracleNetListener?
●如何使用Oracle的配置文件?
●如何在多层网络环境中工作?
11.任务十一:
高可用性和高可伸缩性管理
12.任务十二:
故障解决
第2章安装和创建数据库
2.1安装前的准备
在安装OracleDatabase10g系统之前,应该以具有管理员权限的用户登录系统,并且检查当前系统对硬件环境和软件环境的要求,以便对数据库进行规划。
2.2安装过程
2.2.1OracleUniversalInstaller的特点
●这是一个基于Java引擎的安装工具。
该工具提供了所有基于Java平台的安装解决方案,允许用户在多种平台上执行Oracle的安装;
●该安装工具可以自动地检测组件之间独立性,并且根据选择的产品和安装类型来执行安装过程;
●在安装过程中,预先确定的产品集可以很方便地由用户来确定;
●可以使用该安装工具指向一个拥有OracleDatabase10g系统的URL,以便进行远程安装;
●使用该工具安装的产品可以被轻易地使用该工具卸载;
●支持多种不同的Oracle安装主目录;
●该工具可以检测操作系统环境使用的语言,并且根据这种语言来执行安装操作;
●支持使用响应文件的无人参与的“无提示”安装。
2.2.2Oracle10g在WindowsServer2003上安装
2.3创建数据库
●在OracleDatabase10g系统中,可以使用DatabaseConfigurationAssistant(DBCA)工具和CREATEDATABASE命令两种方式创建数据库。
●下面分别介绍这两种创建数据库方式的特点。
2.3.1使用DBCA来创建数据库
●使用DBCA可以完成复杂数据库的创建操作。
如果需要在不同的服务器上创建同样的数据库,那么最好使用DBCA,因为可以使用DBCA创建数据库模板和执行该模板。
●启动DBCA,首先出现欢迎对话框。
●之后出现如图2-17所示的“步骤1:
操作”对话框,可以从中选择需要执行的操作。
2.3.2手动创建数据库
2.4升级到OracleDatabase10g
四种升级方法:
●使用OracleDatabaseUpgradeAssistant(DBUA)。
该升级工具以前的名称是OracleDataMigrationAssistant;
●执行手工升级;
●使用exp/imp工具,可以把当前数据库中的数据拷贝到OracleDatabase10g的新建数据库中;
●使用SQL*Plus的copy命令或createtableasselect命令,可以把当前数据库中的数据拷贝到OracleDatabase10g的新建数据库中。
第3章OracleDatabase10g的
新增功能
3.1服务器可管理性
3.2性能调整
3.3安全性
3.4可用性和可恢复性
3.5商业智能
3.6应用程序开发方面的新功能
3.7其他新增的数据库功能
第4章体系结构
4.1概述
●Oracle系统的体系结构是指组成Oracle系统的主要组成部分,这些组成部分之间的关系,以及这些部分的工作方式。
●在Oracle系统的体系结构中,主要涉及到以下5个组件:
–连接数据库实例的能力,这是Oracle系统的体系结构中协同工作的方式;
–服务器进程;
–文件系统的结构层次;
–内存区域的管理,尤其是系统全局区域(systemglobalarea,SGA)的特点和作用;
–后台进程。
4.2连接数据库实例
●本节介绍连接数据库实例的操作。
为了连接数据库实例,涉及到3个方面的内容,即
–用户进程
–Oracle监听器
–Oracle网络客户
4.2.1用户进程
●可以将用户进程(userprocess)看作是一些试图连接数据库的软件,例如客户工具。
用户进程可以使用OracleNetServices(Oracle网络服务)与数据库进行通讯。
OracleNetServices是一组通过网络连接协议提供网络连接的组件。
对应用开发人员和数据管理员来说,OracleNetServices屏蔽了不同硬件平台上设置不同网络的复杂性。
●在Oracle系统中,不用编辑服务器上的注册表,使用一些简单的配置文件就可以管理OracleNetServices。
4.2.2Oracle监听器
●Oracle监听器(listener)是一个运行于Oracle数据库服务器上的进程,其职责是监听来自于客户应用的连接请求。
●客户负责在初始化连接请求中向监听器发送服务名称。
该服务名称是一个标识符,它可以唯一地标识客户试图连接的数据库实例。
当然,Oracle监听器不仅能够监听数据库实例,而且还可以监听其他服务,例如HTTP服务器和IIOP服务器。
4.2.3Oracle网络客户
●对于SQL*Plus、OracleEnterpriseManager、OracleNetManager这些客户工具来说,可以使用OracleNetServices客户适配器与Oracle数据库进行交互。
●就像服务器一样,这些客户工具也需要经过配置才可以与网络上某处的数据库进行交互。
对于监听器来说,这个配置文件是listener.ora。
4.3服务器进程
●当OracleNetServices接收到用户进程的连接请求之后,就会将用户进程路由到一个服务器进程(serverprocess)。
●服务器进程负责在用户进程和Oracle实例之间调度请求和响应。
●当用户进程提交查询之后,服务器进程则负责执行该查询语句,即将数据从磁盘读入缓存,获取查询结果,然后向用户进程返回结果。
即使响应出现了某些错误,服务器进程也会把错误信息发回用户进程,以便用户进程进行合适的处理。
4.3.1专用服务器(dedicatedserver)模式
●系统会向每个要与数据库进行连接的用户进程赋予它自己的专用服务器进程。
●这是用户安装Oracle数据库时所配置的方式,也是大多数数据库管理员运行数据库的方式。
●专用服务器为用户进程和服务器进程之间提供了一对一的映射关系。
4.3.2共享服务器模式
●共享服务器也被称为多线程服务器(multi-threadedserver,MTS)。
●在共享服务器模式中,有一个调度程序组件。
该组件负责在用户进程与服务器进程之间进行路由。
当用户进程请求与共享服务器进行连接时,OracleNetServices就会将会话请求路由到调度程序中,而不是路由到服务器进程中。
然后,调度程序就会将请求发送到请求队列中,这时第一个空闲的共享服务器就会获得请求。
●共享服务器生成的结果则放回到响应队列中,受到调度程序的监控,并且返回到客户中。
4.4文件系统
●本节介绍Oracle系统所使用的文件系统。
●在Oracle数据库进程的日常操作中,该进程使用:
–数据词典
–应用数据
–用于数据库启动的参数
–事务处理日志
–管理数据库物理结构的文件
–其他类型的文件
4.4.1参数文件
●参数文件(parameterfiles)用于在启动实例时配置数据库。
●当建立数据库时,用户就可以运行初始化文件,该文件规定了数据库中所使用的各种设置值。
●这些设置包括数据库实例名称(SID)、数据库主要文件的位置、实例所使用的主要内存区域的大小等。
●该文件的名称通常为init.ora。
●例如,如果数据库实例名称是sales,则其初始化文件的名称是initsales.ora。
4.4.2控制文件
●控制文件(controlfiles)是Oracle服务器在启动期间用来标识物理文件和数据库结构的二进制文件。
控制文件提供了建立新实例时所需要的文件目录。
Oracle系统可以在常规的数据库操作期间,更新控制文件,以便下次使用。
●当用户建立控制文件时,最好建立多个控制文件副本。
如果可能的话,把这些控制文件副本放置到不同的物理驱动器上。
4.4.3数据文件
●数据文件是用来存放用户数据的地方。
这些数据文件对于用户数据的稳定性和完整性十分重要。
如果失去了这些数据文件,用户就不会有数据了,当然也就不会有数据库了。
●每一个数据库至少有一个与之相关的数据文件。
通常情况下,一个数据库有多个数据文件。
4.4.4数据存储层次
●数据库由一个或多个表空间组成;
●表空间由一个或多个数据文件组成,表空间中包含段;
●段(表、索引等)由一个或多个盘区组成。
段存在于表空间中,但是在表空间中可以有许多数据文件中的数据;
●盘区是在磁盘上连续的块的组。
一个盘区在一个表空间中,且在表空间中单一的文件中;
●块是数据库中最小的分配单元,也是数据库使用的最小I/O单元。
4.4.5表空间
●表空间是用户可以在Oracle系统中使用的最大的逻辑存储结构。
用户在数据库中建立的所有内容都会存储在表空间中。
每个Oracle数据库都提前配置了system表空间,它存储了数据字典和系统管理信息。
●一般情况下,用户和应用程序使用自己的表空间来存储数据。
写入到临时表中的数据、为大规模排序操作写入磁盘的数据块以及其他许多类型的临时数据都会被写入到表空间中。
4.4.6段
●段是用户建立的数据库对象的存储表示。
用户建立的每一个表都会有一个在表空间中存储的逻辑段。
为用户所建立的对象生成的段都要在磁盘上占用空间。
在Oracle系统中,有3种类型的段,即数据段、临时段和回滚段(有时也称为撤销段)。
●数据段是存储表、索引、簇、表分区等常规应用数据的地方。
●临时段是临时表空间中的段,可以用来存储临时表、引起内存页交换的SQL语句等。
●回滚段用于管理数据库中的undo数据,并且为事务处理提供数据库的读取一致性视图。
4.4.7盘区
●段是由一个或多个盘区构成的。
盘区是用来为段存储数据的逻辑上连续的数据块的集合。
当建立数据库对象时(无论如何,该对象都会消耗空间),系统就会建立一个或多个盘区来存储数据。
●盘区数量和盘区大小可以在正在建立对象的storage子句中规定。
●在Oracle系统中,默认的表空间的盘区管理风格是本地化管理,而不是字典管理。
4.4.8数据块
●数据块代表了数据库中最小颗粒的逻辑数据存储层次。
●数据块层次上是盘区结构。
●盘区是由连续的数据块集合构成,而盘区构成了段,段则构成了表空间,表空间构成了数据库。
4.4.9重做日志文件
●重做日志文件对Oracle数据库至关重要,它是数据库的事务日志。
重做日志文件仅用于恢复数据库。
当实例或存储介质失败时,使用重做日志文件来维护数据库。
●事实上,在Oracle系统中执行的每一步步操作都生成了一定数量的重做日志,它们被写入到联机重做日志文件中。
当将一个行插入到某个表中时,插入的结果被写入到重做日志中。
当删除表中的某行数据时,该行数据也被写入到重做日志中。
●Oracle数据库要求每个数据库实例都至少有两个重做日志文件组,每一个重做日志文件组中有一个单独的成员。
4.4.10临时文件
●在Oracle系统中,临时文件是一个特殊类型的数据文件类型。
●当内存不足以在RAM中保存一个大规模排序操作的中间结果或结果集时,Oracle使用临时文件来保存它们。
永久数据对象,例如表或索引,不会被存储到临时文件中,但是临时表或临时索引的内容则可能存储到临时文件中。
●所以,不能在临时数据文件中创建自己的应用程序表,但是可以在临时表中存储数据。
4.4.11Oracle管理文件
●Oracle管理文件(Oraclemanagedfile,OMF,有时也称为Oracle托管文件)。
●当数据库管理员在其数据库中使用Oracle管理文件时,可以省去对某些类型的数据库对象进行手工管理。
这些类型的数据库对象包括表空间、控制文件和联机重做日志文件。
●使用Oracle管理文件并未禁止数据库管理员使用以前的文件管理方式。
用户仍然可以为表空间、重做日志文件和控制文件规定明确的文件名。
4.5内存区域
●在Oracle系统的体系结构中,有许多不同的内存区域。
不同的内存区域用于不同的目的。
Oracle的服务器进程和许多后台进程负责在内存区域中写入、更新、读取和删除数据。
●理解内存区域的用途,有助于理解数据库操作期间的数据和进程流程。
●Oracle中的3个主要内存区域是:
–系统全局区域(systemglobalarea,SGA)
–程序全局区域(programglobalarea,PGA)
–用户全局区域(userglobalarea,UGA)
4.5.1系统全局区域
4.5.2程序全局区域和用户全局区域
●程序全局区域是为单独的服务器进程存储私有数据的内存区域。
与所有服务器进程都可以访问的共享内存区域SGA不同,数据库写入器、日志写入器和许多其他的后台进程,都只为各个服务器进程提供一个PGA。
PGA只能由他们的服务器进程访问。
●用户全局区域是用于存储会话状态的内存区域。
UGA的位置依赖于服务器是运行在共享服务器模式中,还是专用服务器模式中。
在专用服务器模式中,UGA会在PGA中分配,只能够由服务器进程访问。
4.6后台进程
●无论用户是否连接数据库,有些进程都会作为数据库的一部分运行。
这些进程被称为后台进程。
每一个后台进