`
zyn_cool
  • 浏览: 27011 次
  • 性别: Icon_minigender_2
  • 来自: 济南
最近访客 更多访客>>
社区版块
存档分类
最新评论

oracle 数据字典

阅读更多
对于Oracle系统管理员而言,Oracle数据字典就像是一个宝库:它是ORACLE数据库的重要组成部分,提供了诸如数据库结构、数据库对象空间分配和数据库用户等等有关数据库的信息。本文试图从数据库管理系统的若干基本概念出发,具体介绍从ORACLE数据字典来了解ORACLE的方法。

  不同的操作系统、不同版本的ORACLE数据字典有所差异,本文均以UNIX操作系统、ORACLE 7为例加以说明。

  数据库系统实例和数据库标识
  ORACLE数据库系统包含两个方面,即ORACLE数据库和ORACLE实例,用户是通过ORACLE实例来访问ORACLE数据库的。

  1.数据库(DATABASE)
  数据库是作为整体看待的数据集合,通常在安装ORACLE软件的最后阶段创建,用数据库名加以标识(允许1~8个字符),数据库名在创建数据库时确认,且保存在控制文件中。

  2.实例(INSTANCE,也译作例程)
  实例是存取和控制数据库的软件机制。它由系统全局区(System Global Area,即SGA)和ORACLE进程两部分组成,和数据库名一样,实例也要唯一标识,并且在安装ORACLE软件时确认。

  我们可以采用下述方法来了解实例标识。

  有的系统管理员有意无意地将数据库名和实例标识取相同的标识符,当然是可以的,有时甚至会带来某些方便,但笔者认为,还是取不同标识符为宜。

  数据库的初始化参数文件
  在数据库的建立和运行中,都要阅读一个初始化参数文件,它是个文本文件,可以用一般的编辑程序编辑。

  每一个数据库至少有一个初始化参数文件,一般命名为INIT.ORA,在UNIX系统下,按照缺省规定,其初始化参数文件名的命名原则为INIT后紧跟实例的标识,再加ORA后缀,例如,某实例标识为TEST,其初始化参数文件名为INITTEST.ORA。

  数据库的初始化参数有100多个,前面提到的DB_NAME即是其中之一。此外,还有许多其他参数,如

  CONTROL-FILES 控制文件名

  ROLLBACK-SEGMENTS 分配给实例的回滚段名

  INIT-SQL-FILES 数据库建立时执行的命令文件

  PROCESSES 多进程系统中最大进程数

  数据库的物理结构
  数据库的物理结构是面向操作系统的,它描述数据库中的数据的存储形式。在物理上ORACLE数据库文件包括数据文件、日志文件和控制文件。

  1.数据文件(DATA FILES)  
ORACLE数据库中的数据,逻辑上存放在表空间里,但物理上却是存放在数据文件里的,数据文件有如下特点,即每一个数据文件只与一个数据库相联系,数据库文件一旦建立,就不能改变大小,一个表空间可以包含一个或多个数据文件等。

  我们可以用下述方法来了解数据库的全部数据文件。

  (1)SQLDBA>SELECT*FROM DBA-DATA-FILES;结果中,列名FILE-NAME即为数据文件名。

  (2)SQLDBA>SELECT*FROM V$DATAFILE;结果中,列名NAME即为数据文件名。

  (3)SQLDBA>SELECT*FROM V$DBFILE;结果中,列名NAME即为数据文件名。

  2.日志文件(REDO LOG FILES)
  日志文件用于记录数据库所做的全部变更,以便在系统发生故障时进行恢复。每一个数据库至少有两个日志文件。

  3.控制文件(CONTROL FILES)
  控制文件虽然是一个较小的二进制文件,但很重要。如果控制文件一旦被破坏,则无法对数据库进行操作。为防止控制文件被破坏,一般一个数据库应至少有二个控制文件,且分别放在不同的磁盘上,控制文件的名字是记录在参数CONTROL_FILES中的。

  数据库的逻辑结构
  数据库的逻辑结构是面向用户的,数据库的逻辑结构包含表空间、段、范围、数据块和模式对象。从逻辑上看数据库有以下特点。

  一个数据库(DATABASE)由一个或多个表空间所组成。

  一个表空间(TABLESPACE)由段组成,作为SYSTEM表空间,它由自举段、回滚段、数据段、临时段等多个段组成,而作为非SYSTEM表空间,则因用途而异由不同段组成。

  一个段(SEGMENT)由一组范围组成。一个范围(EXTENT)由一组连续的数据块组成。一个数据块(DATABASE BLOCK)对应磁盘上的一个或多个物理块。

  在数据库的逻辑结构中,表空间和回滚段比较重要,下面分别加以介绍。

  1.表空间
  每一个数据库都必须包含一个名为SYSTEM的表空间。该表空间在创建数据库时由系统自动创建,为了保证数据库能正常运行,SYSTEM表空间必须处于在线状态。

  为了增强对数据库的控制和维护,一般一个数据库都包含多个表空间。使用多个表空间有许多优点,例如可以使用户数据与数据字典相分离,可以在不同的磁盘上存储不同表空间的数据文件,从而减少I/O冲突,还可以使一些表空间在线,而使另一些表空间离线等等。

  2.回滚段  
每一个表空间是都由段组成。ORACLE数据库中的段有数据段、索引段、临时段、回滚段和自举段。比较重要的是回滚段,它记录数据库的变更信息,以实现数据库的读一致性及恢复工作。

  在SYSTEM表空间里有一个SYSTEM回滚段,是在创建数据库时随之产生的。如果使用多个表空间,至少还应有一个另外的回滚段。回滚段分专用和公用两种,要使用专用回滚段,需要在初始化参数文件的ROLLBACK-SEGMENTS参数上写上专用回滚段的段名并且重新启动数据库,或者通过回滚段在线命令使它在线。

  数据库的用户
  ORACLE数据库是个多用户系统。为了保证数据库系统的安全,ORACLE数据库管理系统配制了良好的安全机制。例如,每一个ORACLE数据库都有一个用户表,它记载着每一个用户的有关信息,一旦用户进入系统,ORACLE系统会通过这张表来检查用户的合法性。又如,ORACLE系统通过合理分配用户的权限来管理用户。通常,ORACLE将用户分为三类,即DBA、RESOUCE和CONNECT三类角色,使不同的用户的权限各不相同。

  在创建数据库时,系统自动建立了两个用户,即SYS和SYSTEM用户,且授给这两个用户DB权限,由于DBA具有最高权限,建议将它们的口令及时修改,以免个别用户以DBA角色进入系统,有意无意地给系统造成损害。

  除了SYS、SYSTEM用户外,其余用户都要一一建立,建立用户的方法如下:

  假设要建的用户名为RSXT,口令为RSPASS;默认的表空间为USER,临时表空间为TEMP,表空间限额为3M,其余默认,则可用下面方法创建新用户:

  SQLDBA>CREATE USER RSXT IDENTIFIED BY RSPASS DEFAULT TABLESPACE USER TEMPORARY TABLESPACE TEMP QUOTA 3M ON USER;

  请注意,该用户建立后,还要及时授权,否则像上述刚刚建成的用户,则一无所为,甚至都不能连接数据库。对一般用户,通常授予CONNECT和RESOURCE角色权限,命令如下:

  SQLDBA>GRANT CONNECT,RESOURCE TO RSXT;

  对于一个有着许多用户的数据库系统,我们可以通过下述方法来了解数据库的用户情况。

1.对于非DBA用户
  对于非DBA用户,有两条命令,即:

  (1)SQL>SELECT*FROM ALL-USERS;

  (2)SQL>SELECT*FROM USER-USERS;

  其中,从USER-USERS表中,可以了解到该用户的默认表空间和临时表空间等信息。

  2.对于DBA用户
  对于DBA用户,有三条命令,即:

  (1)SQLDBA>SELECT*FROM ALL-USERS;

  (2)SQLDBA>SELECT*FROM USER-USERS;

  (3)SQLDBA>SELECT*FROM DBA-USERS;

  其中,从DBA-USERS中,可以了解到所有用户的详细信息,因而该命令对于数据库管理员来说是很有用的。

  关于非DBA用户的信息
  由于DBA用户具有最高权限,为安全起见,只有Oracle系统管理员才授予DBA权限,大多数用户均为非DBA用户。尽管相应的权限少了,但是从ORACLE数据字典中,还是可以得到 很多关于非DBA用户的有用信息。

  我们可以采用下述方法来了解有关非DBA用户的信息。

  1.SQL>SELECT*FROM USER-USERS;

  可以查看该用户的默认表空间,临时表空间和用户创建时间。

  2.SQL>SELECT*FROM USER-TABLES;

  可以查看该用户创建的所有表的详细信息,由于列名较多,一屏看不了几个表。

  如果仅仅想查看用户所建表的表名,可以用下面的命令:

  SQL>SELECT TABLE-NAME FROM USER-TABLES;

  3.SQL〉SELECT*FROM USER-VIEWS;

  可以查看该用户所创建的视图,包括创建视图的文本。

  同样,如果仅仅想查看用户所建视图的视图名,可以用下面的命令:

  SQL>SELECT VIEW-NAME FROM USER-VIEWS;

  4.SQL>SELECT*FROM USER-TABLESPACES;

  可以查看该用户可存取的表空间的信息。

  5.SQL>SELECT TABLESPACE-NAME,SUM(BYTES),SUM(BLOCKS)

  FROM USER-FREE-SPACE GROUP BY TABLESPACE-NAME;

  可以查看该用户可存取的表空间的剩余空间。

  6.SQL>SELECT *FROM USER-TS-QUOTAS;

  可以查看该用户的表空间的份额。

  7.SQL>SELECT *FROM USER-ROLE-PRIVS;

  可以查看该用户被授予的角色。

  8.SQL>SELECT *FROM USER-SYS-PRIVS;

  可以查看该用户的系统权限及能否再授予其它用户的权限。

  9.SQL>SELECT *FROM USER-TAB-PRIVS-RECD;

  可以查看该用户能访问其它用户的表、视图等的对象权限。

  10.SQL>SELECT *FROM USER-TAB-PRIVS-MADE;

  可以查看该用户授予其它用户的表、视图等的对象权限。

  有关用户的信息还有很多,这里不再一一列举,请Oracle系统管理员们自行查看ORACLE数据字典。





分享到:
评论

相关推荐

    Oracle 数据字典

    Oracle 数据字典Oracle 数据字典Oracle 数据字典Oracle 数据字典Oracle 数据字典Oracle 数据字典Oracle 数据字典Oracle 数据字典Oracle 数据字典

    Oracle 数据字典介绍

    介绍Oracle 数据字典,常用的数据字典表

    Oracle数据字典.pdf )

    Oracle数据字典.pdf ) Oracle数据字典.pdf ) Oracle数据字典.pdf )

    Oracle数据字典

    数据字典是oracle数据库用来存贮数据库结构信息的地方。 数据字典是用来描述数据库数据的组织方式的,由表和视图组成。 数据字典由脚本$oracle_home/rdbms/admin/catalog.sql创建。

    oracle数据字典制作流程

    oracle数据字典制作流程

    oracle数据字典-数据操作

    里面有教学系统的oracle数据字典。同时插入了数据,当学习oracle时,可以利用里面的数据来进行数据操作。

    Oracle数据字典参考

    Oracle数据字典参考Oracle数据字典参考Oracle数据字典参考Oracle数据字典参考Oracle数据字典参考

    ORACLE数据字典与视图

    ORACLE数据字典与视图

    Oracle数据字典及中文详解[含CHM版资料]

    华为公司详细的Oracle数据字典,里面包含有非常详细的数据字典及中文说明,另附有CHM版的Oracle工具资料,非常不错,是学习Oracle应用的好东西。推荐。

    oracle导出数据字典

    oracle导出excel的数据字典sql,根据该sql可以导出数据字典。

    学习Oralce基本资料 Oracle数据字典

    学习Oralce基本资料 Oracle数据字典 学习Oralce基本资料 Oracle数据字典 学习Oralce基本资料 Oracle数据字典

    深入了解Oracle数据字典

    首先,Oracle的字典表和视图基本上可以分为三个层次。 1.1 X$表 这一部分表是Oracle数据库的运行基础,在数据库启动时由Oracle应用程序动态创建。 这部分表对数据库来说至关重要,所以Oracle不允许SYSDBA之外的用户...

    SQL Server-My SQL-Oracle数据字典生成工具chm.zip

    数据字典生成工具,用于生成 数据库表 及字段说明,主要特征如下: 1、支持的数据库类型:SQL Server 2005+,My SQL,Oracle; 2、支持的文档类型:HTML,CHM,WORD; 3、基于Open XML ,不用安装 MS Office,WPS 也可以生产...

    SQL实验六 Oracle数据字典和ODBC

    了解Oracle数据字典 ODBC 数据字典(data dictionary)是存储在数据库中的所有对象信息的知识库。Oracle RDBMS使用数据字典获取对象信息和安全信息,而用户和DBA用它来查阅数据库信息。数据字典是只读的,终端用户...

    Oracle数据字典大全.doc

    NULL 博文链接:https://snowelf.iteye.com/blog/2004244

    Oracle数据字典.ppt

    Oracle数据字典.ppt

    oracle 导出数据字典的小工具

    oracle 导出数据字典的小工具 能导成word形式的带表格的数据字典,非常好用从网上转载的

    mysql/oracle数据字典生成工具

    强大的 mysql/oracle数据字典生成工具 ,根据 sql 文件,直接生成 word 文件,表格以及格式全部生成好,非常规范整洁,超级值,收藏备用,参考都可以。不可错过的好东西。

    MYSQL/ORACLE数据字典生成器(破解版)

    MYSQL/ORACLE数据字典生成器 破解版 觉得还不错 可以生成WORLD文档 也可以转化成CHM格式的

Global site tag (gtag.js) - Google Analytics