本章内容主要是讲解Oracle基础知识,安装完Oracle后第一次使用所必须了解的一些常用软件及命令,Oracle的体系结构等知识。
一、进入SQL Plus客户端软件
1.进入SQLPLUS客户端windows界面
2.进入DOS窗口界面
普通用户登录:conn 用户名称/密码
登录到默认数据库
conn scott/a1234
登录到指定数据库
conn scott/a1234@orcl
超级用户登录:conn 用户名称/密码 as sysdba
登录到默认数据库
conn sys/a1234 as sysdba;
登录到指定数据库
conn sys/a1234@orcl as sysdba
scott用户登录
SQL>select * from dept;
//查询当前用户的所有表
SQL>select * from user_tables;
//查看表结构
SQL>desc dept
•数据库管理员登录
SQL>conn sys/change_on_install as sysdba
//当前登录用户
SQL>select user from dual;
SQL>show parameter db_name; //当前连接的数据库
二、Oracle11g的体系结构
Oracle11g数据库体系总共可以分为以下一个组成部分:
- 内存结构
- 逻辑结构
- 物理结构
内存结构
•数据库启动时,系统首先在服务器内存中分配系统全局区(SYSTEM GLOBAL AREA,SGA),即构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统进程,即组成了Oracle进程结构。内存区域和后台进程合称为一个Oracle实例(Instance)。
•
•一个SQL命令从客户端发出后,由Oracle的服务器进程进行响应,在内存区域中进行语法分析、编译、执行,将修改过的数据写入数据库文件,将数据库修改信息写入日志文件,再将SQL执行结果返回到客户端。
•系统全局区(SGA):
是运行在客户机上的用户进程和运行在服务器上的服务器进程所使用的内存区域。
该区域的数据是共享的
数据缓冲区、字典缓冲区、日志缓冲区、SQL共享区
启动数据库时分配该区域,关闭时释放。
•程序全局区(PGA):
单个用户进程所使用的内存区域
每个进程都有自己的私有区域,存放单独的数据和控制信息
不共享
SQL>show sga;
•后台进程:帮助用户进程和服务器进程进行通信,不论是否有用户连接他们,负责数据库的后台管理工作。
系统监视进程(SMON)
进程监视进程(PMON)
数据库写入进程(DBWR)
日志写入进程(LGWR)
归档进程(ARCH)
恢复进程(RECO)
等等
Oracle11g的物理结构
•从数据库物理结构上分析,数据库实际上是由构成数据库的操作系统文件所构成的。
•这里所说的“操作系统文件”是指“数据库文件”,而不是Oracle的“系统文件”。
•只有数据库文件才是数据库的物理结构,而系统文件不属于数据库物理结构的范围。
数据库文件的损坏,会引起用户数据的丢失;而系统文件损坏,可以使用介质重新安装,或进行有效的复制。
•Oracle11g数据库的物理文件主要有以下几种:
参数文件(parameter file)
•位于$oracle_home\admin\oracle实例\pfile\init.ora
•init.ora是一个文本,定义了要启动的数据库及内存结构的大约200多项参数信息
•启动任何例程前,系统都要先读取该文件的各项信息,通过该文件来寻找控制文件
控制文件(control file)
•用于记录和维护整个数据库的全局物理结构,是二进制文件,以.ctl为后缀•存放有关的关键控制信息,如数据库名和创建时间,大小及其位置等•在创建数据库时生成,以后当数据库发生任何物理变化时被自动更改
•每个数据库至少包含一个控制文件,当数据库启动时,所先按照控制文件设定的数据文件、日志文件等来检查数据库的状态是否正常,最后才完成数据库的启动
数据文件(data file)
•存放数据库数据的文理文件,以.dbf为后缀
•数据库至少包含一个数据文件
•数据库安装完成后,系统会自动创建默认的表空间,放在$oracle_home\oradata目录下
•表空间的物理组成单元是数据文件,一个表空间可以包含多个数据文件,每个数据文件只能属于一个表空间。
日志文件(redo file)
•用于记录对数据库进行的修改操作和事务操作,以.log为后缀
•每个数据库至少包含两个重做日志文件,循环使用
其他oracle物理文件
•跟踪文件:*.trc
•警告文件:*.log
•备份文件
•口令文件
•
查看数据库文件 SQL>conn sys/change_on_install as sysdba
SQL>select * from v$controlfile
SQL>select name from v$datafile
SQL>select * from v$logfile;
Oracle11g的逻辑结构
Oracle11g的逻辑结构由6层组成,一个Oracle11g数据库可以有多个数据库,每个数据库可以有多个表空间,每个表空间可以有多个表,每个表可以有多个段,每个段可有多个分区,每个分区可以有多个数据块。
•块:Oracle读写数据的最小单位。
Oracle数据块大小通过设置为操作系统块大小的整数倍
•区:连续相临数据块组成,Oracle将多个数据块(区)作为一个整体来分配、管理、回收
SQL>SELECT * FROM DBA_EXTENTS;
•段:当用户在数据库中创建各种具有实际存储结构的对象时创建(如:表、索引等),段由多个不一定连续的区组成
数据段:用于存放表中的数据
索引段:用于存放索引数据
临时段:临时数据,若排序产生的临时数据,用完就释放空间
回滚段:用语存储事务的回滚信息
•表空间:一个数据库由若干个表空间组成
一个表空间用来存储属于某个应用的逻辑存储结构和数据库对象,如SALE销售表空间、HR人力资源表空间
物理上是由一个或多个数据文件组成
数据库要先建立表空间才能将数据插入到表空间中的一个对象中
默认表空间:INDEX,SYSTEM,TEMP,TOOLS,USERS等