Oracle体系结构和用户管理

Oracle体系结构结构

     数据库的体系结构是指数据库的组成,工作过程,以及数据库中数据的组织与管理机制

     实例和数据库Oracle数据库体系结构的核心组成部分

      1实例Oracle实例是后台进程和内存结构的集合。必须启动实例才能访问数据中的数据。Oracle实例启动时,将分配一个系统全局去(SGA),并启动一系列Oracle后台进程。一个实例只能打开并使用一个数据库。

       Oracle实例有两种类型:单进程实例

                           多进程实例

      2 数据库: 数据库是数据的集合,是指存储数据库信息的一组操作系统文件。

Oracle存储结构

 

  物理结构:指构成数据的一组操作系统文件,(主要由3种类型文件组成)

     1)数据文件:后缀.dbf,一个数据文件只属于一个数据库和表空间

    2)重做日志文件:后缀.log,记录数据库的所有更改 并提供恢复机制。成组出现,最少要两组每组最少一个文件。

    3)控制文件:后缀.ctl,保存数据文件和重做日志文件位置、大小、日志序号等信息。启动数据库所必需。至少两份默认有三份控制文件。各个控制文件相同,可以避免因为一个控制文件的损坏而导致无法启动数据库。

    上述三种文件缺一数据库都不能启动

    4)其他文件:参数文件、归档日志文件、密码文件等

   逻辑结构:存放数据的逻辑容器,由大到小为:数据库-表空间-段-区-块

        表空间:数据都存储在表空间中,默认有system、temp、undo、users、sysaux、example六个表空间每个数据库中,都有一个名为system的表空间,即系统表空间

            :存在于表空间中,一组区组成,存储具体的对象比如表、索引等

            区:磁盘分配空间的最小单位

           数据块:能读取或写入的最小数据单位

             模式:是一种特殊的对象集合,比如用户模式是指用户的所有对象的集合

Oracle内存结构

     内存结构是Oracle数据库体系中最为重要的一部分

     内存结构:分为系统全局区(SGA)程序全局区(PGA)用户全局区(UGA)

        SGA:共享的内存,存储数据库信息(和数据库无关)。占有最大内存。分共享池、数据缓冲区、重做日志缓冲区、大池、java池等

         PGA:不是实例的一部分用户连接后分配的内存,包含服务器进程和后台进程的数据和控制信息

  Oracle进程结构

      由用户进程、服务器进程、后台进程组成

      用户进程:用户连接服务器时启动,比如启动sqlplus时,运行客户端

      服务器进程:用户连接成功并连接oracle实例时启动,用户进程的代理

      后台进程:实例启动时启动:有5个必须的后台进程:进程监控(PMON)进程、系统监控(SMON)进程、数据写入(DBWR)进程、日志写入(LGWR)进程、检查点(CKPT)进程。

用户管理:

      sys用户:超级用户(oracle系统管理员),所有数据字典和视图多存储在sys模式中只能与sysoper和sysdba角色登陆,可以启动关闭数据库

      system用户:默认管理员,存储管理工具使用的内部表和视图,可以管理数据库、用户、权限等

      scott:示例用户

 数据库权限:

       系统权限和对象权限

       系统权限:执行系统级别的权限,比如连接数据库,创建、修改、删除表等权限。相当于数据定义语言(DDL)和数据控制语言(DCL)的权利。

          用户最少需要create  session权限才可以连接(登陆)数据库,一般通过角色授予,主要角色有:

          connet:拥有连接数据库权限,包含create session权限

          resource:拥有创建表等对象的权限,一般授予开发人员

          dba:数据库管理员,对数据库有最高权限

       对象权限:针对特定模式对象执行操作的权利。相当于数据操纵语言(DML)的权利。比如select、insert等

 Oracle中的常用系统预定义角色

       CONNECT:拥有连接数据库的权限

       RESOURCE:拥有创建表,触发器,过程等权限

       DBA:数据库管理员角色,拥有管理数据库的最高权限,一个具有DBA角色的用户可以撤销任何别的用户甚至别的DBA权限,这是很危险的,所以不要轻易授予该角色

Sqlplus方向键解决步骤

  :安装readline

 

OS的安装光盘里提供了readline包.(已安装的话,可以忽略此步)

 

# RHEL 4

[root@oracle11g ~]# rpm -Uvh readline*

error: Failed dependencies: libtermcap-devel is needed by readline-devel-5.1-1.1.i386.rpm

[root@oracle11g ~]# rpm -Uvh libtermcap-devel-2.0.8-46.1.i386.rpm

[root@oracle11g ~]# rpm -Uvh readline*

package readline-5.1-1.1 is already installed

[root@oracle11g ~]# rpm -Uvh readline-devel-5.1-1.1.i386.rpm

# RHEL 5

[root@oracle11g ~]# rpm -ivh readline* libtermcap-devel*

 

 

 

:安装rlwrap

 

[root@oracle11g ~]# tar -zxvf rlwrap-0.30.tar.gz

[root@oracle11g ~]# cd rlwrap-0.30

[root@oracle11g rlwrap-0.30]# ./configure

[root@oracle11g rlwrap-0.30]# make

[root@oracle11g rlwrap-0.30]# make install

 

 

:方便使用rlwrap

 

[root@oracle11g rlwrap-0.30]# vi /home/oracle/.bash_profile

添加

alias sqlplus='rlwrap sqlplus'

alias rman='rlwrap rman' Linux下的SQL Plus 终于可以像Windows下的那样使用了。

 

 首先由root用户切换到Oracle用户下

 # su - oracle 

   

Oracle体系结构和用户管理_第1张图片 

创建表空间tbs_work

 

Oracle体系结构和用户管理_第2张图片 

更改表空间大小

方法二:向表空间内添加数据文件,为表空间添加一个新的数据文件

Oracle体系结构和用户管理_第3张图片 

 

                               

查询系统所有的表空间名称和文件位置

Oracle体系结构和用户管理_第4张图片 

                                                  删除表空间

Oracle体系结构和用户管理_第5张图片 

                                                  创建用户cyy,默认表空间为tbs1_work,临时表空间,配额50m,必须改密码

wKiom1kyKdKQ6GkjAAAtdA9085g323.png 

 

 查当前用户所属表空间,sys用户可以查dba_users里所有用户的表空间

Oracle体系结构和用户管理_第6张图片 

 

 

授予用户连接数据库角色和创建表的系统权限

Oracle体系结构和用户管理_第7张图片 

 授予用户有查看scott模式下的emp表的对象权限,用on ... to ...的方式

Oracle体系结构和用户管理_第8张图片 

撤销用户权限

revoke update on scott.emp  from cyy;

    

查看对象权限

wKiom1kyKdTQioPjAAAXIwkvzI8098.png

 查看用户系统权限

wKioL1kyKoPgA-_wAAAPAKPTnR8426.png 

查看用户角色权限

Oracle体系结构和用户管理_第9张图片 

 

 

查看当前用户模式下的所有对象

wKioL1kyKoTCM1sUAAAS4XW5as8081.png 

                       

 查看当前用户模式下的所有表

wKiom1kyKoSic6kKAAASqzPp1Dk989.png 

 

Oracle体系结构和用户管理_第10张图片