Download presentation
Presentation is loading. Please wait.
1
ORACLE 数据库管理员教程 SQL*DBA
2
序 数据库管理员是一个或一组全面负责管理和控制数据库系统的人员。 简称:DBA(Data Base Administrator)
3
数据库管理员的主要职责 了解ORACLE数据库的体系结构 负责数据库管理系统的安装和升级 启动和关闭数据库 管理和监控数据库用户
管理数据库特权 管理存储空间 建立数据库 后备和恢复数据库
4
第 一 章 ORACLE的体系结构
5
ORACLE的体系结构 体系结构概述 物理结构 数据文件、日志文件、控制文件、参数文件
内存结构系统全局区(System Global Area) 共享池、数据缓冲区、日志缓冲区 进 程 用户进程、服务器进程、后台进程
6
ORACLE的体系结构 体系结构图示 SGA 共享池 数据缓冲区 日志缓冲区 PMON LCKn RECO SMON DBWR ARCH
CKPT LGWR Server User 数据文件 日志文件 参数文件 控制文件 存储介质
7
ORACLE的体系结构 物理结构 数据文件 日志文件 控制文件 参数文件
8
ORACLE的体系结构 物理结构 数据文件(Data File)是物理存储ORACLE数据库数据的文件。其特点如下:
每一个数据文件只与一个数据库相联系。 数据文件大小可修改(7.3以后)。 一个表空间可包含一个或多个数据文件。 注意:数据库文件要先有空间,后使用。 即:先创建数据,后存放数据。
9
ORACLE的体系结构 物理结构 · 修改数据文件的大小:
· 修改数据文件的大小: sql>alter database datafile ‘c:\…’ resize 800m 如不使用resize,可设自动扩展策略: autoextend on next maxsize · 再增加一个数据文件: /home/app/oracle/oradata/ORACLE_SID/*.dbf
10
ORACLE的体系结构 物理结构 日志文件(Log File)记录对数据库数据修改前后的信息,以备恢复数据时使用。其特点:
每一个数据库至少包含两个日志文件组。 日志文件组以循环方式进行写操作。 每一个日志文件成员对应一个物理文件。 日志文件尽量大。 大小不可改变。
11
日志文件成员 每个组的日志成员为镜像关系,一般分放在不同的磁盘上。 一般情况下,每组的成员个数要相同, 日志文件尽量大。
ORACLE的体系结构 物理结构 日志文件成员 每个组的日志成员为镜像关系,一般分放在不同的磁盘上。 一般情况下,每组的成员个数要相同, 日志文件尽量大。
12
ORACLE的体系结构 物理结构 日志开关(Log Switch)是为实现日志文件组的循环使用而设置的。出现日志开关的情况如下:
当一个日志文件组被填满时 关闭数据库时 DBA手动转移日志开关
13
ORACLE的体系结构 物理结构 日志文件写操作图示 Group 1 Group 2 Log File 1 Log File 2
Member 2.1 Member 1.1
14
ORACLE的体系结构 物理结构 镜像日志文件是为防止日志文件的丢失,在不同磁盘上同时维护两个或多个联机日志文件的副本。其特点如下:
每个日志文件组至少包含两个日志文件成员,最多五个成员。 每组的成员数目相同。 同组的所有成员同时被修改。 同组的成员大小相同,不同组的成员大小可不同。
15
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
16
控制文件(Control File)是一个较小的二进制文件,用于描述数据库结构。
ORACLE的体系结构 物理结构 控制文件(Control File)是一个较小的二进制文件,用于描述数据库结构。 描述信息如下: 数据库建立的日期。 数据库名。 数据库中所有数据文件和日志文件的文件名及路径。 恢复数据库时所需的同步信息。 要点注意: 在打开和存取数据库时都要访问该文件。 镜像控制文件。 参数文件中记录控制文件名及路径的参数为: CONTROL_FILES
17
ORACLE的体系结构 物理结构 参数文件(Parameter File)是一个文本文件,可直接使用操作系统下的文本编辑器对其内容进行修改。该文件只在建立数据库或启动实例时才被访问,在修改该文件之前必须关闭实例。 初始参数文件:init.ora 生成参数文件:initSID.ora config.ora
18
ORACLE的体系结构 物理结构 参数文件的作用: 确定存储结构的大小。 设置数据库的全部缺省值。 设置数据库的范围。
设置数据库的各种物理属性。 优化数据库性能。
19
ORACLE的体系结构 物理结构 参数文件中参数的数据类型: 整型 例:DB_BLOCK_SIZE = 2048 字符型
例:DB_NAME = ‘ora7’ 逻辑型 例:CHECKPOINT_PROCESS = true
20
ORACLE的体系结构 系统全局区 共 享 池 数据库缓冲区 日 志 缓 冲 区
21
ORACLE的体系结构 系统全局区 实例( INSTANCE )
是存取和控制数据库的软件机制,它由系统全局区(System Global Area,简称SGA)和后台进程组成。
22
SGA是ORACLE系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。
23
共享池(Shared Pool)由共享SQL区和数据字典区组成。参数SHARED_POOL_SIZE 确定共享池的大小。
ORACLE的体系结构 系统全局区 共享SQL区包括 SQL或PL/SQL语句的文本 SQL或PL/SQL语句的语法分析形式 SQL或PL/SQL语句的执行方案 共享池(Shared Pool)由共享SQL区和数据字典区组成。参数SHARED_POOL_SIZE 确定共享池的大小。 数据字典区用于存放数据字典信息行。
24
数据缓冲存储区(Database Buffer Cache)用于存储从数据文件中读的数据的备份。
ORACLE的体系结构 系统全局区 数据缓冲存储区(Database Buffer Cache)用于存储从数据文件中读的数据的备份。 数据缓冲区 数据文件 DB_BLOCK_SIZE 确定数据块的大小,一般为2K或4K,对于大数据块的数据库,此参数值为物理块的倍数。 DB_BLOCK_BUFFERS 确定数据块的数目。
25
ORACLE的体系结构 系统全局区 数据缓冲存储区分为 脏列表 包括被修改过但尚未写到数据文件的缓冲块。
LRU(Least Recently Used)列表 包括空闲缓冲块、正在存取的缓冲块、已被修改但尚未移到脏列表的缓冲块。
26
ORACLE的体系结构 系统全局区 日志缓冲存储区(Log Buffer)以记录项的形式备份数据库缓冲区中被修改的缓冲块,这些记录将被写到日志文件中。 LOG_BUFFER 确定日志缓冲区的大小。 日志缓冲区 日志文件
27
ORACLE的体系结构 进 程 用 户 进 程 服务器进程 后 台 进 程
28
ORACLE实例分为单进程实例和多进程实例两种。 SINGLE_PROCESS 单进程/多进程实例的转换。
29
单进程/单用户 一个进程执行全部ORACLE代码。
S G A ORACLE Server 数据库应用
30
多进程/多用户 使用多个进程执行ORACLE的不同代码,对于每一个连接的用户都有一个进程。
S G A 服务器进程 用户进程 后 台 进 程 多进程/多用户 使用多个进程执行ORACLE的不同代码,对于每一个连接的用户都有一个进程。
31
ORACLE的体系结构 进 程 后 台 进 程 专用服务器方式 为每个用户单独开设一个服务器进程。适用于实时系统。 不设置参数: S G A
用户进程 后 台 进 程 专用服务器方式 为每个用户单独开设一个服务器进程。适用于实时系统。 不设置参数: MTS_SERVICE MTS_DISPATCHERS MTS_SERVERS MTS_LISTERNET_ADDRESS
32
ORACLE的体系结构 进 程 多线索服务器方式 后 台 进 程 通过调度器为每个用户进程分配服务器进程。设置参数: S G A
MTS_SERVICE MTS_DISPATCHERS MTS_SERVERS MTS_LISTERNET_ADDRESS 用户进程 S G A 服务器进程 后 台 进 程 调度器
33
ORACLE的体系结构 进 程 参数的涵义 MTS_SERVICE:服务器名,缺省值为DB_NAME
MTS_DISPATCHERS:调度器个数 MTS_SERVERS:可以启动的服务器进程的个数 MTS_LISTERNET_ADDRESS:SQL*NET监听器地址 MTS_MAX_SERVERS:服务器进程的最大数
34
用户进程 当用户运行一个应用程序时,就建立一个用户进程。
ORACLE的体系结构 用户进程 用户进程 当用户运行一个应用程序时,就建立一个用户进程。
35
服务器进程 处理用户进程的请求。 处理过程 分析SQL命令并生成执行方案。 从数据缓冲存储区中读取数据。 将执行结果返回给用户。
ORACLE的体系结构 服务器进程 服务器进程 处理用户进程的请求。 处理过程 分析SQL命令并生成执行方案。 从数据缓冲存储区中读取数据。 将执行结果返回给用户。
36
后台进程 为所有数据库用户异步完成各种任务。
ORACLE的体系结构 后台进程 后台进程 为所有数据库用户异步完成各种任务。 主要的后台进程有 DBWR 数据库写进程 LGWR 日志写进程 CKPT 检查点写进程 SMON 系统监控进程 PMON 进程监控进程 ARCH 归档进程 RECO 恢复进程 LCKn 封锁进程
37
ORACLE的体系结构 后台进程 DBWR(Data Base Writer)
将数据缓冲区中所有修改过的缓冲块数据写到数据文件中,并使用LRU算法来保持缓冲区中的数据块为最近经常使用的,以减少I/O次数。该进程在启动实例时自动启动。
38
ORACLE的体系结构 后台进程 DBWR进行写操作的情况: 脏列表达到最低限制。
相当于参数DB_BLOCK_WRITE_BATCH值的一半。 一个进程在LRU列表中扫描指定数目的缓冲块,未找到空闲缓冲块。 参数DB_BLOCK_MAX_SCAN_CNT确定扫描数目。
39
ORACLE的体系结构 后台进程 DBWR进行写操作的情况: 出现超时
3秒钟内该进程未活动,则该进程将在LRU列表中查找尚未查找的缓冲块,这组缓冲块的数目相当于参数DB_BLOCK_WRITE_BATCH值的2倍。 出现检查点。
40
LGWR(Log Writer) 将日志缓冲区中的所有记录项写到日志文件中。 该进程在启动实例时自动启动。
ORACLE的体系结构 后台进程 LGWR(Log Writer) 将日志缓冲区中的所有记录项写到日志文件中。 该进程在启动实例时自动启动。
41
ORACLE的体系结构 后台进程 LGWR进行写操作的情况: 用户进程提交一个事务(Commit) 日志缓冲区达到1/3范围
DBWR对一个检查点需要清除缓冲块 出现超时(3秒钟内未活动,则进行一次写操作。)
42
ORACLE的体系结构 后台进程 检查点(Checkpoint) :
在检查点出现期间,DBWR进程将数据缓冲区中的所有脏缓冲块写到数据文件中,LGWR进程将日志缓冲区中的所有记录项写到日志文件中,以确保上一个检查点至今修改过的所有数据块都被写到磁盘上。
43
ORACLE的体系结构 后台进程 检查点: 预定数目的记录项被填满。 设置指定的秒数。 每个日志开关处 关闭实例时 DBA手动操作。
参数LOG_CHECKPOINT_INTERVAL确定了预定数目。 设置指定的秒数。 参数LOG_CHECKPOINT_TIMEOUT确定了间隔秒数。 每个日志开关处 关闭实例时 DBA手动操作。 表空间离线。
44
ORACLE的体系结构 后台进程 CKPT(Checkpointer)
在控制文件中记录检查点。参数CHECKPOINT_PROCESS 确定了检查点的启动/不启动状态。 若CKPT进程不启动,则该进程的工作将由LGWR进程代劳。(如果数据库的数据文件过多,这样操作会降低系统性能。)
45
ORACLE的体系结构 后台进程 ARCH(Archiver)
在日志文件组出现切换时,将旧日志文件的内容拷贝到脱机存储介质上,出现介质失败时用于恢复数据。 LOG_ARCHIVE_START 确定了该进程的启动/不启动状态。 ARCH 存储介质
46
ORACLE的体系结构 后台进程 ARCH(Archiver) LOG_ARCHIVE_DEST
当数据库在归档模式下操作时,该参数确定了日志文件的归档目标。 LOG_ARCHIVE_FORMAT 当数据库在归档模式下操作时,该参数确定了归档日志文件的缺省文件名格式。 ARCH 存储介质
47
ORACLE的体系结构 后台进程 SMON(System Monitor) PMON(Process Monitor)
负责完成自动实例恢复。该进程在启动实例时自动启动。 PMON(Process Monitor) 撤消异常中断的用户进程,并释放该进程已获得的系统资源或锁。
48
ORACLE的体系结构 后台进程 RECO(Recover) LCKn(Lock) 在分布式操作的情况下,恢复一个事务的失败。
在并行服务器系统间加锁,最多可加10个锁,分别为LCK0,LCK1,,LCK9。
49
处理SQL语句的三个阶段 语法分析 执行 返回指令
ORACLE的体系结构 示 例 处理SQL语句的三个阶段 语法分析 执行 返回指令 Server 共享池 数据缓冲区 日志缓冲区 SGA Server 共享池 数据缓冲区 日志缓冲区 SGA User SMITH ALLEN WARD Server 共享池 数据缓冲区 日志缓冲区 SGA User SQL> SELECT ename FROM emp ;
50
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’ ;
51
UPDATE操作 为了支持读一致性,恢复和回滚,所有修改操作需要回滚段。修改操作执行:
ORACLE的体系结构 示 例 UPDATE操作 为了支持读一致性,恢复和回滚,所有修改操作需要回滚段。修改操作执行: 将数据块送到数据缓冲区 将回滚块送到数据缓冲区 在修改行上设置行锁 保存回滚数据到回滚段块 将修改写到数据块
52
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’ ;
53
第 二 章 ORACLE的逻辑结构
54
ORACLE的逻辑结构 ORACLE的逻辑结构是由一个或多个表空间组成。 一个表空间由一组分类段组成 一个段由一组范围组成
一个范围由一批数据库块组成 一个数据库块对应一个或多个物理块
55
逻 辑 结 构 图 示 Database Tablespace Segment 112K Extent 84K
Database Blocks Database DataFile
56
ORACLE的逻辑结构 数据库块 数据库块(Database Block)是数据库使用的I/O最小单元,又称逻辑块或ORACLE块。
一个数据库块对应一个或多个物理块,块的大小由参数DB_BLOCK_SIZE确定。
57
ORACLE的逻辑结构 数据库块 标题:包括通用的块信息,如块地址/段类型等,最佳大小为85-100bytes。
表目录:存储聚集中表的信息,这些信息用于聚集段。 行目录:包括这块中的有效行信息,允许使用每行开头的2bytes。 自由空间:这块中能插入或修改的一组空间。 行数据:存储表或索引的数据。
58
Command and Variable Header
ORACLE的逻辑结构 数据库块 数 据 库 块 的 格 式 Command and Variable Header Table Directory Row Directory Free Space ROW DATA
59
PCTFREE 用于行的UPDATE操作,在遇到PCTFREE后,这块被填满且不能进行INSERT操作。
ORACLE的逻辑结构 数据库块 PCTFREE 用于行的UPDATE操作,在遇到PCTFREE后,这块被填满且不能进行INSERT操作。 PCTUSED 用于行的INSERT的操作,当块的百分比小于PCTUSED时,可通过行DELETE或UPDATE来减少列存储。
60
ORACLE的逻辑结构 数据库块 Free Space ROW DATA PCTFREE = 20% PCTFREE = 20%
PCTUSED = 40% PCTUSED = 40%
61
ORACLE的逻辑结构 范 围 范围(Extent)是数据库存储空间分配的逻辑单位,一个范围由一组数据库块组成,范围是由段分配的,分配的第一个范围称初始范围,以后分配的范围称增量范围。
62
逻 辑 结 构 范 围 控 制 范 围 分 配 的 参 数 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。 控 制 范 围 分 配 的 参 数
63
段(Segment)是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。
ORACLE的逻辑结构 段 段(Segment)是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。
64
ORACLE的逻辑结构 段 段的分类 数据段 索引段 回滚段 临时段 引导段 存储表或聚集 的所有数据 存储表或聚集 上最佳查询的
(Data Segment) 存储表或聚集 的所有数据 索引段 (Index Segment) 存储表或聚集 上最佳查询的 所有索引数据 回滚段 (Rollback Segment) 存储为读一致 性、回滚或恢 复用数据 临时段 (Temporary Segment) 存储排序操作 期间建立的临 时表的数据 引导段 (Bootstrap Segment) 存储数据字典 表的定义 段的分类
65
表空间(Tablespace)是数据库中物理编组的数据仓库,对应一个或多个数据文件,表空间的大小是它所对应的数据文件大小的总和。
ORACLE的逻辑结构 表空间 表空间(Tablespace)是数据库中物理编组的数据仓库,对应一个或多个数据文件,表空间的大小是它所对应的数据文件大小的总和。
66
ORACLE的逻辑结构 表空间 System Tablespace Data Tablespace Table Index Cluster
DBFiles1 DBFiles2 DBFiles3
67
ORACLE数据库中的数据逻辑存储在表空间中,物理存储在数据文件中。
结 构 数据文件 日志文件 控制文件 参数文件 物理结构 表空间 段 范围 数据库块 逻辑结构
68
第 三 章 数据库的安装
69
硬件结构 客户/服务器方式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
70
数据库的安装 硬件需求 服务器 CPU Intel 486 网卡 支持TCP/IP协议 内存 16M 外存 1GB
数据库的安装 硬件需求 服务器 CPU Intel 486 网卡 支持TCP/IP协议 内存 16M 外存 1GB 客 户 Intel 486 支持TCP/IP协议 16M 400MB
71
数据库的安装 软件需求 服务器 操作系统 TCP/IP协议 客 户 操作系统 TCP/IP协议
72
数据库的安装 安装示例 1.修改OS参数 SEMMNI 20 SEMMNS 60 SHMMAX SHMMNI SHMSEG 15 3.建立一个ORACLE用户(DBA组),并登录到ORACLE用户下。 2.重新启动系统
73
数据库的安装 安装示例 4.设置环境变量 vi .profile 追加下列语句: ORACLE_HOME = /目录名/用户名 (/oracle/oracle8) ORACLE_SID = 数据库名(ora8) TERM = 终端类型(ansi)
74
数据库的安装 安装示例 5.读介质 磁盘: $ dd ibs=8k if=/dev/rdsk/f0q18dt |uncompress| cpio -icBmvd 磁带: $ cpio -icBvd </dev/rct (磁带设备号)
75
数据库的安装 安装示例 6.设置安装环境 $ cd newoi $ ./orainst $ su # cd /home/oracle/orainst # ./rootpre.sh 设置安装环境 # exit $
76
数据库的安装 安装示例 $ cd /home/oracle/orainst $ ./orainst
77
数据库的安装 安装示例 $ 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
78
数据库的安装 安装示例 一个产品对应一个子目录 公共目录(命令)bin 管理和维护软件 dbs 有关安装的软件 orainst
79
DBA应用程序 SQL*DBA SQL*Loader Export/Import SQL*DBA(SVRMGRL)
允许DBA控制和监视ORACLE数据库。 (只有DBA特权的用户可以使用)
80
DBA应用程序 SQL*DBA SQL*Loader Export/Import 命令执行方式: 行命令:
$ svrmgrl mode = line 或 $ svrmgrl lmode = y SVRMGRL> 输入行命令 点菜单: $ svrmgrl
81
DBA应用程序 SQL*DBA SQL*Loader Export/Import SQL*Loader
将标准操作系统文件(文本文件或C数据格式文件)中的数据安装到ORACLE数据基表中。 (DBA和用户都可以使用)
82
DBA应用程序 SQL*DBA SQL*Loader Export/Import Export/Import
允许DBA卸出/恢复ORACLE格式的数据。
83
ORACLE特殊用户 internal system sys internal 只能在服务器端使用的超级用户,它具有DBA的所有特权。
连接方式与普通用户相同。
84
ORACLE特殊用户 internal system sys System (manager)
连接方式与普通用户相同。
85
ORACLE特殊用户 internal system sys Sys(change_on_install)
只能在服务器端使用的超级用户,它具有DBA的所有特权。 连接方式与普通用户相同。
86
数据库管理员的身份识别 通过操作系统识别 ,设置参数: 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 as sysdba
87
第 四 章 数据库的启动和关闭
88
启动步骤: 启动SVRMGRL 连接INTERNAL用户 启动实例
数据库的启动 启动步骤: 启动SVRMGRL 连接INTERNAL用户 启动实例 读参数文件 分配SGA 启动后台进程 打开后台跟踪文件
89
数 据 库 的 启 动 用菜单命令启动数据库,出现对话框如下: (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)
90
数据库的启动 启动方式: Open Mount Nomount 启动实例 打开数据库 启动数据库
91
数据库的启动 参数说明: Exclusive/Parallel:专用/并行数据库模式。
Database Name:要启动的数据库名,默认值为ORACLE_SID变量的值。 Parameter File:在启动实例时,访问的参数文件名,默认文件为initSID.ora。
92
数据库的启动 约束条件: Force:在启动实例前,强行关闭当前实例。
Restrict to DBAs:数据库启动后,只有DBA特权的用户才能访问数据库。 Recover:在启动实例时,用日志文件做数据库恢复。
93
数据库的启动 例:用行命令启动数据库 $ svrmgrl mode = line svrmgrl> connect internal
svrmgrl> startup
94
数 据 库 的 关 闭 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
95
数 据 库 的 关 闭 关闭方式: Normal 处理完用户提交的所有事务,等待 用户退出连接后,关闭数据库、卸载数
据库、关闭实例。在下次启动实例时, 不做实例恢复操作。 Immediate/ Abort Instance 结束正在处理的SQL语句、回滚未 提交事务、不等待用户退出正常连接。 在下次启动实例时,做实例恢复操作。
96
数据库的关闭 例:用行命令关闭数据库 $ svrmgrl mode = line svrmgrl> connect internal
svrmgrl> shutdown
97
第 五 章 安全管理
98
安 全 管 理 用 户 Create User Name (o) Password Authentication
(OK) (Cancel) Name (o) Password Authentication ( ) OS Authentication Default Tablespace Temporary Tablespace Quotas Profile
99
安全管理 用户管理 参数说明: Name:用户名 Password Authentication:用户密码
安全管理 用户管理 参数说明: Name:用户名 Password Authentication:用户密码 OS Authentication:操作系统识别方式,设参数 OS_AUTHENT_PREFIX的值为“OPS$”。 Default Tablespace:用户对象保存的表空间 Temporary Tablespace:临时用户对象保存的表空间 Quotas:用户使用的表空间限量 Profile:用户使用的系统资源限量
100
安全管理 用户管理 行命令建立用户: CREATE USER 用户名 INDENTIFIED BY 口令 EXTERNALLY
安全管理 用户管理 行命令建立用户: CREATE USER 用户名 INDENTIFIED BY 口令 EXTERNALLY DEFAULT TABLESPACE 表空间名 TEMPORARY TABLESPACE 表空间名 QUOTA 整数 K/M ON 表空间名 UNLIMITED PROFILE 环境文件名
101
安全管理 用户管理 例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 ;
102
安全管理 用户管理 例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 ;
103
安 全 管 理 用 户 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
104
安全管理 用户管理 参数说明: No change in Authentication:无识别方式
安全管理 用户管理 参数说明: No change in Authentication:无识别方式 Password Authentication:用户密码 OS Authentication:操作系统识别方式 Default Tablespace:用户对象保存的表空间 Temporary Tablespace:临时用户对象保存的表空间 Quotas:用户使用的表空间限量 Profile:用户使用的系统资源限量 Default Role:分配给用户的角色
105
安全管理 用户管理 行命令修改用户: 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 ,
106
安全管理 用户管理 例1: 例2: ALTER USER scott INDENTIFIED BY lion
安全管理 用户管理 例1: ALTER USER scott INDENTIFIED BY lion DEFAULT TABLESPACE tstest ; 例2: ALTER USER scott PROFILE clerk ;
107
安 全 管 理 用 户 Drop User User: [X] Including Assciated Schema Objects
(OK) (Cancel) User: [X] Including Assciated Schema Objects STU9 STU10 STU11
108
安全管理 用户管理 行命令删除用户: 例如: DROP USER 用户名 CASCADE
安全管理 用户管理 行命令删除用户: DROP USER 用户名 CASCADE 例如: DROP USER bradley CASCADE ;
109
安 全 管 理 用 户 Kill User Session 例如: Session:
(OK) (Cancel) Session: SYS SCOTT STU15 例如: ALTER SYSTEM KILL SESSION ‘ 9, 3 ’ ;
110
安全管理 用户管理 与用户管理有关的数据字典视图: USER_USERS ALL_USERS DBA_USERS
安全管理 用户管理 与用户管理有关的数据字典视图: USER_USERS ALL_USERS DBA_USERS USER_TS_QUOTAS DBA_TS_QUOTAS
111
安 全 管 理 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
112
安全管理 环境文件管理 参数说明: Sessions/User:限制一个用户的并发会话个数。
安全管理 环境文件管理 参数说明: Sessions/User:限制一个用户的并发会话个数。 CPU Time/Session :限制一次会话的CPU时间,单位:百分之一秒。 CPU Time/Call:限制一次调用(一次语法分析、执行或获得)的CPU时间,单位:百分之一秒。 Connect Time:限制一会话总的使用时间,单位:分。 Idle Time:限制会话期间连接不活动周期,单位:分。长的运行查询和其它操作不受这个限制。
113
安全管理 环境文件管理 参数说明: Logical Reads/Session:限制在一次会话中读的数据块的数目,包括从内存或磁盘读的块数。
安全管理 环境文件管理 参数说明: Logical Reads/Session:限制在一次会话中读的数据块的数目,包括从内存或磁盘读的块数。 Logical Reads/Call:限制处理一个SQL语句(语法分析、执行和获取)一次调用所读的数据块的数目。 Private SGA/Session:限制一次会话在SGA的共享池可分配的专用空间的数目,单位:bytes/Kbytes/Mbytes。 Composite Limit:一次会话总的资源开销,以服务单位表示该参数的值。
114
安全管理 环境文件管理 ORACLE以下列资源的带权的和计算总的资源开销: Connect Time
安全管理 环境文件管理 ORACLE以下列资源的带权的和计算总的资源开销: CPU Time/Session Connect Time Logical Reads/Session Private SGA/Session
115
安全管理 环境文件管理 行命令建立环境文件: 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
116
安全管理 环境文件管理 例如:建立环境文件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 ;
117
安 全 管 理 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
118
安全管理 环境文件管理 行命令修改环境文件: 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
119
安全管理 环境文件管理 例:在ENGINEER环境文件中定义5个 并行会话的限制。 ALTER PROFILE engineer LIMIT
安全管理 环境文件管理 例:在ENGINEER环境文件中定义5个 并行会话的限制。 ALTER PROFILE engineer LIMIT SESSION_PER_USER 5 ;
120
安 全 管 理 Drop Profile 环 境 文 件 管理 行命令删除环境文件: Profile:
(OK) (Cancel) Profile: [ ] Reasign Profile Users to Default Profile CLERK DBA 行命令删除环境文件: DROP PROFILE 环境文件名 CASCADE
121
安 全 管 理 Alter Resource Cost 环 境 文 件 管理 CPU Time/Session: Connect Time:
(OK) (Cancel) CPU Time/Session: Connect Time: Logical Reads/Session: Private SGA/Session:
122
安 全 管 理 行命令更改资源开销: 环 例如:指定资源的权。 境 文 件 管理 CPU_PER_SESSION 整数
ALTER RESOUCE COST CPU_PER_SESSION 整数 CONNECT_TIME 整数 LOGICAL_READS_PER_SESSION 整数 PRIVATE_SGA 整数 例如:指定资源的权。 CPU_PER_SESSION 100 CONNECT_TIME 1
123
安全管理 环境文件管理 与环境文件有关的数据字典视图: USER_RESOURCE_LIMITS DBA_PROFILES
安全管理 环境文件管理 与环境文件有关的数据字典视图: USER_RESOURCE_LIMITS DBA_PROFILES RESOURCE_COST
124
安全管理 特权管理 系统特权:完成特殊活动或在一个特殊 类型的对象上完成特殊活动 的一个特权。 对象特权:在一个指定的对象(表、视
安全管理 特权管理 系统特权:完成特殊活动或在一个特殊 类型的对象上完成特殊活动 的一个特权。 对象特权:在一个指定的对象(表、视 图、序列、过程、函数或包) 上完成一个特殊活动的特权。
125
Grant System Privileges/Roles
安 全 管 理 特 权 Grant System Privileges/Roles (OK) (Cancel) Grant: To: [ ] Allow grantee to grant the privilege(s)/role(s) to others
126
安全管理 特权管理 行命令授予系统特权或角色: GRANT 系统特权名 TO 用户名 角色名 角色名 PUBLIC
安全管理 特权管理 行命令授予系统特权或角色: GRANT 系统特权名 TO 用户名 角色名 角色名 PUBLIC WITH ADMIN OPTION ,
127
安全管理 特权管理 例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 ;
128
Revoke System Privileges/Roles
安 全 管 理 特 权 Revoke System Privileges/Roles (OK) (Cancel) Revoke: From:
129
安全管理 特权管理 行命令授予系统特权或角色: REVOKE 系统特权名 FROM 用户名 角色名 角色名 PUBLIC ,
130
安全管理 特权管理 例:从用户Bill和Mary回收DROP ANY TABLE系统特权。
安全管理 特权管理 例:从用户Bill和Mary回收DROP ANY TABLE系统特权。 REVOKE drop any table FROM bill , mary ;
131
安全管理 特权管理 回收系统特权的连锁反映分析: REVOKE A B C RESULT A B C GRANT A B C
132
安全管理 特权管理 对象特权的授权: 例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 ;
133
安全管理 特权管理 对象特权的回收: 例1: 例2: REVOKE select ON dept FROM stu10 , stu11 ;
安全管理 特权管理 对象特权的回收: 例1: REVOKE select ON dept FROM stu10 , stu11 ; 例2: REVOKE all ON emp FROM scott ;
134
安全管理 特权管理 回收对象特权的连锁反映分析: REVOKE A C B RESULT A C B GRANT A C B
135
安全管理 特权管理 与特权有关的数据字典视图: 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
136
安全管理 角色管理 角色是由一个命名的关联特 权组组成,用来维护和控制特权。 角色的特点: 减少授权次数 动态的特权管理 选择可用特权
137
安全管理 角色管理 无角色管理的授权示意图 用 户 特 权
138
安全管理 角色管理 使用角色管理的授权示意图 用 户 特 权 角 色
139
安全管理 角色管理 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
140
安 全 管 理 角 色 Create Role Name: ( ) Use Password Authentication :
(OK) (Cancel) Name: ( ) Use Password Authentication : ( ) Use OS Authentication ( ) Use No Authentication
141
安全管理 角色管理 行命令建立角色: 例1: 例2: CREATE ROLE 角色名 NOT IDENTIFIED
安全管理 角色管理 行命令建立角色: CREATE ROLE 角色名 NOT IDENTIFIED IDENTIFIED BY 口令 EXTERNALLY 例1: CTEATE ROLE acct ; 例2: CTEATE ROLE acct IDENTIFIED BY bicent ;
142
安 全 管 理 角 色 Alter Role Role: ( ) Change Password to :
(OK) (Cancel) Role: ( ) Change Password to : ( ) Change to OS Authentication ( ) Change to No Authentication CONNECT DBA MONITORER
143
安全管理 角色管理 行命令修改角色: 例: ALTER ROLE 角色名 NOT IDENTIFIED IDENTIFIED BY 口令
安全管理 角色管理 行命令修改角色: ALTER ROLE 角色名 NOT IDENTIFIED IDENTIFIED BY 口令 EXTERNALLY 例: ALTER ROLE acct NOT IDENTIFIED ;
144
安 全 管 理 角 色 Drop Role Role: CONNECT DBA MONITORER RESOURCE
(OK) (Cancel) Role: CONNECT DBA MONITORER RESOURCE
145
安全管理 角色管理 行命令删除角色: DROP ROLE 角色名 例: DROP ROLE acct ;
146
安全管理 角色管理 行命令删除角色: 注:授予角色特权和回收角色特 权的操作与给用户授权和回收操 作相同。 DROP ROLE 角色名 例:
安全管理 角色管理 行命令删除角色: DROP ROLE 角色名 例: DROP ROLE acct ; 注:授予角色特权和回收角色特 权的操作与给用户授权和回收操 作相同。
147
安全管理 特权管理 与角色有关的数据字典视图: 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
148
第 六 章 数据库物理文件 及存储空间的管理
149
Add Date File to Tablespace
数据库物理文件的管理 数据文件 Add Date File to Tablespace (OK) (Cancel) Tablespace: SYSTEM RBS USERS TEMP Date Files:
150
数据库物理文件的管理 数据文件 行命令追加数据文件: ALTER TABLESPACE 表空间名 ADD DATAFILE 文件说明
数据库物理文件的管理 数据文件 行命令追加数据文件: ALTER TABLESPACE 表空间名 ADD DATAFILE 文件说明 RENAME DATAFILE ‘文件名’ TO ‘文件名’ DEFAULT STORAGE 存储子句 ONLINE OFFLINE NORMAL TEMPORARY IMMEDIATE BEGIN BACKUP END ,
151
数据库物理文件的管理 数据文件 例如: ALTER TABLESPACE users
数据库物理文件的管理 数据文件 例如: ALTER TABLESPACE users ADD DATAFILE ‘userora1.dbf ’ SIZE 1M ;
152
数据库物理文件的管理 数据文件 Rename Date File Tablespace: Old Filenames:
数据库物理文件的管理 数据文件 Rename Date File (OK) (Cancel) Tablespace: SYSTEM RBS USERS TEMP Old Filenames: New Filenames: 注意:在执行该操作之前,新文件名应在指定路径下存在。
153
数据库物理文件的管理 数据文件 例如: ALTER TABLESPACE users
数据库物理文件的管理 数据文件 例如: ALTER TABLESPACE users RENAME DATAFILE ‘filename1’, ‘filename2’ TO ‘filename3’, ‘filename4’ ;
154
数据库物理文件的管理 数据文件 例如: 更改数据库命令的语法格式见《ORACLE数据库基础》P158。 ALTER DATABASE
数据库物理文件的管理 数据文件 更改数据库命令的语法格式见《ORACLE数据库基础》P158。 例如: ALTER DATABASE RENAME FILE ‘filename1’, ‘filename2’ TO ‘filename3’, ‘filename4’ ;
155
数据库物理文件的管理 数据文件 与数据文件有关的数据字典视图: DBA_DATA_FILES V$DATAFILE
156
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
157
数据库物理文件的管理 日志文件 行命令增加在线日志文件组,例如: ALTER DATABASE
数据库物理文件的管理 日志文件 行命令增加在线日志文件组,例如: ALTER DATABASE ADD LOGFILE (‘log1c.log’, ‘log2c.log’) SIZE 500K ;
158
数据库物理文件的管理 日志文件 删除在线日志文件组,DBA应在该操作之前考虑如下问题:
数据库物理文件的管理 日志文件 删除在线日志文件组,DBA应在该操作之前考虑如下问题: 删除该日志文件组后,数据库至少还包含两个在线日志文件组。 要删除的在线日志文件组是否为当前日志文件组。 要删除的在线日志文件组是否已归档。
159
Drop Online Redo Log Group
数据库物理文件的管理 日志文件 Drop Online Redo Log Group (OK) (Cancel) Online Redo Log Group: 1 2 3 注意:该操作只删除了控制文件中的指针,即进行了逻辑删除,物理删除直接使用操作系统命令完成。
160
数据库物理文件的管理 日志文件 行命令删除在线日志文件组,例如: ALTER DATABASE DROP LOGFILE GROUP 3 ;
161
Add Online Redo Log Member
数据库物理文件的管理 日志文件 Add Online Redo Log Member (OK) (Cancel) Members to Add: Add to Group #:
162
数据库物理文件的管理 日志文件 行命令增加在线日志文件成员,例如: ALTER DATABASE
数据库物理文件的管理 日志文件 行命令增加在线日志文件成员,例如: ALTER DATABASE ADD LOGFILE MEMBER ‘log2b.log’ TO GROUP 2 ;
163
Rename Online Redo Log Member
数据库物理文件的管理 日志文件 Rename Online Redo Log Member (OK) (Cancel) Old Filenames: New Filenames: 注意:在执行该操作之前,新文件名应在指定路径下存在。
164
数据库物理文件的管理 日志文件 行命令增加在线日志文件成员,例如: ALTER DATABASE
数据库物理文件的管理 日志文件 行命令增加在线日志文件成员,例如: ALTER DATABASE RENAME FILE ‘filename1’, ‘filename2’ TO ‘filename3’, ‘filename4’ ;
165
数据库物理文件的管理 日志文件 删除在线日志文件成员,DBA应在该操作之前考虑如下问题:
数据库物理文件的管理 日志文件 删除在线日志文件成员,DBA应在该操作之前考虑如下问题: 删除该日志文件成员后,每个日志文件组至少还包含两个在线日志文件成员。 要删除的在线日志文件成员是否为当前日志文件组的成员。 要删除的成员所属的在线日志文件组是否已归档。
166
数据库物理文件的管理 日志文件 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 注意:该操作只删除了控制文件中的指针,即进行了逻辑删除,物理删除直接使用操作系统命令完成。
167
数据库物理文件的管理 日志文件 行命令删除在线日志文件成员,例如: ALTER DATABASE
数据库物理文件的管理 日志文件 行命令删除在线日志文件成员,例如: ALTER DATABASE DROP LOGFILE MEMBER ‘log3c.log’ ;
168
数据库物理文件的管理 控制文件 镜像控制文件的步骤: 关闭数据库 使用操作系统命令复制一份控制文件。
数据库物理文件的管理 控制文件 镜像控制文件的步骤: 关闭数据库 使用操作系统命令复制一份控制文件。 将CONTROL_FILES参数加入参数文件中,以指定复制的控制文件名及路径。 重新启动数据库
169
数据库存储空间的管理 表空间 Create Tablespace Name: Data Files: Storage:
数据库存储空间的管理 表空间 Create Tablespace (OK) (Cancel) Name: Data Files: Storage: ( ) Bring Online After Creation ( ) Leave Offine After Creation
170
数据库存储空间的管理 表空间 参数说明: Name:表空间名 Data Files:数据文件名及大小 Storage:设置表空间的存储参数
数据库存储空间的管理 表空间 参数说明: Name:表空间名 Data Files:数据文件名及大小 Storage:设置表空间的存储参数 Bring Online After Creation:表空间在线 Leave Offine After Creation:表空间离线
171
数据库存储空间的管理 表空间 行命令建立表空间: CREATE TABLESPACE 表空间 DATAFILE 文件说明 ,
数据库存储空间的管理 表空间 行命令建立表空间: CREATE TABLESPACE 表空间 DATAFILE 文件说明 DEFAULT STORAGE 存储子句 ONLINE OFFLINE ,
172
数据库存储空间的管理 表空间 例如: 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 ;
173
数据库存储空间的管理 表空间 Set Tablespace Online (OK) (Cancel) Tablespace: USERS
174
数据库存储空间的管理 表空间 行命令修改表空间: ALTER TABLESPACE 表空间 ADD DATAFILE 文件说明 ,
数据库存储空间的管理 表空间 ALTER TABLESPACE 表空间 ADD DATAFILE 文件说明 RENAME DATAFILE ‘文件名’ TO ‘文件名’ DEFAULT STORAGE 存储子句 ONLINE OFFLINE NORMAL TEMPORARY IMMEDIATE BEGIN BACKUP END 行命令修改表空间: ,
175
数据库存储空间的管理 表空间 例如: ALTER TABLESPACE accounting ONLINE ;
176
Set Tablespace Offline ( ) Normal ( ) Temporary ( ) Immediate
数据库存储空间的管理 表空间 Set Tablespace Offline (OK) (Cancel) Tablespace: USERS ( ) Normal ( ) Temporary ( ) Immediate
177
数据库存储空间的管理 表空间 参数说明: Normal:ORACLE检测该离线表空间所对应的数据文件是否有问题,如果没有问题可离线。
数据库存储空间的管理 表空间 参数说明: Normal:ORACLE检测该离线表空间所对应的数据文件是否有问题,如果没有问题可离线。 Temporary:ORACLE检测该离线表空间所对应的数据文件是否有问题,如果有问题可离线。 Immediate:不检测该离线表空间所对应的数据文件,直接离线。
178
数据库存储空间的管理 表空间 例如: ALTER TABLESPACE accounting OFFLINE NORMAL;
179
数据库存储空间的管理 表空间 Drop Tablespace Tablespace: USERS TEMP RBS
数据库存储空间的管理 表空间 Drop Tablespace (OK) (Cancel) Tablespace: USERS TEMP RBS [ ] Including contained objects [ ] Cascade drop of integrity constraints
180
数据库存储空间的管理 表空间 参数说明: Including contained objects
数据库存储空间的管理 表空间 参数说明: Including contained objects 删除表空间的同时,将该表空间包含的对象一并从数据库中删除。 Cascade drop of integrity constraints 在删除表空间包含的对象的同时,将每个模式对象所对应的约束一并从数据库中删除。
181
数据库存储空间的管理 表空间 行命令删除表空间: DROP TABLESPACE 表空间名 INCLUDING CONTENTS
数据库存储空间的管理 表空间 行命令删除表空间: DROP TABLESPACE 表空间名 INCLUDING CONTENTS CASCADE CONSTRAINTS
182
数据库存储空间的管理 表空间 例如: DROP TABLESPACE user_stu INCLUDING CONTENTS
数据库存储空间的管理 表空间 例如: DROP TABLESPACE user_stu INCLUDING CONTENTS CASCADE CONSTRAINTS ;
183
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:
184
Create Rollback Segment
数据库存储空间的管理 回滚段 Create Rollback Segment (OK) (Cancel) ( ) Public ( Available to All Instances ) ( ) Private ( Available to Specific Instances ) Name: In Tablespace: Storage Parameters:
185
数据库存储空间的管理 回滚段 参数说明: Name:回滚段名 In Tablespace:所属表空间
数据库存储空间的管理 回滚段 参数说明: Public ( Available to All Instances ) 建立的回滚段为多个实例共享。 Private ( Available to Specific Instances ) 建立的回滚段为指定实例专用。 Name:回滚段名 In Tablespace:所属表空间 Storage Parameters:存储参数
186
数据库存储空间的管理 回滚段 行命令建立回滚段: CREATE ROLLBACK SEGMENT 回滚段名 PUBLIC
数据库存储空间的管理 回滚段 行命令建立回滚段: CREATE ROLLBACK SEGMENT 回滚段名 PUBLIC TABLESPACE 表空间 STORAGE 存储子句
187
数据库存储空间的管理 回滚段 例如: CREATE PUBLIC ROLLBACK SEGMENT rbs_2
数据库存储空间的管理 回滚段 例如: CREATE PUBLIC ROLLBACK SEGMENT rbs_2 TABLESPACE system STORAGE ( INITIAL 50K NEXT 50K OPTIMAL 150K MAXEXTENTS 10 ) ;
188
Set Rollback Segment Online
数据库存储空间的管理 回滚段 Set Rollback Segment Online (OK) (Cancel) Rollback Segment: RS1 RS2 RS3
189
数据库存储空间的管理 回滚段 行命令修改回滚段: ALTER ROLLBACK SEGMENT 回滚段名 ONLINE OFFLINE
数据库存储空间的管理 回滚段 行命令修改回滚段: ALTER ROLLBACK SEGMENT 回滚段名 ONLINE OFFLINE STORAGE 存储子句
190
数据库存储空间的管理 回滚段 例如: ALTER ROLLBACK SEGMENT rbs_2 ONLINE ;
191
Set Rollback Segment Offline
数据库存储空间的管理 回滚段 Set Rollback Segment Offline (OK) (Cancel) Rollback Segment: RS1 RS2 RS3
192
数据库存储空间的管理 回滚段 例如: ALTER ROLLBACK SEGMENT rbs_2 OFFLINE ;
193
数据库存储空间的管理 回滚段 Drop Rollback Segment Rollback Segment: RS1 RS2 RS3
数据库存储空间的管理 回滚段 Drop Rollback Segment (OK) (Cancel) Rollback Segment: RS1 RS2 RS3
194
数据库存储空间的管理 回滚段 行命令删除回滚段: DROP ROLLBACK SEGMENT 回滚段名
195
数据库存储空间的管理 回滚段 例如: DROP ROLLBACK SEGMENT rbs_2 ;
196
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:
197
第 七 章 数据库的建立
198
数据库的建立 准备工作 选定数据库名 拷贝和编辑参数文件 DB_NAME及数据库参数 设置环境变量 ORACLE_SID
199
数据库的建立 修改参数文件 编辑参数文件: 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:后台进程跟踪文件名及路径
200
数据库的建立 修改参数文件 编辑参数文件: DB_BLOCK_SIZE:数据库块大小 DB_BLOCK_BUFFERS:数据库块数目
数据库的建立 修改参数文件 编辑参数文件: DB_BLOCK_SIZE:数据库块大小 DB_BLOCK_BUFFERS:数据库块数目 IFILE:数据库其它参数文件名及路径 LOG_BUFFER:日志缓冲区大小 SHARED_POOL_SIZE:共享池大小 LOG_CHECKPOINT_INTERVAL:检查点频率 PROCESSES:同时连接数据库的最大进程数 ROLLBACK_SEGMENTS:在线回滚段名
201
数据库的建立 修改参数文件 编辑参数文件: LICENSE_MAX_SESSIONS 同时连接到数据库的最大会话数目。
数据库的建立 修改参数文件 编辑参数文件: LICENSE_MAX_SESSIONS 同时连接到数据库的最大会话数目。 LICENSE_SESSION_WARNING 同时连接到数据库的警告会话数目。
202
数据库的建立 建立数据库 行命令建立数据库: , CREATE DATABASE 数据库名 CONTROLFILE REUSE
数据库的建立 建立数据库 CREATE DATABASE 数据库名 CONTROLFILE REUSE LOGFILE 文件说明 GROUP 整数 MAXLOGFILES 整数 MAXLOGMEMBERS 整数 MAXLOGHISTORY 整数 DATAFILE 文件说明 MAXDATAFILES 整数 MAXINSTANCES 整数 ARCHIVELOG NOARCHIVELOG EXCLUSIVE CHARACTER SET 字符集名 行命令建立数据库: ,
203
数据库的建立 建立数据库 例如: 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 ;
204
数据库的建立 后期工作 镜像日志文件 镜像控制文件
205
数据库的建立 数据字典 数据字典是ORACLE数据库的最重要部分之一,它由一组只读的表和视图所组成。它提供如下信息: ORACLE用户名
数据库的建立 数据字典 数据字典是ORACLE数据库的最重要部分之一,它由一组只读的表和视图所组成。它提供如下信息: ORACLE用户名 特权和角色 模式对象信息 完整性约束 空间分配情况 数据库结构 审计信息
206
数据库的建立 数据字典 数据字典视图: USER_XXX:任何用户可访问的视图,给出该用户的所有对象信息。
数据库的建立 数据字典 数据字典视图: USER_XXX:任何用户可访问的视图,给出该用户的所有对象信息。 ALL_XXX:任何用户可访问的视图,给出数据库所有用户的所有对象的基本信息。 DBA_XXX:只有DBA特权的用户可访问的视图,给出数据库的所有详细信息。 V$XXX:记录数据库的动态信息。
207
数据库的建立 数据字典 数据字典的特点: 所有数据字典基表和视图都由SYS用户拥有。
数据库的建立 数据字典 数据字典的特点: 所有数据字典基表和视图都由SYS用户拥有。 对于ALL_XXX和USER_XXX视图建立公共同义词。 列名对所有视图都一致。 后缀名对所有视图都一致。 USER_XXX类视图无OWNER列。 许多DBA_XXX视图无等价的USER_XXX和ALL_XXX视图。
208
第 八 章 数据库的后备和恢复
209
数据库的后备和恢复 归档与无归档 无归档操作: 归档操作: 在介质出现失败时,只能将数据库恢复到最后后备的那一刻。
数据库的后备和恢复 归档与无归档 无归档操作: 在介质出现失败时,只能将数据库恢复到最后后备的那一刻。 归档操作: 在介质出现失败时,能使用归档日志文件最大量的恢复数据库数据。
210
数据库的后备和恢复 归档与无归档 归档需求: 数据库必须在ARCHIVELOG模式下操作 启动自动归档进程ARCHIVER
数据库的后备和恢复 归档与无归档 归档需求: 数据库必须在ARCHIVELOG模式下操作 启动自动归档进程ARCHIVER 有足够的资源保存归档日志文件
211
数据库的后备和恢复 归档与无归档 显示归档状态: 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 当前日志组序列号
212
数据库的后备和恢复 归档与无归档 指定归档模式: 建立数据库时 建立控制文件时
213
数据库的后备和恢复 归档与无归档 修改归档模式: SVRMGR> CONNECT internal ;
数据库的后备和恢复 归档与无归档 修改归档模式: SVRMGR> CONNECT internal ; SVRMGR> STARTUP MOUNT ; SVRMGR> ALTER DATABASE ARCHIVELOG ; SVRMGR> ALTER DATABASE OPEN ;
214
数据库的后备和恢复 归档与无归档 归档进程状态: 修改参数LOG_ARCHIVE_START的值为true/false
数据库的后备和恢复 归档与无归档 归档进程状态: 修改参数LOG_ARCHIVE_START的值为true/false ALTER SYSTEM ARCHIVE LOG START TO directory or device name (/STOP) ;
215
数据库的后备和恢复 数据库的后备 为保证数据库的正常使用,在数据库出现故障时,能尽可能快的修复数据库,做好数据库的后备工作是十分重要的。
数据库的后备和恢复 数据库的后备 为保证数据库的正常使用,在数据库出现故障时,能尽可能快的修复数据库,做好数据库的后备工作是十分重要的。 定期执行整个操作系统的后备。 频繁修改的表空间要经常后备。 在修改数据库结构之前和之后,要后备所影响的数据文件、日志文件和控制文件。
216
Operating System Backup Without Archiving With Archiving
数据库的后备和恢复 数据库的后备 Backup Methods Physical Operating System Backup Without Archiving With Archiving Logical Export Utility 后备方法: 操作系统后备 无归档后备 归档后备 Export程序后备
217
数据库的后备和恢复 数据库的后备 操作系统后备: 离线数据库全后备:数据库无归档操作 在线数据库全后备:数据库归档操作
数据库的后备和恢复 数据库的后备 操作系统后备: 离线数据库全后备:数据库无归档操作 在线数据库全后备:数据库归档操作 在线表空间后备:数据库归档操作 离线表空间后备:数据库归档操作 控制文件后备
218
数据库的后备和恢复 数据库的后备 离线数据库全后备 ——数据文件、日志文件、控制文件和参数文件 记录数据库所有文件的路径及文件名
数据库的后备和恢复 数据库的后备 离线数据库全后备 ——数据文件、日志文件、控制文件和参数文件 记录数据库所有文件的路径及文件名 用NORMAL关闭数据库 用操作系统命令拷贝数据库所有文件 重新启动ORACLE实例
219
数据库的后备和恢复 数据库的后备 显示数据文件路径及文件名:
数据库的后备和恢复 数据库的后备 显示数据文件路径及文件名: SQL> SELECT file_name FROM dba_data_files ; 显示日志文件路径及文件名: SQL> SELECT member FROM v$logfile ; 显示控制文件路径及文件名: SQL> SELECT value FROM v$parameter WHERE name = ‘control_files’ ;
220
数据库的后备和恢复 数据库的后备 例如: SVRMGR> CONNECT internal ;
数据库的后备和恢复 数据库的后备 例如: SVRMGR> CONNECT internal ; SVRMGR> SHUTDOWN normal ; SVRMGR> host cp <files> <backup directory> … ... SVRMGR> STARTUP open ;
221
数据库的后备和恢复 数据库的后备 在线数据库全后备: 确保数据库在ARCHIVELOG模式下操作。
数据库的后备和恢复 数据库的后备 在线数据库全后备: 确保数据库在ARCHIVELOG模式下操作。 用在线表空间后备方法后备数据库所有表空间。 用控制文件后备方法后备数据库的控制文件。
222
数据库的后备和恢复 数据库的后备 在线表空间的后备: 确保数据库在ARCHIVELOG模式下操作。 使要后备的表空间在线。
数据库的后备和恢复 数据库的后备 在线表空间的后备: 确保数据库在ARCHIVELOG模式下操作。 使要后备的表空间在线。 开始在线表空间的后备 用操作系统命令拷贝表空间所对应的数据文件。 结束在线表空间的后备。
223
Begin Online Tablespace Backup
数据库的后备和恢复 数据库的后备 Begin Online Tablespace Backup (OK) (Cancel) Online Tablespace: SYSTEM TEMP USERS
224
End Online Tablespace Backup
数据库的后备和恢复 数据库的后备 End Online Tablespace Backup (OK) (Cancel) Online Tablespace: SYSTEM TEMP USERS
225
数据库的后备和恢复 数据库的后备 例如: SVRMGR>ALTER TABLESPACE users BEGIN BACKUP ;
数据库的后备和恢复 数据库的后备 例如: SVRMGR>ALTER TABLESPACE users BEGIN BACKUP ; SVRMGR>host cp <files> <backup directory> … … END BACKUP ;
226
数据库的后备和恢复 数据库的后备 在下列操作前后要后备控制文件: 增加在线日志文件组 增加在线日志文件成员 重命名在线日志文件成员
数据库的后备和恢复 数据库的后备 在下列操作前后要后备控制文件: 增加在线日志文件组 增加在线日志文件成员 重命名在线日志文件成员 删除在线日志文件组 删除在线日志文件成员 建立表空间 增加数据文件 重命名数据文件 删除表空间
227
数据库的后备和恢复 数据库的后备 控制文件的后备: SVRMGR>ALTER DATABASE BACKUP CONTROLFILE
数据库的后备和恢复 数据库的后备 控制文件的后备: SVRMGR>ALTER DATABASE BACKUP CONTROLFILE TO ‘backup directory’ ;
228
数据库的后备和恢复 数据库的后备 Export应用程序将数据库表保存到操作系统文件,这个文件只能由Import应用程序读入数据库。卸出模式如下: Table:卸出用户的指定表。 User:卸出用户模式中的所有对象。 Full Database:卸出数据库中的所有对象。 具有EXP_FULL_DATABASE角色的用户可操作此项。
229
数据库的后备和恢复 数据库的后备 卸出类型如下: Complete:卸出数据库的所有对象。
数据库的后备和恢复 数据库的后备 卸出类型如下: Complete:卸出数据库的所有对象。 Imcremental:卸出上次某类卸出后修改的对象。 Cumulative:卸出上次累加或完全卸出后修改的对象。
230
数据库的后备和恢复 数据库的后备 命令执行方式如下: 参数文件
数据库的后备和恢复 数据库的后备 命令执行方式如下: 参数文件 EXP [username/password] PARFILE = filename 行命令 EXP [username/password] 参数1 参数2 … ... 交互 EXP
231
数据库的后备和恢复 数据库的后备 联机帮助命令: EXP HELP = y
232
数据库的后备和恢复 数据库的恢复 数据库可能出现的错误: 用户错误 语句失败 用户进程失败 实例失败 介质失败
233
数据库的后备和恢复 数据库的恢复 用户错误 一般原因: 用户意外删除了一个对象 用户删除表中的所有行 用户提交有错误的数据 解决方法:
数据库的后备和恢复 数据库的恢复 用户错误 一般原因: 用户意外删除了一个对象 用户删除表中的所有行 用户提交有错误的数据 解决方法: 培训数据库用户 用表的Export恢复 用日志文件进行时间片恢复
234
数据库的后备和恢复 数据库的恢复 语句失败 一般原因: 应用中有逻辑错误 解决方法: 用户往表中输入错误数据 调整应用
数据库的后备和恢复 数据库的恢复 语句失败 一般原因: 应用中有逻辑错误 用户往表中输入错误数据 用户使用不适当特权操作 用户建立超过分配量的表 表空间中剩余空间不够 解决方法: 调整应用 修改错误数据 DBA授予适当特权 修改用户表空间限量 给表空间追加数据文件
235
数据库的后备和恢复 数据库的恢复 用户进程失败 一般原因: 用户没有连接到会话 用户进程被异常中断 用户程序产生了一个非中断会话地址
数据库的后备和恢复 数据库的恢复 用户进程失败 一般原因: 用户没有连接到会话 用户进程被异常中断 用户程序产生了一个非中断会话地址 解决方法: 由PMON后台进程撤消异常中断的用户进程,并释放该进程已经获得的系统资源或锁。
236
数据库的后备和恢复 数据库的恢复 实例失败 一般原因: 在启动实例时停电 硬件问题(CPU失败) 软件问题(操作系统错误) 后台进程失败
数据库的后备和恢复 数据库的恢复 实例失败 一般原因: 在启动实例时停电 硬件问题(CPU失败) 软件问题(操作系统错误) 后台进程失败 (DBWR、LGWR、PMON、SMON) 解决方法: connect internal startup
237
数据库的后备和恢复 数据库的恢复 介质失败 一般原因: 存放数据库的介质出现故障。 文件被意外删除。 解决方法:
数据库的后备和恢复 数据库的恢复 介质失败 一般原因: 存放数据库的介质出现故障。 文件被意外删除。 解决方法: 恢复方法依赖于后备方法和被影响的文件。 使用最后一次归档的日志文件恢复数据库数据。
238
数据库的后备和恢复 介质故障的恢复 完全后备介质恢复 数据库在NOARCHIVELOG方式下操作时,出现介质失败,做如下恢复。
数据库的后备和恢复 介质故障的恢复 完全后备介质恢复 数据库在NOARCHIVELOG方式下操作时,出现介质失败,做如下恢复。 1.关闭数据库 2.修复硬件故障,能修复执行步骤3a,否则执行3b到3e。 3.恢复数据库文件: a.拷贝数据文件、日志文件和控制文件到磁盘 b.拷贝数据文件、日志文件、控制文件和参数文件到可操作磁盘(用新文件名) c.编辑参数CONTROL_FILES以指定控制文件的位置 d.START MOUNT e.重命名数据文件和日志文件 4.打开数据库
239
数据库的后备和恢复 介质故障的恢复 部分数据文件的恢复 a.关闭数据库 b.修复硬件故障,能修复不执行步骤f。
数据库的后备和恢复 介质故障的恢复 部分数据文件的恢复 a.关闭数据库 b.修复硬件故障,能修复不执行步骤f。 c.将被破坏的数据文件拷贝到新路径下,用新名字。 d.CONNECT internal e.START MOUNT f.重命名数据文件 g.使要恢复的数据文件在线 h.RECOVER DATAFILE 数据文件名 i.打开数据库
240
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
241
Recover Offline Tablespace
数据库的后备和恢复 介质故障的恢复 Recover Offline Tablespace (OK) (Cancel) Offline Tablespaces: TS1 TS2 TS3
242
数据库的后备和恢复 介质故障的恢复 Recover Data File Data Files: Filename1 Filename2
数据库的后备和恢复 介质故障的恢复 Recover Data File (OK) (Cancel) Data Files: Filename1 Filename2 Filename3
243
数据库的后备和恢复 控制文件的恢复 关闭数据库 将后备的控制文件拷贝到可用磁盘 编辑参数CONTROL_FILES
数据库的后备和恢复 控制文件的恢复 关闭数据库 将后备的控制文件拷贝到可用磁盘 编辑参数CONTROL_FILES CONNECT internal STARTUP
244
数据库的后备和恢复 Import程序 Import应用程序装入由 Export应用程序卸出的数据。装入数据需要相应的特权。
245
数据库的后备和恢复 Import程序 命令执行方式如下: 参数文件
IMP [username/password] PARFILE = filename 行命令 IMP [username/password] 参数1 参数2 … ... 交互 IMP
246
数据库的后备和恢复 Import程序 联机帮助命令: IMP HELP = y
247
数据库的后备和恢复 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:数据库增量后备
248
数据库的后备和恢复 Import程序 Import应用程序恢复步骤: 建立新数据库 恢复最近一次的数据库全后备
恢复全后备之后完成的所有累加后备 恢复最后一次累加后备之后完成的所有增量后备
249
第 九 章 Oracle8的管理
250
Oracle8与Oracle7管理上的差别 分区管理 作业管理 更安全的用户管理 从联机事务处理(OLTP)到联机分析处理(OLAP)
从数据库到数据仓库
251
表与索引的分区 分区就是将表和索引分成多个片,每个片都可以单独管理。 容易存储更多的数据,为数据仓库打下基础。
针对小范围分区就可以执行SQL语句,提高了数据库运行性能。 可以将不同的表存在不同的表空间,但推荐不这么做。
252
分区的创建 创建一个学生成绩表 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);
253
分区的移动 重组数据减少碎片。 ALTER TABLE/INDEX 表名/索引名 MOVE PARTITION 分区名 移动后表空间名
ALTER TABLE score MOVE PARTITION score_q1 TABLESPACE education2 NOLOGGING ALTER INDEX REBUILD PARTITION partition_name
254
分区的属性修改 改变分区的存储参数,比如当预计到下一个分区的数据量比前一个分区的数据量剧增时。可以增加下一个分区的MAXEXTENT参数。
ALTER TABLE/INDEX MODIFY PARTITION语句 ALTER INDEX REBUILD PARTITION partition_name
255
增加分区 需要增加存储空间时。 ALTER TABLE 表名 ADD PARTITION
ALTER TABLE stu_score ADD PARTITION score_q3 VALUES LESS THAN (1998,07,01) TABLESPACE education2; ALTER INDEX ADD PARTITION
256
分区的删除 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索引
257
分区的拆分 分区过大以致于后备、恢复、管理都要很长时间,需要拆分成两个或多个分区。
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索引
258
分区中的数据清空 当然可以使用SQL语句Delete删除分区中的数据。但是那样会很慢的。
ALTER TABLE TRUNCATE PARTITION ALTER TABLE stu_score TRUNCATE PARTITION score_q3; 索引分区中的数据不可以清空。表中数据清空以后索引会自动变化。
259
分区的合并 将分区A中的数据Export出来。 删除A分区。 将数据Import进入B分区。 这样A分区就和B分区合并在一起了。
260
分区数据的交换 非分区表中的数据和分区表的分区中的数据可以相互交换。O7向O8升级时用。
ALTER TABLE table_name1 EXCHANGE PARTITION partition_name WITH TABLE table_name2 WITHOUT VALIDATION;
261
分区名称的改变 当原有分区的硬盘损坏时,你用备份硬盘上的分区代替原有分区,这条指令是很有用的。
ALTER TABLE/INDEX RANAME PARTITION oldname TO newname
262
数据库的审计 数据字典中的基表SYS.AUD$。
初始化参数AUDIT_TRAIL规定了审计模式:1、DB表示将审计结果放入基表;2、OS表示利用操作系统审计功能;3、NONE,不进行审计。 审计的记录内容:1、SQL语法执行过程;2、数据库权限使用情况;3、模式对象使用情况。
263
数据库的审计 后台进程和服务器进程都会产生一些踪迹文件(TRACE FILE)。最重要的ALTER文件。
文件位置由初始化参数:BACKGROUND_DUMP_DEST参数指定。 SQL_TRACE参数是是否产生踪迹文件的开关。
264
什么是作业队列? 在一些场合用户需要数据库能够周期性地执行应用程序 在Oracle8中,这种功能依靠SNP后台进程来实现
265
作业的运行方式 SNP0-SNP9 作业队列 ……. ……. SNPA-SNPZ
266
SNP初始化参数设定 JOB_QUEUE_PROCESSES参数,指定SNP后台进程的个数,可设置范围是0到36。
JOB_QUEUE_INTERVAL参数,指定SNP后台进程唤醒的时间间隔,可设置范围是1到3600秒。
267
作业功能的实现 通过执行Oracle公司提供的DBMS_JOB包中的过程来完成各种作业的功能。
包里面有:SUBMIT过程,REMOVE过程,CHANGE过程、WHAT过程、NEXT_DATA过程、INTERVAL过程、BROKEN过程、RUN过程
268
作业的提交 使用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表示执行前是否立即审查作业内容?
269
作业提交时可以传递三个参数 参数名 传递模式 详细描述 job IN 当前作业号 下次执行作业的日期 默认为SYSDATE IN/OUT
Next_date 作业状态,标记作业 是否有效 broken IN/OUT
270
Interval值的计算方法 以天为单位。 例:10分钟运行一次:sysdate+(10/1440) 例:一周运行一次:sysdate+7
271
一个作业提交的例子 这个例子每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
272
从作业队列中去掉一个作业 DBMS_JOB.REMOVE(job IN BINARY_INTEGER) 例如将刚才提交的作业去掉:
svrmgr>dbms_job.remove(14100);
273
改变作业的运行参数 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');
274
单独改变作业参数 改变作业内容: 改变作业下次执行时间 改变作业执行间隔
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)
275
标记一个作业有效或无效 将刚才的例子标志为有效: 一个作业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。
276
作业的强制执行 即便是使用Broken过程标志为无效的作业也可以使用RUN过程开始强制执行。
DBMS_JOB.RUN(job IN BINARY_INTEGER)
277
作业的删除 第一步,将这个作业标志为无效 第二步,使用数据字典 select * from v$session查看运行作业的会话标识符和会话序列号。 删除这个会话(session)就可以了。
278
查看作业和作业队列的信息 Select * from DBA_JOBS列出数据库中现有的所有作业的详细信息。
Select * from USER_JOBS列出当前用户拥有的作业的详细信息。 Select * from DBA_JOBS_RUNNING列出当前数据库中正在运行的作业。
Similar presentations