一 Oracle体系结构结构java
数据库的体系结构是指数据库的组成,工做过程,以及数据库中数据的组织与管理机制。sql
实例和数据库是Oracle数据库体系结构的核心组成部分数据库
1实例:Oracle实例是后台进程和内存结构的集合。必须启动实例才能访问数据中的数据。Oracle实例启动时,将分配一个系统全局去(SGA),并启动一系列Oracle后台进程。一个实例只能打开并使用一个数据库。bash
Oracle实例有两种类型:单进程实例 服务器
:多进程实例session
2 数据库: 数据库是数据的集合,是指存储数据库信息的一组操做系统文件。oracle
二 Oracle存储结构ide
物理结构:指构成数据的一组操做系统文件,(主要由3种类型文件组成)工具
1)数据文件:后缀.dbf,一个数据文件只属于一个数据库和表空间spa
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
建立表空间tbs_work
更改表空间大小
方法二:向表空间内添加数据文件,为表空间添加一个新的数据文件
查询系统全部的表空间名称和文件位置
删除表空间
建立用户cyy,默认表空间为tbs1_work,临时表空间,配额50m,必须改密码
查当前用户所属表空间,sys用户能够查dba_users里全部用户的表空间
授予用户链接数据库角色和建立表的系统权限
授予用户有查看scott模式下的emp表的对象权限,用on ... to ...的方式
撤销用户权限
revoke update on scott.emp from cyy;
查看对象权限
查看用户系统权限
查看用户角色权限
查看当前用户模式下的全部对象
查看当前用户模式下的全部表