nullnullOracle 数据库第二部分
Oracle数据库管理第二部分
Oracle数据库管理null第四章. Oracle对象
第五章. 数据库控制文件管理
第六章. 数据库日志文件管理
第七章. Oracle9i表空间管理目 录 null第四章 Oracle对象数据字典 数据字典 每个 Oracle 数据库的中心
描述数据库以及数据库对象
包含只读表和视图
存储在 SYSTEM 表空间内
由用户 SYS 拥有
由 Oracle 服务器进行维护
通过 SELECT 访问 控制文件数据文件 重做日志文件 数据库 数据字典表基表和数据字典视图 基表和数据字典视图 数据字典包含以下两个部分:
基表
存储数据库的说明
使用 CREATE DATABASE 命令创建
数据字典视图
用于简化基表信息
通过公共同义词访问
使用 catalog.sql 脚本创建 数据字典
数据字典内容 数据字典提供有关以下方面的信息:
逻辑数据库结构和物理数据库结构
对象的定义和空间分配
完整性约束
用户
角色
权限
审计 数据字典的使用方式 数据字典的使用方式 主要用途:
Oracle 服务器使用它来查找有关以下内容的信息:
用户
对象
存储结构
执行 DDL 语句时,Oracle 服务器会对它进行修改。
用户和 DBA 可将它作为数据库相关信息的只读参考 数据字典视图的类别 数据字典视图的类别 三种静态视图集
按范围分类为:
DBA:所有方案中的视图
ALL:用户可以访问的视图
USER:用户方案中的视图 USER_xxx 数据库中的所有对象 ALL_xxx 当前用户可以访问的对象 DBA_xxx 当前用户所拥有的对象 数据字典示例 数据字典示例 总览
DICTIONARY, DICT_COLUMNS
方案对象
DBA_TABLES, DBA_INDEXES, DBA_TAB_COLUMNS, DBA_CONSTRAINTS
空间分配
DBA_SEGMENTS, DBA_EXTENTS
数据库结构
DBA_TABLESPACES, DBA_DATA_FILES动态性能表 动态性能表 虚拟表
记录当前的数据库活动
在数据库可操作时不断更新
通过内存和控制文件访问信息
用于监控和优化数据库
由 SYS 用户拥有
同义词以 V$ 开头
在 V$FIXED_TABLE 中列出 动态性能表示例 动态性能表示例 V$CONTROLFILE
V$DATABASE
V$DATAFILE
V$INSTANCE
V$PARAMETER
V$SESSION
V$SGA
$SPPARAMETER
V$TABLESPACE
V$THREAD
V$VERSIONnull第五章 数据库控制文件控制文件控制文件小型二进制文件
定义物理数据库的当前状态
维护数据库的完整性
要求:
在启动数据库时处于 MOUNT 状态
能够操作数据库
只链接至一个数据库
丢失数据后可能需要恢复
最初由 CREATE DATABASE 确定大小控制 文件数据库控制文件的内容控制文件的内容控制文件中包含以下条目:
数据库名称和标识符
创建数据库的时间戳
表空间的名称
数据文件和重做日志文件的名称和位置
当前重做日志的序列号
检查点信息
还原段的开始和结尾
重做日志归档信息
备份信息对控制文件进行多元备份对控制文件进行多元备份CONTROL_FILES=
$HOME/ORADATA/u01/ctrl01.ctl, $HOME/ORADATA/u02/ctrl02.ctl使用 SPFILE 时对控制文件
进行多元备份使用 SPFILE 时对控制文件
进行多元备份ALTER SYSTEM SET control_files =
'$HOME/ORADATA/u01/ctrl01.ctl',
'$HOME/ORADATA/u02/ctrl02.ctl' SCOPE=SPFILE;cp $HOME/ORADATA/u01/ctrl01.ctl $HOME/ORADATA/u02/ctrl02.ctl startupshutdown immediate1.改变 SPFILE:2. 关闭数据库:3.创建控制文件副本:4.启动数据库:null第六章 数据库日志文件使用重做日志文件使用重做日志文件重做日志文件具有以下特征:
记录对数据所做的所有更改
提供恢复机制
可以划分成组
至少需要两个组
重做日志文件的结构重做日志文件的结构第 2 组第 3 组第 1 组成员磁盘 1磁盘 2成员重做日志文件如何发挥作用重做日志文件如何发挥作用重做日志文件是以循环方式使用的。
一旦某个重做日志文件被写满,LGWR 就会移动到下一个日志组。
这称为日志切换
同时还将执行检查点操作
将信息写入控制文件添加联机重做日志文件组添加联机重做日志文件组第 1 组第 2 组第 3 组ALTER DATABASE ADD LOGFILE GROUP 3 ('$HOME/ORADATA/u01/log3a.rdo',
'$HOME/ORADATA/u02/log3b.rdo')
SIZE 1M;log3b.rdolog3a.rdo添加联机重做日志文件成员添加联机重做日志文件成员ALTER DATABASE ADD LOGFILE MEMBER
'$HOME/ORADATA/u04/log1c.rdo' TO GROUP 1,
'$HOME/ORADATA/u04/log2c.rdo' TO GROUP 2,
'$HOME/ORADATA/u04/log3c.rdo' TO GROUP 3;第 1 组第 2 组第 3 组删除联机重做日志文件组删除联机重做日志文件组ALTER DATABASE DROP LOGFILE GROUP 3;第 1 组第 2 组第 3 组删除联机重做日志文件成员删除联机重做日志文件成员ALTER DATABASE DROP LOGFILE MEMBER '$HOME/ORADATA/u04/log3c.rdo';第 1 组第 2 组重定位或重命名联机重做日志文件重定位或重命名联机重做日志文件使用以下两种方法之一重定位或重命名联机重做日志文件:
ALTER DATABASE CLEAR LOGFILE 命令
将联机重做日志文件复制到新的位置
执行该命令
添加新成员并删除旧成员ALTER DATABASE CLEAR LOGFILE '$HOME/ORADATA/u01/log2a.rdo';获取组和成员的信息获取组和成员的信息可通过查询以下视图来获取有关组及其成员的信息:
V$LOG
V$LOGFILEnull数据库可运行在两种模式下:ARCHIVELOG和NOARCHIVELOG模式。归档模式指明何时Redo Log文件可以被重用。Oracle数据库归档模式LGWRARCHARCHIVELOGLGWRNOARCHIVELOGRedo Log FilesRedo Log FilesNOARCHIVELOGNOARCHIVELOG日志文件
Redo Log被循环使用。
当检验点发生后,Redo Log文件可以立即被重用。
一旦Redo Log文件被覆盖,介质恢复只能恢复到上次完全备份状态
如果表空间因为某些失败导致无法使用,数据库则只有到删除该表空间或整个数据库恢复之后,才能使用。
数据库关闭之后,只能进行操作系统备份。
每次备份时,必须备份完整的数据文件、日志文件与控制文件。
数据库恢复
从一个早期的完整的数据库备份中恢复数据文件、日志文件、控制文件。
已经用Export工具备份的数据,用Import工具恢复。ARCHIVELOGARCHIVELOG日志文件
直到检验点发生时,Redo Log文件才会被重用,且此Redo Log文件已被ARCH进程物理备份。
对于介质失败,可以使用旧的Redo Log拷贝,最近数据库的改变任何时候对例程恢复都是有效的。
数据库在例程、介质失败时被保护。
数据库在联机时可以备份。
当由于介质失败使除SYSTEM表空间外的其他表空间脱机时,数据库仍保持有效,因为与脱机有关的数据文件保存在Redo Log文件中,当Redo Log文件被重复使用时不会覆盖这部分Redo Log文件。
需要更多的Redo Log文件,以确保联机日志文件在重用前归档。ARCHIVELOGARCHIVELOG数据库恢复
恢复被破坏文件的备份,并且用归档的log文件在数据库联机或脱机时使数据最新。
可以使数据库恢复到失败点。
可以进行数据库的不完全恢复
需要连续的日志记录。确定数据库归档模式确定数据库归档模式SQL> select dbid,name,log_mode from v$database; DBID NAME LOG_MODE
---------- --------- ------------
2242116620 ORA9I NOARCHIVELOG确定数据库归档模式确定数据库归档模式
C:\>sqlplus /nolog
SQL*Plus: Release 9.0.1.0.1 - Production on 星期日 10月 21 11:41:13 2001
(c) Copyright 2001 Oracle Corporation. All rights reserved.
SQL> connect / as sysdba
已连接。
SQL> Archive log List
数据库日志模式 非存档模式
自动存档 禁用
存档终点 D:\oracle\ora90\RDBMS
最早的概要日志序列 46
当前日志序列 48null第七章 Oracle10g空间管理表空间和数据文件表空间和数据文件Oracle 在逻辑上以表空间存储数据,而实际上以数据文件进行存储。
表空间:
某一时刻只能属于一个数据库
由一个或多个数据文件组成
可进一步划分为逻辑存储单元
数据文件:
只能属于一个表空间和一个 数据库
是方案对象数据的资料档案库数据库表空间数据文件表空间类型表空间类型SYSTEM 表空间
随数据库创建
包含数据字典
包含 SYSTEM 还原段
非 SYSTEM 表空间
用于分开存储段
易于空间管理
控制分配给用户的空间量创建表空间创建表空间使用以下命令创建表空间:
CREATE TABLESPACE
CREATE TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01.dbf' SIZE 100M
AUTOEXTEND ON NEXT 5M MAXSIZE 200M;表空间的空间管理表空间的空间管理本地管理的表空间:
在表空间内管理空闲区
使用位图来记录空闲区
每一位与一个块或一组块相对应
位的数值指明是空闲还是已占用
字典管理的表空间:
由数据字典管理空闲区
在分配或回收区时更新对应的表
本地管理的表空间本地管理的表空间减少了对数据字典表的争用
分配或回收空间时不生成还原数据
无需合并CREATE TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01.dbf' SIZE 500M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;字典管理的表空间字典管理的表空间在数据字典中管理区
存储在表空间中的每个段都可以有不同的存储子句
需要合并CREATE TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01.dbf'
SIZE 500M EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE
(initial 1M NEXT 1M PCTINCREASE 0);还原表空间还原表空间用于存储还原段
不能包含任何其它对象
其中的区要在本地管理
只能使用 DATAFILE 和 EXTENT MANAGEMENT 子句CREATE UNDO TABLESPACE undo1
DATAFILE '/u01/oradata/undo01.dbf' SIZE 40M;临时表空间临时表空间用于排序操作
不能包含任何永久对象
建议在本地管理区CREATE TEMPORARY TABLESPACE temp
TEMPFILE '/u01/oradata/temp01.dbf' SIZE 500M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;缺省临时表空间的限制缺省临时表空间的限制不能对缺省临时表空间执行下列操作:
将其删除,除非已经有新的缺省临时表空间
使其脱机
更改为永久表空间只读表空间只读表空间使用以下命令可将表空间置于只读模式
导致检查点操作
数据仅用于读操作
可从表空间删除对象ALTER TABLESPACE userdata READ ONLY; 使表空间脱机使表空间脱机无法访问数据
不能设为脱机的表空间:
SYSTEM 表空间
具有活动的还原段的表空间
缺省临时表空间
使用以下命令可使表空间脱机:
使用以下命令可使表空间联机:ALTER TABLESPACE userdata OFFLINE;ALTER TABLESPACE userdata ONLINE;调整表空间大小调整表空间大小表空间大小可通过以下方法进行调整:
更改数据文件的大小:
使用 AUTOEXTEND 自动调整
使用 ALTER TABLESPACE 手动调整
使用 ALTER TABLESPACE 添加数据文件启用数据文件自动扩展启用数据文件自动扩展可使用以下命令自动调整大小:
CREATE DATABASE
CREATE TABLESPACE
ALTER TABLESPACE … ADD DATAFILE
示例:
查询 DBA_DATA_FILES 视图以确定是否启用了 AUTOEXTEND。CREATE TABLESPACE user_data
DATAFILE
'/u01/oradata/userdata01.dbf' SIZE 200M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M;手动调整数据文件的大小手动调整数据文件的大小使用 ALTER DATABASE 可手动增加或减少数据文件 的大小
调整数据文件大小可在无需添加更多数据文件的情况 下添加更多空间
手动调整数据文件大小将回收数据库中的未用空间
示例:ALTER DATABASE
DATAFILE '/u03/oradata/userdata02.dbf'
RESIZE 200M;向表空间添加数据文件向表空间添加数据文件通过添加其它数据文件来增加分配给表空间的空间
通过 ADD DATAFILE 子句可添加数据文件
示例:
ALTER TABLESPACE user_data
ADD DATAFILE '/u01/oradata/userdata03.dbf'
SIZE 200M;移动数据文件的方法移动数据文件的方法ALTER TABLESPACE
表空间必须脱机
目标数据文件必须存在
重命名数据文件的步骤:
使表空间脱机。
使用操作系统命令移动或复制文件。
执行 ALTER TABLESPACE RENAME DATAFILE 命令。
使表空间联机。
必要时使用操作系统命令删除该文件。ALTER TABLESPACE userdata RENAME
DATAFILE '/u01/oradata/userdata01.dbf'
TO '/u02/oradata/userdata01.dbf';移动数据文件的方法移动数据文件的方法ALTER DATABASE
数据库必须已装载
目标数据文件必须存在
ALTER DATABASE RENAME
FILE '/u01/oradata/system01.dbf'
TO '/u03/oradata/system01.dbf';联机备份表空间联机备份表空间SQL> ALTER TABLESPACE users 2> BEGIN BACKUP;SQL> !cp /…/users01.dbf /BACKUP/users01.dbfSQL> ALTER TABLESPACE users 2> END BACKUP;Database Backup144143Database145145145144145145删除表空间删除表空间不能删除下列表空间:
SYSTEM 表空间
具有活动段的表空间
INCLUDING CONTENTS 将删除段
INCLUDING CONTENTS AND DATAFILES 将删除 数据文件
CASCADE CONSTRAINTS 将删除所有引用完整性约束DROP TABLESPACE userdata
INCLUDING CONTENTS AND DATAFILES;获取表空间信息获取表空间信息通过以下查询可获取表空间和数据文件的信息:
表空间:
DBA_TABLESPACES
V$TABLESPACE
数据文件信息:
DBA_DATA_FILES
V$DATAFILE
临时文件信息:
DBA_TEMP_FILES
V$TEMPFILE小结小结在这一课中,您应该能够掌握:
Oracle对象
数据库控制文件管理
数据库日志文件管理
Oracle9i表空间管理