ORACLE 数据库管理员教程 SQL*DBA.

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

作業一 : USING DBMS ( 使用 DB2 及 SQL 基本練習 ) 報告人:學生楊群期 學號: 課程 : 高等資料庫 講師 : 楊維邦教授.
《 ORACLE 》 计算机技术与软件工程学院 胡斌 学习情境 6 系统安全管理( 8 学时) 按照系统的职能范围不同,可将Oracle的安全体系 结构分成三个部分; (1)数据库内部的管理:主要包括用户标识/口令 ;角色与权限等。 (2)资源管理:主要通过系统概要文件限制连接 会话等。 ( 3.
第四章 数据库管理和使用.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Oracle DBA.
第2章 資料庫系統 2-1 資料庫環境的四大組成元件 2-2 ANSI/SPARC的三層資料庫系統架構
6 Copyright © Oracle Corporation, All rights reserved. 维护控制文件.
目录 前言 I 简介 课程目标 I-2 Oracle9i 企业版 I-3 数据库管理员的任务 I-4 1 Oracle 体系结构组件
資料庫 (Database) SQL Server 2008實作
第3章 SQL的基础知识 数据库管理及应用 3.1 SQL简介 3.2 SQL的数据模型 3.3 标识符 3.4 使用SQL语句管理数据库
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
第6章 資料庫管理系統 6-1 關聯式資料庫管理系統 6-2 SQL Server資料庫管理系統
                            Oracle 并行服务器介绍
Oracle数据库 Oracle 子程序.
主机DB2数据库应用与编程 任课老师:王湖南 四川大学计算机(软件)学院.
第7章 建立資料表與完整性限制條件 7-1 資料型別 7-2 資料表的建立 7-3 建立完整性限制條件 7-4 修改與刪除資料表
6 ORACLE安全与审计 6.1 用户管理 6.2 系统级权限管理 6.3 对象级权限管理 6.4 角色 6.5 配置文件.
在PHP和MYSQL中实现完美的中文显示
Oracle数据库入门.
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
課程名稱:資料庫系統 授課老師:李春雄 博士
Oracle 10g(一) 体系结构.
Chap 10 SQL定義、操作與控制指令.
Basis基本操作、使用者 管理與權限設定
Oracle9i数据库专题培训 第三讲(数据库配置) 朱华廷(9i OCP)
資料庫安全 (Database Security)
查詢系統或角色權限 查詢使用者權限 select * from user_sys_privs 查詢使用者角色權限
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
第5章 資料倉儲的資料建置.
第三章:包   包(package)是一个可以将相关对象存储在一起的PL/SQL结构。包包含了两个分离的部件------包说明(specification)和包主体(body)。每个部件都单独被存储在数据字典中。包只能存储在数据库中,不能是本地的。除了可以将相关对象作为一组存在一起以外,包也是十分有用的,因为它们在依赖性方面的限制是比较小的。也有许多性能上的优点。
SQL Injection.
网络常用常用命令 课件制作人:谢希仁.
Windows网络操作系统管理 ——Windows Server 2008 R2.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
Online job scheduling in Distributed Machine Learning Clusters
第一章 Oracle 入门.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
第20章 MySQL数据库.
ORACLE 第九讲 触发器.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
ORACLE 数据库管理员教程 SQL*DBA.
微机系统的组成.
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
6 SQL語言與資料庫建置 6-1 SQL語言的基礎 6-2 SQL Server的資料庫結構 6-3 建立使用者資料庫
VB与Access数据库的连接.
姚金宇 MIT SCHEME 使用说明 姚金宇
第六類 資料庫備份與回復.
Web安全基础教程
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
信号量(Semaphore).
第4章 Excel电子表格制作软件 4.4 函数(一).
名以清修 利以义制 绩以勤勉 汇通天下 新晋商理念 李安平
iSIGHT 基本培训 使用 Excel的栅栏问题
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
Visual Basic程序设计 第13章 访问数据库
Delphi 7.0开发示例.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
Python 环境搭建 基于Anaconda和VSCode.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第二十四讲 装库与卸库.
VB与Access数据库的连接.
WEB程序设计技术 数据库操作.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第四章 UNIX文件系统.
第4章 体系结构 本章概述 本章要点 教学过程.
百万行、千万行数据查询教程 老黄牛.
Presentation transcript:

ORACLE 数据库管理员教程 SQL*DBA

序 数据库管理员是一个或一组全面负责管理和控制数据库系统的人员。 简称:DBA(Data Base Administrator)

数据库管理员的主要职责 了解ORACLE数据库的体系结构 负责数据库管理系统的安装和升级 启动和关闭数据库 管理和监控数据库用户 管理数据库特权 管理存储空间 建立数据库 后备和恢复数据库

第 一 章 ORACLE的体系结构

ORACLE的体系结构 体系结构概述 物理结构 数据文件、日志文件、控制文件、参数文件 内存结构系统全局区(System Global Area) 共享池、数据缓冲区、日志缓冲区 进 程 用户进程、服务器进程、后台进程

ORACLE的体系结构 体系结构图示 SGA 共享池 数据缓冲区 日志缓冲区 PMON LCKn RECO SMON DBWR ARCH CKPT LGWR Server User 数据文件 日志文件 参数文件 控制文件 存储介质

ORACLE的体系结构 物理结构 数据文件 日志文件 控制文件 参数文件

ORACLE的体系结构 物理结构 数据文件(Data File)是物理存储ORACLE数据库数据的文件。其特点如下: 每一个数据文件只与一个数据库相联系。 数据文件大小可修改(7.3以后)。 一个表空间可包含一个或多个数据文件。 注意:数据库文件要先有空间,后使用。 即:先创建数据,后存放数据。

ORACLE的体系结构 物理结构 · 修改数据文件的大小: · 修改数据文件的大小: sql>alter database datafile ‘c:\…’ resize 800m 如不使用resize,可设自动扩展策略: autoextend on next maxsize · 再增加一个数据文件: /home/app/oracle/oradata/ORACLE_SID/*.dbf

ORACLE的体系结构 物理结构 日志文件(Log File)记录对数据库数据修改前后的信息,以备恢复数据时使用。其特点: 每一个数据库至少包含两个日志文件组。 日志文件组以循环方式进行写操作。 每一个日志文件成员对应一个物理文件。 日志文件尽量大。 大小不可改变。

日志文件成员 每个组的日志成员为镜像关系,一般分放在不同的磁盘上。 一般情况下,每组的成员个数要相同, 日志文件尽量大。 ORACLE的体系结构 物理结构 日志文件成员 每个组的日志成员为镜像关系,一般分放在不同的磁盘上。 一般情况下,每组的成员个数要相同, 日志文件尽量大。

ORACLE的体系结构 物理结构 日志开关(Log Switch)是为实现日志文件组的循环使用而设置的。出现日志开关的情况如下: 当一个日志文件组被填满时 关闭数据库时 DBA手动转移日志开关

ORACLE的体系结构 物理结构 日志文件写操作图示 Group 1 Group 2 Log File 1 Log File 2 Member 2.1 Member 1.1

ORACLE的体系结构 物理结构 镜像日志文件是为防止日志文件的丢失,在不同磁盘上同时维护两个或多个联机日志文件的副本。其特点如下: 每个日志文件组至少包含两个日志文件成员,最多五个成员。 每组的成员数目相同。 同组的所有成员同时被修改。 同组的成员大小相同,不同组的成员大小可不同。

ORACLE的体系结构 物理结构 镜像日志文件图示 Group 1 Group 2 Log File 1 Log File 2 Member 2.1 Member 1.1 Log File 3 Log File 4 Member 2.2 Member 1.2 Disk 1 Disk 2

控制文件(Control File)是一个较小的二进制文件,用于描述数据库结构。 ORACLE的体系结构 物理结构 控制文件(Control File)是一个较小的二进制文件,用于描述数据库结构。 描述信息如下: 数据库建立的日期。 数据库名。 数据库中所有数据文件和日志文件的文件名及路径。 恢复数据库时所需的同步信息。 要点注意: 在打开和存取数据库时都要访问该文件。 镜像控制文件。 参数文件中记录控制文件名及路径的参数为: CONTROL_FILES

ORACLE的体系结构 物理结构 参数文件(Parameter File)是一个文本文件,可直接使用操作系统下的文本编辑器对其内容进行修改。该文件只在建立数据库或启动实例时才被访问,在修改该文件之前必须关闭实例。 初始参数文件:init.ora 生成参数文件:initSID.ora config.ora

ORACLE的体系结构 物理结构 参数文件的作用: 确定存储结构的大小。 设置数据库的全部缺省值。 设置数据库的范围。 设置数据库的各种物理属性。 优化数据库性能。

ORACLE的体系结构 物理结构 参数文件中参数的数据类型: 整型 例:DB_BLOCK_SIZE = 2048 字符型 例:DB_NAME = ‘ora7’ 逻辑型 例:CHECKPOINT_PROCESS = true

ORACLE的体系结构 系统全局区 共 享 池 数据库缓冲区 日 志 缓 冲 区

ORACLE的体系结构 系统全局区 实例( INSTANCE ) 是存取和控制数据库的软件机制,它由系统全局区(System Global Area,简称SGA)和后台进程组成。

SGA是ORACLE系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。

共享池(Shared Pool)由共享SQL区和数据字典区组成。参数SHARED_POOL_SIZE 确定共享池的大小。 ORACLE的体系结构 系统全局区 共享SQL区包括 SQL或PL/SQL语句的文本 SQL或PL/SQL语句的语法分析形式 SQL或PL/SQL语句的执行方案 共享池(Shared Pool)由共享SQL区和数据字典区组成。参数SHARED_POOL_SIZE 确定共享池的大小。 数据字典区用于存放数据字典信息行。

数据缓冲存储区(Database Buffer Cache)用于存储从数据文件中读的数据的备份。 ORACLE的体系结构 系统全局区 数据缓冲存储区(Database Buffer Cache)用于存储从数据文件中读的数据的备份。 数据缓冲区 数据文件 DB_BLOCK_SIZE 确定数据块的大小,一般为2K或4K,对于大数据块的数据库,此参数值为物理块的倍数。 DB_BLOCK_BUFFERS 确定数据块的数目。

ORACLE的体系结构 系统全局区 数据缓冲存储区分为 脏列表 包括被修改过但尚未写到数据文件的缓冲块。 LRU(Least Recently Used)列表 包括空闲缓冲块、正在存取的缓冲块、已被修改但尚未移到脏列表的缓冲块。

ORACLE的体系结构 系统全局区 日志缓冲存储区(Log Buffer)以记录项的形式备份数据库缓冲区中被修改的缓冲块,这些记录将被写到日志文件中。 LOG_BUFFER 确定日志缓冲区的大小。 日志缓冲区 日志文件

ORACLE的体系结构 进 程 用 户 进 程 服务器进程 后 台 进 程

ORACLE实例分为单进程实例和多进程实例两种。 SINGLE_PROCESS 单进程/多进程实例的转换。

单进程/单用户 一个进程执行全部ORACLE代码。 S G A ORACLE Server 数据库应用

多进程/多用户 使用多个进程执行ORACLE的不同代码,对于每一个连接的用户都有一个进程。 S G A 服务器进程 用户进程 后 台 进 程 多进程/多用户 使用多个进程执行ORACLE的不同代码,对于每一个连接的用户都有一个进程。

ORACLE的体系结构 进 程 后 台 进 程 专用服务器方式 为每个用户单独开设一个服务器进程。适用于实时系统。 不设置参数: S G A 用户进程 后 台 进 程 专用服务器方式 为每个用户单独开设一个服务器进程。适用于实时系统。 不设置参数: MTS_SERVICE MTS_DISPATCHERS MTS_SERVERS MTS_LISTERNET_ADDRESS

ORACLE的体系结构 进 程 多线索服务器方式 后 台 进 程 通过调度器为每个用户进程分配服务器进程。设置参数: S G A MTS_SERVICE MTS_DISPATCHERS MTS_SERVERS MTS_LISTERNET_ADDRESS 用户进程 S G A 服务器进程 后 台 进 程 调度器

ORACLE的体系结构 进 程 参数的涵义 MTS_SERVICE:服务器名,缺省值为DB_NAME MTS_DISPATCHERS:调度器个数 MTS_SERVERS:可以启动的服务器进程的个数 MTS_LISTERNET_ADDRESS:SQL*NET监听器地址 MTS_MAX_SERVERS:服务器进程的最大数

用户进程 当用户运行一个应用程序时,就建立一个用户进程。 ORACLE的体系结构 用户进程 用户进程 当用户运行一个应用程序时,就建立一个用户进程。

服务器进程 处理用户进程的请求。 处理过程 分析SQL命令并生成执行方案。 从数据缓冲存储区中读取数据。 将执行结果返回给用户。 ORACLE的体系结构 服务器进程 服务器进程 处理用户进程的请求。 处理过程 分析SQL命令并生成执行方案。 从数据缓冲存储区中读取数据。 将执行结果返回给用户。

后台进程 为所有数据库用户异步完成各种任务。 ORACLE的体系结构 后台进程 后台进程 为所有数据库用户异步完成各种任务。 主要的后台进程有 DBWR 数据库写进程 LGWR 日志写进程 CKPT 检查点写进程 SMON 系统监控进程 PMON 进程监控进程 ARCH 归档进程 RECO 恢复进程 LCKn 封锁进程

ORACLE的体系结构 后台进程 DBWR(Data Base Writer) 将数据缓冲区中所有修改过的缓冲块数据写到数据文件中,并使用LRU算法来保持缓冲区中的数据块为最近经常使用的,以减少I/O次数。该进程在启动实例时自动启动。

ORACLE的体系结构 后台进程 DBWR进行写操作的情况: 脏列表达到最低限制。 相当于参数DB_BLOCK_WRITE_BATCH值的一半。 一个进程在LRU列表中扫描指定数目的缓冲块,未找到空闲缓冲块。 参数DB_BLOCK_MAX_SCAN_CNT确定扫描数目。

ORACLE的体系结构 后台进程 DBWR进行写操作的情况: 出现超时 3秒钟内该进程未活动,则该进程将在LRU列表中查找尚未查找的缓冲块,这组缓冲块的数目相当于参数DB_BLOCK_WRITE_BATCH值的2倍。 出现检查点。

LGWR(Log Writer) 将日志缓冲区中的所有记录项写到日志文件中。 该进程在启动实例时自动启动。 ORACLE的体系结构 后台进程 LGWR(Log Writer) 将日志缓冲区中的所有记录项写到日志文件中。 该进程在启动实例时自动启动。

ORACLE的体系结构 后台进程 LGWR进行写操作的情况: 用户进程提交一个事务(Commit) 日志缓冲区达到1/3范围 DBWR对一个检查点需要清除缓冲块 出现超时(3秒钟内未活动,则进行一次写操作。)

ORACLE的体系结构 后台进程 检查点(Checkpoint) : 在检查点出现期间,DBWR进程将数据缓冲区中的所有脏缓冲块写到数据文件中,LGWR进程将日志缓冲区中的所有记录项写到日志文件中,以确保上一个检查点至今修改过的所有数据块都被写到磁盘上。

ORACLE的体系结构 后台进程 检查点: 预定数目的记录项被填满。 设置指定的秒数。 每个日志开关处 关闭实例时 DBA手动操作。 参数LOG_CHECKPOINT_INTERVAL确定了预定数目。 设置指定的秒数。 参数LOG_CHECKPOINT_TIMEOUT确定了间隔秒数。 每个日志开关处 关闭实例时 DBA手动操作。 表空间离线。

ORACLE的体系结构 后台进程 CKPT(Checkpointer) 在控制文件中记录检查点。参数CHECKPOINT_PROCESS 确定了检查点的启动/不启动状态。 若CKPT进程不启动,则该进程的工作将由LGWR进程代劳。(如果数据库的数据文件过多,这样操作会降低系统性能。)

ORACLE的体系结构 后台进程 ARCH(Archiver) 在日志文件组出现切换时,将旧日志文件的内容拷贝到脱机存储介质上,出现介质失败时用于恢复数据。 LOG_ARCHIVE_START 确定了该进程的启动/不启动状态。 ARCH 存储介质

ORACLE的体系结构 后台进程 ARCH(Archiver) LOG_ARCHIVE_DEST 当数据库在归档模式下操作时,该参数确定了日志文件的归档目标。 LOG_ARCHIVE_FORMAT 当数据库在归档模式下操作时,该参数确定了归档日志文件的缺省文件名格式。 ARCH 存储介质

ORACLE的体系结构 后台进程 SMON(System Monitor) PMON(Process Monitor) 负责完成自动实例恢复。该进程在启动实例时自动启动。 PMON(Process Monitor) 撤消异常中断的用户进程,并释放该进程已获得的系统资源或锁。

ORACLE的体系结构 后台进程 RECO(Recover) LCKn(Lock) 在分布式操作的情况下,恢复一个事务的失败。 在并行服务器系统间加锁,最多可加10个锁,分别为LCK0,LCK1,,LCK9。

处理SQL语句的三个阶段 语法分析 执行 返回指令 ORACLE的体系结构 示 例 处理SQL语句的三个阶段 语法分析 执行 返回指令 Server 共享池 数据缓冲区 日志缓冲区 SGA Server 共享池 数据缓冲区 日志缓冲区 SGA User SMITH ALLEN WARD   Server 共享池 数据缓冲区 日志缓冲区 SGA User SQL> SELECT ename FROM emp ;

SQL> SELECT sal FROM emp ORACLE的体系结构 示 例 SELECT操作 Server 共享池 数据缓冲区 SGA User B1 B2 EMP Table Block 1 Block2 SQL> SELECT sal FROM emp WHERE job = ‘CLERK’ ;

UPDATE操作 为了支持读一致性,恢复和回滚,所有修改操作需要回滚段。修改操作执行: ORACLE的体系结构 示 例 UPDATE操作 为了支持读一致性,恢复和回滚,所有修改操作需要回滚段。修改操作执行: 将数据块送到数据缓冲区 将回滚块送到数据缓冲区 在修改行上设置行锁 保存回滚数据到回滚段块 将修改写到数据块

ORACLE的体系结构 示 例 UPDATE操作 SGA 共享池 数据缓冲区 B1 B2 R2 R1 Data File 1 Server1 User User1 Server2 User User2 EMP Table Block 1 Block2 RB01 R1 R2 Data File 1 Data File 2 SQL> SELECT sal FROM emp WHERE job = ‘CLERK’ ; SQL> UPDATE emp SET sal = sal * 1.1 WHERE job = ‘CLERK’ ;

第 二 章 ORACLE的逻辑结构

ORACLE的逻辑结构 ORACLE的逻辑结构是由一个或多个表空间组成。 一个表空间由一组分类段组成 一个段由一组范围组成 一个范围由一批数据库块组成 一个数据库块对应一个或多个物理块

逻 辑 结 构 图 示 Database Tablespace Segment 112K Extent 84K Database Blocks Database DataFile

ORACLE的逻辑结构 数据库块 数据库块(Database Block)是数据库使用的I/O最小单元,又称逻辑块或ORACLE块。 一个数据库块对应一个或多个物理块,块的大小由参数DB_BLOCK_SIZE确定。

ORACLE的逻辑结构 数据库块 标题:包括通用的块信息,如块地址/段类型等,最佳大小为85-100bytes。 表目录:存储聚集中表的信息,这些信息用于聚集段。 行目录:包括这块中的有效行信息,允许使用每行开头的2bytes。 自由空间:这块中能插入或修改的一组空间。 行数据:存储表或索引的数据。

Command and Variable Header ORACLE的逻辑结构 数据库块 数 据 库 块 的 格 式 Command and Variable Header Table Directory Row Directory Free Space ROW DATA

PCTFREE 用于行的UPDATE操作,在遇到PCTFREE后,这块被填满且不能进行INSERT操作。 ORACLE的逻辑结构 数据库块 PCTFREE 用于行的UPDATE操作,在遇到PCTFREE后,这块被填满且不能进行INSERT操作。 PCTUSED 用于行的INSERT的操作,当块的百分比小于PCTUSED时,可通过行DELETE或UPDATE来减少列存储。

ORACLE的逻辑结构 数据库块 Free Space ROW DATA PCTFREE = 20% PCTFREE = 20% PCTUSED = 40% PCTUSED = 40%

ORACLE的逻辑结构 范 围 范围(Extent)是数据库存储空间分配的逻辑单位,一个范围由一组数据库块组成,范围是由段分配的,分配的第一个范围称初始范围,以后分配的范围称增量范围。

逻 辑 结 构 范 围 控 制 范 围 分 配 的 参 数 INITIAL 初始范围的大小,默认值为5个数据库块。 INITIAL NEXT 逻 辑 结 构 范 围 INITIAL 初始范围的大小,默认值为5个数据库块。 INITIAL NEXT MAXEXTENTS MINEXTENTS PCTINCREASE OPTIMAL FREELISTS NEXT 增量范围的大小,默认值为5个数据库块。 MAXEXTENTS 这个段中可分配的范围最大数目,默认值为99。 PCTINCREASE 每个增量范围的增量百分比,默认值为50%。 FREELISTS 为INSERT操作保留的空闲块列表数目。 MINEXTENTS 这个段中可分配的范围最大数目,默认值为1。 OPTIMAL 为回滚段指定最佳大小,默认值为 NULL。 控 制 范 围 分 配 的 参 数

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

ORACLE的逻辑结构 段 段的分类 数据段 索引段 回滚段 临时段 引导段 存储表或聚集 的所有数据 存储表或聚集 上最佳查询的 (Data Segment) 存储表或聚集 的所有数据 索引段 (Index Segment) 存储表或聚集 上最佳查询的 所有索引数据 回滚段 (Rollback Segment) 存储为读一致 性、回滚或恢 复用数据 临时段 (Temporary Segment) 存储排序操作 期间建立的临 时表的数据 引导段 (Bootstrap Segment) 存储数据字典 表的定义 段的分类

表空间(Tablespace)是数据库中物理编组的数据仓库,对应一个或多个数据文件,表空间的大小是它所对应的数据文件大小的总和。 ORACLE的逻辑结构 表空间 表空间(Tablespace)是数据库中物理编组的数据仓库,对应一个或多个数据文件,表空间的大小是它所对应的数据文件大小的总和。

ORACLE的逻辑结构 表空间 System Tablespace Data Tablespace Table Index Cluster DBFiles1 DBFiles2 DBFiles3

ORACLE数据库中的数据逻辑存储在表空间中,物理存储在数据文件中。 结 构 数据文件 日志文件 控制文件 参数文件 物理结构 表空间 段 范围 数据库块 逻辑结构

第 三 章 数据库的安装

硬件结构 客户/服务器方式2 客户/服务器方式1 终端方式 服务器 服务器 微机 1 微机 3 微机 5 微机 2 微机 4 微机 6 主服务器 微机 1 微机 3 微机 5 微机 2 微机 4 微机 6 子服务器 服务器 微机 1 微机 3 微机 5 微机 2 微机 4 微机 6 客户/服务器方式1 终端方式 服务器 终端 1 终端 3 终端 5 终端 2 终端 4 终端 6

数据库的安装 硬件需求 服务器 CPU Intel 486 网卡 支持TCP/IP协议 内存 16M 外存 1GB 数据库的安装 硬件需求 服务器 CPU Intel 486 网卡 支持TCP/IP协议 内存 16M 外存 1GB 客 户 Intel 486 支持TCP/IP协议 16M 400MB

数据库的安装 软件需求 服务器 操作系统 TCP/IP协议 客 户 操作系统 TCP/IP协议

数据库的安装 安装示例 1.修改OS参数 SEMMNI 20 SEMMNS 60 SHMMAX 20971520 SHMMNI 100 SHMSEG 15 3.建立一个ORACLE用户(DBA组),并登录到ORACLE用户下。 2.重新启动系统

数据库的安装 安装示例 4.设置环境变量 vi .profile 追加下列语句: ORACLE_HOME = /目录名/用户名 (/oracle/oracle8) ORACLE_SID = 数据库名(ora8) TERM = 终端类型(ansi)

数据库的安装 安装示例 5.读介质 磁盘: $ dd ibs=8k if=/dev/rdsk/f0q18dt |uncompress| cpio -icBmvd 磁带: $ cpio -icBvd </dev/rct0 (磁带设备号)

数据库的安装 安装示例 6.设置安装环境 $ cd newoi $ ./orainst $ su # cd /home/oracle/orainst # ./rootpre.sh 设置安装环境 # exit $

数据库的安装 安装示例 $ cd /home/oracle/orainst $ ./orainst

数据库的安装 安装示例 $ su # cd /home/oracle/orainst # ./root.sh 设置SQL*NET环境 # cd /etc # vi services 追加: orasrv 1525/tcp listener 1521/tcp # exit $ tcpctl start SQL*NET V1 或 $ lsnrctl start SQL*NET V2

数据库的安装 安装示例 一个产品对应一个子目录 公共目录(命令)bin 管理和维护软件 dbs 有关安装的软件 orainst

DBA应用程序 SQL*DBA SQL*Loader Export/Import SQL*DBA(SVRMGRL) 允许DBA控制和监视ORACLE数据库。 (只有DBA特权的用户可以使用)

DBA应用程序 SQL*DBA SQL*Loader Export/Import 命令执行方式: 行命令: $ svrmgrl mode = line 或 $ svrmgrl lmode = y SVRMGRL> 输入行命令 点菜单: $ svrmgrl

DBA应用程序 SQL*DBA SQL*Loader Export/Import SQL*Loader 将标准操作系统文件(文本文件或C数据格式文件)中的数据安装到ORACLE数据基表中。 (DBA和用户都可以使用)

DBA应用程序 SQL*DBA SQL*Loader Export/Import Export/Import 允许DBA卸出/恢复ORACLE格式的数据。

ORACLE特殊用户 internal system sys internal 只能在服务器端使用的超级用户,它具有DBA的所有特权。 连接方式与普通用户相同。

ORACLE特殊用户 internal system sys System (manager) 连接方式与普通用户相同。

ORACLE特殊用户 internal system sys Sys(change_on_install) 只能在服务器端使用的超级用户,它具有DBA的所有特权。 连接方式与普通用户相同。

数据库管理员的身份识别 通过操作系统识别 ,设置参数: REMOTE_LOGIN_PASSWORDFILE=NONE connect / as sysoper或connect / as sysdba 操作系统角色OSOPER和OSDBA,相当于旧版本的connect internal。 通过Oracle自己的Password文件识别 REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE opapwd file=filename password= password entries=max_users grant sysdba to scott或grant sysoper to scott connect scott/tiger@score.edu as sysdba

第 四 章 数据库的启动和关闭

启动步骤: 启动SVRMGRL 连接INTERNAL用户 启动实例 数据库的启动 启动步骤: 启动SVRMGRL 连接INTERNAL用户 启动实例 读参数文件 分配SGA 启动后台进程 打开后台跟踪文件

数 据 库 的 启 动 用菜单命令启动数据库,出现对话框如下: (o) Open ( ) Mount ( ) Nomount Start Instance (o) Open (o) Exclusive ( ) Parallel [ ] Retry Database Name ( ) Mount ( ) Nomount Patameter File [ ] Force [ ] Restrict to DBAs [ ] Recover (OK) (Cancel)

数据库的启动 启动方式: Open Mount Nomount 启动实例 打开数据库 启动数据库

数据库的启动 参数说明: Exclusive/Parallel:专用/并行数据库模式。 Database Name:要启动的数据库名,默认值为ORACLE_SID变量的值。 Parameter File:在启动实例时,访问的参数文件名,默认文件为initSID.ora。

数据库的启动 约束条件: Force:在启动实例前,强行关闭当前实例。 Restrict to DBAs:数据库启动后,只有DBA特权的用户才能访问数据库。 Recover:在启动实例时,用日志文件做数据库恢复。

数据库的启动 例:用行命令启动数据库 $ svrmgrl mode = line svrmgrl> connect internal svrmgrl> startup

数 据 库 的 关 闭 Instance Normal Immediate Abort Instance Start Up Shut Down > Mount Database > Open Database Force Checkpoint > Force Log Switch Configure Dispatcher Configure Shared Server . Instance Normal Immediate Abort Instance

数 据 库 的 关 闭 关闭方式: Normal 处理完用户提交的所有事务,等待 用户退出连接后,关闭数据库、卸载数 据库、关闭实例。在下次启动实例时, 不做实例恢复操作。 Immediate/ Abort Instance 结束正在处理的SQL语句、回滚未 提交事务、不等待用户退出正常连接。 在下次启动实例时,做实例恢复操作。

数据库的关闭 例:用行命令关闭数据库 $ svrmgrl mode = line svrmgrl> connect internal svrmgrl> shutdown

第 五 章 安全管理

安 全 管 理 用 户 Create User Name (o) Password Authentication (OK) (Cancel) Name (o) Password Authentication ( ) OS Authentication Default Tablespace Temporary Tablespace Quotas Profile

安全管理 用户管理 参数说明: Name:用户名 Password Authentication:用户密码 安全管理 用户管理 参数说明: Name:用户名 Password Authentication:用户密码 OS Authentication:操作系统识别方式,设参数 OS_AUTHENT_PREFIX的值为“OPS$”。 Default Tablespace:用户对象保存的表空间 Temporary Tablespace:临时用户对象保存的表空间 Quotas:用户使用的表空间限量 Profile:用户使用的系统资源限量

安全管理 用户管理 行命令建立用户: CREATE USER 用户名 INDENTIFIED BY 口令 EXTERNALLY 安全管理 用户管理 行命令建立用户: CREATE USER 用户名 INDENTIFIED BY 口令 EXTERNALLY DEFAULT TABLESPACE 表空间名 TEMPORARY TABLESPACE 表空间名 QUOTA 整数 K/M ON 表空间名 UNLIMITED PROFILE 环境文件名

安全管理 用户管理 例1:建立用户sidney CREATE USER sidney INDENTIFIED BY carton 安全管理 用户管理 例1:建立用户sidney CREATE USER sidney INDENTIFIED BY carton DEFAULT TABLESPACE cases_ts TEMPORARY TABLESPACE temp_ts QUOTA 5M ON cases_ts QUOTA 5M ON temp_ts PROFILE engineer ;

安全管理 用户管理 例2:建立按操作系统帐号george可存取的用户。 CREATE USER OPS$georage 安全管理 用户管理 例2:建立按操作系统帐号george可存取的用户。 CREATE USER OPS$georage INDENTIFIED EXTERNALLY DEFAULT TABLESPACE accs_ts TEMPORARY TABLESPACE temp_ts QUOTA UNLIMITED ON accs_ts QUOTA UNLIMITED ON temp_ts ;

安 全 管 理 用 户 Alter User User: ( ) No change in Authentication (OK) (Cancel) User: ( ) No change in Authentication (o) Change password to ( ) Change to OS authentication Default Object Tablespace Temp Segment Tablespace Quota Profile Default Roles STU9 STU10

安全管理 用户管理 参数说明: No change in Authentication:无识别方式 安全管理 用户管理 参数说明: No change in Authentication:无识别方式 Password Authentication:用户密码 OS Authentication:操作系统识别方式 Default Tablespace:用户对象保存的表空间 Temporary Tablespace:临时用户对象保存的表空间 Quotas:用户使用的表空间限量 Profile:用户使用的系统资源限量 Default Role:分配给用户的角色

安全管理 用户管理 行命令修改用户: ALTER USER 用户名 INDENTIFIED BY 口令 EXTERNALLY 安全管理 用户管理 行命令修改用户: ALTER USER 用户名 INDENTIFIED BY 口令 EXTERNALLY DEFAULT TABLESPACE 表空间名 TEMPORARY TABLESPACE 表空间名 QUOTA 整数 K/M ON 表空间名 UNLIMITED PROFILE 环境文件名 DEFAULT ROLE 角色名 ALL EXCEPT 角色名 NONE ,

安全管理 用户管理 例1: 例2: ALTER USER scott INDENTIFIED BY lion 安全管理 用户管理 例1: ALTER USER scott INDENTIFIED BY lion DEFAULT TABLESPACE tstest ; 例2: ALTER USER scott PROFILE clerk ;

安 全 管 理 用 户 Drop User User: [X] Including Assciated Schema Objects (OK) (Cancel) User: [X] Including Assciated Schema Objects STU9 STU10 STU11

安全管理 用户管理 行命令删除用户: 例如: DROP USER 用户名 CASCADE 安全管理 用户管理 行命令删除用户: DROP USER 用户名 CASCADE 例如: DROP USER bradley CASCADE ;

安 全 管 理 用 户 Kill User Session 例如: Session: (OK) (Cancel) Session: 6 7 SYS 9 3 SCOTT 13 9 STU15 例如: ALTER SYSTEM KILL SESSION ‘ 9, 3 ’ ;

安全管理 用户管理 与用户管理有关的数据字典视图: USER_USERS ALL_USERS DBA_USERS 安全管理 用户管理 与用户管理有关的数据字典视图: USER_USERS ALL_USERS DBA_USERS USER_TS_QUOTAS DBA_TS_QUOTAS

安 全 管 理 Create Profile 环 境 文 件 管理 Name: (OK) (Cancel) [ ] Sessions/User ( ) Limit: ( ) Unlimited ( ) Default [ ] CPU Time/Session ( ) Limit: ( ) Unlimited ( ) Default [ ] CPU Time/Call ( ) Limit: ( ) Unlimited ( ) Default [ ] Connect Time ( ) Limit: ( ) Unlimited ( ) Default [ ] Idle Time ( ) Limit: ( ) Unlimited ( ) Default [ ] Logical Reads/Session ( ) Limit: ( ) Unlimited ( ) Default [ ] Logical Reads/Call ( ) Limit: ( ) Unlimited ( ) Default [ ] Private SGA/Session ( ) Limit: ( ) Unlimited ( ) Default [ ] Composite Limit ( ) Limit: ( ) Unlimited ( ) Default

安全管理 环境文件管理 参数说明: Sessions/User:限制一个用户的并发会话个数。 安全管理 环境文件管理 参数说明: Sessions/User:限制一个用户的并发会话个数。 CPU Time/Session :限制一次会话的CPU时间,单位:百分之一秒。 CPU Time/Call:限制一次调用(一次语法分析、执行或获得)的CPU时间,单位:百分之一秒。 Connect Time:限制一会话总的使用时间,单位:分。 Idle Time:限制会话期间连接不活动周期,单位:分。长的运行查询和其它操作不受这个限制。

安全管理 环境文件管理 参数说明: Logical Reads/Session:限制在一次会话中读的数据块的数目,包括从内存或磁盘读的块数。 安全管理 环境文件管理 参数说明: Logical Reads/Session:限制在一次会话中读的数据块的数目,包括从内存或磁盘读的块数。 Logical Reads/Call:限制处理一个SQL语句(语法分析、执行和获取)一次调用所读的数据块的数目。 Private SGA/Session:限制一次会话在SGA的共享池可分配的专用空间的数目,单位:bytes/Kbytes/Mbytes。 Composite Limit:一次会话总的资源开销,以服务单位表示该参数的值。

安全管理 环境文件管理 ORACLE以下列资源的带权的和计算总的资源开销: Connect Time 安全管理 环境文件管理 ORACLE以下列资源的带权的和计算总的资源开销: CPU Time/Session Connect Time Logical Reads/Session Private SGA/Session

安全管理 环境文件管理 行命令建立环境文件: CREATE PROFILE 环境文件名 LIMIT SESSION_PER_USER 整数 安全管理 环境文件管理 行命令建立环境文件: CREATE PROFILE 环境文件名 LIMIT SESSION_PER_USER 整数 CPU_PER_SESSION UNLIMITED CPU_PER_CALL DEFAULT CONNECT_TIME IDLE_TIME LOGICAL_READS_PER_SESSION LOGICAL_READS_PER_CALL COMPOSITE_LIMIT PRIVATE_SGA 整数/K/M UNLIMITED DEFAULT

安全管理 环境文件管理 例如:建立环境文件SYSTEM_MANAGER。 CREATE PROFILE system_manager 安全管理 环境文件管理 例如:建立环境文件SYSTEM_MANAGER。 CREATE PROFILE system_manager LIMIT SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CONNECT_TIME 45 LOGICAL_READS_PER_SESSION DEFAULT LOGICAL_READS_PER_CALL 1000 PROVATE_SGA 15K COMPOSITE_LIMIT 5000000 ;

安 全 管 理 Alter Profile 环 境 文 件 Profile: (OK) (Cancel) CLERK DBA DEFAULT [ ] Sessions/User ( ) Limit: ( ) Unlimited ( ) Default [ ] CPU Time/Session ( ) Limit: ( ) Unlimited ( ) Default [ ] CPU Time/Call ( ) Limit: ( ) Unlimited ( ) Default [ ] Connect Time ( ) Limit: ( ) Unlimited ( ) Default [ ] Idle Time ( ) Limit: ( ) Unlimited ( ) Default [ ] Logical Reads/Session ( ) Limit: ( ) Unlimited ( ) Default [ ] Logical Reads/Call ( ) Limit: ( ) Unlimited ( ) Default [ ] Private SGA/Session ( ) Limit: ( ) Unlimited ( ) Default [ ] Composite Limit ( ) Limit: ( ) Unlimited ( ) Default CLERK DBA DEFAULT

安全管理 环境文件管理 行命令修改环境文件: ALTER PROFILE 环境文件名 LIMIT SESSION_PER_USER 整数 安全管理 环境文件管理 行命令修改环境文件: ALTER PROFILE 环境文件名 LIMIT SESSION_PER_USER 整数 CPU_PER_SESSION UNLIMITED CPU_PER_CALL DEFAULT CONNECT_TIME IDLE_TIME LOGICAL_READS_PER_SESSION LOGICAL_READS_PER_CALL COMPOSITE_LIMIT PRIVATE_SGA 整数/K/M UNLIMITED DEFAULT

安全管理 环境文件管理 例:在ENGINEER环境文件中定义5个 并行会话的限制。 ALTER PROFILE engineer LIMIT 安全管理 环境文件管理 例:在ENGINEER环境文件中定义5个 并行会话的限制。 ALTER PROFILE engineer LIMIT SESSION_PER_USER 5 ;

安 全 管 理 Drop Profile 环 境 文 件 管理 行命令删除环境文件: Profile: (OK) (Cancel) Profile: [ ] Reasign Profile Users to Default Profile CLERK DBA 行命令删除环境文件: DROP PROFILE 环境文件名 CASCADE

安 全 管 理 Alter Resource Cost 环 境 文 件 管理 CPU Time/Session: Connect Time: (OK) (Cancel) CPU Time/Session: Connect Time: Logical Reads/Session: Private SGA/Session:

安 全 管 理 行命令更改资源开销: 环 例如:指定资源的权。 境 文 件 管理 CPU_PER_SESSION 整数 ALTER RESOUCE COST CPU_PER_SESSION 整数 CONNECT_TIME 整数 LOGICAL_READS_PER_SESSION 整数 PRIVATE_SGA 整数 例如:指定资源的权。 CPU_PER_SESSION 100 CONNECT_TIME 1

安全管理 环境文件管理 与环境文件有关的数据字典视图: USER_RESOURCE_LIMITS DBA_PROFILES 安全管理 环境文件管理 与环境文件有关的数据字典视图: USER_RESOURCE_LIMITS DBA_PROFILES RESOURCE_COST

安全管理 特权管理 系统特权:完成特殊活动或在一个特殊 类型的对象上完成特殊活动 的一个特权。 对象特权:在一个指定的对象(表、视 安全管理 特权管理 系统特权:完成特殊活动或在一个特殊 类型的对象上完成特殊活动 的一个特权。 对象特权:在一个指定的对象(表、视 图、序列、过程、函数或包) 上完成一个特殊活动的特权。

Grant System Privileges/Roles 安 全 管 理 特 权 Grant System Privileges/Roles (OK) (Cancel) Grant: To: [ ] Allow grantee to grant the privilege(s)/role(s) to others

安全管理 特权管理 行命令授予系统特权或角色: GRANT 系统特权名 TO 用户名 角色名 角色名 PUBLIC 安全管理 特权管理 行命令授予系统特权或角色: GRANT 系统特权名 TO 用户名 角色名 角色名 PUBLIC WITH ADMIN OPTION ,

安全管理 特权管理 例1:将CREATE SESSION系统特权 授予RICHARD。 例2:将 CREATE TABLE 系统特权 安全管理 特权管理 例1:将CREATE SESSION系统特权 授予RICHARD。 GRANT create session TO richard ; 例2:将 CREATE TABLE 系统特权 授予RICHARD并带有允许授权选项。 GRANT create table TO richard WITH ADMINI OPTION ;

Revoke System Privileges/Roles 安 全 管 理 特 权 Revoke System Privileges/Roles (OK) (Cancel) Revoke: From:

安全管理 特权管理 行命令授予系统特权或角色: REVOKE 系统特权名 FROM 用户名 角色名 角色名 PUBLIC ,

安全管理 特权管理 例:从用户Bill和Mary回收DROP ANY TABLE系统特权。 安全管理 特权管理 例:从用户Bill和Mary回收DROP ANY TABLE系统特权。 REVOKE drop any table FROM bill , mary ;

安全管理 特权管理 回收系统特权的连锁反映分析: REVOKE A B C RESULT A B C GRANT A B C

安全管理 特权管理 对象特权的授权: 例1: 例2: GRANT select ON dept TO stu10 , stu11 ; 安全管理 特权管理 对象特权的授权: 例1: GRANT select ON dept TO stu10 , stu11 ; 例2: GRANT select , insert(empno , ename) , update(ename) ON emp TO scott WITH GRANT OPTION ;

安全管理 特权管理 对象特权的回收: 例1: 例2: REVOKE select ON dept FROM stu10 , stu11 ; 安全管理 特权管理 对象特权的回收: 例1: REVOKE select ON dept FROM stu10 , stu11 ; 例2: REVOKE all ON emp FROM scott ;

安全管理 特权管理 回收对象特权的连锁反映分析: REVOKE A C B RESULT A C B GRANT A C B

安全管理 特权管理 与特权有关的数据字典视图: DBA_SYS_PRIVS TABLE_PRIVILEGES 安全管理 特权管理 与特权有关的数据字典视图: DBA_SYS_PRIVS TABLE_PRIVILEGES COLUMN_PRIVILEGES ALL/USER_TAB_PRIVS ALL/USER_TAB_PRIVS_MADE ALL/USER_TAB_PRIVS_RECD ALL/USER_COL_PRIVS ALL/USER_COL_PRIVS_MADE ALL/USER_COL_PRIVS_RECD

安全管理 角色管理 角色是由一个命名的关联特 权组组成,用来维护和控制特权。 角色的特点: 减少授权次数 动态的特权管理 选择可用特权

安全管理 角色管理 无角色管理的授权示意图 用 户 特 权

安全管理 角色管理 使用角色管理的授权示意图 用 户 特 权 角 色

安全管理 角色管理 ORACLE数据库预定义的角色: 安全管理 角色管理 ORACLE数据库预定义的角色: CONNECT: ALTER SESSION, CREATE CLUSTER, CTEATE DATABASE LINK, CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE, CREATE TABLE, CREATE TRIGGER RESOURCE: CREATE CLUSTER, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER DBA: All system privileges WITH ADMIN OPTION EXP_FULL_DATABASE: SELECT ANY TABLE, BACKUP ANY TABLE, INSERT, DELETE and UPDATE on the tables SYS.INCVID, SYS.INCFIL and SYS.INCEXP IMP_FULL_DATABASE: BECOME USER, WRITEDOWN

安 全 管 理 角 色 Create Role Name: ( ) Use Password Authentication : (OK) (Cancel) Name: ( ) Use Password Authentication : ( ) Use OS Authentication ( ) Use No Authentication

安全管理 角色管理 行命令建立角色: 例1: 例2: CREATE ROLE 角色名 NOT IDENTIFIED 安全管理 角色管理 行命令建立角色: CREATE ROLE 角色名 NOT IDENTIFIED IDENTIFIED BY 口令 EXTERNALLY 例1: CTEATE ROLE acct ; 例2: CTEATE ROLE acct IDENTIFIED BY bicent ;

安 全 管 理 角 色 Alter Role Role: ( ) Change Password to : (OK) (Cancel) Role: ( ) Change Password to : ( ) Change to OS Authentication ( ) Change to No Authentication CONNECT DBA MONITORER

安全管理 角色管理 行命令修改角色: 例: ALTER ROLE 角色名 NOT IDENTIFIED IDENTIFIED BY 口令 安全管理 角色管理 行命令修改角色: ALTER ROLE 角色名 NOT IDENTIFIED IDENTIFIED BY 口令 EXTERNALLY 例: ALTER ROLE acct NOT IDENTIFIED ;

安 全 管 理 角 色 Drop Role Role: CONNECT DBA MONITORER RESOURCE (OK) (Cancel) Role: CONNECT DBA MONITORER RESOURCE

安全管理 角色管理 行命令删除角色: DROP ROLE 角色名 例: DROP ROLE acct ;

安全管理 角色管理 行命令删除角色: 注:授予角色特权和回收角色特 权的操作与给用户授权和回收操 作相同。 DROP ROLE 角色名 例: 安全管理 角色管理 行命令删除角色: DROP ROLE 角色名 例: DROP ROLE acct ; 注:授予角色特权和回收角色特 权的操作与给用户授权和回收操 作相同。

安全管理 特权管理 与角色有关的数据字典视图: ROLE_SYS_PRIVS ROLE_TAB_PRIVS ROLE_ROLE_PRIVS 安全管理 特权管理 与角色有关的数据字典视图: ROLE_SYS_PRIVS ROLE_TAB_PRIVS ROLE_ROLE_PRIVS SESSION_ROLES USER_ROLE_PRIVS DBS_ROLES

第 六 章 数据库物理文件 及存储空间的管理

Add Date File to Tablespace 数据库物理文件的管理 数据文件 Add Date File to Tablespace (OK) (Cancel) Tablespace: SYSTEM RBS USERS TEMP Date Files:

数据库物理文件的管理 数据文件 行命令追加数据文件: ALTER TABLESPACE 表空间名 ADD DATAFILE 文件说明 数据库物理文件的管理 数据文件 行命令追加数据文件: ALTER TABLESPACE 表空间名 ADD DATAFILE 文件说明 RENAME DATAFILE ‘文件名’ TO ‘文件名’ DEFAULT STORAGE 存储子句 ONLINE OFFLINE NORMAL TEMPORARY IMMEDIATE BEGIN BACKUP END ,

数据库物理文件的管理 数据文件 例如: ALTER TABLESPACE users 数据库物理文件的管理 数据文件 例如: ALTER TABLESPACE users ADD DATAFILE ‘userora1.dbf ’ SIZE 1M ;

数据库物理文件的管理 数据文件 Rename Date File Tablespace: Old Filenames: 数据库物理文件的管理 数据文件 Rename Date File (OK) (Cancel) Tablespace: SYSTEM RBS USERS TEMP Old Filenames: New Filenames: 注意:在执行该操作之前,新文件名应在指定路径下存在。

数据库物理文件的管理 数据文件 例如: ALTER TABLESPACE users 数据库物理文件的管理 数据文件 例如: ALTER TABLESPACE users RENAME DATAFILE ‘filename1’, ‘filename2’ TO ‘filename3’, ‘filename4’ ;

数据库物理文件的管理 数据文件 例如: 更改数据库命令的语法格式见《ORACLE数据库基础》P158。 ALTER DATABASE 数据库物理文件的管理 数据文件 更改数据库命令的语法格式见《ORACLE数据库基础》P158。 例如: ALTER DATABASE RENAME FILE ‘filename1’, ‘filename2’ TO ‘filename3’, ‘filename4’ ;

数据库物理文件的管理 数据文件 与数据文件有关的数据字典视图: DBA_DATA_FILES V$DATAFILE

Add Online Redo Log Group 数据库物理文件的管理 日志文件 Add Online Redo Log Group (OK) (Cancel) Thread Number: Group Number: Online Redo Log Member: [ ] Member Size: ( ) K ( ) M [ ] Reuse Existing File

数据库物理文件的管理 日志文件 行命令增加在线日志文件组,例如: ALTER DATABASE 数据库物理文件的管理 日志文件 行命令增加在线日志文件组,例如: ALTER DATABASE ADD LOGFILE (‘log1c.log’, ‘log2c.log’) SIZE 500K ;

数据库物理文件的管理 日志文件 删除在线日志文件组,DBA应在该操作之前考虑如下问题: 数据库物理文件的管理 日志文件 删除在线日志文件组,DBA应在该操作之前考虑如下问题: 删除该日志文件组后,数据库至少还包含两个在线日志文件组。 要删除的在线日志文件组是否为当前日志文件组。 要删除的在线日志文件组是否已归档。

Drop Online Redo Log Group 数据库物理文件的管理 日志文件 Drop Online Redo Log Group (OK) (Cancel) Online Redo Log Group: 1 2 3 注意:该操作只删除了控制文件中的指针,即进行了逻辑删除,物理删除直接使用操作系统命令完成。

数据库物理文件的管理 日志文件 行命令删除在线日志文件组,例如: ALTER DATABASE DROP LOGFILE GROUP 3 ;

Add Online Redo Log Member 数据库物理文件的管理 日志文件 Add Online Redo Log Member (OK) (Cancel) Members to Add: Add to Group #:

数据库物理文件的管理 日志文件 行命令增加在线日志文件成员,例如: ALTER DATABASE 数据库物理文件的管理 日志文件 行命令增加在线日志文件成员,例如: ALTER DATABASE ADD LOGFILE MEMBER ‘log2b.log’ TO GROUP 2 ;

Rename Online Redo Log Member 数据库物理文件的管理 日志文件 Rename Online Redo Log Member (OK) (Cancel) Old Filenames: New Filenames: 注意:在执行该操作之前,新文件名应在指定路径下存在。

数据库物理文件的管理 日志文件 行命令增加在线日志文件成员,例如: ALTER DATABASE 数据库物理文件的管理 日志文件 行命令增加在线日志文件成员,例如: ALTER DATABASE RENAME FILE ‘filename1’, ‘filename2’ TO ‘filename3’, ‘filename4’ ;

数据库物理文件的管理 日志文件 删除在线日志文件成员,DBA应在该操作之前考虑如下问题: 数据库物理文件的管理 日志文件 删除在线日志文件成员,DBA应在该操作之前考虑如下问题: 删除该日志文件成员后,每个日志文件组至少还包含两个在线日志文件成员。 要删除的在线日志文件成员是否为当前日志文件组的成员。 要删除的成员所属的在线日志文件组是否已归档。

数据库物理文件的管理 日志文件 Drop Online Redo Log Member 数据库物理文件的管理 日志文件 Drop Online Redo Log Member (OK) (Cancel) Group# Members 0001 DISKORA7: [KERNEL.RPKZ.DB] LOG1.ORA 0002 DISKORA7: [KERNEL.RPKZ.DB] LOG2.ORA 注意:该操作只删除了控制文件中的指针,即进行了逻辑删除,物理删除直接使用操作系统命令完成。

数据库物理文件的管理 日志文件 行命令删除在线日志文件成员,例如: ALTER DATABASE 数据库物理文件的管理 日志文件 行命令删除在线日志文件成员,例如: ALTER DATABASE DROP LOGFILE MEMBER ‘log3c.log’ ;

数据库物理文件的管理 控制文件 镜像控制文件的步骤: 关闭数据库 使用操作系统命令复制一份控制文件。 数据库物理文件的管理 控制文件 镜像控制文件的步骤: 关闭数据库 使用操作系统命令复制一份控制文件。 将CONTROL_FILES参数加入参数文件中,以指定复制的控制文件名及路径。 重新启动数据库

数据库存储空间的管理 表空间 Create Tablespace Name: Data Files: Storage: 数据库存储空间的管理 表空间 Create Tablespace (OK) (Cancel) Name: Data Files: Storage: ( ) Bring Online After Creation ( ) Leave Offine After Creation

数据库存储空间的管理 表空间 参数说明: Name:表空间名 Data Files:数据文件名及大小 Storage:设置表空间的存储参数 数据库存储空间的管理 表空间 参数说明: Name:表空间名 Data Files:数据文件名及大小 Storage:设置表空间的存储参数 Bring Online After Creation:表空间在线 Leave Offine After Creation:表空间离线

数据库存储空间的管理 表空间 行命令建立表空间: CREATE TABLESPACE 表空间 DATAFILE 文件说明 , 数据库存储空间的管理 表空间 行命令建立表空间: CREATE TABLESPACE 表空间 DATAFILE 文件说明 DEFAULT STORAGE 存储子句 ONLINE OFFLINE ,

数据库存储空间的管理 表空间 例如: CREATE TABLESPACE user_stu 数据库存储空间的管理 表空间 例如: CREATE TABLESPACE user_stu DATAFILE ‘diska:user_stu1.dat’ SIZE 20M DEFAULT STORAGE ( INITIAL 10K NEXT 50K MINEXTENTS 1 MAXEXTENTS 99 PCTINCREASE 10 ) ONLINE ;

数据库存储空间的管理 表空间 Set Tablespace Online (OK) (Cancel) Tablespace: USERS

数据库存储空间的管理 表空间 行命令修改表空间: ALTER TABLESPACE 表空间 ADD DATAFILE 文件说明 , 数据库存储空间的管理 表空间 ALTER TABLESPACE 表空间 ADD DATAFILE 文件说明 RENAME DATAFILE ‘文件名’ TO ‘文件名’ DEFAULT STORAGE 存储子句 ONLINE OFFLINE NORMAL TEMPORARY IMMEDIATE BEGIN BACKUP END 行命令修改表空间: ,

数据库存储空间的管理 表空间 例如: ALTER TABLESPACE accounting ONLINE ;

Set Tablespace Offline ( ) Normal ( ) Temporary ( ) Immediate 数据库存储空间的管理 表空间 Set Tablespace Offline (OK) (Cancel) Tablespace: USERS ( ) Normal ( ) Temporary ( ) Immediate

数据库存储空间的管理 表空间 参数说明: Normal:ORACLE检测该离线表空间所对应的数据文件是否有问题,如果没有问题可离线。 数据库存储空间的管理 表空间 参数说明: Normal:ORACLE检测该离线表空间所对应的数据文件是否有问题,如果没有问题可离线。 Temporary:ORACLE检测该离线表空间所对应的数据文件是否有问题,如果有问题可离线。 Immediate:不检测该离线表空间所对应的数据文件,直接离线。

数据库存储空间的管理 表空间 例如: ALTER TABLESPACE accounting OFFLINE NORMAL;

数据库存储空间的管理 表空间 Drop Tablespace Tablespace: USERS TEMP RBS 数据库存储空间的管理 表空间 Drop Tablespace (OK) (Cancel) Tablespace: USERS TEMP RBS [ ] Including contained objects [ ] Cascade drop of integrity constraints

数据库存储空间的管理 表空间 参数说明: Including contained objects 数据库存储空间的管理 表空间 参数说明: Including contained objects 删除表空间的同时,将该表空间包含的对象一并从数据库中删除。 Cascade drop of integrity constraints 在删除表空间包含的对象的同时,将每个模式对象所对应的约束一并从数据库中删除。

数据库存储空间的管理 表空间 行命令删除表空间: DROP TABLESPACE 表空间名 INCLUDING CONTENTS 数据库存储空间的管理 表空间 行命令删除表空间: DROP TABLESPACE 表空间名 INCLUDING CONTENTS CASCADE CONSTRAINTS

数据库存储空间的管理 表空间 例如: DROP TABLESPACE user_stu INCLUDING CONTENTS 数据库存储空间的管理 表空间 例如: DROP TABLESPACE user_stu INCLUDING CONTENTS CASCADE CONSTRAINTS ;

Alter Default Segment Storage 数据库存储空间的管理 表空间 Alter Default Segment Storage (OK) (Cancel) Tablespace: USERS TEMP RBS [ ] Initial Extent Size: ( ) K ( ) M [ ] Next Extent Size: ( ) K ( ) M [ ] Minimum # of Extents: [ ] Maximum # of Extents: [ ] % to Increase Next:

Create Rollback Segment 数据库存储空间的管理 回滚段 Create Rollback Segment (OK) (Cancel) ( ) Public ( Available to All Instances ) ( ) Private ( Available to Specific Instances ) Name: In Tablespace: Storage Parameters:

数据库存储空间的管理 回滚段 参数说明: Name:回滚段名 In Tablespace:所属表空间 数据库存储空间的管理 回滚段 参数说明: Public ( Available to All Instances ) 建立的回滚段为多个实例共享。 Private ( Available to Specific Instances ) 建立的回滚段为指定实例专用。 Name:回滚段名 In Tablespace:所属表空间 Storage Parameters:存储参数

数据库存储空间的管理 回滚段 行命令建立回滚段: CREATE ROLLBACK SEGMENT 回滚段名 PUBLIC 数据库存储空间的管理 回滚段 行命令建立回滚段: CREATE ROLLBACK SEGMENT 回滚段名 PUBLIC TABLESPACE 表空间 STORAGE 存储子句

数据库存储空间的管理 回滚段 例如: CREATE PUBLIC ROLLBACK SEGMENT rbs_2 数据库存储空间的管理 回滚段 例如: CREATE PUBLIC ROLLBACK SEGMENT rbs_2 TABLESPACE system STORAGE ( INITIAL 50K NEXT 50K OPTIMAL 150K MAXEXTENTS 10 ) ;

Set Rollback Segment Online 数据库存储空间的管理 回滚段 Set Rollback Segment Online (OK) (Cancel) Rollback Segment: RS1 RS2 RS3

数据库存储空间的管理 回滚段 行命令修改回滚段: ALTER ROLLBACK SEGMENT 回滚段名 ONLINE OFFLINE 数据库存储空间的管理 回滚段 行命令修改回滚段: ALTER ROLLBACK SEGMENT 回滚段名 ONLINE OFFLINE STORAGE 存储子句

数据库存储空间的管理 回滚段 例如: ALTER ROLLBACK SEGMENT rbs_2 ONLINE ;

Set Rollback Segment Offline 数据库存储空间的管理 回滚段 Set Rollback Segment Offline (OK) (Cancel) Rollback Segment: RS1 RS2 RS3

数据库存储空间的管理 回滚段 例如: ALTER ROLLBACK SEGMENT rbs_2 OFFLINE ;

数据库存储空间的管理 回滚段 Drop Rollback Segment Rollback Segment: RS1 RS2 RS3 数据库存储空间的管理 回滚段 Drop Rollback Segment (OK) (Cancel) Rollback Segment: RS1 RS2 RS3

数据库存储空间的管理 回滚段 行命令删除回滚段: DROP ROLLBACK SEGMENT 回滚段名

数据库存储空间的管理 回滚段 例如: DROP ROLLBACK SEGMENT rbs_2 ;

Alter Rollback Segment Storage 数据库存储空间的管理 回滚段 Alter Rollback Segment Storage (OK) (Cancel) Rollback Segment: USER_RBS TEMP_RBS [ ] Next Extent Size: ( ) K ( ) M [ ] Optimal Segment Size: ( ) K ( ) M [ ] Minimum # of Extents: [ ] Maximum # of Extents:

第 七 章 数据库的建立

数据库的建立 准备工作 选定数据库名 拷贝和编辑参数文件 DB_NAME及数据库参数 设置环境变量 ORACLE_SID

数据库的建立 修改参数文件 编辑参数文件: DB_NAME:数据库名 CONTROL_FILES:控制文件名及路径 数据库的建立 修改参数文件 编辑参数文件: DB_NAME:数据库名 CONTROL_FILES:控制文件名及路径 INIT_SQL_FILE:建立数据字典文件名及路径 LOG_ARCHIVE_START:自动归档开关 LOG_ARCHIVE_DEST:归档目标 LOG_ARCHIVE_FORMAT:归档文件名格式 USER_DUMP_DEST:用户跟踪文件名及路径 BACKGROUND_DUMP_DEST:后台进程跟踪文件名及路径

数据库的建立 修改参数文件 编辑参数文件: DB_BLOCK_SIZE:数据库块大小 DB_BLOCK_BUFFERS:数据库块数目 数据库的建立 修改参数文件 编辑参数文件: DB_BLOCK_SIZE:数据库块大小 DB_BLOCK_BUFFERS:数据库块数目 IFILE:数据库其它参数文件名及路径 LOG_BUFFER:日志缓冲区大小 SHARED_POOL_SIZE:共享池大小 LOG_CHECKPOINT_INTERVAL:检查点频率 PROCESSES:同时连接数据库的最大进程数 ROLLBACK_SEGMENTS:在线回滚段名

数据库的建立 修改参数文件 编辑参数文件: LICENSE_MAX_SESSIONS 同时连接到数据库的最大会话数目。 数据库的建立 修改参数文件 编辑参数文件: LICENSE_MAX_SESSIONS 同时连接到数据库的最大会话数目。 LICENSE_SESSION_WARNING 同时连接到数据库的警告会话数目。

数据库的建立 建立数据库 行命令建立数据库: , CREATE DATABASE 数据库名 CONTROLFILE REUSE 数据库的建立 建立数据库 CREATE DATABASE 数据库名 CONTROLFILE REUSE LOGFILE 文件说明 GROUP 整数 MAXLOGFILES 整数 MAXLOGMEMBERS 整数 MAXLOGHISTORY 整数 DATAFILE 文件说明 MAXDATAFILES 整数 MAXINSTANCES 整数 ARCHIVELOG NOARCHIVELOG EXCLUSIVE CHARACTER SET 字符集名 行命令建立数据库: ,

数据库的建立 建立数据库 例如: CREATE DATABASE test CONTROLFILE REUSE 数据库的建立 建立数据库 例如: CREATE DATABASE test CONTROLFILE REUSE LOGFILE GROUP 1 (‘diskb:log1.log’, ‘diskc: log1.log’) SIZE 50K , GROUP 2 (‘diskb:log2.log’, ‘diskc: log2.log’) SIZE 50K MAXLOGFILES 5 MAXLOGHISTORY 100 DATAFILE ‘diska:dbone.dat’ SIZE 2M MAXDATAFILES 10 MAXINSTANCES 2 ARCHIVELOG EXCLUSIVE ;

数据库的建立 后期工作 镜像日志文件 镜像控制文件

数据库的建立 数据字典 数据字典是ORACLE数据库的最重要部分之一,它由一组只读的表和视图所组成。它提供如下信息: ORACLE用户名 数据库的建立 数据字典 数据字典是ORACLE数据库的最重要部分之一,它由一组只读的表和视图所组成。它提供如下信息: ORACLE用户名 特权和角色 模式对象信息 完整性约束 空间分配情况 数据库结构 审计信息

数据库的建立 数据字典 数据字典视图: USER_XXX:任何用户可访问的视图,给出该用户的所有对象信息。 数据库的建立 数据字典 数据字典视图: USER_XXX:任何用户可访问的视图,给出该用户的所有对象信息。 ALL_XXX:任何用户可访问的视图,给出数据库所有用户的所有对象的基本信息。 DBA_XXX:只有DBA特权的用户可访问的视图,给出数据库的所有详细信息。 V$XXX:记录数据库的动态信息。

数据库的建立 数据字典 数据字典的特点: 所有数据字典基表和视图都由SYS用户拥有。 数据库的建立 数据字典 数据字典的特点: 所有数据字典基表和视图都由SYS用户拥有。 对于ALL_XXX和USER_XXX视图建立公共同义词。 列名对所有视图都一致。 后缀名对所有视图都一致。 USER_XXX类视图无OWNER列。 许多DBA_XXX视图无等价的USER_XXX和ALL_XXX视图。

第 八 章 数据库的后备和恢复

数据库的后备和恢复 归档与无归档 无归档操作: 归档操作: 在介质出现失败时,只能将数据库恢复到最后后备的那一刻。 数据库的后备和恢复 归档与无归档 无归档操作: 在介质出现失败时,只能将数据库恢复到最后后备的那一刻。 归档操作: 在介质出现失败时,能使用归档日志文件最大量的恢复数据库数据。

数据库的后备和恢复 归档与无归档 归档需求: 数据库必须在ARCHIVELOG模式下操作 启动自动归档进程ARCHIVER 数据库的后备和恢复 归档与无归档 归档需求: 数据库必须在ARCHIVELOG模式下操作 启动自动归档进程ARCHIVER 有足够的资源保存归档日志文件

数据库的后备和恢复 归档与无归档 显示归档状态: SVRMGR>ARCHIVE LOG LIST ; 数据库的后备和恢复 归档与无归档 显示归档状态: SVRMGR>ARCHIVE LOG LIST ; Database log mode 归档模式 Automatic archival 归档进程状态 Archive destination 归档目标 Oldest online log sequence 旧日志组序列号 Next log sequence to archive 下一个日志组序列号 Current log sequence 当前日志组序列号

数据库的后备和恢复 归档与无归档 指定归档模式: 建立数据库时 建立控制文件时

数据库的后备和恢复 归档与无归档 修改归档模式: SVRMGR> CONNECT internal ; 数据库的后备和恢复 归档与无归档 修改归档模式: SVRMGR> CONNECT internal ; SVRMGR> STARTUP MOUNT ; SVRMGR> ALTER DATABASE ARCHIVELOG ; SVRMGR> ALTER DATABASE OPEN ;

数据库的后备和恢复 归档与无归档 归档进程状态: 修改参数LOG_ARCHIVE_START的值为true/false 数据库的后备和恢复 归档与无归档 归档进程状态: 修改参数LOG_ARCHIVE_START的值为true/false ALTER SYSTEM ARCHIVE LOG START TO directory or device name (/STOP) ;

数据库的后备和恢复 数据库的后备 为保证数据库的正常使用,在数据库出现故障时,能尽可能快的修复数据库,做好数据库的后备工作是十分重要的。 数据库的后备和恢复 数据库的后备 为保证数据库的正常使用,在数据库出现故障时,能尽可能快的修复数据库,做好数据库的后备工作是十分重要的。 定期执行整个操作系统的后备。 频繁修改的表空间要经常后备。 在修改数据库结构之前和之后,要后备所影响的数据文件、日志文件和控制文件。

Operating System Backup Without Archiving With Archiving 数据库的后备和恢复 数据库的后备 Backup Methods Physical Operating System Backup Without Archiving With Archiving Logical Export Utility 后备方法: 操作系统后备 无归档后备 归档后备 Export程序后备

数据库的后备和恢复 数据库的后备 操作系统后备: 离线数据库全后备:数据库无归档操作 在线数据库全后备:数据库归档操作 数据库的后备和恢复 数据库的后备 操作系统后备: 离线数据库全后备:数据库无归档操作 在线数据库全后备:数据库归档操作 在线表空间后备:数据库归档操作 离线表空间后备:数据库归档操作 控制文件后备

数据库的后备和恢复 数据库的后备 离线数据库全后备 ——数据文件、日志文件、控制文件和参数文件 记录数据库所有文件的路径及文件名 数据库的后备和恢复 数据库的后备 离线数据库全后备 ——数据文件、日志文件、控制文件和参数文件 记录数据库所有文件的路径及文件名 用NORMAL关闭数据库 用操作系统命令拷贝数据库所有文件 重新启动ORACLE实例

数据库的后备和恢复 数据库的后备 显示数据文件路径及文件名: 数据库的后备和恢复 数据库的后备 显示数据文件路径及文件名: SQL> SELECT file_name FROM dba_data_files ; 显示日志文件路径及文件名: SQL> SELECT member FROM v$logfile ; 显示控制文件路径及文件名: SQL> SELECT value FROM v$parameter WHERE name = ‘control_files’ ;

数据库的后备和恢复 数据库的后备 例如: SVRMGR> CONNECT internal ; 数据库的后备和恢复 数据库的后备 例如: SVRMGR> CONNECT internal ; SVRMGR> SHUTDOWN normal ; SVRMGR> host cp <files> <backup directory> … ... SVRMGR> STARTUP open ;

数据库的后备和恢复 数据库的后备 在线数据库全后备: 确保数据库在ARCHIVELOG模式下操作。 数据库的后备和恢复 数据库的后备 在线数据库全后备: 确保数据库在ARCHIVELOG模式下操作。 用在线表空间后备方法后备数据库所有表空间。 用控制文件后备方法后备数据库的控制文件。

数据库的后备和恢复 数据库的后备 在线表空间的后备: 确保数据库在ARCHIVELOG模式下操作。 使要后备的表空间在线。 数据库的后备和恢复 数据库的后备 在线表空间的后备: 确保数据库在ARCHIVELOG模式下操作。 使要后备的表空间在线。 开始在线表空间的后备 用操作系统命令拷贝表空间所对应的数据文件。 结束在线表空间的后备。

Begin Online Tablespace Backup 数据库的后备和恢复 数据库的后备 Begin Online Tablespace Backup (OK) (Cancel) Online Tablespace: SYSTEM TEMP USERS

End Online Tablespace Backup 数据库的后备和恢复 数据库的后备 End Online Tablespace Backup (OK) (Cancel) Online Tablespace: SYSTEM TEMP USERS

数据库的后备和恢复 数据库的后备 例如: SVRMGR>ALTER TABLESPACE users BEGIN BACKUP ; 数据库的后备和恢复 数据库的后备 例如: SVRMGR>ALTER TABLESPACE users BEGIN BACKUP ; SVRMGR>host cp <files> <backup directory> … … END BACKUP ;

数据库的后备和恢复 数据库的后备 在下列操作前后要后备控制文件: 增加在线日志文件组 增加在线日志文件成员 重命名在线日志文件成员 数据库的后备和恢复 数据库的后备 在下列操作前后要后备控制文件: 增加在线日志文件组 增加在线日志文件成员 重命名在线日志文件成员 删除在线日志文件组 删除在线日志文件成员 建立表空间 增加数据文件 重命名数据文件 删除表空间

数据库的后备和恢复 数据库的后备 控制文件的后备: SVRMGR>ALTER DATABASE BACKUP CONTROLFILE 数据库的后备和恢复 数据库的后备 控制文件的后备: SVRMGR>ALTER DATABASE BACKUP CONTROLFILE TO ‘backup directory’ ;

数据库的后备和恢复 数据库的后备 Export应用程序将数据库表保存到操作系统文件,这个文件只能由Import应用程序读入数据库。卸出模式如下: Table:卸出用户的指定表。 User:卸出用户模式中的所有对象。 Full Database:卸出数据库中的所有对象。 具有EXP_FULL_DATABASE角色的用户可操作此项。

数据库的后备和恢复 数据库的后备 卸出类型如下: Complete:卸出数据库的所有对象。 数据库的后备和恢复 数据库的后备 卸出类型如下: Complete:卸出数据库的所有对象。 Imcremental:卸出上次某类卸出后修改的对象。 Cumulative:卸出上次累加或完全卸出后修改的对象。

数据库的后备和恢复 数据库的后备 命令执行方式如下: 参数文件 数据库的后备和恢复 数据库的后备 命令执行方式如下: 参数文件 EXP [username/password] PARFILE = filename 行命令 EXP [username/password] 参数1 参数2 … ... 交互 EXP

数据库的后备和恢复 数据库的后备 联机帮助命令: EXP HELP = y

数据库的后备和恢复 数据库的恢复 数据库可能出现的错误: 用户错误 语句失败 用户进程失败 实例失败 介质失败

数据库的后备和恢复 数据库的恢复 用户错误 一般原因: 用户意外删除了一个对象 用户删除表中的所有行 用户提交有错误的数据 解决方法: 数据库的后备和恢复 数据库的恢复 用户错误 一般原因: 用户意外删除了一个对象 用户删除表中的所有行 用户提交有错误的数据 解决方法: 培训数据库用户 用表的Export恢复 用日志文件进行时间片恢复

数据库的后备和恢复 数据库的恢复 语句失败 一般原因: 应用中有逻辑错误 解决方法: 用户往表中输入错误数据 调整应用 数据库的后备和恢复 数据库的恢复 语句失败 一般原因: 应用中有逻辑错误 用户往表中输入错误数据 用户使用不适当特权操作 用户建立超过分配量的表 表空间中剩余空间不够 解决方法: 调整应用 修改错误数据 DBA授予适当特权 修改用户表空间限量 给表空间追加数据文件

数据库的后备和恢复 数据库的恢复 用户进程失败 一般原因: 用户没有连接到会话 用户进程被异常中断 用户程序产生了一个非中断会话地址 数据库的后备和恢复 数据库的恢复 用户进程失败 一般原因: 用户没有连接到会话 用户进程被异常中断 用户程序产生了一个非中断会话地址 解决方法: 由PMON后台进程撤消异常中断的用户进程,并释放该进程已经获得的系统资源或锁。

数据库的后备和恢复 数据库的恢复 实例失败 一般原因: 在启动实例时停电 硬件问题(CPU失败) 软件问题(操作系统错误) 后台进程失败 数据库的后备和恢复 数据库的恢复 实例失败 一般原因: 在启动实例时停电 硬件问题(CPU失败) 软件问题(操作系统错误) 后台进程失败 (DBWR、LGWR、PMON、SMON) 解决方法: connect internal startup

数据库的后备和恢复 数据库的恢复 介质失败 一般原因: 存放数据库的介质出现故障。 文件被意外删除。 解决方法: 数据库的后备和恢复 数据库的恢复 介质失败 一般原因: 存放数据库的介质出现故障。 文件被意外删除。 解决方法: 恢复方法依赖于后备方法和被影响的文件。 使用最后一次归档的日志文件恢复数据库数据。

数据库的后备和恢复 介质故障的恢复 完全后备介质恢复 数据库在NOARCHIVELOG方式下操作时,出现介质失败,做如下恢复。 数据库的后备和恢复 介质故障的恢复 完全后备介质恢复 数据库在NOARCHIVELOG方式下操作时,出现介质失败,做如下恢复。 1.关闭数据库 2.修复硬件故障,能修复执行步骤3a,否则执行3b到3e。 3.恢复数据库文件: a.拷贝数据文件、日志文件和控制文件到磁盘 b.拷贝数据文件、日志文件、控制文件和参数文件到可操作磁盘(用新文件名) c.编辑参数CONTROL_FILES以指定控制文件的位置 d.START MOUNT e.重命名数据文件和日志文件 4.打开数据库

数据库的后备和恢复 介质故障的恢复 部分数据文件的恢复 a.关闭数据库 b.修复硬件故障,能修复不执行步骤f。 数据库的后备和恢复 介质故障的恢复 部分数据文件的恢复 a.关闭数据库 b.修复硬件故障,能修复不执行步骤f。 c.将被破坏的数据文件拷贝到新路径下,用新名字。 d.CONNECT internal e.START MOUNT f.重命名数据文件 g.使要恢复的数据文件在线 h.RECOVER DATAFILE 数据文件名 i.打开数据库

Recover Closed Database 数据库的后备和恢复 介质故障的恢复 Recover Closed Database (OK) (Cancel) ( ) Complete Database Recovery ( ) Incomplete Database Recovery ( ) Until User Cancel ( ) Until Change: ( ) Until Time: [ ] Using Backup of Control File

Recover Offline Tablespace 数据库的后备和恢复 介质故障的恢复 Recover Offline Tablespace (OK) (Cancel) Offline Tablespaces: TS1 TS2 TS3

数据库的后备和恢复 介质故障的恢复 Recover Data File Data Files: Filename1 Filename2 数据库的后备和恢复 介质故障的恢复 Recover Data File (OK) (Cancel) Data Files: Filename1 Filename2 Filename3

数据库的后备和恢复 控制文件的恢复 关闭数据库 将后备的控制文件拷贝到可用磁盘 编辑参数CONTROL_FILES 数据库的后备和恢复 控制文件的恢复 关闭数据库 将后备的控制文件拷贝到可用磁盘 编辑参数CONTROL_FILES CONNECT internal STARTUP

数据库的后备和恢复 Import程序 Import应用程序装入由 Export应用程序卸出的数据。装入数据需要相应的特权。

数据库的后备和恢复 Import程序 命令执行方式如下: 参数文件 IMP [username/password] PARFILE = filename 行命令 IMP [username/password] 参数1 参数2 … ... 交互 IMP

数据库的后备和恢复 Import程序 联机帮助命令: IMP HELP = y

数据库的后备和恢复 Import程序 Import应用程序恢复实例: 某DBA用Export进行数据库后备,在19号数据库出现故障。 2 I 8 C 9 I 10 I 11 I 12 I 13 I 14 I 15 C 16 I 17 I 18 I 19 I 20 I 21 I 22 C 1 F F:数据库全后备 C:数据库累加后备 I:数据库增量后备

数据库的后备和恢复 Import程序 Import应用程序恢复步骤: 建立新数据库 恢复最近一次的数据库全后备 恢复全后备之后完成的所有累加后备 恢复最后一次累加后备之后完成的所有增量后备

第 九 章 Oracle8的管理

Oracle8与Oracle7管理上的差别 分区管理 作业管理 更安全的用户管理 从联机事务处理(OLTP)到联机分析处理(OLAP) 从数据库到数据仓库

表与索引的分区 分区就是将表和索引分成多个片,每个片都可以单独管理。 容易存储更多的数据,为数据仓库打下基础。 针对小范围分区就可以执行SQL语句,提高了数据库运行性能。 可以将不同的表存在不同的表空间,但推荐不这么做。

分区的创建 创建一个学生成绩表 CREATE TABLE stu_score Splitting PartitionsSplitting Partitions ( stu_num NUMBER, score INT NOT NULL, test_year INT NOT NULL, test_month INT NOT NULL, test_day INT NOT NULL) PARTITION BY RANGE (test_year,test_month,test_day) (PARTITION score_q1 VALUES LESS THAN (1997,07,01) TABLESPACE education1, PARTITION score_q2 VALUES LESS THAN (1998,02,01) TABLESPACE education2);

分区的移动 重组数据减少碎片。 ALTER TABLE/INDEX 表名/索引名 MOVE PARTITION 分区名 移动后表空间名 ALTER TABLE score MOVE PARTITION score_q1 TABLESPACE education2 NOLOGGING ALTER INDEX REBUILD PARTITION partition_name

分区的属性修改 改变分区的存储参数,比如当预计到下一个分区的数据量比前一个分区的数据量剧增时。可以增加下一个分区的MAXEXTENT参数。 ALTER TABLE/INDEX MODIFY PARTITION语句 ALTER INDEX REBUILD PARTITION partition_name

增加分区 需要增加存储空间时。 ALTER TABLE 表名 ADD PARTITION ALTER TABLE stu_score ADD PARTITION score_q3 VALUES LESS THAN (1998,07,01) TABLESPACE education2; ALTER INDEX ADD PARTITION

分区的删除 ALTER TABLE DROP PARTITION 例:ALTER TABLE stu_score DROP PARTITION score_q3 ; 别忘了重新Rebuild表的索引 ALTER INDEX DROP PARTITION ALTER INDEX stu_index DROP PARTITION stu_p2; 也需要重新Rebuild索引

分区的拆分 分区过大以致于后备、恢复、管理都要很长时间,需要拆分成两个或多个分区。 ALTER TABLE/INDEX SPLIT PARTITION ALTER TABLE stu_score SPLIT PARTITION score INTO (PARTITION score_q1 less than (50),PARTITION score_q2 less than(100); 重新Rebuild索引

分区中的数据清空 当然可以使用SQL语句Delete删除分区中的数据。但是那样会很慢的。 ALTER TABLE TRUNCATE PARTITION ALTER TABLE stu_score TRUNCATE PARTITION score_q3; 索引分区中的数据不可以清空。表中数据清空以后索引会自动变化。

分区的合并 将分区A中的数据Export出来。 删除A分区。 将数据Import进入B分区。 这样A分区就和B分区合并在一起了。

分区数据的交换 非分区表中的数据和分区表的分区中的数据可以相互交换。O7向O8升级时用。 ALTER TABLE table_name1 EXCHANGE PARTITION partition_name WITH TABLE table_name2 WITHOUT VALIDATION;

分区名称的改变 当原有分区的硬盘损坏时,你用备份硬盘上的分区代替原有分区,这条指令是很有用的。 ALTER TABLE/INDEX RANAME PARTITION oldname TO newname

数据库的审计 数据字典中的基表SYS.AUD$。 初始化参数AUDIT_TRAIL规定了审计模式:1、DB表示将审计结果放入基表;2、OS表示利用操作系统审计功能;3、NONE,不进行审计。 审计的记录内容:1、SQL语法执行过程;2、数据库权限使用情况;3、模式对象使用情况。

数据库的审计 后台进程和服务器进程都会产生一些踪迹文件(TRACE FILE)。最重要的ALTER文件。 文件位置由初始化参数:BACKGROUND_DUMP_DEST参数指定。 SQL_TRACE参数是是否产生踪迹文件的开关。

什么是作业队列? 在一些场合用户需要数据库能够周期性地执行应用程序 在Oracle8中,这种功能依靠SNP后台进程来实现

作业的运行方式 SNP0-SNP9 作业队列 ……. ……. SNPA-SNPZ

SNP初始化参数设定 JOB_QUEUE_PROCESSES参数,指定SNP后台进程的个数,可设置范围是0到36。 JOB_QUEUE_INTERVAL参数,指定SNP后台进程唤醒的时间间隔,可设置范围是1到3600秒。

作业功能的实现 通过执行Oracle公司提供的DBMS_JOB包中的过程来完成各种作业的功能。 包里面有:SUBMIT过程,REMOVE过程,CHANGE过程、WHAT过程、NEXT_DATA过程、INTERVAL过程、BROKEN过程、RUN过程

作业的提交 使用SUBMIT过程 DBMS_JOB.SUBMIT( job OUT BINARY_INTEGER, what IN VARCHAR2, next_data IN DATE DEFAULT SYSDATE, interval IN VARCHAR2 DEFAULT 'null', no_parse IN BOOLEAN DEFAULT FALSE) Job是作业号、What是要执行的作业源程序、Next_data是作业执行的下次日期、Interval是作业执行的时间间隔、No_parse表示执行前是否立即审查作业内容?

作业提交时可以传递三个参数 参数名 传递模式 详细描述 job IN 当前作业号 下次执行作业的日期 默认为SYSDATE IN/OUT Next_date 作业状态,标记作业 是否有效 broken IN/OUT

Interval值的计算方法 以天为单位。 例:10分钟运行一次:sysdate+(10/1440) 例:一周运行一次:sysdate+7

一个作业提交的例子 这个例子每24小时执行一次过程act.cal svrmgr>VARIABLE jobno number; svrmgr>begin 2> DBMS_JO.SUBMIT(:jobno, 3> 'act.cal(''scott'',''emp'',null,30)’, 4> SYSDATE, 'SYSDATE + 1'); 5> commit; 6> end; 7>/ Statement processed. svrmgr>print jobno JOBNO 14100

从作业队列中去掉一个作业 DBMS_JOB.REMOVE(job IN BINARY_INTEGER) 例如将刚才提交的作业去掉: svrmgr>dbms_job.remove(14100);

改变作业的运行参数 DBMS_JOB CHANGE(job IN BINARY_INTEGER, what IN VARCHAR2, next_date IN DATE, interval IN VARCHAR2); 例如将前面的例子的运行周期变成每2天一次: DBMS_JOB CHANGE(14100, 'act.cal(''scott'',''emp'',null,30)’, SYSDATE, 'SYSDATE + 2');

单独改变作业参数 改变作业内容: 改变作业下次执行时间 改变作业执行间隔 DBMS_JOB.WHAT(job IN BINARY_INTEGER, what IN VARCHAR2) 改变作业下次执行时间 DBMS_JOB.Next_date(job IN BINARY_INTEGER, Next_date IN DATE) 改变作业执行间隔 DBMS_JOB.INTERVAL(job IN BINARY_INTEGER, interval IN VARCHAR2)

标记一个作业有效或无效 将刚才的例子标志为有效: 一个作业16次运行连续失败后自动标志为无效,即Broken参数为TRUE。 DBMS_JOB.BROKEN(job IN BINARY_INTEGER, broken IN BOOLEAN, next_date IN DATE DEFAULT SYSDATE); 将刚才的例子标志为有效: DBMS_JOB.BROKEN(14100 , false, NEXT_DAY(SYSDATE,’MONDAY’)); 一个作业16次运行连续失败后自动标志为无效,即Broken参数为TRUE。

作业的强制执行 即便是使用Broken过程标志为无效的作业也可以使用RUN过程开始强制执行。 DBMS_JOB.RUN(job IN BINARY_INTEGER)

作业的删除 第一步,将这个作业标志为无效 第二步,使用数据字典 select * from v$session查看运行作业的会话标识符和会话序列号。 删除这个会话(session)就可以了。

查看作业和作业队列的信息 Select * from DBA_JOBS列出数据库中现有的所有作业的详细信息。 Select * from USER_JOBS列出当前用户拥有的作业的详细信息。 Select * from DBA_JOBS_RUNNING列出当前数据库中正在运行的作业。