千家信息网

Oracle专题1之Oracle概述、Oracle数据库的体系结构以及常用命令

发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,1、Oracle概述- Oracle Database,简称为Oracle。是美国ORACLE(甲骨文)公司的一款对象关系型的数据库管理系统(ORDBMS)。目前在数据库市场上占有主要份额。- Ora
千家信息网最后更新 2024年11月25日Oracle专题1之Oracle概述、Oracle数据库的体系结构以及常用命令

1、Oracle概述

- Oracle Database,简称为Oracle。是美国ORACLE(甲骨文)公司的一款对象关系型的数据库管理系统(ORDBMS)。目前在数据库市场上占有主要份额。

- Oracle的发展史:1977年埃里森和两个朋友,成立RSI公司;1979年的夏季,RSI发布了Oracle第二版;1983年,发布Oracle第三版,并在1983年改名为Oracle公司(含义是"一切智慧的源泉");1986年,成为世界第四大软件公司;1992年6月,Oracle发布第7版;1997年,Oracle发布第8版;2001年6月,Oracle发布了Oracle 9i;2003年9月,Oracle发布了Oracle 10g;2007年7月11日,Oracle发布了Oracle 11g;2013年,Oracle 12c发布。(注:本系列专题使用的是Oracle 11g。)


- 为什么要学习Oracle?

- 性能优越,大型数据库中的典范;是对象关系型的数据库管理系统(ORDBMS);应用广泛,在管理信息方面,企业数据处理,因特网以及电子商务等领域使用非常广泛。

- 在数据安全性和数据完整性控制方面性能优越;跨操作系统,跨硬件平台的数据互操作能力;支持多用户,大事务量的事务处理;可移植性好。

- Oracle 11g的安装教程不赘述,详细参看https://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html网页

- Oracle 11g的卸载:首先找到目录app\Administrator\product\11.2.0\dbhome_1\deinstall,单击deinstall.bat(会打开一个命令行窗口),然后按照命令行的提示一步步进行。



2、Oracle数据库的体系结构

- 平常所说的Oracle或者Oracle数据库指的是Oracle数据库管理系统。它由两部分构成,即Oracle Server由一个Oracle实例和一个Oracle数据库组成。(Oracle Server = Oracle Instance + Oracle Database。)

对于初次接触Oracle数据库的人来讲,很容易混淆的两个概念即是Oracle实例和Oracle数据库。


a、Oracles数据库

- 相关的操作系统文件(即存储在计算机硬盘上的文件)集合(包括控制文件、数据文件、联机日志文件、参数文件、密码文件等),这些文件组织在一起,成为一个逻辑整体,即为Oracle数据库。

- 数据库是用来存储数据的集合,Oracle用它来存储和管理相关的信息。

- Oracle数据库必须要与内存中的实例合作,才能对外提供数据管理服务。


b、Oracle实例

- 内存结构(SGA、PGA)和一系列后台进程(Background Process),两者合起来称之为一个Oracle实例。即:Oracle Instance = SGA、PGA + Background Process。

- Oracle内存结构:包含系统全局区(SGA)和程序全局区(PGA)。即Oracle Memory Strutures = SGA + PGA。(SGA由服务器和后台进程共享;PGA包含单个后台进程的数据和控制信息,与几个进程共享的SGA正相反,PGA是只被一个进程使用的区域,PGA在创建进程时分配在终止进程时回收,即由服务器进程产生。)

- SGA:系统全局区SGA,SGA = 数据缓冲区 + 重做日志缓冲区 + 共享池 + 大池 + Java池 + 流池。系统全局区是动态的,由参数SGA_MAX_SIZE决定。

- 数据缓冲区(Database buffer cache):存储从数据文件中获取的数据块的镜像。大小由db_cache_size决定。

- 重做日志缓冲区(Redo log buffer):对数据库的任何修改都按照顺序被记录在该缓冲,然后由LGWR进程将它写入磁盘中,大小由LOG_BUFFER决定。

- 共享池(Shared pool):是SGA中最关键的内存片段,共享池主要由库缓存(共享SQL区和PL/SQL区)和数据字典缓存组成,它的作用是存放频繁使用的sql,在有限的容量中,数据库系统根据一定的算法决定何时释放共享池中的sql。库缓存中大小由shared_pool_size决定。

- 数据字典缓存:存储数据库中的数据文件、表、索引、列、用户和其他数据对象的定义和权限信息,大小由shared_pool_size决定,不能单独指定。

- 大池(Large pool):是一个可选的区域,用于一些大型的进程如Oracle的备份恢复操作、IO服务器进程等。

- Java池:该程序缓冲区就是为Java程序保留的。如果不用Java程序没有必要改变该缓冲区的默认大小。

- PGA:是为每个用户进程连接ORACLE数据库保留的内存。进程创建时分配,进程结束时释放,只能被一个进程使用。PGA包括以下几个结构:排序区、游标状态区、会话信息区、堆栈区。由参数pga_aggregate_target决定。


- 后台进程:PMON --> 程序监控进程,SMON -->系统监控进程,DBWR --> 数据库写进程,CKPT --> 检查点进程。

- PMON(程序监控进程):清除失效的用户进程,释放用户进程所用的资源。如PMON将回滚为提交的工作,释放锁,释放分配给失败进程的SGA资源。

- SMON(系统监控进程):检查数据库的一致性,当启动失败时完成灾难恢复等。

- DBWR(数据库写进程):负责将修改过的数据块从数据库缓冲区高速缓存写入磁盘上的数据文件中。

- CKPT(检查点进程):DBWR/LGWR的工作原理,造成了数据文件,日志文件,控制文件的不一致,CKPT进程负责同步数据文件、日志文件和控制文件,更新数据文件/控制文件的头信息等。


c、Oracle实例与Oracle数据库的关系

- 一个实例能够装载以及打开一个数据库。

- 一个数据库能够被多个实例装载并打开。

- 实例与数据库的关系是一对一或者是多对一的关系。



3、Oracle中的常用命令


a、了解Oracle的7个服务的含义

- Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务,VSS(Volumne Shadow Copy Service)能够让存储设备(比如磁盘、阵列等)创建高保真的时间点映像,即映射拷贝(shadow copy)。(非必须启动)

- OracleDBConsoleorcl:Oracle数据库控制台服务,orcl是Oracle的实例标识,默认的实例为orcl。oracle健康检查专家塞姆说,在运行Enterprise Manager(企业管理器OEM)的时候,需要启动这个服务。(非必须启动)

- OracleJobSchedulerORCL:Oracle作业调度(定时器)服务,ORCL是Oracle实例标识。(非必须启动)

- OracleMTSRecoveryService:服务端控制。oracle健康检查专家塞姆说,该服务允许数据库充当一个微软事务服务器MTS,COM/COM+对象和分布式环境下的事务的资源管理器。(非必须启动)

- OracleOraDb11g_home1ClrAgent:Oracle数据库.NET扩展服务的一部分。(非必须启动)

- OracleOraDb11g_home1TNSListener:监听器服务,服务只有在数据库需要远程访问的时候才需要。(非必须启动)

- OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务。该服务是数据库启动的基础,只有该服务启动,Oracle数据库才能够正常启动。(必须启动)


b、ORACLE工具的使用

- 四种方式:SQL命令行方式(用Oracle中自带的SQLPlus)、浏览器方式,基于WEB的企业管理器EM、Sql Developer、PLSQL Developer工具。

- 浏览器方式,基于WEB的企业管理器EM的使用:找到Oracle企业管理(Oracle Enterprise Manager)控制台URL地址,将其复制到浏览器中:(需要注意的是有些浏览器不能使用次功能)。地址可以在\app\Administrator\product\11.2.0\dbhome_1\install目录中的readme.txt文件中查找。


c、Oracle中常用的SQL Plus命令

- Connect:切换连接用户,简写形式为conn。

- Show user:显示当前登录的用户。

- Host :执行操作系统命令。

- Spool:导出记录到文本中。

- Clear screen:清屏。

- Start d:\test.sql:执行文件系统中的SQL语句(注:start命令等同于@,即:@d:\test.sql)

- Desc:显示表结构。

- Show error:显示错误信息。

- EXIT:退出。

0