课程表

Oracle 基础教程

Oracle 进阶教程

Oracle PL/SQL

Oracle OEM

Oracle 备份和恢复

Oracle RAC

工具箱
速查手册

Oracle教程

当前位置:免费教程 » 数据库/运维 » Oracle
Oracle

Oracle数据库是Oracle(甲骨文)公司的一款关系数据库管理系统。

Oracle在数据库领域一直处于领先地位,可以说是目前世界上流行的关系数据库管理系统。

Oracle系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。

开始学习Oracle数据库!


简介

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。

截止2017年7月12日,Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c 引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。本教程主要基于12c版本讲解。此外,本教程并不过多的涉及SQL查询语句的知识,如果你想学习更详细的SQL查询语句,请访问:

我们的SQL语言教程

Oracle 数据库是最高级的数据库技术,但当我们分析其核心组件时,会体会到它的复杂性。

Oracle官网:https://www.oracle.com/


起源

1970年的6月,IBM公司的研究员埃德加·考特(Edgar Frank Codd)在 Communications of ACM 上发表了那篇著名的《大型共享数据库数据的关系模型》(A Relational Model of Data for Large Shared Data Banks)的论文。这是数据库发展史上的一个转折。要知道,当时还是层次模型和网状模型的数据库产品在市场上占主要位置。从这篇论文开始,关系型数据库软件革命的序幕被拉开了。

虽然早在1970年就诞生了关系模型理论,但是市场上迟迟不见关系型数据库管理软件的推出。主要原因是很多反对者认为关系型数据库速度太慢,比不上当时的层次式数据库。值得好笑的是,IBM虽然1973年就启动了System R的项目来研究关系型数据库的实际可行性,也没有及时推出这样的产品,因为当时IBM的的IMS(著名的层次型数据库)市场不错,如果推出关系型数据库,牵涉到IBM很多人的自身利益。再者,IBM庞大复杂的官僚机构在决策上远不那么灵活。

1977年6月,Larry Ellison与Bob Miner和Ed Oates在硅谷共同创办了一家名为软件开发实验室(Software Development Laboratories,SDL)的计算机公司(ORACLE公司的前身)。那个时候,32岁的Larry Ellison,这个读了三家大学都没能毕业的辍学生,还只是一个普通的软件工程师。公司创立之初,Miner是总裁,Oates为副总裁,而Ellison,因为一个合同的事情,还在另一家公司上班。没多久,第一位员工Bruce Scott(用过ORACLE数据库软件的人都知道有个Scott用户的吧?没错,就是这个Scott,至于Scott用户的密码Tiger,那是Scott养的猫的名字)加盟进来,在Miner和Oates有些厌倦了那种合同式的开发工作后,他们决定开发通用软件,不过他们还不知道自己能开发出来什么样的产品。Oates最先看到了埃德加·考特的那篇著名的论文连同其他几篇相关的文章并推荐Ellison和Miner也阅读一下。Ellison和Miner预见到数据库软件的巨大潜力(跟着IBM走,没错),于是,SDL开始策划构建可商用的关系型数据库管理系统(RDBMS)。

很快他们就弄出来一个不太像样的产品,或者具体的说,更像一个Demo。根据Ellison和Miner他们在前一家公司从事的一个由中央情报局投资的项目代码,他们把这个产品命名为ORACLE。因为他们相信,ORACLE(字典里的解释有“神谕, 预言”之意)是一切智慧的源泉。1979年,SDL更名为关系软件有限公司(Relational Software,Inc.,RSI),毕竟“软件开发实验室”不太像一个大公司的名字。1983年,为了突出公司的核心产品,RSI再次更名为ORACLE。


总裁

拉里·埃里森 Larry Ellison:他是世界上最大数据库软件公司的老板,他的产品遍布全世界。他是陌生的人,但谁都似乎无法离开他。埃里森在32岁以前还一事无成。读了三个大学,没得到一个学位文凭,换了十几家公司,老婆也离他而去。开始创业时只有1200美元,最终却使得Oracle公司连续12年销售额每年翻一番。但世人知道,这期间他经历了多么漫长的人生奋斗历程。

拉里·埃里森 Larry Ellison

支持平台

甲骨文公司的Oracle10g/11g/12c支持以下的操作系统和硬件:

  • AppleMac OS X Server:PowerPC
  • HPHP-UX:PA-RISC,Itanium
  • HPTru64 UNIX:Alpha
  • HPOpenVMS: Alpha, Itanium
  • IBMAIX5L:IBM POWER
  • IBMz/OS:zSeries
  • Linux:x86,x86-64, PowerPC, zSeries, Itanium
  • Microsoft Windows: x86, x86-64, Itanium
  • Sun Solaris:SPARC, x86, x86-64

管理及开发工具

  1. Navicat for Oracle是一套专为Oracle设计的强大数据库管理及开发工具。它可以用于任何版本的Oracle数据库,并支援大部份Oracle的功能,包括触发器、索引、检视等。
  2. Toad for Oracle是一款老牌的Oracle开发管理工具,比任何一款Oracle开发管理工具功能更多,并针对使用者不同的角色有多个分支版本。版本包括:Toad DBA Suite for Oracle是一款专门为Oracle DBA管理Oracle数据库工具, Toad Development Suite for Oracle是一款专门为Oracle开发工具, Toad DBA Suite for Oracle – Exadata Edition是一款专门为Oracle Exadata一体服务器及Oracle数据库管理工具, Toad DBA Suite for Oracle - RAC Edition是一款专门为Oracle搭建集群RAC的DBA管理工具。

逻辑结构

它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。

总之,逻辑结构由逻辑存储结构(表空间,段,范围,块)和逻辑数据结构(表、视图、序列、存储过程、同义词、索引、簇和数据库链等)组成,而其中的模式对象(逻辑数据结构)和关系形成了数据库的关系设计。

段(Segment):是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。其中包括:

  • 数据段:用来存放表数据;
  • 索引段:用来存放表索引;
  • 临时段:用来存放中间结果;
  • 回滚段:用于出现异常时,恢复事务。
ORACLE逻辑结构

范围(Extent):是数据库存储空间分配的逻辑单位,一个范围由许多连续的数据块组成,范围是由段依次分配的,分配的第一个范围称为初始范围,以后分配的范围称为增量范围。

数据块(Block):是数据库进行IO操作的最小单位,它与操作系统的块不是一个概念。oracle数据库不是以操作系统的块为单位来请求数据,而是以多个Oracle数据库块为单位。

文件结构

数据库的物理存储结构是由一些多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件、警告文件等。

控制文件:存储实例、数据文件及日志文件等信息的二进制文件。alter system set control_files=‘路径’。V$CONTROLFILE。

数据文件:存储数据,以.dbf做后缀。一句话:一个表空间对多个数据文件,一个数据文件只对一个表空间。dba_data_files/v$datafile。

日志文件:即Redo Log Files和Archivelog Files。记录数据库修改信息。ALTER SYSTEM SWITCH LOGFILE; 。V$LOG。

参数文件:记录基本参数。spfile和pfile。

警告文件:show parameter background_dump_dest---使用共享服务器连接

跟踪文件:show parameter user_dump_dest---使用专用服务器连接


恢复技术

恢复意义

当我们使用一个ORACLE数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重新建立一个完整的数据库,该处理称为数据库恢复。恢复子系统是数据库管理系统的一个重要组成部分。恢复处理随时随地所发生的故障类型所影响的结构而变化。

恢复方法

IMPORT方法:

利用IMPORT,将最后一次EXPORT出来的数据文件IMPORT到新的数据库中,这种方式可以将任何数据库对象恢复到它被导出时的状态,此后的变化将无法挽回。IMPORT的命令可以交互式进行,各参数的具体含义见Oracle EXP/IMP参数详解。这种方式适用于没有采用archive 模式的环境。

安全的恢复方法:

如果数据库运行在archive 模式下,那么一旦数据库损坏则可以通过冷备份(热备份)和归档备份将数据库恢复到断点状态。

数据库控制文件恢复(假设所有控制文件均被破坏):

数据库基于文件系统: 利用操作系统的tar、cp等命令即可。

数据库基于裸设备:dd if=$ORACLE_BASE/con.bak of=/dev/rdrd/drd1 seek=12

数据库数据文件恢复数据及索引表空间、系统表空间的恢复:回拷相关的数据库文件和该数据文件备份以来所有生成的所有逻辑日志文件并执行如下命令:

svrmgrl>startupmount
svrmgrl>alterdatabaserecoverautomatic

如果控制文件被破坏,则:

svrmgrl>alterdatabaserecoverusingbackupcontrofile;#按照提示输入log文件名和redolog文件名
svrmgrl>alterdatabaseopenresetlogs;

数据库临时文件和回滚表空间的恢复:简单地offline drop 并重建即可 。

注意:如果数据库不运行在archive 模式下,则恢复只能恢复到上次备份时的状态。

转载本站内容时,请务必注明来自W3xue。
部分原创内容未经授权禁止转载,违者必究。