`
lms168
  • 浏览: 61550 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

oracle数据库管理-数据字典

 
阅读更多

     数据字典是oracle数据库中最重要的组成部分,他提供了数据的一些系统信息

     动态性能视图记载了例程启动后的相关信息

 

     数据字典

     数据字典记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者为sys用户

     用户只能在数据字典上执行查询操作(select语句),而其维护和修改是由系统自动完成的

 

 

     这里我们谈谈数据字典的组成:数据字典包括数据字典基表和数据字典视图,其中基表存储数据库的基本信息,普通用户不能直接访问数据字典的基表数据字典视图是基于数据字典基表所建立的视图普通用户可以通过查询数据字典视图取得系统信息,数据字典视图主要包括user_xxx,all_xxx,dba_xxx三种类型

      user_tables

      用于显示当前用户所拥有的所有表,它只返回所对应方案的所有表

       比如;select table_name from user_tables;

       all_tables

      用于显示当前用户可以访问的所有表,他不仅会返回当前当前用户方案的所有表,还会返回当前用户可以访问的其它方案的表

      比如:select table_name from all_tables;

      dba_tables

      他会显示所有方案拥有的数据库表,但是查询这种数据库字典视图,要求用户必须是dba角色或是有select any tables系统权限,例如:当用system用户查询数据字典视图dab_tables时,会返回system,sys,scott,.....方案所对应的数据库表

 

       用户名,权限,角色

       在建立用户时,oracle会把用户的信息存放到数据字典中,当给用户授予权限或是角色时,oracle会将权限和角色的信息存放到数据字典中

       通过查询dba_users可以显示所有数据库用户的详细信息

       通过查询数据字典视图dba_sys_privs可以显示用户所具有的系统权限

       通过查询数据字典视图dba_tab_privs可以显示用户具有的对象权限

       通过查询数据字典dba_col_privs可以显示用户具有的列权限

       通过查询数据库字典视图dba_role_privs可以显示用户所具有的角色

 

 

        角色由很多权限组成,当把一个角色分配给某个用户后,该用户就拥有了很多的权限 ,权限分为对象权限和系统权限

 

         查询oracle中所有的角色一般是dba

         select * from dba_roles;

         查询oracle中所有的系统权限,一般是dba

         select * from system_privilege_map order by name;

         查询oracle中所有的对象权限,一般是dba

         select distinct privilege from dba_tab_privs;

         查询数据库的表空间

         select tablespace_name from dba_tablespaces;

 

1.如何查询一个角色包含的权限

     a.一个角色包好的系统权限

     select * from dba_sys_privs where grantee='CONNECT';

      或是

      select * from role_sys_privs where role='CONNECT';

     b.一个角色包含的对象权限

     select * from dba_tab_privs where grantee='CONNECT';

 

2.oracle究竟有多少中角色

     select * from dba_roles;

 

3.如何查看某个用户具有什么角色

select * from dba_role_privs where grantee='SCOTT';

 

显示当前用户可以访问的所有数据字典视图

select * from dict comments like '%grant%';

显示当前数据库的全称

select * from global_name;

 

 

----------------------------管理表空间和数据文件------------------------------

介绍,数据库则是存放

表空间是数据库的逻辑组成部分,从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中的,表空间由一个或是多个数据文件组成。

 

oracle中逻辑结构包括表空间,段,区和块

数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由oracle块构成的这样的一种结构,可以提高数据库的效率。   

表空间用于从逻辑上组织数据库的数据,数据库逻辑上是由一个或多个表表空间组成的,通过表空间可以 达到以下作用;

(1)控制数据库占用的磁盘空间

(2)dba可以将不同数据类型部署到不同的位置,这样有利于提高i/0性能,同时利于备份和恢复等管理操作

 

建立表空间

建立表空间是使用create tablespace命令完成的,需要注意的是,一般情况下,建立表空间是特权用户或是dba来执行的,如果其它用户想要建立表空间,则用户必须具有create tablespace的系统权限

建立数据表空间

在建立数据库后,为便于管理表,最好建立自己的表空间,create tablespace data01 datafile 'd:\test\data01.dbf' size 20m uniform size 128k

说明:执行完上述命令后,会建立名称为data01 的表空间,并为该表空间建立名称为data01.dbf的数据库文件,区的大小为128k

使用表空间

create table mypart(deptno number(4),dname varchar2(14) ,loc varchar2(13))tablespace data01;

 

 

 改变表空间的状态

当建立表空间时,表空间处于联机(online)状态,此时该表空间是可以访问的,并且该表空间是可以读写的,即可以查询该表空间的数据,而且还可以在表空间执行各种语句,但是在进行系统维护或是数据维护时,可能需要改变表空间的状态,一般情况下,有特权用户或是dba来操作

(1)使表空间脱机

alter tablespace 表空间名 offline;

(2)使表空间联机

alter tablespace 表空间 online;

(3)只读表空间

当建立表空间时,表空间可以读写,如果不希望在该表空间上执行update,delete,insert操作,那么可以将表空间修改为只读,alter tablespace 表空间名 read only;

<4使表空间可读写

alter tablespace 表空间名 read write;

    <1知道表空间名,显示表空间包括的所有表

      select * from all_tables where tablespace_name='表空间名'

      <2知道表名,查看表属于那个表空间

      select tablespace_name,table_name from user_tables where tale_name='emp';

通过<2可以知道scott.emp是在system这个表空间上,现在我们可以将system改为只读的但是不会成功,因为system是系统表空间,如果是普通表空间,那么我们就可以将其设为只读的

 

 

删除表空间

一般情况下,由特权用户或是dba来操作,如果其它用户操作,那么要求用户具有drop tablespace系统权限

drop tablespace ‘表空间’ including contents and datafiles

说明;including contents表示删除表空间时,删除该表空间的所有数据库对象,而datafiles表示将数据库文件也删除

 

扩展表空间

表空间是由数据文件组成的,表空间的大小实际上就是数据文件相加后的大小,那么我么可以想象,假定表employee存放到data01表空间上,初始大小是2m,当数据满2m空间后,如果在向employee表插入数据,这样就会显示表空间不足的错误,此时需要扩展表空间,扩展表空间的方式有三种

(1)增加数据文件

alter tablespace sp01 add  datafile 'd:\test\sp01.dbf' size 20m

(2)增加数据文件的大小

alter  tablespace 表空间名  'd:\test\sp01.dbf'  resize 20m

(3)设置文件自动增长

alter tablespace 表空间名 'd:\test\sp01.dbf' autoextend on next 10m maxsize 500m;

 

移动数据库文件

有时,如果你的数据文件所在的磁盘损坏时,该数据文件将不能再使用,为了能够重新使用,需要将这些文件的副本移到其它的磁盘,然后恢复,例如移动数据库文件sp001.dbf为例来说明

<1确定数据文件所在的表空间

select tablespace_name from dba_data_files where file_name='d:\sp001.dbf';

<2使表空间脱机

确保数据文件的一致性,将表空间转变为offline的状态

alte tablespace sp01 offline

<3使用命令移动数据文件到指定的目标位置

host move d:\sp01.dbf c:\sp01.dbf

<4执行alter tablespace命令

在物理上移动了数据后,还必须执行alter tablespace命令对数据库文件进行逻辑修改

alter tablespace sp01 rename datafile 'd:\sp001.dbf' to 'c;\sp01.dbf';

<5使的表空间联机

在移动了数据文件后,为了使用户可以访问该表空间,必须将其转变为online状态

alter tablespace sp01 online

 

分享到:
评论

相关推荐

    Oracle数据库基础教程-参考答案

    Oracle数据库是一种广泛应用于企业的关系型数据库管理系统,由Oracle公司开发,以其高效、稳定和强大的功能著称。本节将深入解析Oracle数据库的基础知识。 1. 数据库概念: 数据是数据库中存储的基本元素,常以...

    从oracle生成表的数据字典方法

    在Oracle数据库管理中,数据字典是一个非常重要的工具,它能够帮助我们理解数据库结构、表定义以及列属性等详细信息。本篇文章将介绍如何从Oracle数据库中利用COMMENT生成Excel格式的数据字典。 #### 一、Oracle...

    oracle 数据库常用数据字典梳理.docx

    Oracle 数据库管理系统中,数据字典是一个核心组件,用于存储数据库对象的元数据,如表、索引、视图、存储过程等。数据字典的字段定义可以分为两大类:静态视图和动态视图。 静态视图是指存储在数据文件中的数据...

    oracle 导出数据字典的小工具

    Oracle 数据字典是数据库管理系统中的一个重要组成部分,它存储着关于Oracle数据库结构、权限、对象以及系统设置等元数据。在数据库管理和开发过程中,了解和掌握数据字典对于优化查询、故障排查以及数据库设计都至...

    ORACLE数据字典(很实用,很适合DBA、开发运维人员、大学生)

    - Oracle数据库中的数据字典主要由两部分组成:数据字典表和数据字典视图。 ##### 2. **数据字典表** - **数据字典表**是由Oracle系统自动创建并维护的,主要用于存储关于数据库结构的元数据。这些表通常不可直接...

    Oracle数据库实用指南-赵元杰编著

    - **数据字典**:介绍了Oracle数据字典的使用方法,帮助用户了解数据库对象的信息。 #### 七、Oracle数据类型与SQL语句 - **Oracle数据类型**:列出了Oracle支持的各种数据类型,包括数值型、字符型、日期时间型等...

    Oracle数据库结构 - ch4.pptx

    表空间主要有四种类型:用户定义表空间用于存储用户数据,SYSTEM表空间存储数据字典和系统对象,撤销表空间用于自动撤销管理,临时表空间则用于运行SQL语句时的临时数据存储。 在物理存储结构方面,Oracle数据库由...

    Oracle数据库管理员技术指南,Oracle数据库管理员技术指南

    数据字典是Oracle数据库内部用于存储数据库元数据的重要结构。在创建数据库前,应合理配置数据字典的存储参数,如数据字典表空间的初始大小和增长策略,以避免后续的性能瓶颈和管理难题。 #### 数据库创建方法 ...

    ORACLe数据库管理员教程

    Oracle数据库管理员教程旨在帮助读者掌握Oracle数据库的管理和维护技能。作为一个DBA,你需要全面理解Oracle数据库的体系结构,这是管理数据库的基础。Oracle数据库的体系结构包括物理结构、系统全局区(SGA)以及一...

    Oracle 数据库管理教程

    为了深入学习和理解Oracle数据库管理,本教程将从数据库基础、Oracle服务器构成、用户管理、数据库启动与关闭、Oracle NET、数据字典、数据库存储管理和备份恢复等多个方面全面介绍Oracle数据库的管理和使用。...

    Oracle数据库数据字典

    综上所述,Oracle数据库数据字典是数据库管理和维护的关键工具,掌握如何有效地利用和查询数据字典对于任何Oracle DBA或开发者来说都是至关重要的。通过深入理解和实践,可以提升对数据库系统的掌控力,从而更好地...

    oracle导出数据字典

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

    数据库转成数据字典工具类,能完美的从数据库导出数据字典。

    数据字典是数据库管理系统中的一个重要组成部分,它记录了数据库中所有对象的相关信息,如表、字段、索引、视图等的定义、属性和关系。本资源提供的“数据库转成数据字典工具类”旨在帮助IT专业人士高效地从现有的...

    oracle数据库管理手册

    ### Oracle数据库管理手册知识点解析 #### 一、数据库基础 **1.1 基本概念** - **数据**: 指的是任何可以被计算机处理的信息或事实。 - **数据库**: 是一种组织和存储数据的方式,它使得数据能够被方便地访问、...

Global site tag (gtag.js) - Google Analytics