




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ORACLE体系结构(二)我们前面学习了ORACLE如何实现客户的请求并连接到实例。客户端请求通过LISTENER审核,LISTENER会指示ORACLE分配一个服务器进程,并在客户端进程和服务器进程间建立了连接会话。我们称专有连接会话,ORACLE实例提供的是专有服务。就是所谓的dedicate模式。默认情况下就是dedicate模式。ORACLE除了提供专有连接会话,还提供了共享连接会话,ORACLE实例也提供了共享服务。我们接下来学习ORACLE提供的共享式服务器是怎么样实现的,有什么优势。共享服务器大家可能是第一次接触,有点不太好理解,这个不着急,现阶段只要初步了解下可以了。我举个例子
2、:你们谁安装的的oracle是在linux环境下的?你建立一个sqlplus会话,看看是不是多出一个oracle的OS进程oracle1178711760014:53pts/000:00:00rlwrapsqlplusfuture/futurefang我们看到,专有模式下。新建一个会话,就多出了一个进程。但是共享模式和这个不一样,你开很多个会话在服务器上表现为1个进程。就是1个进程多个会话一起用,就是共享服务器的特点。那我再问下大家,共享模式下,新开一个会话,进程一定不会增加吗?不一定的,有可能还是会增加。比如我们假设一个共享服务器管理10个会话,现在已经有10个了,再连一个就是11个,哪么还
3、是会增加一个进程的。共享服务器模式的主要优势就是节约内存。好,有了上面的经验,我们来看看共享模式的特点。先看下书店的书柜陈列图我们前面讲的都是专有服务模式的连接。我们再来看共享服务器模式下,静安图书分店是如何服务的。当小丽发出一个请求,要批发1000本中国机械出版社2009年后出版的经济类书,并通过轮船运到宁波自己的公司,并按日期进行排序捆绑存放存入小丽公司的仓库。如果采用共享服务模式,那涉及下面几个动作:店里为小丽(用户进程1)分配了售货员小英(服务器进程1)为她服务小英帮小丽取了这1000本中国机械出版社2009年后出版的经济类书小英并按出版日期排完序,并进行包装。并反馈给小丽检查是否按自
4、己规定的顺序包装。小英将包装后的书放到司机小思(服务器进程2)货车里,这样司机小思来服务小丽,帮这批货运道码头。司机小思将货开往码头这时售货员小英可以为小勇(用户进程2)去卖书。也就是一个售货员小英跟小勇建立了会话,并进行服务。小英可以服务多个不同会话的任务(一、小丽批发经济类书。二、小勇买书),而不需要小英一直为小丽服务,所以也不需要等待小丽在请小英下一个动作前无所事事。这时小英既知道小丽的情况,也知道小勇的情况。对应于ORACLE就是一个服务器进程可以有多个会话(SESSION),多个会话信息需要让一个服务器共享,所以叫共享服务器进程。司机小思帮忙把货搬到船上,他的任务结束,开车回书店。船
5、长小川(服务器进程3)将货运到宁波。司机小宁(服务器进程4)将货运到小丽宁波的公司。小丽这次的批发任务共有四个人帮它完成(为了简化,这里省略了ORACLE调度器参与的角色),这些人都是受静安书店的委托服务于小丽。而每个服务器进程都会在执行完任务后反馈给客户会话信息上图对应于ORACLE就是一个会话可以由多个服务器进程来完成。而在专有服务模式下,那小英要一直为小丽服务,一直到把货运到小丽公司为止,它们建立的会话就结束了,而且进程也随之消亡。在这期间小英要既当营业员、司机、船长,而且这期间小丽要有事情要处理,比如去银行转帐,那么小英只有等待小丽回来才能继续工作,而不能去服务其他顾客,这很显然大量浪
6、费了小英的效率。在ORACLE模式下,专有模式会话进程和服务器进程一一对应,服务器进程要服务到结束,最后一起消亡。 而在共享服务模式下,那小英在卖完书后,即使小丽这个时候去收银台交费,小英也不需要等待她,马上可以去处理新的客户小勇,这样售货员的效率就提高了。即使小丽又要重新需要小英处理问题,如小丽拿了收银凭据,小英就要停下小勇的服务,把小丽的书给她,并输入电脑,再回头处理小勇的工作。在ORACLE模式下,共享模式,用户进程不需要服务器进程处理的的时候,服务器进程可以服务别的用户进程,当原来的用户进程继续请求这个服务器进程时,可以打断后一个用户进程,继续处理前一个用户进程的工作。这里小丽再次找小
7、英时,她们已经彼此认识,已经是朋友了,不需要再重新打交道,重新建立信任关系,节约了之间沟通的成本。那小英知道了小丽的姓名,任务起始时间,结束时间,当前的状态,任务的目的等。也同样知道了小勇相应的信息。这些是会话信息,会话信息对于所有的进程可以共享的。开始备课上节课 我们开始DBA-I的第一节课给大家整体介绍了下Oracle 服务器的体系结构及其主要组件,我们简单回顾下。第一个问题:ORACLE SERVER由什么组成?ORACLE服务由一个实例和一个数据库组成。ORACLE SERVER的概念是,一个ORACLE SERVER就是一个DATABASE 库文件加上一个INSTANCE,按我们图书
8、馆的例子就是上海图书馆的静安书城店提供的就是一个ORACLE SERVER。第二个问题:ORACLE实例(INSTANCE)由什么组成?主内存结构(SGA)+后台进程那RAC的概念是什么?RAC的概念就是多个实例关联一个数据库。ORACLE SERVER = 1个DB + 1个INSTANCEINSTANCE = MEMORY + PROCESSRAC = N个ORACLE SERVER = 1个DB + N个INSTANCE第三个问题:分别简述下SGA,PGA,UGA是什么?第四个问题:我们知道ORACLE的物理结构指的是OS里直接能查看到的文件。那ORACLE DB有哪几种物理文件? Co
9、ntrol files Data files Redo log files第五个问题:简单说下专有服务器和共享服务器的区别?专有服务器一个服务器进程专门服务一个用户进程,即使用户进程空闲,服务器进程还是继续等待随时为该会话服务,不能去干其他事情。专有模式会话进程和服务器进程一一对应,服务器进程要服务到结束,最后一起消亡。共享服务器一个服务器进程可以服务多个用户进程,一个用户进程也可以被多个服务器进程服务。共享模式,用户进程不需要服务器进程处理的的时候,服务器进程可以服务别的用户进程,当原来的用户进程继续请求这个服务器进程时,可以打断后一个用户进程,继续处理前一个用户进程的工作。大家结合我们图书
10、馆 小丽买书,售货员小丽,司机小思,船长小川,司机小宁为小丽服务的例子 再理解下。我们上节课讲到,在共享服务模式下,那小英在卖完书后,即使小丽这个时候去收银台交费,小英也不需要等待她,马上可以去处理新的客户小勇,这样售货员的效率就提高了。即使小丽又要重新需要小英处理问题,如小丽拿了收银凭据,小英就要停下小勇的服务,把小丽的书给她,并输入电脑,再回头处理小勇的工作。这是小丽再次找小英时,她们已经彼此认识,已经是朋友了,不需要再重新打交道,重新建立信任关系,节约了之间沟通的成本。那小英知道了小丽的姓名,任务起始时间,结束时间,当前的状态,任务的目的等。也同样知道了小勇相应的信息。这些是会话信息,会
11、话信息对于所有的进程可以共享的。所以这里涉及进程中共享的信息如下:会话信息:这次任务起始时间,结束时间,当前的状态,排序的反馈信息、任务的目的等。CURSOR信息: CURSOR是什么?还有如小丽批发这1000本书的方法等在也是可以让另一个售货员共享的,什么意思呢?就有点类似 管理中的专人负责的特点,你只负责某一件事情,整体类似于流水线的概念。这在ORACLE中通过SQL语句实现,并将执行计划记录下来,我们称共享SQL 区,放在共享池中。但是对于每发送一个语句,在专有模式,相对于服务器进程是私有的,所以我们称私有SQL区,输入进程内存。但是对于共享服务模式,一个会话的信息可以让所有的进程共享,
12、那么属于会话生命周期里,这个私有SQL区可以是共享的,也可以是执行完后隐式关闭。我们后面会学到SESSION CACHE CURSOR。私有SQL区或者称CURSOR,一个SQL就会对应一个CURSOR,在CURSOR关闭时释放。CURSOR(私有SQL 区)这里有两个部分搜索1000本书方法(执行计划)有些称为固定部分,如小丽的姓名(绑定变量),这些信息在整个会话中可以不马上释放你既可以指定我不想要这些信息(一些程序的显式关闭游标),如procdure 中close cursor也可以让它自动去除这些信息(默认的SQL语句执行完就关闭游标),如select * from tab;当前取书已经
13、到第999本了。这些是运行时状态的信息,等SQL语句执行完就释放掉了。注意,每个会话会限制CURSOR数(任务数),如小丽刚才的会话总共有四个服务器进程服务的四个任务。如果每次执行完一个CURSOR(任务)后不马上释放这些CUROSR(任务)信息,那么超过open_cursors数后会抛出open cursor数超出错误,否则会占过多的资源。比如静安店最多服务一个客户的子任务(CURSOR)数是3,比如卖书、司机运货到码头、书通过船运到宁波,而且每个任务做完后登记的信息没有清除,那么小宁要完成第四次子任务时候就不允许。这是因为怕一个大任务中小任务的信息太多造成大量内存使用。(特别是程序的循环操
14、作,循环open cursor一个SQL一千次,不执行close就会发生上述问题)所以对于应用程序代码,要仔细考虑CURSOR的释放机制。而上面的这些CURSOR信息在共享服务模式是共享的,属于 UGA,并存放在SGA中,在有大池的情况下存放在大池。还有一部分内存是完全私有的,比如有些局部变量作为程序的栈空间,还有些私有工作空间,如排序区,HASH JOIN区,位图合并区等,它们是在执行的时候调用全局区的,我们称为CGA(Call Global Area) 调用全局区,执行完就释放。为了减少资源使用,CGA执行完就释放,是运行时状态,别的进程是无法看到的,还有象栈空间调用完就释放的都是私有信息
15、。但是执行结束后如果需要反馈给用户会话的数据,如SELECT的FETCH,则需要保留区的数据提供用户反馈信息,这些信息保存在哪里? 是不是CGA?注意CGA属于PGA。如我们排序区可以设置保留空间,这样这些SQL执行完排序完后,不马上释放给操作系统,而是释放给UGA,最后FETCH反馈给SELECT的用户。CGA属于PGA与其他的全局区不同,CGA(CallGlobalArea调用全局区)的存在是瞬间的。它只存在于一个调用过程中。 而UGA可能属于PGA或者SGAPGA是一段包含一个Oracle服务或后台进程的数据和控制信息的内存。PGA的大小依赖与系统的配置。在专用服务(DedicatedS
16、erver)模式下,一个服务进程与一个用户进程相关,PGA就包括了堆空间和UGA。而UGA(UserGlobalArea用户全局区)由用户会话数据、游标状态和索引区组成。在共享服务(MTS)模式下,一个共享服务进程被多个用户进程共享,此时UGA是SharedPool或LargePool的一部分(依赖与配置)。此时UGA属于SGAUGA根据连接模式的区别而有所区别大家设想一下,一个CGA的返回要怎么返回给用户?放在UGA里。我们排序区可以设置保留空间,这样这些SQL执行完排序完后,不马上释放给操作系统,而是释放给UGA,最后FETCH反馈给SELECT的用户。而共享服务模式UGA是共享内存,所以
17、保留区排序在没有FETCH前可以使用,但是FETCH后仍然不会保留这段内存,它还是会被释放的。我们将在第1章的后面几节详细讲。这些私有部分,就象售货员的私密信息,都会涉及到实际的数据,如HASH 表,所以其它售货员永远不会知道。否则就象中介公司的业务员互相之间知道了客户的详细信息,还可能存在互相撬客户的情况。但是小丽的情况,售货员小英(服务器进程1)和司机小勇、小宁(服务器进程2,4)和船长小川(服务器进程3)都知道。所以小丽的信息是共享的,所以在共享服务模式,UGA是在SGA里。共享服务模式,也就是进程与会话之间是n:m的关系。在共享模式下,一个进程可以服务多个会话,一个会话可以由多个进程服
18、务。好比一辆的士可以服务多个人,而一个人也可以坐多辆的士。在共享下uga不是pga的子堆,是SGA的子堆,但是uga不会并发,因为单个会话不可能在同时有多个活动进程服务它。uga始终属于会话的,一个会话永远是顺序执行的,所以不会冲突。所以虽然共享但不会有latch的冲突。我们小丽的生命周期是把这货运到码头,然后运到宁波,这个会话才结束,而这期间有售货员进程,司机进程和船长进程可以为其它用户服务。关于共享服务模式,我们会在体系架构(三)用的士的例子来详细举例,另外DBA II的第五章将介绍共享服务器的配置。SGA的构成我们已经了解了什么是SGA,什么是PGA,那我们分别来详细展开这两大组件,来了
19、解这些组件各自的作用,和它的构成。首先我们来学习SGA,一个实例只有一个SGA。我们看到,SGA是由多个功能不同的共享内存组件构成。前面四个子组件是SGA必备组件,在10G,11G会多出流池等。我们这里只说个SGA大概的组成,每个小的组件在之后会详细分析。第一个组件:共享池,用来存放SQL解析树和字典对象定义的共享区域。第二个组件,数据库高速缓存区,用来存放业务数据的共享内存区域。第三个组件,REDO日志缓存区,用来记录数据库的每个改动向量,其中包括系统的改动和UNDO的改动(UNDO其实也是一次REDO)。第四个组件,其它共享资源,如LOCK,ENQUEUE,LATCH,统计数据。除了前3个
20、组件是资源外,锁也是资源前3个组件的共享资源并发冲突可以用LATCH来管理,那LATCH本身也是种资源,还需要专门管理LATCH的LATCH来管理。另外,在9I还有其它2组可选的组件,分别是大池和JAVA池,他们都跟共享池的功能类似,是它的替代品,用来实现某些特殊的请求。比如大池是用于存放对那些复杂的程序包分析、RMAN、UGA、异步IO等相关的数据,而JAVA池是用来存放JAVA存储过程的分析信息。那我们要搭建一个实例该如何规划这个实例的内存呢?就象我们要开一家静安书店,我们需要指定一个开业筹备的方案,设置好各职能部门及所需要的门面。这个筹备方案就是我们以后讲到的初始化参数。实例启动必须先划
21、分内存,店要开业就必须要买下门面,那我们数据库该如何设置内存大小呢?特别是SGA。SGA的设置在9I,ORACLE需要你先划分一个SGA的最大大小限额SGA_MAX_SIZE,用于划出最大多少的内存给ORACLE共享内存使用。该参数只能通过文本参数修改或SPFILE的设置,并在重起后生效。10g实现SGA的自动管理,并设置了sga_target。我们称自动内存管理为ASMM,在11G,可以把PGA和SGA作为一个整体进行自动管理。SGA也会使用到虚拟内存,在有些平台甚至可以固定在物理内存内。我们知道一个进程使用的物理内存,会需要相应大小的虚拟内存,所以要设置合理的虚拟内存大小,以支持系统正常运
22、转。通常情况:如果4G的物理内存,配置4G或者8G虚拟内存就可以。内存分配需要按照颗粒大小来分配。比如颗粒是16M,原来总内存是32M,你把32M改为40M,那实际上会变成32M+16M=48M。所以必须按照步长进行分配内存。如果SGA小于128M,那么步长是4M,否则是16M我们可以用下面的字典来查当前系统的步长V$SGA_DYNAMIC_COMPONENTS我们了解了SGA的分配和SGA主要的几大组件,我们就需要深入了解几大组件的作用及它们间是如何配合的。先看看SGA的几大组件共享池数据缓冲区PGA&UGA处理内存的机制我们还是用前面图书馆的例子来全面了解ORACLE处理这些内存的机制。我
23、们来举个例子,静安书店刚开业,小丽要买某一本书“CBO基础”,而且必须是最新上架的书。因为小丽希望买到的是最新的“CBO基础”,否则估计已经被很多人翻旧了。有一个刚进静安书店的A售货员接到了小丽的服务,她们建立了买卖的会话关系。而且由于书店刚开业,A售货员第一次上班,从来不知道该如何去找这本书,A售货员脑子里不记得该如何去找这个书,那A售货员只能通过有限的知识去获取最快的方法找到这本书。她可以有几种选择:从书架的第1本书开始,按书架的编号顺序找,直到找到第1本“CBO基础”,然后再继续找第2本“CBO基础”,然后按时间排序,直找到书架最后一本书。从店里的前台电脑里有一本书的检索目录,是按书名拼
24、音排序的,用它来快速定位这本书,由于检索目录是按书名排序的,选取出来的书还要按日期排序,然后选出最新的一本“CBO基础”。但是决定哪种选择来获取“CBO基础”,这个工作不是由A售货员来做,A售货员首先会把这个请求交给店里的一个检索员,让他决定这本书小丽有没有权限买让检索员评估哪种方法能更快的拿到“CBO基础”这就类似于SQL的语意分析、语法分析、CBO分析。检索员负责管理检索室,检索室是我们关注的焦点。当确定了检索方法后,这时检索员会把小丽提出的请求和检索的方法做上记录(电脑检索目录),并存放在检索室的柜架上。检索员柜架为按一定的方式来放,尽量让刚检索的或者频繁检索的请求和方法放在最外面,便于
25、以后当检索室满了后不容易被检索员作为侯选T出去。这时检索员告诉A售货员,说你还是在电脑里用检索目录搜索快,这时A售货员会把书名,检索的方法的地址等记下来作为小丽这次请求的会话信息。然后A售货员开始执行,并记录执行的状态信息,比如取到第几本书了,这就是运行时的CURSOR信息到这个会话。执行完后,A售货员把最新的一本“CBO基础”书给小丽。这时小丽可以决定结束这次会话的所有请求,也可以不结束,而去处理别的事情。好,这是我们第1段故事,从这段故事里我们能跟ORACLE关联上哪些知识点呢? 我们前面提到的买某一本书“CBO基础”就是提交了一个SQL语句 检索员是CBO 电脑检索目录是索引 检索员存放
26、检索方式信息按最近最多执行顺序排列,对应就是LRU A售货员服务器进程 小丽是用户进程 检索室是LIBRARY CACHE,是shared_pool_size的一部分,一些语句解析信息 小丽有没有权限买等的信息是语意分析时存放在ROW CACHE里 小丽会话信息里有要买的书名(绑定信息),检索的方法的地址,检索到第几本书等信息。这是私有CURSOR。 检索室的搜索方法,书名等信息是LIBRARY CACHE里的子cursor,就是共享cursor。我们用ORACLE的概念关联到图书馆,我们就可以接着第2、3段故事了解内存是如何运作的。第2段故事这时如果小王要买一本“经济学概论”,也需要最新上架
27、的新书。如果小王被指派给新来的B售货员,那B售货员去找检索员查找检索室里有没有该检索的方法。前面小丽使用过的检索方法正好可以被使用,即使她们买的书名不同,但是书名被绑定了,也就是小王要买一本“书”,而没有用特定的书名提交给检索员。这就是绑定成一个通用的变量名,在ORACLE中是用一个变量代替。这样,检索员完全可以决定用小丽的检索方法给小王共享,因为他们的目的看上去完全一样。(但是这时未必能真的用到小丽的方法,如可能搜索员发现小王的权限跟小丽不一样,书店连卖都不会卖给他)。这时如果可以用小丽的检索方法,B售货员为小王生成会话信息,记录书名“经济学概论”,检索方法的地址等。这里是UGA。然后一样开
28、始执行,我们发现要找到最新的书,是需要基于时间,而时间字段没有索引,所以必须排序,这排序是私有的区域部分,属于PGA,部分属于UGA。我们把排序放到一个临时的房间,我们称排序库。比如排序需要100本书,如果排序的结果不需要反馈,那么排序完就从排序库释放了。但如果排序的结果要反馈给用户,如想显示排在最早出版的20本书是哪几本,则需要在排序库排完后需要保留到另一个房间,我们称为保留排序库,来实现用户的FETCH。我们也可以在每完成20本排序后,先把排序库里这20本移到保留排序库,反馈这20本给小王看,反馈完后从保留排序库清除。然后再从排序库选择下20本书排序从排序库取出,存入排序保留库,反馈给小王
29、查看排序结果,一直这样循环,直到最后排序完100本书,小王有看了这100本书的顺序后,排序库和保留排序库数据都被清除。这个排序库就是SORT_AREA _SIZE,它是属于PGA,而保留排序区属于反馈给用户会话的(小王),它就是SORT_AREA_RETAINED_SIZE,属于UGA部分。这里我们发现B售货员还是去找了检索员。这个小王买书搜索的过程我们叫软解析。第3段故事再看下面的情况,如果在小丽买完“CBO基础”后,到麦当劳吃完饭,想起来还要买最新上架的书“备份与恢复”,而且也要买最新的。在专有模式下,会话没有结束,那A售货员一直要为小丽服务。但这时会发生什么情况呢?A售货员接到小丽第2次
30、请求后,发现她要买最新上架的书“备份与恢复”,这时她脑子里想起来应该怎么去检索这本书了,因为她还尚存了前面为小丽怎么检索“CBO基础”的方法的记忆。所以不需要麻烦检索员了,因为她脑子里还存有前一本书怎么检索的记忆,这个记忆就叫session_cache_cursor。属于这个会话的记忆,如果你设置了session_cache_cursor,那么某个任务提交了3次以上就会把执行计划拷到UGA,而不光是指针。也就是某人买最新上架书如果执行过次一上,那么A售货员会记住前面3次检索员是如何做的。第4次就不需要检索员告诉我了,我自己脑子里已经记得该怎么做了。这大大提高了检索速度,因为检索员很忙,你最好不
31、要麻烦她。私有的对象不会冲突,共享的对象(象检索员)最容易并发冲突。那如果在共享管理模式下更复杂点,小丽可能发现A售货员帮另一个用户处理请求,而C售货员来帮她买最新上架的书“备份与恢复”,这时小丽可以告诉它原来这个检索是怎么做的,而不需要C售货员去找检索员的麻烦。不检查检索员,直接使用会话私有CURSOR信息去执行,我们在ORACLE称为软软解析(soft soft parse)。好,这些内容虽然超出了书本内容,如果对这个过程还是不能理解,通过后面的学习,会加深印象。那结合我们这3段故事,我们来看这几个主要的共享内存区域。共享池图例 SEQ 图例 * ARABIC 13共享池是用来存放最近常使
32、用的SQL语句的解析信息和最近常使用的对象定义。解析信息就是检索室里的检索方法,我们由library cache来存放该用户请求的对象权限、表、索引、用户名等字典信息,并在语意分析阶段进行判断,这些信息是存放在data dictionary cache。整个共享池由shared_pool_size来规定大小,并可以动态修改。可以用alter system set命令来实现,在10g可以实现动态管理。第一章ORACLE体系结构(二)完附录资料:不需要的可以自行删除 Oracle10g在AIX上的安装准备工作Oracle For Aix安装1:安装Oracle10.2的最基本要求硬件: 64位 内
33、存与交换区 硬盘空间:除数据外,Oracle软件本身至少需要3G 软件: 操作系统: AIX 5L version 5.2, Maintenance Level 04 or later , or AIX 5L version 5.3, Maintenance Level 02 or later. AIX的软件包:o bos.adt.baseo bos.adt.libo bos.adt.libmo bos.perf.libperfstato bos.perf.perfstato ctoolso xlC.aix50.rte: or latero xlC.rte: or later2:AIX的修补:
34、 对于(APARs) for AIX 5L v5.2 ML 04: IY63133: large percentage of CPU time spent in ldata_balance routine IY64978: deadlock with concurrent renaming and unlinking under JFS IY63366: dlsym returns null even for valid symbol in AIX520 ML-4 IY64691: chvg -b can cause corruption and crash IY64737: AIO can
35、hang in knotunlock IY65001: mklvcopy on a striped lv is failing to update lvcb 对于(APARs) for AIX 5L v5.3 ML 02: IY58143: REQUIRED UPDATE FOR AIX 5.3 IY59386: libdepend.mk files are all empty IY60930: Unable to delete network routes IY66513: LDR_CNTRL turns on undesirable option when initialized with
36、 incorrect value IY70159: krtl relocation problem 3:安装AIX 5L 53-001 插入CD 5.3第一片盘。 2 启动计算机,听见嘀嘀两声,按F1键进入systerm management services 界面,选择boot sequence 。 3 将CD-ROM设置为启动顺序1,保存设置。 4 进入安装界面,开始一个全新系统安装。 5 提示插入后续盘片,继续安装。 6 注意安装时Kernel 选择64bit,用命令prtcont查看。 7 如选择中文语言,则要求安装盘1、2、7,如不选,则安装盘1、2 机器启动 1. 进入Config
37、erition assistant界面 2. 设定IP地址为70,掩码为。 在安装Oracle前对系统进行配置步骤一检查系统所需软件和修补包4:检查系统安装软件 n 确认安装的AIX版本是否高于5.2-01,否则升级系统版本。 # oslevel -r 5300-00确认是否是 5300-04)需升级到5300-02以上版本就可以。按如下升级: 升级前需打包: bos.adt pat bos. cifs 按smitty-一路回车 a) 扩充usr文件系统到3G 检查usr空间的大小 # df -k Filesystem 1024-blocks Free %Used Iused %Iused M
38、ounted on /dev/hd4 16384 4588 72% 1509 19% / /dev/hd2 1064960 8608 100% 24103 10% /usr 确认文件系统类型jfs jfs2 lsvg -l rootvg (查看文件系统类型,例如如下查看到的是jfs) rootvg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT hd5 boot 1 1 1 closed/syncd N/A hd6 paging 32 32 1 open/syncd N/A hd8 jfslog 1 1 1 open/syncd N/A hd4 j
39、fs 1 1 1 open/syncd / hd2 jfs 65 65 1 open/syncd /usr hd9var jfs 1 1 1 open/syncd /var hd3 jfs 2 2 1 open/syncd /tmp hd1 jfs 1 1 1 open/syncd /home hd10opt jfs 7 7 1 open/syncd /opt 如是jfs 选择日志文件系统类型,如是 jfs2则选择扩展文件系统 用如下命令查看大小,此时查看到的usr的大小为3 G # df -k Filesystem 1024-blocks Free %Used Iused %Iused Mo
40、unted on /dev/hd4 16384 4584 73% 1509 19% / /dev/hd2 3014656 1897104 38% 24103 4% /usr /dev/hd9var 16384 10048 39% 362 9% /var /dev/hd3 32768 31596 4% 51 1% /tmp /dev/hd1 16384 15820 4% 18 1% /home /proc - - - - - /proc /dev/hd10opt 114688 25600 78% 2202 8% /opt b) 将IY58143上传到/usr/sys/inst.images c)
41、 进入/usr/sys/inst.images目录,运行inutoc d) smitty update_all (接受license yes) (而非install APAR) # instfix -ik IY58143 All filesets for IY58143 were found. # oslevel -r 5300-00 e) 重启AIX #shutdown Fr f) 将升级包上传到/usr/sys/inst.images g) 进入/usr/sys/inst.images目录,运行inutoc # cd / # pwd / # cd usr # cd sys # cd ins
42、t.images # inutoc h) smitty update_all (接受license yes) i) OK后 重新启动系统后查看oslevel r (5300-03) # oslevel -r 5300-03 # instfix -i |grep ML All filesets for _AIX_ML were found. All filesets for 5300-02_AIX_ML were found. All filesets for 5300-01_AIX_ML were found. All filesets for 5300-03_AIX_ML were foun
43、d. 如果不成功就执行:Instfix ik 5300-03_AIX_ML 会列出不成功的包 # instfix -ik 5300-03_AIX_ML All filesets for 5300-03_AIX_ML were found.说明已经成功 5:检查AIX系统的安装情况是否符合要求 Oracle要求的AIX的软件包:o bos.adt.baseo bos.adt.libo bos.adt.libmo bos.perf.libperfstato bos.perf.perfstato ctoolso xlC.aix50.rte: or latero xlC.rte: or later确认
44、需要的软件是否安装: # lslpp -l bos.adt.base Fileset Level State Description - Path: /usr/lib/objrepos bos.adt.base 0 COMMITTED Base Application Development Toolkit # lslpp -l bos.adt.lib Fileset Level State Description - Path: /usr/lib/objrepos bos.adt.lib 0 COMMITTED Base Application Development Libraries #
45、 lslpp -l bos.adt.libm lslpp: 0504-132 Fileset bos.adt.libm not installed. # lslpp -l bos.perf.libperfstat Fileset Level State Description - Path: /usr/lib/objrepos bos.perf.libperfstat 0 COMMITTED Performance Statistics Library Interface Path: /etc/objrepos bos.perf.libperfstat COMMITTED Performanc
46、e Statistics Library Interface # lslpp -l ctools Fileset Level State Description - Path: /usr/lib/objrepos ctools 0 COMMITTED Proc Filesystem Tools # # lslpp -l xlC.* Fileset Level State Description - Path: /usr/lib/objrepos xlC.aix50.rte 3 COMMITTED C Set + Runtime for AIX 5.0 xlC.cpp COMMITTED C f
47、or AIX Preprocessor xlC.msg.en_US.cpp COMMITTED C for AIX Preprocessor Messages-U.S. English xlC.msg.en_US.rte COMMITTED C Set + Runtime Messages-U.S. English xlC.rte COMMITTED C Set + Runtime # bos.adt.limb不存在,需要安装。 安装bos.adt.libm 进入菜单smitty,选择安装和更新软件 : 选择安装软件: 进入安装软件后,按F4选择安装软件用到的输入设备,选择CD安装: 进入对于
48、要安装的软件菜单项: 按F4 给出安装列表。在列表中,软件项目之前的符号代表此软件已经安装,+代表未安装: 输入“/”查找软件bos.adt.libm 按F7选择,点击Enter安装: 选择接受License Agreements: 回车开始安装: # lslpp -l bos.adt.libm Fileset Level State Description - Path: /usr/lib/objrepos bos.adt.libm COMMITTED Base Application Development Math Library 检查安装oracel所需操作系统的修补包根据所要安装产品
49、,检查下列修补是否安装: 6: 确认APAR是否安装 AIX所需的修补包如下:: 对于(APARs) for AIX 5L v5.3 ML 02: IY58143: REQUIRED UPDATE FOR AIX 5.3 IY59386: libdepend.mk files are all empty IY60930: Unable to delete network routes IY66513: LDR_CNTRL turns on undesirable option when initialized with incorrect value IY70159: krtl relocat
50、ion problem 验证以上的包是否已经安装 # instfix -ik IY58143 Not all filesets for IY58143 were found. # instfix -ik IY59386 All filesets for IY59386 were found. # instfix -ik IY60930 All filesets for IY60930 were found. # instfix -ik IY66513 All filesets for IY66513 were found. # instfix -ik IY70159 All filesets
51、for IY70159 were found. 通过验证 # instfix -ik IY58143 Not all filesets for IY58143 were found. 步骤三创建安装Oracle所需的UNIX组和用户如果系统首次安装ORACLE数据库软件,则需要创建一些UNIX组和用户。 所需安装如下UNIX组和用户:OSDBA组(dba)、OSOPER(oper)组、Oracle Inventory 组(oinstall)、拥有Oracle软件的用户(oracle)。所创建用户必须把Oracle Inventory 组作为首要组,可以把OSDBA和OSOPER组作为次组。 %
52、 7:创建组 1创建Oracle Inventory组 # smit security 选择Groups项,创建oinstall组 按下Enter键创建。 2. 创建OSDBA组(dba): 用上述过程相同的方法创建。 8:创建用户: 1 创建Oracle用户: # smit security 选择Users项,创建oracle用户, 将oinstall作为primary group, 将dba 作为secondary group(group set). 按下enter键创建。 注意: primary group oinstall group set dba 2、设置oracle用户的密码:
53、# passwd oracle Changing password for oracle oracles New password: Enter the new password again: 设置密码为oracle 创建好用户后到/home目录下查看 # cd /home # ls -al total 13 drwxr-xr-x 6 bin bin 512 Aug 16 20:59 . drwxr-xr-x 22 root system 1024 Aug 16 21:35 . drwxr-xr-x 2 root system 512 Aug 16 19:27 TT_DB drwxr-xr-x
54、 2 guest usr 512 Aug 04 2004 guest drwx- 2 root system 512 Aug 04 2004 lost+found drwxr-xr-x 4 oracle oinstall 512 Aug 16 21:34 oracle 确认nobody用户是否存在: # id nobody uid=4294967294(nobody) gid=4294967294(nobody) 步骤内核参数和Shell Limits:9:配置Shell Limits: # smitty 选择Users选项,再选择Change/Show Characteristics of
55、a User选项 在用户名处输入oracle用户名; 修改Soft FILE size为-1;修改Soft CUP time为-1;修改Soft DATA segment为-1;修改Soft STACK size为-1; 按下Enter键确认。 10:配置系统配置参数: # smitty chgsys 设置Maximum number of PROCESSES allowed per user 为2048。 11:创建安装oracle的文件系统查看当前空闲磁盘: # lspv hdisk0 00023f7f00040265 None hdisk1 00023f7f1955b7e1 rootvg
56、 active 创建新的vg查看系统中pp的大小 # lsvg rootvg VOLUME GROUP: rootvg VG IDENTIFIER: 00023f7f00004c00000000001e122e40 VG STATE: active PP SIZE: 16 megabyte(s) VG PERMISSION: read/write TOTAL PPs: 542 (8672 megabytes) MAX LVs: 256 FREE PPs: 312 (4992 megabytes) LVs: 9 USED PPs: 230 (3680 megabytes) OPEN LVs: 8
57、 QUORUM: 2 TOTAL PVs: 1 VG DESCRIPTORS: 2 STALE PVs: 0 STALE PPs: 0 ACTIVE PVs: 1 AUTO ON: yes MAX PPs per VG: 32512 MAX PPs per PV: 1016 MAX PVs: 32 LTG size (Dynamic): 256 kilobyte(s) AUTO SYNC: no HOT SPARE: no BB POLICY: relocatable # lspv hdisk0 00023f7f00040265 datavg active hdisk1 00023f7f195
58、5b7e1 rootvg active 查看激活的vg # lsvg -o datavg rootvg 创建lv 查看刚才创建的lv: # lsvg -l datavg datavg: LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT oralv jfs 600 600 1 closed/syncd N/A 创建文件系统,注意:mount点需要加/ 列出当前的文件系统,查看 # lsfs Name Nodename Mount Pt VFS Size Options Auto Accounting /dev/hd4 - / jfs 32768 - ye
59、s no /dev/hd1 - /home jfs 32768 - yes no /dev/hd2 - /usr jfs 6029312 - yes no /dev/hd9var - /var jfs 32768 - yes no /dev/hd3 - /tmp jfs 65536 - yes no /proc - /proc procfs - - yes no /dev/hd10opt - /opt jfs 229376 - yes no /dev/oralv - /oradata jfs 39321600 rw yes no 查看文件系统的大小 # df -k Filesystem 102
60、4-blocks Free %Used Iused %Iused Mounted on /dev/hd4 16384 4572 73% 1517 19% / /dev/hd2 3014656 1897104 38% 24103 4% /usr /dev/hd9var 16384 10048 39% 363 9% /var /dev/hd3 32768 31596 4% 51 1% /tmp /dev/hd1 16384 15820 4% 18 1% /home /proc - - - - - /proc /dev/hd10opt 114688 25600 78% 2202 8% /opt 查看
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 3917.3-2025纺织品织物撕破性能第3部分:梯形试样撕破强力的测定
- 教育心理学知识的遗忘
- 山东省潍坊市诸城一中2025届高三第一次摸底英语试题含解析
- 浙江长征职业技术学院《数字化设计基础》2023-2024学年第二学期期末试卷
- 天津电子信息职业技术学院《西方文化入门》2023-2024学年第二学期期末试卷
- 公司机器操作事故
- 信息技术 第二册(五年制高职)课件 9.2.1 无人便利店
- 幼儿园小学急救知识培训常见意外事故紧急处理课件
- 信息技术 第二册(五年制高职)课件 7.1.2 信息社会责任的概念和内涵
- 心肺复苏操作2025版
- DB6103∕T 62-2024 宝鸡特色饮食制作规程 岐山臊子面
- 西方文论概览(第二版)-第九章课件
- 国家计量院计量器具检定收费标准
- 数据中心储能应用需求技术报告2024
- 2024年中考语文复习分类必刷:非连续性文本阅读(含答案解析)
- 2024年领导干部任前廉政知识测试试卷题库及答案
- 糖尿病足溃疡创面治疗专家共识
- DL∕ T 949-2005 水工建筑物塑性嵌缝密封材料技术标准
- 机电金结设备安装自检报告
- 河南科学技术出版社小学信息技术六年级上册教案
- 2024年红十字应急救护知识竞赛考试题库500题(含答案)
评论
0/150
提交评论