目录

1.Oracle体系结构

1.1实例的体系结构

1.1.1实例的概念

1.1.2实例的组成

1.2实例的内存结构

1.2.1 数据库高速缓存

1.2.2 重做日志缓冲区

1.2.3 共享池

1.2.4 Java池

1.2.5 进程全局区(PGA)

1.3实例中的后台进程

1.3.1 DBWR进程

1.3.2 LGWR进程

1.3.3 CKPT进程

1.3.4 SMON进程

1.3.5 PMON进程

1.3.6 ARCH进程

1.4实例的内存结构管理

1.4.1自动内存管理

1.4.2自动共享内存管理

1.4.3手工共享内存管理

1.5数据库的逻辑结构与物理结构

1.5.1数据库的逻辑结构

1.5.2 数据库的物理结构

2.数据库的启动和关闭

2.1 启动服务器

2.1 关闭服务器

2.3 启动实例分为哪几个阶段

3.控制文件管理

3.1 参数文件pfile与spfile

3.3.1pfile和spfile区别和联系

3.3.2参数文件的修改

3.2 重新创建控制文件

3.2.1控制文件全部不可用的情况

3.2.2修改数据库名称的情况

3.2.3 修改永久参数的情况

3.3 控制文件的备份与删除

3.4 控制文件信息的查询

3.4.1 查询控制文件的位置和名称

3.4.2 查询控制文件中记录的信息

3.4.3 使用spfile多元化控制文件

4. 日志文件管理

4.1 日志组

4.1.1 日志组与日志文件的状态

4.2 手工切换日志文件和清空日志文件

4.2.1 切换日志文件组

4.2.2 清空日志文件组


1.Oracle体系结构

1.1实例的体系结构

一个数据库服务器中至少有一个实例,在单机环境中,实例和数据库是一一对应的

1.1.1实例的概念

实例是一组内存结构和后台进程的集合

Oracle实例位于物理内存里的数据结构,它由操作系统的多个后台进程和一个共享的内存池所组成,共享的内存池可以被所有进程访问。Oracle 实例 = 进程+进程所使用的内存

1.1.2实例的组成

SGA(系统全局区)是实例的重要组成部分,一个实例只有一个SAG

用户对数据的操作实际上是在SGA中进行的

访问数据库时,实例为用户进程启动一个服务器进程,并分配一段内存区用来保存用户的私有信息和控制信息,这段内存叫进程全局区(PGA)

SGA是所有用户共享的,在实例的运行过程中一直存在

1.2实例的内存结构

当实例启动时,系统为实例分配一段内存空间,用来存储以下信息:

  • 程序代码
  • 缓冲数据:用户要访问的数据,重做日志等,这部分内存叫SGA
  • 会话有关信息
  • 进程间通信有关信息

SGA由多个缓存和缓冲池组成,主要包含以下类型的内存结构:

  • 数据库高速缓存
  • 重做日志缓冲区
  • Java池
  • 大池

1.2.1 数据库高速缓存

SGA中的一段存储区域,用来存放用户最近访问的数据

数据库高速缓存由一个个缓冲区组成,缓冲区大小与其中存放的数据块大小一致

根据缓冲区使用情况可分为:空闲缓冲区、脏缓冲区、忙缓冲区

1.2.2 重做日志缓冲区

重做日志是对用户事务所产生的记录,通过重做日志能产生新的数据,保证数据库安全

1.2.3 共享池

存放与SQL语句的执行相关的信息

包括以下三部分:

  • 数据字典高速缓存
  • 库高速缓存
  • 服务器结果缓存

共享池几乎和数据库中的所有操作都有关

1.2.4 Java池

用来存放运行Java所必需的共享代码和共享数据。多个Java代码可以共享Java池中的代码和数据

1.2.5 进程全局区(PGA)

包含了服务器进程的数据和控制信息,是一段非共享的内存区域

PGA包括两部分:私有SQL区和会话内存区

1.3实例中的后台进程

1.3.1 DBWR进程

将数据库高速缓存中的脏缓冲区内容写入数据文件中的数据块

1.3.2 LGWR进程

将重做日志缓冲区中的重做日志写入重做日志文件

1.3.3 CKPT进程

发出检查点

检查点时刻把所有的脏数据写入日志文件

1.3.4 SMON进程

作用:进行实例恢复

SMON是系统监视进程,他的功能是监视数据库服务器的运行状况,执行一些必要的清理工作

实例恢复步骤:

  1. rolls forward
  2. redo1
  3. rolls back

1.3.5 PMON进程

功能:定期检查用户进程,并进行回收资源的操作;将实例和调度器注册到网络监听器中

作用:负责事务故障的恢复;可选的实验进程

1.3.6 ARCH进程

功能:对重做日志文件进行归档

作用:归档进程(备份)

1.4实例的内存结构管理

有三种方法可以对实例的内存结构进行管理

  • 自动内存管理
  • 自动共享内存管理
  • 手工共享内存管理

1.4.1自动内存管理

一种完全自动的内存管理机制

1.4.2自动共享内存管理

自动共享内存管理用来对SGA进行自动设置

一种半自动化的内存管理机制

1.4.3手工共享内存管理

SGA中每种缓冲区的大小都需要手动设置,SGA的总大小为缓存区大小之和

1.5数据库的逻辑结构与物理结构

数据库服务器由实例和数据库组成,数据库用来存储数据,实例用来访问数据库中的数据

1.5.1数据库的逻辑结构

数据库的逻辑结构是指数据的逻辑组织形式,是Oracle内部用来管理数据的机制

即指数据之间的对应关系,只与数据文件有关

表空间 -> 段 -> 区 -> 块 (一对多)

1.5.2 数据库的物理结构

数据库的物理结构是指数据在操作系统中的存储方式,是对用户可见的组织形式

数据库的物理结构包括数据文件,控制文件,重做日志文件

数据文件:用来存储数据

控制文件:记录数据库的结构和状态

重做日志文件:记录用户对数据库所做的修改

2.数据库的启动和关闭

Oracle服务器的启动分为三个步骤:启动实例,装载数据库,打开数据库

2.1 启动服务器

命令:STARTUP MOUNT;

2.1 关闭服务器

命令:SHUTDOWN IMMEDIATE;

Shutdown Mode

A

I

T

N

Allow new connections(允许新连接)

x

x

x

x

Wait until current sessions end(等待当前会话结束)

x

x

x

o

Wait until current transactions end(等待当前事务结束)

x

x

o

o

Force a checkpoint and close files(强制检查点并关闭文件)

x

o

o

o

2.3 启动实例分为哪几个阶段

在 NOMOUNT 阶段打开参数文件

在 MOUNT 阶段打开控制文件

在 OPEN 阶段打开数据文件、日志文件

3.控制文件管理

控制文件要有一个副本坏掉,所有都结束,负责数据库的同步

控制文件的大小由参数文件决定

控制文件中包含:

  • 数据库名称
  • 数据文件和重做日志文件的位置和名称
  • 当前日志序列号
  • 检查点信息
  • 表空间的名称
  • RMAN的备份与恢复信息

3.1 参数文件pfile与spfile

3.3.1pfile和spfile区别和联系

  • pfile是文本文件的,而spfile是二进制格式的。
  • pfile默认init+实例名.ora ,是一个文本文件,可以编辑
  • spfile默认spfile+init+实例名.ora,是一个二进制文本,不能修改
  • 两个文件可以通过命令create pfile from spfile或者create spfile from pfile来创建

3.3.2参数文件的修改

3.3.2.1 pfile

pfile进行参数修改:直接进行编辑修改

3.3.2.2 spfile

(1)alter session :只对当前会话生效

(2)alter system set user_dump_dest ='/U01/app/rdbms/masterdb/masterdb/trace' scope=both;

scope的三个参数:

  • spfile:重启生效
  • momory:立即生效,关了就没
  • both:当前立即生效,重启仍然生效

(3)参数:deferred

新用户用新值,新用户才生效

(4)alter system修改初始化参数 control-file 的值

3.2 重新创建控制文件

3.2.1控制文件全部不可用的情况

创建控制文件的命令:create controlfile

一般情况下创建控制文件的任务由 sys 用户完成,普通用户身份创建控制文件,则需要有sysdba权限

步骤:

(1)创建控制文件时,首先启动实例,将数据库服务器启动到nomount状态

(2)控制文件被创建后,数据库服务器就打开控制文件,进行mount状态,为了使用户能够访问数据库,必须将数据库服务器的状态转入open状态

例:

create controlfile reuse database "orcl"

logfile

group 1 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG',

group 2 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG',

group 3 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG'

datafile

'E:\APP\ADMINISTRATOR\ORADATA\ORADATA\ORCL\SYSTEM01.DBF',

'E:\APP\ADMINISTRATOR\ORADATA\ORADATA\ORCL\SYSAUX01.DBF',

'E:\APP\ADMINISTRATOR\ORADATA\ORADATA\ORCL\UNDOTBS01.DBF',

'E:\APP\ADMINISTRATOR\ORADATA\ORADATA\ORCL\USERS01.DBF'

maxlogfiles 50

maxlogmembers 3

maxinstances 6

maxdatafiles 200

noresetlogs

noarchivelog;

3.2.2修改数据库名称的情况

数据库的名称由初始化参数 DB_NAME 指定

实例的名称由初始化参数 INSTANCE 指定

例:修改数据库名为ORCL

(1)修改DB_NAME的值

DB_NAME = ORCL

(2)创建控制文件

CREATE CONTROLFILE REUSE SET DATABASE orcl RESETLOGS

......

(3)启动服务器到 open 状态

STARTUP MOUNT

(4)查看初始化参数的值,确定新的控制文件是否起作用

SHOW PARAMETER DB_NAME

3.2.3 修改永久参数的情况

(1)永久参数的意义:

MAXINSTANCES:指定可以访问数据库的最大实例的个数

MAXLOGHISTORY:记录控制文件中可以记录的最大历史日志条数

MAXLOGFILES:指定数据库中包含的最大重做日志组数

MAXLOGMEMBERS:指定每个日志组中可以包含的最大重做日志文件数目

MAXDATAFILES:指定数据库中可以创建的最大数据文件数目

(2)永久参数保存在控制文件中,修改永久参数需要创新创建控制文件

创新创建数据库ORCL的控制文件

CREATE CONTROLFILE REUSE DATABASE ORCL NORESETLOGS

3.3 控制文件的备份与删除

备份控制文件时,不需要关闭数据库服务器,可以将数据库文件备份为一个二进制文件,也可以在跟踪文件中生成一条SQL语句

例如:将一个控制文件备份为一个二进制文件

ALTER DATABASE BACKUP CONTROLFILE TO '/home/oracle/control.bak'

以下语句用于将控制文件备份到跟踪文件TRACE之中:

ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

3.4 控制文件信息的查询

3.4.1 查询控制文件的位置和名称

获得数据库中的所有控制文件:

SELECT statue,name FROM V$CONTROLFILE;

通过初始化参数 CONTROL_FILES 查询控制文件信息:

SHOW PARAMETER CONROL_FILE;

3.4.2 查询控制文件中记录的信息

SELECT type,record_size,records_total,records_used FROM v$controlfile_record_section;/

3.4.3 使用spfile多元化控制文件

1)查看控制文件信息和spfile 信息,创建Pfile文件

select name from v$controlfile;

show parameter spfile;

create pfile from spfile;

2)修改control_files 参数后保存

alter system set control_files=05:58:01 2 '/u01/app/oracle/oradata/lx02/control01.ctl','/disk1/lx02/oradata/control02.ctl' scope=spfile;
System altered.

3)关闭instance ,拷贝controlfile

shutdown immediate

$ cp /u01/app/oracle/oradata/lx02/control01.ctl /disk1/lx02/oradata/control02.ctl

4)startup 启动实例

select name from v$controlfile;

4. 日志文件管理

恢复操作最关键的结构是重做日志,它由两个或多个预先分配的文件组成,这些文件存储发生时对数据库所做的所有更改。Oracle数据库的每个实例都有一个相关的重做日志,以在实例失败时保护数据库。

4.1 日志组

4.1.1 日志组与日志文件的状态

4.1.1.1 日志组有四种状态:unused、active、inactive、current

unused:该日志组从来没有被使用过

current:当前正在使用的日志组,即后台进程LGWR正在写的日志组。

active:活动状态,当发生日志切换的时候,状态为current的日志组就会变成active状态,表明记录在这个日志组的事务提交所造成的数据块改变,还没有完全从database buffer cache 写入到data file中。处在这个状态的日志组是不允许被覆盖的。崩溃恢复需要该状态,可用于块恢复,可能归档也可能未归档

inactive:非活动状态,处于这个状态的日志组,表明记录在这个日志组的事务提交所造成的数据块的改变,已经完全从database buffer cache写入到data file中了,实例恢复不再需要这个状态的日志组了, 所以这个日志组是可以被覆盖的。

4.1.1.2日志文件状态

blank:日志文件可以使用,就标记blank

invalid:日文文件不可使用,就标记invalid

stale:日志文件产生错误,就标记stale

deleted:

4.1.1.3 如何删除一个current状态的日志组

步骤:

  1. 切换日志组状态 变为active
  2. 设置检查点,手工设置归档,变为inactive
  3. 删除日志组。

4.2 手工切换日志文件和清空日志文件

4.2.1 切换日志文件组

日志文件组是循环使用的,当一组日志文件被写满时,Oracle系统自动的切换到下一组日志文件。在需要的时候,数据库管理员也可以手动的切换到其他的日志文件组。

切换日志文件组需要使用如下的语句:

alter system switch logfile;

4.2.2 清空日志文件组

如果日志文件组中的日志文件受损,将导致数据库无法将受损的日志文件进行归档,这会最终导致数据库停止运行。此时,在不关闭数据库的情况下,可以选择清空日志文件组中的内容。

清空日志文件组的语法如下:

alter database clear logfile group group_number;

注意:

被清空的日志文件组不能处于current状态,不能清空数据库当前正在使用的日志文件组。

当数据库中只有两个日志文件组时,不能清空日志文件组。

Oracle 数据库基本知识概念相关推荐

  1. oracle数据库sql基础知识,Oracle数据库基础知识为内部培训资料.doc

    PAGE 1 课程 IL001100 ORACLE数据库基础知识 ISSUE1.0 开心Java整理 IL001100 ORACLE数据库基础知识 ISSUE1.0 目录 PAGE 1 PAGE 45 ...

  2. oracle数据库中基础知识,oracle数据库基础知识

    oracle数据库基础知识 -- End loop --1 declare pnum number(4):=0; begin while pnum < 10 loop dbms_output.p ...

  3. oracle数据库基础知识总结,oracle数据库基础知识学习笔记

    oracle数据库基础知识学习笔记 一.oracle数据库类型: Char:  字符型(最大长度2000,定长.不足时以空格补充) Varchar2:字符型 最大长度 4000,变长,实际长度由存储的 ...

  4. Oracle数据库基础知识(一)

    创建表空间 create tablespace xiaomifeng1010 datafile 'c:\xiaomifeng1010.dbf' size 100m autoextend on next ...

  5. Oracle数据库基础知识+sql语句练习

    文章目录 四.数据库 4.1 Oracle 准备知识 SQL基本分类 Oracle数据类型 基本用法 事务 事务特性: 隔离性问题: 隔离级别: 锁 锁的介绍 锁的分类 锁的类型 锁等待和死锁 查看是 ...

  6. 关于Oracle数据库基本知识①——基本操作语句

    关于oracle数据库基础的数据库类型,sqlplus的基本操作以及oracle服务器(哈哈,我们老师有帮我们总结下图): 下图是数据库基本操作语句中的数据库指令,数据库语句CRUD,scott用户的 ...

  7. oracle数据库相关知识,Oracle数据库相关知识点复习

    一.Oracle数据库中常用的数据类型varchar2(长度)可变长字符串char(长度)定长number()表示整数或者浮点数number(8) number(8,2)clog字符的大对象blog二 ...

  8. oracle数据库基础知识总结,oracle知识点总结(一)

    关键字: oracle,database Oracle SQL(Oracle 9i 9.2.0.1.0) 一.DataBase 保存数据,以表的形式表现数据 二.SQL SQL(structure q ...

  9. Oracle数据库基本知识与SQL操作(1)

    登录数据库方式:     超级管理员:system +密码     Conn sys/pwd as sysdba     windows打开sql plus 命令:sqlplus /nolog 一.查 ...

  10. oracle数据库优化--基本概念

    oracle性能不好,首要检查数据库服务器的硬件配置.包括内存参数调整,oracle9i以后可以在 企业管理器 enterprise manager 中 例程--配置--内存 中查看内存以及pool的 ...

最新文章

  1. Java中Map用法详解
  2. Madagascar环境下编程
  3. np.dot()函数用法(亲测矩阵算法)
  4. vc++ mfc中拖动效果的实现 借助于CImageList
  5. mysql 视图 局部变量_mysql创建视图和存储过程,变量
  6. Spring源码分析之doDispatch分发请求逻辑
  7. 计蒜客2019蓝桥杯省赛 B 组模拟赛(一)轻重搭配|
  8. 文本圆角背景_ppt模板航天日PPT,半透明几何圆角长方形文本框
  9. Qt安装要注意的事项(Qt安装教程)
  10. jsp如何跳转java_JSP的三种跳转方式
  11. Php 实现在文档只读功能,如何将只读文档变成可编辑模式?
  12. 【python】微信公众号开发
  13. javaweb之c3p0连接池(c3p0-config.xml的写法)
  14. python写一个表白程序带时间_python如何写出表白程序
  15. android xposed miui9,vxposed在小米-安卓9上闪退
  16. 笔记本电脑右下角网络图标显示红叉
  17. 基于DNN的鼻咽癌鼻咽淋巴瘤数据处理
  18. C语言人机大战之决战三子棋之巅
  19. linux世界里类似source insight的工具(zz)-如梦初醒-中国教育人博客
  20. 兴安有礼隐私政策协议

热门文章

  1. 将ascii码转换成汉字
  2. 信息化建设成功的重要因素
  3. apk一键脱壳工具_海量破解、修改、无广告软件一键获取!一个工具就能轻松搞定!...
  4. 虚拟机中运行mac系统很卡
  5. php拼音转为汉字方法二
  6. 路由器手机测试网速的软件,4个实用的无线路由器WiFi检测工具,让你网速又快又稳定...
  7. OpenCV图像处理--EasyPR中文开源车牌识别系统
  8. MarkdownPad-显示Awesomium 已停止工作,This view has carshed!错误
  9. 基于3DMM的三维人脸重建技术总结
  10. 用Python学《微积分B》(序)