SGA(系统全局区):当Oracle实例运行时产生
PGA(程序全局区):后台进程运行时产生;当用户连接时,分配用户用户空间并分配会话
UGA(用户全局区):当用户连接实例时产生;存储用户进程连接信息
用户进程:用户请求时产生
服务器进程:用户建立会话并连接实例时产生
后台进程:启动实例时产生
(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,并且不能自动扩展大小
②修改表空间大小
alter database datafile '<数据文件位置>' resize <大小>; //修改指定数据文件大小
alter tablespace <表空间名> add datafile '<数据文件位置>' size <大小> [ autoextend on | off ]; //向指定表空间增加数据文件,扩展大小
案例:修改表空间hehe大小,修改为200M,并支持自动扩展
③更改表空间的读取写入权限
alter tablespace <表空间名> read only; //将指定表空间设置为只读,用户只可读取内容
alter tablespace <表空间名> read write; //将指定表空间设置读写,用户可修改、读取内容
④删除表空间
drop tablespace <表空间名> [ including contents ]; //将指定表空间删除(including contents:如果表空间中有数据,必加)
oracle结构体系
(1)确认业务需要(用户的作用,需要几个用户,需要什么权限)
(2)规划用户名和密码
(3)确认使用的表空间(默认表空间,临时表空间)
(4)规划表空间的使用,是否需要配额
(5)创建用户、授权、告知需要使用人员
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,用户无限制使用表空间并下次登录时强制更改密码
(1)系统权限和对象权限
(2)角色:一堆权限的集合;常见角色CONNECT、DBA、RESOURCE
(3)权限原则:实现最小原则
(4)授权
grant <权限列表> on <用户模式.表> to <用户名>; //给指定用户授于指定权限
grant <角色> on <用户名>; //给指定用户指定角色
案例:授予hehe用户登陆的权限并验证
(5)取消授权
revoke <权限列表> on <用户模式.表> from <用户名>; //给指定用户移除指定权限
revoke 角色 from 用户名; //给指定用户移除指定角色
案例:取消hehe用户登陆权限