没有合适的资源?快使用搜索试试~ 我知道了~
Oracle10g培训教材电子档.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 56 浏览量
2022-04-28
15:55:11
上传
评论
收藏 102KB DOCX 举报
温馨提示
试读
64页
Oracle10g培训教材电子档.docx
资源推荐
资源详情
资源评论
Oracle10g 培训教材电子档
数据库就是存放用户数据的存储仓库,数据通过用户执行特定的操作语言(SQL)存入数据
库中,可以被方便的维护,在将来需要的时候,通过这些 SQL 语言还能够高效灵活进行访问。
DBMS: 数据库管理系统(Database Management System)就是管理数据库的软件,在 DBMS 中
有一部分数据字典,用于贮存它拥有的所有事物的相关信息,例如名称,结构定义,存储位置
和数据类型等要素,这种数据库和相关对象的数据也被称为元数据(metadata),存放在相应的
数据字典表中,可以被用户,管理员以及数据库自身访问。
为了更好的组织数据以利于性能的提高,出现了进一步的数据规范原则(三范式),通过三范
式将数据有效的组织成多个有特定数据关系的对象,这些对象叫做实体,而对象之间存在的数
据关系(而关系在 oracle 数据库中表现为主键,外键这些约束条件)
RDMBS:关系型数据库管理系统,现在数据库中以增加了对象(Objects)的概念,所以现在
的数据库也被叫做对象关系型数据库。
关系型数据库的概念用于描述数据库中多个表数据之间存在的关联关系,
oracle 的一些特点:
1.支持大数据量,多用户的并发事务处理能力
2.提供大量并发访问下的高性能保障
3.遵守数据存取语言,操作系统,用户接口和网络通信协议的工业标准
4.提供安全性控制和数据完整性控制
5.支持分布式数据库和分布处理的能力
6.具有可移植性,可兼容性和可连接性
7.提供了全球化,跨平台的数据库
oracle 主要开发工具
1.Sql*plus 执行数据查询,数据操作等操作,也可以用来创建,编译,执行 pl/sql 程序
2.Pro*C 嵌入式 C 语言,可以在 C 语言中直接嵌入 sql 语句,通过 Proc*C 编译器编译程序
3.SqlJ 嵌入式 Java 语言,可以在 Java 语言中直接嵌入 Sql 语句,通过 SqlJ 编译生成可以调用的
Java class
4.From 专用的应用开发工具,通常用于 Oracle ERP 软件的二次开发
5.Report 专用的报表开发工具,通常用于 Oracle ERP 软件的二次开发
6.Jdeveloper 开发 Java 程序的工具,类似 Jbuilder 可以各种 java 应用
企业管理器(oem) 由 Java 语言开发,可以在各种平台调用
http://hostname:1158/em/ 如果端口被占用了,oracle 也会选择其他端口。
emctl start dbconsole ,emctl status dbconsole ,emctl stop dbconsole 启动,查看状态,停止 oem
sqlplus 工具的基本特点:
1.是 Oracle 独有的运行环境,并不支持对其他数据库的操作
2.可以在不同平台运行,运行界面相同
3.除了可以支持标准的 SQL 外,也具有自己的一套 SQLPLUS 命令,用于辅助命令的执行,管
理和格式化结果
4.SQLPLUS 命令和 SQL 语句不一样,可以缩写,可以直接执行,不需要分号结束
5.在标准 SQL 的基础上,提供了对标准 SQL 扩充命令的支持
命令行中执行 sqlplus 各平台通用。标准的 SQLPLUS
命令行中执行 sqlplusw for windows 界面比标准 SQL 更加友好。仅在 windows 平台上有效
http://hostname:5560/isqlplus ; isqlplusctl start; isqlplusctl stop ;开启也停止 isqlplus 服务
数据库对象
表:最常见的数据库对象,用于存储数据的对象,也被叫做数据实体,表是用来存放数据的,
由行和列组成。列就是字段,行就是表中的记录
约束条件:就是数据校验规则,用于保证表中数据必须符合制订的规则,可以设置在单个字段
或者多个字段组合上的,写入这些字段的数据必须符合约束条件的限制
视图:也叫虚表,视图实际上就是一个命名的查询语句,并不真正存储数据,主要用于改变基
表数据的显示,也被用于简化查询语句的书写。视图的访问与表的访问方式一样,同样可以用
查询语句对视图中的数据进行访问
索引:构建于表的单字段或者多个字段组合上,用于加速对表中数据的查询
序列:用于产生顺序递增或递减的不重复的数字串,通常被作为主键约束的参考
同义词:一个数据对象的别名
存储过程:用于完成某种特定功能的 PL/SQL 程序,存储在数据库中,可以反复调用
函数:用于进行复杂计算的 PL/SQL 程序,返回一个计算结果,被存储在数据库中。
触发器:由事件触发而执行的 PL/SQL 程序,用于在特定时机执行特殊的任务的,通常由某
个特定的事件触发而执行,存储在数据库中
包:是一组相关的函数和存储过程的命名集合,存储在数据库
数据库文件的存储
数据文件:用于存放数据的操作系统文件,在文件中存放着用户创建的所有数据库对象的信息 ,
例如表,索引等,数据文件是数据库的重要文件,丢失数据文件将会导致数据丢失。
表空间:数据被存在数据文件中,但是数据库中数据文件被组织在一起被按照表空间的方式进
行管理,表空间是一个或多个数据文件的逻辑组合。在数据库中的存储空间表现为表空间,在
操作系统中表现为数据文件。
控制文件:数据库的核心文件,存放着数据库的重要信息,例如数据库的名称和数据库的结构
(数据文件,重做日志文件的名称和目录)
重做日志文件:记录数据库改变的文件,所有的数据修改操作都记录在日志文件中,主要用于
保证数据库的可恢复性
初始化参数文件:存放数据库初始化参数的文件,用于设置关于数据库的一些参数,在数据库
启动的时候需要读取,并根据初始化参数的设置分配数据库的内存空间。
数据库网络访问
数据库名:数据库的名称,在控制文件中有记录,在参数文件中通过 db_name 指定
实例名:数据库的内存区域和后台进程的集合的总称,在参数文件中通过 instance_name 指定,
通常与 db_name 相同
服务名:数据库系统在操作系统上被作为一个服务对待,所以对外数据库以服务的形式出现,
通常访问数据库被叫做访问数据库服务,服务名通过参数 server_name 指定
连接字符串:通过网络访问远端服务器上的数据库时,用于描述数据库访问地址的字符串,通
常的结构是“主机名(或 IP):端口号:服务名” 例如 192.168.0.1:1521:orcl
服务命名:连接字符串的别名,连接字符串书写过于复杂,所以使用服务命名替代,服务命名
被用于数据库的网络连接,通常是使用格式是:用户名/口令@服务命名
监听器:在服务端运行的一个进程,用于监听客户端到数据库的连接请求,在通过网络访问数
据库时必须启动。
安装数据库步骤
1.检测安装环境
2.修改系统核心参数
3.创建有权限的操作系统用户和组
4.设置环境变量
5.创建安装需要的目录
6.执行安装文件开始安装
在安装的时候,数据文件,日志文件,和控制文件的存储方式直接影响数据的安全性和性能,
可以选择存储方式包括了文件系统,祼设备和 ASM(自动存储管理),文件系统相对管理简
单,但是 I/O 性能不如祼设备,而祼设备的管理复杂,可能会带来一些问题。而 10G 的 ASM
管理方式既能简化管理,也能提高性能,但是由于是新技术,所以目前使用不多。
安装过程根据选项不同会略有区别,大致包括了安装软件(复制文件),link 文件,自动配置
操作系统相应文件,以及调用一些 oracle 软件完成其他配置等。
netca 配置网络,emca 配置 oracle 的 OEM 运行环境,dbca 创建数据库
在安装结束后,会出现一些汇总提示信息,记录在 oracle 的主目录下 install 目录的 readme.txt
文件中
用 dbca 创建数据库:
1.使用数据库的目的(高可用性,并发性,数据装载,高效查询统计)
2.数据库的应用类型(oltp,数据仓库,混合型)
3.数据库的存储结构设计(表空间的组成和划分,数据文件的存储)
4.数据库的名称和字符集(创建好数据库后不可改动)
5.合适的数据块大小(创建好数据库后不可改动)
6.数据存储容量和数据增幅(表空间,数据文件大小及存储分布等)
其中数据库字符集,数据库名称,数据块大小 db_block_size 不宜修改
另外,有些设置虽然可以调整,但最好提前确定好,否则虽然可以修改,但可能需要重起数据
库,影响生产系统运行
SGA 大小 sga_max_size,日志缓冲区大小 log_buffer,最大允许进程数 processes 等
其他建库时需要注意的设置
文件存储方式(文件系统 |raw|asm)影响 I/O 性能,同样难以更改
数据文件大小,日志文件大小,如需更改,带来更多的维护工作
创建数据库大体步骤
1.设置数据库类型(选择模版)
2.指定全局数据库名和 SID
3.选择 OEM 配置选项
4.选择数据库的存储方式
5.选择数据库文件的存储位置
6.设置快速恢复区
7.配置数据库的选件(确定在数据库创建后需要安装哪些 oracle 特性选件)
8.指定内存,字符集,数据库大小,跟踪告警文件位置,以及归档的一些选项
9.定义数据库的数据文件,控制文件,日志文件
10.选择下面的一些选项以执行(1.创建数据库 2.保存为模板 3.产生创建脚本)
体系结构
DB Server 包含了实例(instance)和数据库(database)两部分
数据库包括了一些重要的组成文件,也就是数据库的物理结构,而实例则包含系统全局区
(sga 也就是内存结构)和后台进程(也就是进程结构)
数据库中有一些重要的文件,如数据文件,重做日志文件和控制文件,也有一些不太重要的文
件,如初始化参数文件,口令文件和归档日志文件,重要的那些文件被叫做关键性文件,数据
库的运行离不开这些文件,而另外的那些文件叫做非关键文件,则是为了增强数据库某方面的
功能所需要的
SGA 的必要内存区包括 Shared Pool(共享池)、 DB Buffer Cache(数据库高速缓存)和 Redo
Log Buffers(重做日志缓存区)。共享池中又包含了库高速缓存(Library Cache)和数据字典高
速缓存(Data Dict Cache),其中库高速缓存中暂存了最近常用的 SQL 和 PL/SQL 语句文件,
分析代码执行计划,用于减少代码的硬解析频度;数据字典高速缓存中暂存了最近常用的数据
字典信息,用于为 SQL 语句解析提供可以快速读取的数据字典信息。数据库高速缓存(DB
Buffer Cache)暂存最近常用的数据块信息,减少磁盘 I/O 操作,用于提高数据访问的速度。
重做日志缓存区暂存最近生成的重做日志,将来批量写到重做日志文件中,这样可以确保日志
能够更快的生成,提高 DML 操作的执行速度,也能够减少日志带来的写频度。
除了必要内存区外,SGA 也有一些可选的内存区,主要有大池(Large Pool),Java 池(Java
Pool)以及流池(Stream Pool)。大池主要用于共享模式存放用户全局区(UGA)的信息,也提
供了对 Rman 备份恢复以及并行进程的支持。Java 池的功能类似于共享池,暂存 Java 程序的信
息。Stream 池是 10G 的新内存区,支持新的流复制技术
除了 SGA 的各个内存区,实例也包括了执行特定任务的后台进程,后台进程同样分为必须的
和 可 选 的 后 台 进 程 。 必 须 的 后 台 程 主 要 有 五 个 , 分 别 是
DBWR,LGWR,PMON,SMON,CKPT ,可选的很多,常见的 ARCn
DBWR 叫做数据库写进程,用于将数据高速缓存中被修改过的数据块(脏缓存块)写回数据
文件;LGWR 叫做重做日志写进程,用于将重做日志缓存区中的日志记录按照日间顺序写入重
做日志文件;PMON 叫做进程监视进程,用于监视用户进程和服务进程的连接状态,如果发现
连接异常断开,则回滚会话中没有完成的事务,释放事务中的锁和其他资源;SMON 叫做系统
监视进程,用于在启动数据库时检测系统的同步性,如如同步则直接打开数据库,如果不同步 ,
则执行实例恢复;CKPT 叫做检查点进程,用于在特定时机下强制同步操作,保证数据同步性
的。 ARCN 叫归档进程,用于在归档模式下当日志切换时读取重做日志文件内容,生成归档
日志文件,而归档日志文件就是重做日志文件内容的备份。
实例是由内存部分和进程部分组成的,也是用户访问数据库的入口,会话只能通过实例访问数
据库,一个实例只能对应一个数据库,通常一个数据库也只对应一个实例,但是在 RAC(实
时应用集群)结构中,一个数据库可以对应多个实例,在这种单数据库多实例的结构中,每个
实例可以承载一定的会话数,多个实例可以扩大并发的会话数,实现连接负载均衡的功能,同
时当一个实例故障时,其它实例仍然可以保证会话的连接和操作,提供了数据库的高可用性。
SGA:系统全局区,是 DB Server 中实例的必要组成部分,由很多小内存区共同构成,各个小
内存区存放不同的信息,系统全局区用于暂存可以被所有进程(包括 server process 以及
background process)共享的信息,对系统的运行性能有好处,SGA 在实例启动的时候自动分
配,实例关闭时自动释放
PGA:程序全局区,DB Server 之外的内存区,被每个 Server Process 私有,存储当前会话私有
的信息,包括了会话信息,排序空间,会话全局变量等,当 Server Process 建立的时候分配,
会话断开时释放。
SGA 被叫做系统全局区,暂存系统的大量共享数据,对系统有相当的性能影响,所以需要为
SGA 选择适当的管理方式,根据所使用的数据库版本不同,SGA 的管理有三种方式
8i:SGA 的大小由所有内存组件大小之和决定,不能直接定义 SGA 大小,对内存组件的大小可
台进行修改,但只能通过直接修改参数文件的内存参数大小,而且修改完数据库必须重起后才
能生效,所以这种内存管理方法叫做 SGA 的静态管理。
9i:SGA 的大小由初始化参数 SGA_MAX_SIZE 确定,各个内存组件大小之和不能超过这个参数。
可以直接通过命令进行修改内存组件大小而不用重启,这种叫做 SGA 的动态管理
10g:SGA 大小既可以像 9i 一人样动态管理,也可以实施 SGA 的自动管理,默认是 SGA 的自动
管理,启用 SGA 自动管理只需要设置初始化参数 SGA_TARGET 即可,各个组件大小之和不
超过 SGA_TARGET。在自动管理下,SGA 各个内存组件由数据库自动设置大小,设置各个
内存区大小的依据来源于系统自动收集的统计信息。
在设置内存组件大小的时候,分配的基本单位是粒度(granule)
granule 是一段连续的虚拟内存,大小取决于 SGA_MAX_SIZE 的大小,如果 SGA_MAX_SIZE
小于 128M,Granule 为 4M,否则 Granule 为 16M
大多数内存组件的大小必须是 Granule 的整数倍,Redo Log Buffer 的大小不受这个限制,可以
自行设置,它与其他小内存区共同构成 Granule 的整数倍
整个 SGA 最小不小于 3 个 Granule 大小,其中共享池一个,数据缓存区一个,其他分一个,
SGA 的总大小也一定是 Granule 的整数倍大小。
SGA 大多数组件的大小可以动态调整,只要确保所有的内存组件大小之和不超过 SGA_MAX
_SIZE 或 SGA_TARGET 的大小,在 10G 中 SGA 内存组件可以自动管理,各个内存大小由数
据库自己决定,设置 SGA_TARGET 参数(非 0)即可以开启内存自动管理,这个参数也可动
态修改,如果设置为 0,则意味着,禁用内存自动管理,伋需要 DBA 手动调整各个内存组件
大小。
以下内存组件大小可以由数据库自动设置
1.Buffer cache(db_cache_size)
2.Shared pool(shared_pool_size)
3.Large pool(large_pool_size)
4.Java pool(java_pool_size)
5.Stream pool(stream_pool_size)
共享池主要用于 sql 或 pl/sql 的解析,可以暂存最近常用的 sql 语句和相关数据字典信息
共享池主要包括两个与 sql 语句解析性能相关的内存组件。
库高速缓存 ; 数据字典高速缓存
共享池大小由参数 shared_pool_size 决定大小,可以动态调整,它的各个内部件大小由共享池
大小决定,不能单独设置
剩余63页未读,继续阅读
资源评论
cailibin
- 粉丝: 4
- 资源: 7013
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功