Oracle自学

oracle数据库是一个大型数据库系统,一般应用于商业,政府部门。另外由于它的功能很强大,能够处理大批量的数据,

所以在网络方面也用的非常多。

Oracle简称甲骨文,是仅次于微软公司的世界第二大软件公司,该公司名称就叫Oracle。
该公司成立于1979年,是加利福尼亚州的第一家在世界上推出以关系型数据管理系统(RDBMS)为中心的一家软件公司。

Oracle不仅在全球最先推出了RDBMS,并且事实上掌握着这个市场的大部分份额。
现在,他们的RDBMS被广泛应用于各种操作环境:Wi
ndows NT、基于UNIX系统的小型机、IBM大型机以及一些专用硬件操作系统平台。

RDBMS即关系数据库管理系统(Relational Database Management System),是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是关系数据库管理系统,常用的数据库软件有Oracle、SQL Server等。

事实上,Oracle已经成为世界上最大的RDBMS供应商,并且是世界上最主要的信息处理软件供应商。
由于Oracle公司的RDBMS都以Oracle为名,所以,在某种程度上Oracle己经成为了RDBMS的代名词。

Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、
因特网及电子商务等领域有着非常广泛的应用。因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、
跨硬件平台的数据互操作能力,使得越来越多的用户将Oracle作为其应用数据的处理系统。

Oracle数据库是基于“客户端/服务器(client/server)”模式结构。客户端应用程序执行与用户进行交互的活动。其接收用户信息,并向“服务器端”发送请求。
服务器系统负责管理数据信息和各种操作数据的活动。

Oracle Server是一个对象一关系数据库管理系统。它提供开放的、全面的、和集成的信息管理方法。

每个Server由一个 Oracle DB和一个 Oracle Server实例组成。它具有场地自治性(Site Autonomy)和提供数据存储透明机制,
以此可实现数据存储透明性。每个 Oracle数据库对应唯一的一个实例名SID,Oracle数据库服务器启动后,
一般至少有以下几个用户:Internal,它不是一个真实的用户名,而是具有SYSDBA优先级的Sys用户的别名,
它由DBA用户使用来完成数据库的管理任务,包括启动和关闭数据库;Sys,它是一个 DBA用户名,
具有最大的数据库操作权限;System,它也是一个 DBA用户名,权限仅次于 Sys用户。

数据库用户操作端,由应用、工具、SQL* NET组成,用户操作数据库时,必须连接到一服务器,该数据库称为本地数据库(Local DB)。
在网络环境下其它服务器上的 DB称为远程数据库(Remote DB)。用户要存取远程 DB上的数据时,必须建立数据库链。
Oracle数据库的体系结构包括物理存储结构和逻辑存储结构。由于它们是相分离的,所以在管理数据的物理存储结构时并不会影响对逻辑存储结构的存取。

Oracle 11g比10g多的新特性:
  1. 11 g 扩展了 Oracle 独家具有的提供网格计算优势的功能,来提高用户服务水平、减少停机时间以及更加有效地利用 IT资源,
       同时还增强全天候业务应用程序的性能、可伸缩性和安全性,利用真正应用测试尽量降低更改的风险


  2. 11 g降低了数据库升级以及其他硬件和操作系统更改的成本,显著简化了更改前后的系统测试以便您可以识别和解决问题。
       如:利用 Database Replay在数据库级别轻松捕获实际的生产负载并在测试系统上重新播放,
       这样有效的全面测试系统更改(包括关键的并发特性)的影响。


  3.利用自学功能自动进行 SQL 优化系统全局区和程序全局区的内存缓存区的自动、统一调整新的 advisor用于分区、
      数据恢复、流性能和空间管理针对自动数据库诊断监视器的增强,能够提供 Oracle 真正应用集群环境中的更好的
      性能全局视图以及改进的性能比较分析功能。


     Oracle数据库该如何学习?

在实践中学习,最好是边工作边学习(从事oracle程序开发工作),每次遇到的新东西都及时记录下来。内容很多的,你看书本和资料是没有方向的。

先了解常见的函数和常见的用途,慢慢在工作中再去积累!
若还没有工作,可以找个工资低点但是愿意给你机会的公司也行,半年后你就会应用自如;若已经工作,那你就多做做相关开发工作,最好学习下存储过程编写。

在实践中学习,最好是边工作边学习(从事oracle程序开发工作),每次遇到的新东西都及时记录下来。
内容很多的,你看书本和资料是没有方向的。先了解常见的函数和常见的用途,慢慢在工作中再去积累!
若还没有工作,可以找个工资低点但是愿意给你机会的公司也行,半年后你就会应用自如;
若已经工作,那你就多做做相关开发工作,最好学习下存储过程编写。

oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,
所以把学习经验共享一下,希望让刚刚入门的人对oracle有一个总体的认识,少走一些弯路。 

一、定位 

oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。
有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭J;管理则需要对oracle数据库的原理有深刻的认识,
有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会down掉整个数据库,相对前者来说,后者更看重经验。 

因为数据库管理的责任重大,很少公司愿意请一个刚刚接触oracle的人去管理数据库。对于刚刚毕业的年轻人来说,
可以先选择做开发,有一定经验后转型,去做数据库的管理。当然,这个还是要看人个的实际情况来定。 


二、学习方法 

我的方法很简单,就是:看书、思考、写笔记、做实验、再思考、再写笔记 
看完理论的东西,自己静下心来想想,多问自己几个为什么,然后把所学和所想的知识点做个笔记;
在想不通或有疑问的时候,就做做实验,想想怎么会这样,同样的,把实验的结果记下来。思考和做实验是为了深入的了解这个知识点。
而做笔记的过程,也是理清自己思路的过程。 


学习的过程是使一个问题由模糊到清晰,再由清晰到模糊的过程。而每次的改变都代表着你又学到了一个新的知识点。 

学习的过程也是从点到线,从线到网,从网到面的过程。当点变成线的时候,你会有总豁然开朗的感觉。当网到面的时候,你就是高手了 

很多网友,特别是初学的人,一碰到问题就拿到论坛上来问,在问前,你有没有查过书,自己有没有研究过,有没有搜索一下论坛?
这就叫思维惰性。由别人来回答你的问题,会让你在短时间内不费劲地弄懂这个知识点,然而通过自己的努力去研究它,
不但会更深入的了解这个知识点,更重要的是在研究的过程会提高你解决问题和分析问题的能力。
总的来说,没有钻研的学习态度,不管学什么东西,都不会成功的。 

当然,初学的人很多时候是因为遇到问题时,无从下手,也不知道去哪里找资料,才会到论坛上提问题的。
但我认为,在提问的时候,是不是可以问别人是如何分析这个问题?从哪里可以找到相关的资料?
而不是这个问题的答案是什么?授人以鱼不如授人以渔。 


下面我讲下我处理问题的过程 

首先要知道oracle的官方网站:www.oracle.com 这里有oracle的各种版本的数据库、应用工具和权威的官方文档。
其次,还要知道http://metalink.oracle.com/这里是买了oracle服务或是oracle的合作伙伴才可以进去的,
里面有很多权威的解决方案和补丁。然后就是一些著名网站:asktom.oracle.comwww.orafaq.net,www.dbazine.com。
这里有很多经验之谈。 

遇到问题了。如果是概念上的问题,第一时间可以找tahiti.oracle.com,这里会给你最详细的解释。
如果在运行的过程中出了什么错误。可以去 metalink看看。如果是想知道事务的处理的经验之谈。
可以去asktom。当然。这里只是相对而言。 

三、oracle的体系 
oracle的体系很庞大,要学习它,首先要了解oracle的框架。在这里,简要的讲一下oracle的架构,让初学者对oracle有一个整体的认识。 


1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成) 

控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件 
数据文件:存储数据的文件 
重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件 
参数文件:定义Oracle 例程的特性,例如它包含调整SGA 中一些内存结构大小的参数 
归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。 
密码文件:认证哪些用户有权限启动和关闭Oracle例程 

2、逻辑结构(表空间、段、区、块) 

表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。 
段:是对象在数据库中占用的空间 
区:是为数据一次性预留的一个较大的存储空间 
块:ORACLE最基本的存储单位,在建立数据库的时候指定 

3、内存分配(SGA和PGA) 

SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息, 
它是在Oracle 服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。 
PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,
PGA 在创建进程时分配在终止进程时回收 

4、后台进程(数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务进程、用户进程) 

数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件 
日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件 
系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复 
进程监控:负责在一个Oracle 进程失败时清理资源 
检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。 
归档进程:在每次日志切换时把已满的日志组进行备份或归档 
服务进程:用户进程服务。 
用户进程:在客户端,负责将用户的SQL 语句传递给服务进程,并从服务器段拿回查询数据。 

5、oracle例程:Oracle 例程由SGA 内存结构和用于管理数据库的后台进程组成。例程一次只能打开和使用一个数据库。 

6、SCN(System Change Number):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,
他是系统中维持数据的一致性和顺序恢复的重要标志。 

四、深入学习 

管理:可以考OCP证书,对oracle先有一个系统的学习,然后看Oracle Concepts、oracle online document,
对oracle的原理会有更深入的了解,同时可以开始进行一些专题的研究如:RMAN、RAS、STATSPACT、 DATAGUARD、TUNING、BACKUP&RECOVER等等。 

开发:对于想做Oracle开发的,在了解完 Oracle基本的体系结构之后,可以重点关注PL/SQL及Oracle的开发工具这一部分。 
PL/SQL主要是包括怎么写SQL语句,怎么使用Oracle本身的函数,怎么写存储过程、存储函数、触发器等。 
Oracle的开发工具主要就是Oracle自己的Developer Suite(Oracle Forms Developer and Reports Developer这些),学会如何熟练使用这些工具。 

介绍几本oracle入门的好书 
oracle官方文档:《concept》上面讲了oracle的体系和概念,很适合初学者看。 
OCP的教学用书,也就是STUDY GUIDE(SG)。

介绍几个网站 

http://tahiti.oracle.comoracle的官方文档 
现在http://www.oracle.com.cn/onlinedoc/index.htm也有官方文档,速度奇快 
http://metalink.oracle.com/oracle的技术支持网站。需要购买Oracle服务才能有一个帐号,才能登陆,有大量的Knowledge Base,大量问题解决经验。 
http://www.oracle.comoracle的官方网站,可以在这里down oracle的软件、官方文档和获得最新的消息 
http://www.dbazine.com/Oracle的杂志 
http://asktom.oracle.com 
http://www.orafaq.net/ 






目录如下: 1 Oracle 结构组件 目标 1-2 基本结构概述 1-3 Oracle 服务器 1-4 Oracle 实例 1-5 建立连接和创建会话 1-6 Oracle 数据库 1-7 物理结构 1-8 内存结构 1-9 系统全局区(SGA) 1-10 共享池 1-12 库缓存 1-13 数据字典缓冲区 1-14 数据库缓冲区 1-15 重做日志缓冲区 1-18 大储存池 1-19 JAVA 池 1-20 程序全局区(PGA) 1-21 进程结构 1-22 用户进程 1-23 服务进程 1-24 后台进程 1-25 数据库写进程(DBWn) 1-26 日志写进程(LGWR) 1-27 系统监控器(SMON) 1-28 进程监控器(PMON) 1-29 检查点进程(CKPT) 1-30 归档进程(ARCn) 1-31 逻辑结构 1-32 执行一个 SQL 语句 1-33 小结 1-34 2 Oracle 服务器入门 目标 2-2 数据库管理工具 2-3 Oracle 通用安装程序 2-4 交互式安装 2-5 使用反应文件的非交互式安装 2-6 Oracle 数据库配置助手 2-8 最优灵活体系结构(OFA) 2-9 Oracle 软件和文件位置 2-10 数据库管理员用户 2-11 ii 数据管理员的验证方式 2-12 使用密码文件验证 2-13 SQL*PLUS 2-14 Oracle 企业管理器 2-15 Oracle 企业管理器结构:基于 JAVA 的控制台和应用程序 2-16 Oracle 企业管理器结构:管理节点 2-17 Oracle 企业管理器控制台 2-18 DBA 工具 2-19 小结 2-20 3 管理 Oracle 实例 目标 3-2 初始化参数文件 3-3 PFILE initSID.ora 3-5 PFILE 例子 3-6 SPFILE spfileSID.ora 3-7 创建一个 SPFILE 3-8 SPFILE 例子 3-9 Oracle 管理文件 3-10 Oracle 管理文件例子 3-11 打开一个数据库 3-12 STARTUP 命令 3-15 ALTER DATABASE 命令 3-16 以受限模式打开数据库 3-17 以只读模式打开数据库 3-18 关闭数据库 3-19 关闭选项 3-20 用检测诊断文件管理一个实例 3-22 警报日志文件 3-23 后台跟踪文件 3-24 用户跟踪文件 3-25 允许和禁止用户跟踪 3-26 小结 3-26 4 创建数据库 目标 4-2 管理和组织一个数据库 4-3 创建的前提条件 4-4 规划数据文件的位置 4-5 创建数据库的方法 4-6 操作系统环境 4-7 使用数据库配置助手 4-8 创建数据库 4-9 数据库信息 4-10 iii 典型或用户自定义安装 4-11 其它参数 4-12 完成数据库创建 4-13 手动创建数据库 4-14 准备参数文件 4-15 创建 SPFILE 4-15 启动实例 4-16 创建数据库 4-17 使用 OMF 创建数据库 4-19 差错检测 4-20 数据库创建以后 4-21 小结 4-22 5 数据字典内容和使用 目标 5-2 数据字典 5-3 数据字典内容 5-5 如何使用数据字典 5-6 数据字典视图种类 5-7 动态性能表 5-8 查询数据字典和动态性能视图 5-9 数据字典例子 5-10 小结 5-10 6 维护控制文件 目标 6-2 控制文件 6-3 控制文件的内容 6-4 使用 SPFILE 多重控制文件 6-5 使用 init.ora 多重控制文件 6-6 用 OMF 管理控制文件 6-7 获得控制文件的信息 6-8 小结 6-9 7 维护重做日志文件 目标 7-2 使用重做日志文件 7-3 重做日志文件的结构 7-4 重做日志是如何工作的 7-5 强制日志切换和检查点 7-6 增加联机重做日志组 7-7 增加联机重做日志成员 7-8 删除联机重做日志组 7-9 删除联机重做日志成员 7-10 iv 清除、重定位或重命名联机重做日志文件 7-11 联机重做日志的配置 7-12 用 OMF 管理联机重做日志 7-13 获取组和成员的信息 7-14 归档重做日志文件 7-16 小结 7-18 8 管理表空间和数据文件 目标 8-2 概述 8-3 数据库的储存层次 8-5 SYSTEM 和非 SYSTEM 表空间 8-7 创建表空间 8-8 表空间的空间管理 8-9 本地管理表空间 8-10 字典管理表空间 8-11 改变存储设置 8-12 回滚表空间 8-13 临时表空间 8-14 缺省临时表空间 8-15 缺省临时表空间的限制 8-16 脱机状态 8-17 只读表空间 8-19 删除表空间 8-20 改变表空间的大小 8-21 允许数据文件的自动增长 8-22 手工改变数据文件的大小 8-23 给表空间添加数据文件 8-24 移动数据文件:ALTER TABLESPACE 8-25 为表空间的创建设置 ORACLE 管理文件(OMF) 8-27 使用 OMF 创建表空间 8-28 获得表空间的信息 8-29 小结 8-29 9 储存结构与关系 目标 9-2 概述 9-3 段的类型 9-4 储存子句的优先次序 9-7 片的分配和重新分配 9-8 使用和释放片 9-9 数据块 9-10 数据块的内容 9-11 块空间的利用的参数 9-12 v 自动段空间管理 9-14 设置自动段空间管理 9-16 手动数块管理 9-17 块空间的用法 9-18 数据字典视图 9-19 获取储存信息 9-20 小结 9-21 10 管理回滚段 目标 10-2 回滚段管理概述 10-3 回滚段 10-4 回滚段:用途 10-5 读一致性 10-6 回滚段的类型 10-7 自动回滚管理:概念 10-8 自动回滚管理:设置 10-9 自动回滚管理:初始化参数 10-10 自动回滚管理:UNDO 表空间 10-11 自动回滚管理:改变和 UNDO 表空间 10-12 自动回滚管理:转换 UNDO 表空间 10-13 自动回滚管理:删除一个 UNDO 表空间 10-14 自动回滚管理:其它参数 10-15 回滚数据的状态 10-16 自动回滚管理:调整 UNDO 表空间大小 10-17 自动回滚管理回滚配额 10-18 获取回滚段信息 10-19 小结 10-20 11 管理表 目标 11-2 储存用户数据 11-3 Oracle 数据类型 11-5 ROWID 格式 11-8 行的结构 11-10 创建一张表 11-11 创建临时表 11-13 创建表:指南 11-14 修改储存参数 11-15 手工分配片 11-16 重构非分区表 11-17 截断一张表 11-18 删除一张表 11-19 删除一列 11-20 vi 使用 UNUSED 选项 11-21 获取表的信息 11-23 小结 11-25 12 管理索引 目标 12-2 索引的分类 12-3 B 树索引 12-4 位图索引 12-6 B 树索引和位图索引的比较 12-7 创建普通 B 树索引 12-8 创建索引:指导 12-10 创建位图索引 12-11 修改索引的储存参数 12-12 分配和回收索引空间 12-13 重构索引 12-14 联机重构索引 12-16 合并索引 12-17 检查索引的有效性 12-18 删除索引 12-19 确认不使用的索引 12-20 获取索引信息 12-21 小结 12-21 13 维护数据的完整性 目标 13-2 数据的完整性 13-3 约束的类型 13-4 约束的状态 13-5 约束的检测 13-7 定义即时约束或延迟约束 13-8 强制主键和唯一键 13-9 外部关键字的考虑 13-10 在建表时定义完整性约束 13-11 定义约束的指导原则 13-13 允许约束 13-14 使用 EXCEPTIONS 表 13-16 获取约束信息 13-18 小结 13-20 14 管理密码安全和资源 目标 14-2 配置文件 14-3 密码管理 14-4 vii 允许密码管理 14-5 帐号密码锁定 14-6 密码寿命和过期 14-7 密码历史 14-8 密码验证 14-9 用户自定义密码函数 14-10 密码验证函数 VERIFY_FUNCTION 14-11 创建配置文件:密码设置 14-12 修改配置文件:密码设置 14-14 删除配置文件:密码设置 14-15 资源管理 14-16 允许资源限制 14-17 在会话级别设置资源限制 14-18 在调用级别设置资源限制 14-19 创建配置文件:资源限制 14-20 使用数据库资源管理器管理资源的使用 14-22 资源计划指示 14-24 获取密码和资源限制的信息 14-25 小结 14-26 15 管理用户 目标 15-2 用户和安全 15-3 数据库方案 15-4 检查创建用户 15-5 创建新用户:数据库验证 15-6 创建新用户:操作系统验证 15-8 改变用户的表空间限额 15-9 删除用户 15-10 获取用户的信息 15-11 小结 15-12 16 管理权限 目标 16-2 管理权限 16-3 系统权限 16-4 系统权限:例子 16-5 授予系统权限 16-6 SYSDBA 和 SYSOPER 权限 16-7 系统权限限制 16-8 回收系统权限 16-9 使用 WITH ADMIN OPTION 选项时回收系统权限 16-10 对象权限 16-11 授予对象权限 16-12 viii 回收对象权限 16-13 使用 WITH GRANT OPTION 选项时回收对象权限 16-14 获取权限信息 16-15 审计 16-16 审计指南 16-17 审计种类 16-19 数据库审计 16-20 审计选项 16-21 查看审计选项 16-23 获取审计记录 16-24 小结 16-25 17 管理角色 目标 17-2 角色 17-3 角色的优点 17-4 创建角色 17-5 预定义的角色 17-6 修改角色 17-7 分配角色 17-8 建立默认角色 17-9 应用程序角色 17-10 允许和禁止角色 17-11 撤销用户角色 17-13 删除角色 17-14 创建角色指南 17-15 使用密码和默认角色指导原则 17-16 显示角色信息 17-17 小结 17-18 18 使用全球支持 目标 18-2 全球支持特性 18-3 不同类型的方案编码 18-4 数据库的字符集和国家字符集 18-6 选择 Oracle 数据库字符集的指导原则 18-7 选择 Oracle 数据库国家字符集的指导原则 18-8 为双字节字符数据库选择一种统一代码方案 18-9 为双字节字符数据类型选择一种统一代码方案 18-10 指定语言相关行为 18-11 为服务器指定语言相关行为 18-12 语言和地区相关的缺省值 18-13 为会话指定语言相关的行为 18-14 客户端-服务器体系中的字符集 18-15 ix 为会话指定语言相关的行为 18-16 语言排序 18-17 NLS 排序 18-18 在 SQL 函数中使用 NLS 参数 18-20 语言索引支持 18-23 使用 NLS 导入和装载数据 18-24 获取字符集相关的信息 18-25 获取 NLS 相关的设置信息 18-26 全球支持实用工具 18-30 小结 18-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值