Oracle体系结构和用户管理

一、Oracle体系结构

         一个Oracle Server由一个Oracle实例(Instance)和一个Orale数据库(Database)组成

1.实例(软件):

      由后台进程(Background)和内存结构组成(SGA),一个实例只能打开一个数据库;一个数据库能被多个实例装载并打开;实例分为单进程实例和多进程实例。

(1)Oracle内存结构

    SGA(系统全局区):当Oracle实例运行时产生

  • 共享池:数据库缓存和字典缓存
  • 数据缓存区:存放从磁盘中读取的数据
  • 日志缓存区:缓存重做日志信息
  • 大池:缓解大规模读取、写入数据库操作
  • Java池:安装、执行Java代码    

    PGA(程序全局区):后台进程运行时产生;当用户连接时,分配用户用户空间并分配会话

    UGA(用户全局区):当用户连接实例时产生;存储用户进程连接信息


(2)Oracle进程(维持物理和内存之间的联系,用来管理数据库的读写,恢复和监视等工作)

    用户进程:用户请求时产生

    服务器进程:用户建立会话并连接实例时产生

    后台进程:启动实例时产生

  • PMON(进程监控):临时挂起故障进程,释放进程
  • SMON(系统监控):当实例故障时,给用户提示恢复实例
  • DBWR(数据写入):管理数据缓存区,将数据写入到缓存区内
  • LGWR(日志写入):管理日志缓存区,将尚未处理的重做日志写入到日志缓存区内
  • CKPT(检查点):监控进程、数据的情况

2.数据库:数据的集合

(1)物理结构:数据文件、控制文件、重做日志文件、其他文件组成

    数据文件:扩展名为.dbf,存储Oracle数据

    重做日志文件:扩展名为.log,记录所有对数据的修改,可通过文件恢复实例

    控制文件:扩展名为.ctl,记录数据文件位置、大小,重做日志文件位置、大小,日志序列号,数据库名及创建时间等信息;默认记录3份

    参数文件:实例运行时产生,实现参数控制

    口令文件:通过远程连接实例并管理

    归档日志文件:可选,生产环境必选,可通过归档日志文件恢复数据文件

(2)逻辑结构:表空间、段、区、块

    数据块:最小的数据存储单位,Oracle数据存放在里面

    区:磁盘分配最小单位,有多个块组成,不能跨文件

    段:管理区中数据,一个段必须属于一个区

    表空间:存储所有数据,一个表空间可以有多个数据文件,一个数据文件只能属于一个表空间

①创建表空间

create tablespace <表空间名> datafile '<数据文件位置>' size <大小> [ autoextend on | off ];    

//创建表空间并是指定数据文件大小

autoextend [ on | off ];  //自动扩展,当数据文件大小超过设置值时,自动扩展空间

select name from v$tablespace;   //查看所有表空间

select tablespace_name, sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;    //查看所有表空间大小

select a.tablespace_name, total, free, total-free as used, substr(free/total * 100, 1, 5) as "FREE%", substr((total - free)/total * 100, 1, 5) as "USED%" from (select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a, (select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b where a.tablespace_name = b.tablespace_name order by a.tablespace_name;    

//查询已使用表空间情况

案例:创建表空间hehe,存储文件放在/opt/oracle/目录下,限制使用100M,并且不能自动扩展大小

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

②修改表空间大小

alter database datafile '<数据文件位置>' resize <大小>;    //修改指定数据文件大小

alter tablespace <表空间名> add datafile '<数据文件位置>' size <大小> [ autoextend on | off ];    //向指定表空间增加数据文件,扩展大小

案例:修改表空间hehe大小,修改为200M,并支持自动扩展

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

③更改表空间的读取写入权限

alter tablespace <表空间名> read only;    //将指定表空间设置为只读,用户只可读取内容

alter tablespace <表空间名> read write;     //将指定表空间设置读写,用户可修改、读取内容

④删除表空间

drop tablespace <表空间名> [ including contents ];    //将指定表空间删除(including contents:如果表空间中有数据,必加)

oracle结构体系

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

二、Oracle用户管理

1.用户管理的注意事项

(1)确认业务需要(用户的作用,需要几个用户,需要什么权限)

(2)规划用户名和密码

(3)确认使用的表空间(默认表空间,临时表空间)

(4)规划表空间的使用,是否需要配额

(5)创建用户、授权、告知需要使用人员

2.Oracle用户:sys(超级管理员)、system(dba、维护数据库)、SCOTT(示范用户)

3.创建用户

create user <用户名> identified by <密码> [ default tablespace <默认表空间> ] [ temporary tablespace <临时表空间> ] [ quota <大小> | unlimited on <默认表空间> ] [ password expire ];

详解

default tablespace:默认表空间,如果未指定使用USER表空间

temporary tablespace:临时表空间,如果未指定使用TEMP表空间

quota:用户可使用表空间大小;unlimited为无限制

password expire:用户下次使用时,必须更改密码

案例

create user hehe identified by 123 default tablespace hehe temporary tablespace TEMP quota unlimited on hehe password expire;

//创建用户hehe,并指定密码为123,默认表空间为hehe,临时表空间为TEMP,用户无限制使用表空间并下次登录时强制更改密码

4.权限管理

(1)系统权限和对象权限

(2)角色:一堆权限的集合;常见角色CONNECT、DBA、RESOURCE

(3)权限原则:实现最小原则

(4)授权

      grant <权限列表> on <用户模式.表> to <用户名>;    //给指定用户授于指定权限

      grant <角色> on <用户名>;    //给指定用户指定角色

案例:授予hehe用户登陆的权限并验证


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

(5)取消授权

      revoke <权限列表> on <用户模式.表> from <用户名>;    //给指定用户移除指定权限

      revoke 角色 from 用户名;    //给指定用户移除指定角色

案例:取消hehe用户登陆权限

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

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

        

你可能感兴趣的:(Oracle)