oracle基础入门.ppt
《oracle基础入门.ppt》由会员分享,可在线阅读,更多相关《oracle基础入门.ppt(81页珍藏版)》请在三一办公上搜索。
1、1,ORACLE 数据库入门,安徽省邮通科技有限责任公司,一、Oracle 体系结构,存储结构(Memory Structure)操作系统文件(Files)后台进程(Background Processes)前台进程(Foreground Processes)实例(Instance)连接(Session)交易事务(Transaction)监听进程SQL语句怎样在Oracle内部工作的,1、操作系统文件,data files,redo log files,control file,parameter files,*.dbf,*.log,Initoraid.ora,*.ctl,datafiles
2、redo log files control files parameter file 数据文件 日志文件 控制文件 参数文件,Trace&Alert File 错误信息记录,占OS内存的60-70%,大小可由参数文件内参数计算 shared pool(共享池),database buffer cache(数据缓冲区),redo log buffer(重做日志缓冲区)(如以下图所示)SGA=share_pool_size+db_block_size*db_block_buffers+log_buffers,2、存储结构,shared_pool,database_buffer_cache,red
3、o_log buffer,tnslsnr listener*ORACLE网络监听进程,处理客户端的连接请求DBWRN 写数据文件的进程LGWRN 写日志文件的进程PMON 做程序的清洁工作,处理一些不正常退出的事件SMON 做系统的清洁工作,执行系统出错后自动恢复工作LCKN Oracle系统表级或行级加锁的进程.RECO 恢复进程CKPT 检测点ARCH 归档方式备份进程SNAPN 管理快照复制等的进程SNNN MTS Server进程DNNN MTS Dispatcher进程,3、后台进程,用户进程 当用户欲以SQL指令存取数据库数据的应用程序,如Server Manager、SQLplu
4、s、QracleForms、各种客户端工具等服务器进程 Oracle数据库对每一个用户进程会启动一个服务器进程与之对应,负责处理对应用户进程的SQL指令,并把执行结果传回给用户进程。,4、前台进程,SGA,background process,实例=内存分配+一组后台进程 Instance=SGA+background process 如果把Oracle比作一部汽车,instance相当于汽车的发动机一样,启动oracle前提应先启动instance.,5、实例,oracle,user,user,user,session,Session(连接)Oracle是多用户、多任务、可分布式管理的数据库
5、,同时可有许 多个用户对数据库操作。,6、连接,Transaction 交易事务Eg:1、DDL(数据定义语句)例如:create,alter,drop等 2、DML(数据控制语句)例如:Insert,Delete,Update,commit,rollback等,7、交易事务,$listener status 显示ORACLE网络监听进程的状态$listener services 显示当前详细的网络监听进程的服务处理状态$lsnrctl reload 重新启动$lsnrctl stop 关闭ORACLE网络监听进程$lsnrctl start 启动ORACLE网络监听进程,8、Listener
6、监听进程常用命令,用户发出SQL请求,打开游标;把SQL语句语法分析,执行计划,数据字典等信息存入内存中共享池内;从数据文件中把相关数据块读入数据缓冲区做相应操作,若做修改,先加上行级锁,经确认后,把改过前后记录内容存入重做日志缓冲区内;返回结果给用户,关闭游标。备注:SQL语句大小写敏感的,同样的一个语句,若大小写不同,oracle需分析执行两次,9、SQL语句在Oracle内部怎样工作,shutdown,open,读参数文件initoraid.ora,开机,关机,读控制文件,读所有文件,未连上数据库仅启动instances,nomount,mount,连上数据库,但未打开,二、启动和关闭数
7、据库,$svrmgrl-唤醒 SVRMGRL数据库管理 SVRMGRL connect internal;-以系统管理员身份登录。SVRMGRL startup-启动instance其它命令:SVRMGRL startup nomount;SVRMGRL startup mount;SVRMGRL alter database open;,1、启动,$svrmgrl-(V7.3.2.0以上)唤醒SVRMGRL状态SVRMGRLconnect internal;SVRMGRLshutdown.,2、关闭,如果不小心物理上删除了一Oracle的数据文件,比如说,某应用表空间所对应数据文件“adc.
8、dbf”,Oracle读控制文件时,和打开数据库时所面对的参数不一致,Oracle数据库将启动不了,解决这种问题的方法是把其对应的表空间先卸下,再删除,以保证控制文件描述和物理上存在文件一致。$svrmgrlSVRMGRconnect internalSVRMGRstartup mountSVRMGRalter database datafile/directory/abc.dbf offline drop;SVRMGRalter database open;SVRMGRdrop tablespace abc;,3、启动时文件损坏,Oracle数据存储单位block 结构行链行迁移控制bloc
9、k空间使用的几个参数决定extent的参数段(segment)的分类表(Table)的存储表空间(Tablespace),三、Oracle数据的存储结构,block 数据块:2k 最小的I-O单位,伴随database产生而产生,不可变extent 一组连续的数据块:是用户所能分配存储的最小单位segment 段:有共同结构的一个或几个区域(extent)tablespace 表空间:一组物理数据的逻辑组合,(象逻辑间数据仓库)file 文件:属于某个表空间的物理文件database 数据库:一组表空间所构成的逻辑的可共享的数据。,1、Oracle数据存储单位,common and varia
10、bleheader 块地址,段类型 85-100bytesTable directory 簇中的表信息,用于簇表段Row directory 块中的行信息Free space 用于insert updataRow data 存储数据、索引,block 结构,(系统管理员能在SQLDBA状态,查看视图dba-extents,dba-segments,dba-tablespace,dba-data-files查看所有的extent,segment,tablespace 和 datafile),2、Block结构,行链,1 block,2 block,当要存储的数据无法在一个数据块中存放时,需分配两
11、个或多个数据块,标志这几个data block连接关系的存储信息,3、行链,行链,1 block,2 block,当一个data block中的某部分数据经修改后增涨太快,无法继续放在本数据块中,从需把它搬迁到另一个data block,以优化存储结构,标志这个data block迁移的存储信息称为行迁移。,4、行迁移,pctfree 20%左右 它们是互相消涨的pctused 40%左右Inittrans 在单一块中最初活动的交易事务数Maxtrans 在单一块中最大交易事务数,5、控制block空间使用的几个参数,Pctfree,低,高,1、可把块填 得较满2、如果重组数据,代价较高3、易
12、引起行迁移,1、剩下多的空间给以后修改用2、需更多的块存数据3、减少行链和重组数据的代价,5.1、Pctfree,当一个Database Block的剩余空间低于此设置值时(默认值10),此Database Block会被移出Free Block列表,不再允许放入新增的row,所留下来的剩余空间用于容纳目前存在此Block内的数据更新而增加的数据长度以及Block Header数据的成长。,Pctused,低,高,1、使重组数据时,代价较低。2、增加了未用的空间数,1、增加空间使用率2、但使重组数据时,代价较高,5.2、Pctused,当一个Database Block引起内部所存放的数据行被
13、删除,或数据行的长度因更新耳变短,会使此Block的剩余空间逐渐增加。当一Block的使用空间低于此设置值时(默认值40),此Database Block会被收回Free Block列表,重新允许放入新增的数据行。,决定extent的参数pctincrease,initial 最初分配的空间数(缺省为10k,5 个数据块)next 下一步分配的空间数maxextents 最大分配的extent数minextents 最小分配的extnet数,所有重 做日志回滚段的存储结构,必 须成对地分配extentpctincrease 增长率,指数级增长,optimal 尽量设小,或为0(缺省为空,仅用于
14、回滚段)freelist,100,(,),n,1+,6、决定extent的参数,存储参数的设定规则:,1、在对象级的存储参数设置值覆盖表空间级的设置2、未在对象级设置存储参数,由表空间级数设置决定3、未在表空间级设置存储参数,由Oracle数据库级参数 设置决定4、若存储参数改变后,新的选项只针对未分配的extents 有效。,段的分类,7、段(segment)的分类,data 数据段 存储对象object(table,cluster,view,index,sequence.)index 索引段 temporary 临时段 用做(join,group by,order by sorting操作
15、)rollback 回滚段 用于记录修改前后信息,以便数据库系统rollback,read-consistencybootstrap 启动段 存储数据字典系统信息不能读写,放在系统表空间内,数据库管理员可不于理会。,data segment中可能有十种不同类型的存储对象,(1)table(2)view 实为一个select语句(3)index(一个表不多于3个)(4)cluster(簇)(5)sequence 序列(6)synonme 用于定义某个 远程数据库同义词,实现分式数据库管理透明(7)snapsot 快照(8)stored procedure(function)(9)package
16、程序包(10)db trigger 数据触发器,处理updata,delete,insert中可能出现的问题,table存储,按行格式,1,2,3,5,4,6,.,1、rowoverhead 行头2、row piece 列数3、cluster key(不一定有)4、rowid 行的唯一标记(有行链时,记录其它block的rowid5、length 6、value,8、表(Table)的存储,当字段值为null时,length为0,无6字value部分,所以某字段常为空,应放table最后;尽量不设为null的字段,rowid:xxxxxxxx.x x x x.xxxx 块物理地址 该row在块
17、中的行号 块所属的文件号,8、表(Table)的存储-1,表空间 tablespace,system,rbs,nosystem,把system表空间单独放在一个硬盘上,把system表空间单独放在一个硬盘上,做成一组镜像(如下附图),tools,userstempapplication dataapplication index,分开存放减少争用,9、表空间(Tablespace),NLS参数的默认值NLS参数的主要内容用户的NLS参数设置其它NLS环境变量设置,四、Oracle国家语言支持,Oracle提供完整的国家语言支持(National Language Support,简称NLS),
18、允许不同国家的用户可在数据库中直接使用其熟悉的母语文字,解决在存取或处理这些文字内码时可能引发的冲突问题。,NLS参数是一组参数,主要有两个:nls_language和nls_territory,默认值为AMERICAN和AMERICA。查看命令:show parameter nls(或select*from nls_instance_parameter),版本7不用这个命令。与数据库联机的用户程序如果没有在环境变量中设置NLS参数,则使用Oracle实例中使用的参数,即参数文件中设置的参数。对于中文,参数文件中有:nls_language=“SIMPLIFIED CHINESE”nls_te
19、rritory=“CHINA”,1、NLS参数的默认值,2、NLS参数的主要内容,连接数据库的用户进程需要把NLS参数设置在“NLS_LANG”这个环境变量中,如果不设置,数据库自动以自身的帮用户设置。格式:NLS_LANG=language_territory.charset 如中文可设为“SIMPLIFIED Chinese_CHINA.ZHS16GBK”。nls_characterset用于设置数据库存储文字时所使用的内码,数据库创建时便已决定。用户设置NLS_LANG 中的charset必须和数据库的nls_characterset保持一致,否则在存取数据过程中,可能会因重码而产生不可
20、预期的情况。这样也可以:American_America.ZHS16GBK,3、用户的NLS参数设置,数据库系统根据NLS_LANG设置NLS配套参数,如对于中文设置得到日期格式为“DD-MON-YY”的配套设置,如果不满意可以在环境变量中对各NLS参数重新设置,例如:NLS_DATE_FORMAT=“YYYY-MM-DD”NLS参数都有一定的意义,到底有哪些,可以通过数据字典中的v$nls_valid_values视图获取这些信息。本次联机(session)NLS参数nls_session_parameters视图数据库实例NLS参数nls_instance_parameters视图数据库N
21、LS参数nls_database_parameters视图,4、其它NLS参数设置,参数文件数据库对象定义数据存储结构表空间的类型表空间的规划数据字典,五、规划数据库实例,Oracle完成软件安装后,接下来就要规划数据库实例,然后在这个实例下建造一个规划好了的数据库文件存储结构并挂在其下面运行。,数据库名称SID(不可超过8个字符)db_name=ora8控制文件control_files=(/vol1/control1,/vol2/control2)数据块大小db_block_size=8192数据块缓冲数db_block_buffers=3200回滚段rollback_segments=(
22、rbs01,rbs02,rbs03,rbs04,rbs05,rbs06,rbs07,rbs08,rbs09,rbs10)参数搭配:样本参数文件中准备了大中小三组。,1、参数文件(Parameter File),参数文件准备好以后就可以启动实例,启动前检查一下oracle用户是否为dba组,环境变量是否正确设置。用svrmgrl启动实例。命令:SVRMGRLconnect/as sysdba;SVRMGRLstartup nomount查看:SVRMGRLselect*from v$parameter;(v$sga),2、数据库对象定义,Oracle Database是由一些数据库对象构建而成,
23、这些对象包括实际的存储空间以及抽象的逻辑存储单元。,2、数据存储结构,Hard Disk,Oracle Database,Tablespace,OS File,OS Block,Used Extent Free,Database Block,Segment Data Index ClusterRollback Temporary Cache,Physical Structure,Logical Structure,3、表空间的类型,Oracle表空间有各种不同类型的表空间组成,要建立一个高效的数据库在规划时必须先了解各种表空间的特性,并依据其特性在存储空间的规划上作一妥善的安排,才能减少会降低
24、执行效率的Disk I/O竞争和存储空间的不连贯,才能长期维持数据库效率。,规划要点减少磁盘存储空间部连贯(Reduce Fragment)减少产生Disk I/O竞争的机会(Reduce Contention)同一表空间所存放的内容应尽量简单化,4、表空间的规划,建造数据库步骤(SID=TEST)设置数据库管理员的操作系统环境变量:ORACLE_HOME,ORACLE_SID,NLS_LANG等编辑参数文件initTEST.ora编辑创建数据库的SQL指令的程序文件create_db_TEST.sql在nomount启动模式下启动数据库实例,然后执行create_db_TEST.sql执行额
25、外的Oracle公用程序catalog.sql,catproc.sql等查看数据库:文件是否正常、能否启动、能否连接、查看相关数据字典,5、数据字典,Oracle的数据字典由一群只读的表(Table)和视图(View)组成,Oracle 提供一张名为“dictionary”的表(简称“dict”)来说明这些表的名称和用途。对任一张数据字典的表而言,通常只能让用户读取其中的部分数据,Oracle根据用户类型,将用户感兴趣的部分建成视图,以便查询。视图分类如下:,安全性领域(Security Domain)创建用户(Create Users)修改用户(Alter Users)删除用户(Drop U
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 基础 入门
链接地址:https://www.31ppt.com/p-6513461.html