当前位置:文档之家› ORACLE数据库基础知识1

ORACLE数据库基础知识1

第一部分 Oracle数据库概念与原理一、Oracle数据库概念1. 数据库数据库是一套解决信息管理问题的工具,是数据文件及处理这些数据文件的程序的集合。

一个数据库系统必须实现在多用户环境下可靠地管理大量的数据,使得很多用户在并发处理时获得相同的结果,而且必须具有处理数据的高效性、可靠性、安全性和容错性,同时提供简便易用的客户端用户操作过程和应用接入。

2. Oracle数据库Oracle数据库是采用数据库进程和应用程序分进程处理的Client/Server结构的关系型数据库,采用大型数据库的磁盘空间管理形式,支持大量用户同时操作相同的数据,实现高度可靠性、高度的安全性、高效率和在线备份机制。

Oracle数据库适合于各种不同的硬件环境和不同的操作系统,且具有接口方便和控制容易的特性,并支持多点实时复制。

二、Oracle数据库原理1. Oracle数据库的基本任务(1)录入数据;(2)存储数据;(3)查询、处理数据2. Oracle数据库的组成结构Oracle按照应用情况可以分为核心数据(DATA)、操作系统(Operation System)、数据库服务器部分(Oracle Server)、Oracle SQL Server程序、Oracle工具(包括SQL*PLUS和很多像Developer 2000、designer 2000等工具)以及Oracle的各种应用。

按照Oracle的对象组成结构来看,Oracle数据库由以下几部分组成:⑴实例(Instance):Oracle实例是一组有自己的系统全局区和与其相关数据库文件的Oracle服务器进程,每个实例都有自己的SID(系统识别符)。

⑵对象(Object):由应用程序中的SQL语句引用的表空间、用户、表、视图、索引、权限、DBA(数据库管理员)等。

⑶程序:也是Oracle数据库的过程,主要包括客户过程(client processes),根据用户的要求向服务器过程提出需求信息的请求;服务器过程server processes),接收用户过程发出的请求,并根据请求与数据库通信,完成对数据库中数据的处理。

⑷文件:包括数据文件(Datafile),存放所有数据库有关的数据。

日志文件(Log File),也称重演日志文件(Redo Logs File)或事务记录文件(Trasaction Log File),记录针对数据库进行的修改操作或各种事务,节省数据库直接操作数据文件的时间和次数,提高处理效率。

控制文件(Control File),存放与Oracle数据库所有文件均相关的关键信息,Oracle数据库通过控制文件保持数据的一致性,以及恢复数据时使用哪些重演日志。

每个数据库至少应该有两个以上的控制文件和日志文件备份。

⑸内存结构Oracle的内存结构SGA主要是一个通信器,它是一块存放系统信息的内存区域,使得通信过程尽量能够在内存中处理, 达到快速度、高效率。

所有用户进程和服务器进程都能够访问这个内存结构。

SGA区主要分为四块:① Data Buffer Cache(数据高速缓冲区)中存放着Oracle最近使用过的数据库数据块,当用户一次访问数据时,用户进程从物理磁盘中读取数据后将其放在这个高速缓冲区,下一次或其他用户访问时从缓冲区读取,Oracle数据库根据数据被访问的频度和缓冲区的物理大小通过相应的HASH算法将经常访问的数据保留,而去除不经常访问的数据块。

② Dictionary Cache(Row Cache,字典高速缓冲区)用于保存数据字典中的行,数据字典中存放Oracle系统管理时需要的所有信息,这些信息包括:访问Oracle数据库的用户以及他们访问哪些数据库对象和这些对象所放的位置等。

③ Redo Log Cache(Transaction Log Cache,即重演日志缓冲区),任何需要事务在写入到重演日志之前首先放到缓冲区中,然后定期将其写入到重演日志。

④ Share SQL Pool(共享SQL池)相当于程序高速缓冲区,所有用户的经过语法分析的、准备执行的SQL语句都放在此共享池中。

3. Oracle数据库的数据处理流程Oracle数据处理流程, 下面以简单的update操作为例加以说明。

先经过系统监视器(SMON)和过程监视器(PMON)检测数据库运行正常,Server进程和Clients进程运行在不同的机器上,彼此通过网络连接,①一个Oracle实例运行在数据库Server主机上,用户进程通过SQL*Net连接到Server主机,Server根据User Process的请求启动一个Server Process。

②用户通过SQL语句向Server发出查询或者修改数据信息的请求,并且提交。

③数据库Server进程接到请求后检测SGA区中Share Pool中的共享SQL 池是否有相同的SQL语句。

如果有,Server进程检验用户的合法性,然后执行共享池中的SQL语句;如果没有,Server进程在共享池中产生一个新的SQL语句,可以供以后任何进程使用,然后执行此SQL语句。

④ Server进程检测所有操作的表是否在共享池,如果在,则直接执行下一步;如果不在,从数据库文件中读取放到高速缓冲区中;此时如果需要擦除缓冲区中的脏数据块,则需要通过校验点CKPT进行校验,再执行下一步。

⑤将原来共享池中的数据写入到回滚段 (Redo Log Buffer),通过LGWR在重演日志中生成该事务的一个拷贝。

⑥通过DBWR修改数据文件(Data Files),将执行成功的信号返回到SGA 区。

⑦将完成的事务记录到重演日志中。

⑧清除回滚段的信息。

⑨完成本次操作。

说明:以上LCKn为lock(锁)情况,RECO 为RECOVER(恢复)过程,SNPn为snapshot Refresh Process(快照刷新进程),Qnnn为Parallel Query Processes(并行查询进程),ARCH为Archiver(物理热备份归档处理进程)第二部分:Oracle数据库的安装与建立一、Oracle数据库的安装以ORACLE816在AIX操作系统上安装为例,下面介绍安装过程中的一些关键步骤和有关注意事项,详细安装请参考随机手册。

1. 需要运行oracle数据库的机器在安装系统时必须使swap区为为系统内存的2-3倍,建议为3倍。

(如果物理内存超过1GB,则两倍就足够)2. 建立Oracle软件的安装点:建议将安装点统一放在oracle用户缺省主目录:/home/oracle下,不需要手工创建安装点目录3. 用SMIT建立:GROUP(oracle)和USER(oracle),并将oracle用户加入到这个组中,如果上面步骤已经建立了安装点,将ORACLE用户主目录设置成安装点目录,如果没有建立了安装点,则可以用缺省主目录:/home/oracle ,然后在用户主目录下建立orahome属主为orcle:oracle,将该目录作为ORACLE系统主目录,注意,ORACLE系统主目录应该与环境变量:ORACLE_HOME保持一致。

4. 在AIX操作系统上安装ORACLE数据库不需要调整内核参数。

5. 以oracle用户在X-WINDOWS界面登录(如果在PC上远程安装,需要用Reflection 软件,记住,不管是在本机还是在客户端安装,均要用采用英文环境安装,否则,安装可能出问题!)然后修改两个文件:.profile和.dtprofile ,将.profile文件修改成:umask 022export TERM=vt100export DISPLAY=localhost:0.0export ORACLE_BASE=/home/oracleexport ORACLE_HOME=$ORACLE_BASE/orahomeexport ORACLE_SID=zxinexport PATH=$PATH:$ORACLE_HOME/bin:.exportCLASPATH=JRE_Location:$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib export LIBPATH=$LIBPATH:$ORACLE_HOME/libexport LANG=Zh_CNexport LOCPATH=/usr/lib/nls/locexport NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L/%N.catset -o viPATH=$PATH:/usr/vac/binexport PATHPS1='$PWD$ '; export PS1然后将.dtprofile文件中最后一行:# DTSOURCEPROFILE=true前面的#号去掉7. 在图形界面中开启终端窗口:然后用su命令以超级用户登录,运行以下命令:mount /cdrom (由于已经制作/cdrom文件系统,所以可以直接mount,不需要CDROM设备号)8. 退出图形界面,右键选择‘log out’,以oracle用户重新登录使环境变量生效9. cd /cdrom 然后在当前目录下运行./runInstaller开始oracle的安装10. 安装选择注意事项:选择需要安装的ORACLE产品:Oracle8i Enterprice Edition 8.1.6.0.0选择安装类型:custom产品语言中(product language)增加:Simplified Chinese安装过程提示是否要建缺省数据库,选择NO安装最后阶段根据提示运行root.sh完成用超级用户权限的有关配置。

系统安装完毕后,生成缺省系统管理员用户:system和sys,默认密码分别为manager 和change_on_install。

10. 安装过程结束后,安装程序会利用Net8进行网络配置:在图形界面下按照要求添入本机IP地址,端口号和服务名,系统自动生成 $ORACLE_HOME/network/admin目录下的两个文件:listener.ora 和 tnsnames.ora11. 以超级用户,修改侦听端口文件:#vi /etc/services,在文件的最后添加:listener1 1521/tcp #oracle listener port1listener2 1521/tcp #oracle listener port2二、Oracle数据库启动和关闭1. 启动数据库:(1)可以利用写好的脚本文件自动启动%dbstart或者依照以下步骤启动:首先以oracle用户身份启动Server Manager,以数据库系统管理员用户连接到数据库,连接到internal.$ svrmgrl(命令格式进入数据库管理状态)SVRMGR>connect internal (以sysdba身份登录)(2)启动Oracle实例(Instance)、Mount数据库(database)、打开数据库SVRMGR>startup(默认方式为启动实例,mount数据库和打开数据库步骤打开数据库,即:Startup nomountalter database mountalter database open)如果不以默认方式启动数据库,可以有以下几种方式:●启动实例,mount数据库,但不打开数据库●启动实例,mount数据库,打开数据库●带参数文件的方式启动数据库SVRMGR>startup pfile=/path/pfilename.●打开数据库后,可以执行下述指令来限制只有拥有”Restricted Sesstion”系统特权的用户才可以登录到数据库SVRMGR>alter system enable restricted session用下述语句解除该限制:SVRMGR>alter system dusable restricted session⑶授权SQLNET可以远程访问该数据库,启动Listener进程:$1snrctl start启动ORCLE侦听后台进程,如果已经启动,可以先用: lsnrctl stop 关闭后再启动,然后用:tnsping [servicename] 检测Listener后台进程是否启动2. 关闭数据库⑴先关闭Oracle的Listener Server,以Oracle 用户执行$1snrctl stop。

相关主题