您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > sql、oracle学习资料-ITjob
第一课体系结构作者:吴进深圳ITjob就业培训中心,长期开设java、C++、.net、嵌入式、手游开发、数据库、软件测试等课程。为深圳计算机行业协会培养和输送人才。数据库资料索取方式:QQ:6052708440755-25630755学习目标掌握Oracle10g的安装、卸载1掌握Oracle10g体系结构234数据库简介实现数据库管理的软件叫DBMS(1)RDBMS(关系型数据库)(2)ORDBMS(对象型关系数据库)在原来的RDBMS的基础上加入了对象的概念,如现在的Oracles10g。Oracle10g不是一个简单的数据库软件,它是一个平台,如:JAVA开发和.NET开发1、对内存的最低要求是256M,推荐为512M2、选择基本安装进行傻瓜式安装Oracle10g安装Oracle10g的服务启动Server:几个主要的服务:OracleServicexxx(SID)(必开)Oracle服务器服务进程的开启/关闭。OracleOraDb10g_home1TNSListener(必开)Oracle网络服务监听程序服务,当需通过网络连接Oracle服务器或访问OracleEnterpriseManager10g时需启动。OracleServer的启动启动Server:几个主要的服务:OracleOraDb10g_home1iSQL*Plus运行iSQL*Plus工具时需开启的服务OracleDBConsoleorcl1访问OracleEnterpriseManager时需开启的服务OracleServer的启动EntepriseManager10gDatabaseControlURL:http://computer:5500/emiSQL*PlusURL:http://computer:5560/isqlplusOracle10g的B/S工具SQL*Plus在Oracle安装的路径下可以找到该工具登陆界面如下:客户端连接工具(单机版)iSQL*Plus首先要启动服务然后在浏览器里输入http://localhost:5560/isqlplus进入登陆页面客户端连接工具(浏览器版)Dos窗口操作Oracle从开始点击运行客户端连接工具(DOS版)在Dos窗口里输入sqlplusname/pass,如下图所示:客户端连接工具(DOS版)该工具的登陆界面如下客户端连接工具(第三方版)Oracle实例在启动数据库时,Oracle首先要在内存中获取、划分、保留各种用途的区域,运行各种用途的后台进程,即创建一个例程(instance),然后再由该例程装载(mount),打开(open)数据库,最后由这个例程来访问和控制数据库的各种物理结构。当用户连接到数据库并使用数据库时,实际上是连接到该数据库的例程,通过例程来连接,使用数据库。所以,例程是用户和数据库之间的中间层。一台计算机上可以创建多个Oracle数据库,当同时要使用这些数据库时,就要创建多个例程。为了不使这些例程相混淆,每个例程都要用称为SID(SystemIDentify,系统标识符)的符号来区分,即创建这些数据库时填写的数据库SID。内存结构内存结构是Oracle数据库体系结构中最为重要的一部分,内存也是影响数据库性能的第一因素。内存的大小,速度直接影响数据库的运行速度。特别是当用户数增加时,如果内存不足,例程分配不到足够的内存,就会使有些用户连接不到数据库,或连接,查询的速度明显下降。内存结构1、SGA(系统全局区):随着数据库实例的启动向操作系统申请分配一块内存结构,又会随着数据库实例的关闭而释放,每一个ORACLE数据库实例有且仅有一个SGA。2、PGA(程序全局区):用于保存每一个用户连接到数据库的信息。SGA主要由五部分组成:(1)共享池(SharedPool)(2)数据库高速缓存(DatabaseBufferCache)(3)重做日志缓存(RedoLogBufferCache)(4)Java池(JavaPool)(5)大池(LagerPool)共享池是SGA中最关键的内存片段,特别是在性能和可伸缩性上。一个太小的共享池会扼杀性能,使系统停止,太大的共享池也会有同样的效果,将会消耗大量的CPU来管理这个共享池。不正确的使用共享池只会带来灾难。共享池主要又可以分为以下两个部分:SQL语句缓冲(LibraryCache)数据字典缓冲区(DataDictionaryCache)共享池当一个用户提交一个SQL语句,Oracle会将这句SQL进行分析(parse),这个过程类似于编译,会耗费相对较多的时间。在分析完这个SQL,Oracle会把他的分析结果给保存在Sharedpool的LibraryCache中,当数据库第二次执行该SQL时,Oracle自动跳过这个分析过程,从而减少了系统运行的时间。这也是为什么第一次运行的SQL比第二次运行的SQL要慢一点的原因。SQL语句缓冲(LibraryCache)数据字典缓冲区是ORACLE特地为数据字典准备的一块缓冲池,供ORACLE内部使用。数据字典缓冲区(DataDictionaryCache)数据库高速缓存这些缓冲是对应所有数据文件中的一些被使用到的数据块。让他们能够在内存中进行操作。任何文件的数据块都有可能被缓冲。数据库的任何修改都在该缓冲里完成,并由DBWR进程将修改后的数据写入磁盘。重做日志缓存重做日志文件的缓冲区,对数据库的任何修改都按顺序被记录在该缓冲,然后由LGWR进程将它写入磁盘。这些修改信息可能是DML语句,如(Insert,Update,Delete),或DDL语句,如(Create,Alter,Drop等)。重做日志缓冲区的存在是因为内存到内存的操作比较内存到硬盘的速度快很多,所以重作日志缓冲区可以加快数据库的操作速度,但是考虑的数据库的一致性与可恢复性,数据在重做日志缓冲区中的滞留时间不会很长。所以重作日志缓冲区一般都很小,大于3M之后的重作日志缓冲区已经没有太大的实际意义。JAVA池Java的程序区,Oracle8I以后,Oracle在内核中加入了对Java的支持。该程序缓冲区就是为Java程序保留的。如果不用Java程序没有必要改变该缓冲区的默认大小。大池需要大内存的操作:1、数据库备份和恢复2、具有大量排序操作的SQL语句PGA保存每一个用户连接到数据库的信息,包括:会话信息、排序信息和游标信息。分为:排序区、会话区、游标区、堆栈区进程结构用户进程启动客户端连接创建一个用户进程Oracle进程服务进程解析并执行用户所提交的SQL语句搜索SGA区的数据库缓存,决定何时读取数据文件将查询或执行后形成的数据返回给用户后台进程后台进程1、写数据DatabaseWriter(DBWR)2、写日志LogWriter(LGWR)3、检查点Checkpoint(CKPT)4、系统监视SystemMonitor(SMON)5、进程监视ProcessesMonitor(PMON)6、归档Archive(ARCn)7、恢复Recover(RECO)8、锁管理服务LockManagerServer(LMS)9、队列监视QueueMonitor(QMNn)10、调度Dispatcher(Dnnn)11、服务Server(Snnn)写数据(DBWR)将修改过的数据缓冲区的数据写入对应数据文件DBWR是一个很底层的工作进程,它批量的把缓冲区的数据写入磁盘。DBWR工作的主要条件如下超时系统中没有多的空缓冲区用来存放数据CKPT进程触发DBWR等写日志(LGWR)将重做日志缓冲区的数据写入重做日志文件,LGWR是一个必须和前台用户进程通信的进程。当数据被修改的时候,系统会产生一个重做日志并记录在重做日志缓冲区内。LGWR工作的主要条件如下用户提交有1/3重做日志缓冲区未被写入磁盘有大于1M重做日志缓冲区未被写入磁盘超时等检查点进程(CKPT)同步数据文件,日志文件和控制文件,由于DBWR/LGWR的工作原理,造成了数据文件,日志文件,控制文件的不一至,这就需要CKPT进程来同步。CKPT工作的主要条件如下在日志切换的时候数据库用immediate,transaction,normal选项shutdown数据库的时候根据初始化文件的LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET的设置的数值来确定用户触发系统监视进程(SMON)工作主要包含清除临时空间在系统启动时,完成系统实例恢复聚结空闲空间从不可用的文件中恢复事务的活动等进程监视进程(PMON)主要用于清除失效的用户进程,释放用户进程所用的资源。如PMON将回滚未提交的工作,释放锁,释放分配给失败进程的SGA资源。归档进程(ARCH)在归档模式下才生效当数据库以归档方式运行的时候,Oracle会启动ARCH进程,当重做日志文件被写满时,日志文件进行切换,旧的重做日志文件就被ARCH进程复制到db_recovery_file_dest指定的目录下。这些被复制的重做日志文件被叫做归档日志文件。可以使用ARCHIVELOGLIST和showparameterDB_RECOVERY_FILE_DEST查看归档位置恢复进程(RECO)在分布式运行时生效(数据复制)。一个结点RECO后台进程自动地连接到包含有悬而未决的分布式事务的其它数据库中,RECO自动地解决所有的悬而不决的事务。任何相应于已处理的悬而不决的事务的行将从每一个数据库的悬挂事务表中删去。当一数据库服务器的RECO后台进程试图建立同一远程服务器的通信,如果远程服务器是不可用或者网络连接不能建立时,RECO自动地在一个时间间隔之后再次连接。Oracle实例的总体结构什么是Oracle归档模式如果数据库处于非归档模式,联机日志在切换时就会丢弃。而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。只有在归档模式下才能进行重做日志的备份。1、进入DOS,启动sqlplus/assysdba2、shutdownimmediate关闭数据库3、startupmount启动数据库到装载状态4、alterdatabasearchivelog;进入归档模式5、alterdatabaseopen;打开数据库•也可以修改初始化参数实现归档模式log_archive_start=true•去除归档模式,要先关闭数据库,再用指令alterdatabasenoarchivelog;--进入非归档模式•selectstatusfromv$instance;--查数据库状态•selectlog_modefromv$database;--查看数据库模式如何进入归档模式存储结构1、逻辑结构数据库表空间段区块2、物理结构(包括数据文件、控制文件、日志文件、参数文件、数据字典)存储结构逻辑存储结构--表空间(tablespace)表空间是最大的逻辑单位,一个数据库可以有多个表空间,一个表空间可以包含多个数据文件(一个数据文件只能属于一个表空间),任何方案对象都被存储在表空间的数据文件中,虽然不能被存储在多个表空间中,但可以被存储在多个数据文件中。表空间分系统表空间和非系统表空间两类。系统表空间包括SYSTEM表空间和SYSAUX表空间,其余的表空间就是非系统表空间。系统表空间SYSTEM表空间是数据库创建时自动创建的系统表空间。用于存放数据字典。SYSAUX表空间时系统表空间的辅助表空间。什么叫数据字典数据字典是一些系统表或视图,他存放系统的信息,他包括数据库版本,数据文件信息,表
本文标题:sql、oracle学习资料-ITjob
链接地址:https://www.777doc.com/doc-13345 .html