您的位置:首页 > 数据库 > Oracle

oracle复习(三) 之Oracle数据字典和控制文件

2009-12-02 20:19 148 查看
今天复习Oracle的数据字典和控制文件。

一、数据字典

数据字典是由Oracle服务器创建和维护的一组只读的系统表,数据字典分为两大类:一类为基表,一类为数据字典视图。那么数据字典中又存有哪些信息呢?

1、数据库的逻辑结构和物理结构

2、所有数据库对象定义的信息

3、所有数据库对象的磁盘空间分配的信息

4、Oracle用户名

5、每个用户所授予的权限和角色

6、完整性约束的信息

7、列的默认值

8、审计信息

那么数据字典又是如何操作与使用呢?

数据字典主要是由Oracle服务器来使用的。Oracle服务器通过访问基表来获得诸如用户、用户对象和存储结构等方面的信息并利用这些信息进行所需的数据库的管理和维护。通常只有Oracle服务器可以修改数据库字典中的数据。

那么,哪些SQL语句可以引起Oracle服务器修改数据字典呢?

1、DDL语句:如增加或减少表空间,增加或减少用户

2、DCL语句:如授予用户权限、回收用户权限

3、某些DML语句:如引起表的磁盘存储空间的扩展的插入或修改语句。

接下来是数据字典视图,分为三类:它们用前缀来区别,其前缀分别用USER、ALL、DBA。

USER.*:有关用户所拥有的对象的信息。

ALL.*:有关用户可以访问的对象的信息。

DBA_.*:有关整个数据库中对象的信息。

还有一种是动态性能表(视图),它是不允许进行DML操作。

二、控制文件

要学习控制文件,要对其进行操作,首先就要知道控制信息中所存放的内容:

1、数据库的名字;

2、数据库标识符;

3、数据库创建的时间戳;

4、联机重做日志文件的名字和准确位置;

5、当前日志的序列号;

6、校验点信息;

7、日志的历史信息;

8、归档日志文件的准确位置和状态;

9、数据文件的名字和准确位置;

10、表空间的信息;

11、备份的准确位置和状态。

既然控制文件中存放了如此之多的有关数据库的重要信息,那么怎样才能获得这些信息呢?答案是利用数据字典。可以使用如下数据字典:v$archived、v$archived_log.....。

控制文件是一个Oracle服务器经常操作的文件,这个文件应该配置的尽可能小,Oracle数据库管理员可以间接地决定控制文件的大小,控制文件由两大部分组成:可重用的部分和不可重用的部分。

可重用的部分的大小可以用CONTROL_FILE_RECORD_KEEP_TIME参来控制。

Oracl数据库管理员可以使用CREATE DATABASE或CREATE CONTROLFILE语句中的下列关键字来间接影响不重用的部分的大小。

MAXDATAFILES

MAXINSTANCES

MAXLOGFILES

MAXLOGHISTORY

MAXLOGMEMBERS

要想了解控制文件的配置,可以查找v$controlfile_record_section获得。

接着就是一个非常重要的环节了,如何添加和移动控制文件?其中分为两种,一种是对PFILE的操作,二两一种是对SPFILE的操作,在这里,我就做一下SPFILE的演示。

1、利用数据字典v$controlfile来获取现有控制文件名字



2、修改SPFILE,使用alter system set control_files命令来控制文件的位置



3、正常关闭数据库,如shutdown或shutdown immediate



4、使用操作系统的复制命令将现有控制文件复制到指定位置



5、重新启动Oracle数据库,如startup



6、利用数据字典v$controlfile来验证新的控制文件名字是否正确。



7、如果有误,重做上述操作;如果无误,删除无用的就控制文件。

嘿嘿,这就是一个关于控制文件的添加和移动的实例,这次的操作还是蛮快的哈,嘿嘿,感觉自己有那么一丁点进步,不行,我不能骄傲,呵呵,接着做下一步。

剩下的就是一个控制文件备份了:

alter database backup controlfile to '........';来进行控制文件备份。

好啦,这章学习也就到这里啦,算起来这篇复习是写了5天,因为上半部分是几天前复习的,因为其他的事情耽误了,后面也就只有今天来补充完整了,呵呵,明天我会继续复习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: