因胸联盟 发表于 2015-2-4 00:18:16

PHP网站制作之ORACLE回滚段的概念,用法和计划及成绩...

PHP的理解是新手最难迈过的一道门槛,不过你应该感到幸运的是PHP已经最大极限的为了新手而努力了,如果你学过其他的语言,也许会觉得PHP的确相当的简单,但是如果你之前什么都没学过,那么阿弥陀佛,硬着头皮琢磨吧。oracle|概念|计划|处理|成绩      回滚段办理一向是ORACLE数据库办理的一个困难,本文经由过程实例引见ORACLE回滚段的概念,用法和计划及成绩的处理。

回滚段概述
  回滚段用于寄存数据修正之前的值(包含数据修正之前的地位和值)。回滚段的头部包括正在利用的该回滚段事务的信息。一个事务只能利用一个回滚段来寄存它的回滚信息,而一个回滚段可以寄存多个事务的回滚信息。

回滚段的感化
  事务回滚:当事务修正表中数据的时分,该数据修正前的值(即前影象)会寄存在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会使用回滚段中的数据前影象来将修正的数据恢复到本来的值。

  事务恢复:当事务正在处置的时分,例程掉败,回滚段的信息保留在重做日记文件中,ORACLE将鄙人次翻开数据库时使用回滚来恢复未提交的数据。

  读分歧性:当一个会话正在修正数据时,其他的会话将看不到该会话未提交的修正。并且,当一个语句正在履行时,该语句将看不到从该语句入手下手履行后的未提交的修正(语句级读分歧性)。当ORACLE履行SELECT语句时,ORACLE按照以后的体系改动号(SYSTEM CHANGE NUMBER-SCN)来包管任何前于以后SCN的未提交的改动不被该语句处置。可以想象:当一个长工夫的查询正在履行时,若其他会话改动了该查询要查询的某个数据块,ORACLE将使用回滚段的数据前影象来机关一个读分歧性视图。

事务级的读分歧性
  ORACLE普通供应SQL语句级(SQL STATEMENT LEVEL)的读分歧性,可以用以下语句来完成事务级的读分歧性。

  SET TRANSACTION READ ONLY;

  或:

  SET TANNSACTION SERIALIZABLE;

  以上两个语句都将在事务入手下手后供应读分歧性。需求注重的是,利用第二个语句对数据库的并发性和功能将带来影响。

回滚段的品种
  体系回滚段:当数据库创立后,将主动创立一个体系回滚段,该回滚段只用于寄存体系表空间中对象的前影象。

  非体系回滚段:具有多个表空间的数据库最少应当有一个非体系回滚段,用于寄存非体系表空间中对象的数据前影象。非体系回滚段又分为公有回滚段和私有回滚段,公有回滚段应在参数文件的ROLLBACK SEGMENTS参数中列出,以便例程启动时主动使其在线(ONLINE)。私有回滚段普通在OPS(ORACLE并行办事器)中呈现,将在例程启动时主动在线。

  DEFERED回滚段:该回滚段在表空间离线(OFFLINE)时由体系主动创立,当表空间再次在线(ONLINE)时由体系主动删除,用于寄存表空间离线时发生的回滚信息。

回滚段的利用
  分派回滚段:当事务入手下手时,ORACLE将为该事务分派回滚段,并将具有起码事务的回滚段分派给该事务。事务可以用以下语句请求指定的回滚段:

  SET TRANSTRACTION USE ROLLBACK SEGMENT rollback_segment

  事务将以按次,轮回的体例利用回滚段的区(EXTENTS),铛铛前区用满后移到下一个区。几个事务可以写在回滚段的统一个区,但每一个回滚段的块只能包括一个事务的信息。

  例如(两个事务利用统一个回滚段,该回滚段有四个区):

  1、事务在停止中,它们正在利用回滚段的第三个区;

  2、当两个事务发生更多的回滚信息,它们将持续利用第三个区;

  3、当第三个区满后,事务将写到第四个区,当事务入手下手写到一个新的区时,称为翻转(WRAP);

  4、当第四个区用满时,假如第一个区是余暇或非举动(利用该区的一切事务完成而没有举动的事务)的,事务将接着利用第一个区。

回滚段的扩大(EXTEND)
  铛铛前回滚段区的一切块用完而事务还需求更多的回滚空间时,回滚段的指针将移到下一个区。当最初一个区用完,指针将移到第一个区的后面。回滚段指针移到下一个区的条件是下一个区没有举动的事务,同时指针不克不及跨区。当下一个区正在利用时,事务将为回滚段分派一个新的区,这类分派称为回滚段的扩大。回滚段将一向扩大到该回滚段区的个数抵达回滚段的参数MAXEXTENTS的值时为止。

回滚段的收受接管和OPTIMAL参数
  OPTIMAL参数指明回滚段余暇时压缩到的地位,指明回滚段的OPTIMAL参数可以削减回滚段空间的华侈。
创立回滚段
  语法:

  CREATE ROLLBACK SEGMENT rollback_segment

    

     ] ]

          

          

           |NULL}]) ]

  注:

   回滚段可以在创立时指明PRIVATE或PUBLIC,一旦创立将不克不及修正。

   MINEXTENTS 必需大于等于2

   PCTINCREASE必需是0

   OPTIMAL假如要指定,必需大于等于回滚段的初始巨细(由MINEXTENTS指定)

  建议:

   普通情形下,INITIAL=NEXT

   设置OPTIMAL参数来勤俭空间的利用

   不要设置MAXEXTENTS为UNLIMITED

   回滚段应创立在一个特定的回滚段表空间内

  例:

  CREATE ROLLBACK SEGMENT rbs01

   TABLESPACE rbs

   STORAGE ( INITIAL 100K NEXT 100K MINEXTENTS 10

       MAXEXTENTS 500 OPTIMAL 1000K);

使回滚段在线
  当回滚段创立后,回滚段是离线的,不克不及被数据库利用,为了使回滚段被事务使用,必需将回滚段在线。可以用以下号令使回滚段在线:

  ALTER ROLLBACK SEGMENT rollback_segment ONLINE;

  例:

  ALTER ROLLBACK SEGMENT rbs01 ONLINE;

  为了使回滚段在数据库启动时主动在线,可以在数据库的参数文件中列出回滚段的名字。例如在参数文件中到场以下一行:

  ROLLBACK_SEGMENT=(rbs01,rbs02)

修正回滚段的存储参数
  可使用ALTER ROLLBACK SEGMENT号令修正回滚段的存储参数(包含OPTIMAL,MAXEXTENTS)。

  语法:

  ALTER ROLLBACK SEGMENT rollback_segment

  ]

      

      

       |NULL}]) ]

  例:

  ALTER ROLLBACK SEGMENT rbs01 STORAGE (MAXEXTENTS 1000);

收受接管回滚段的空间
  假如指定了回滚段的OPTIMAL参数,ORACLE将主动收受接管回滚段到OPTIMAL指定的地位。用户也能够手动收受接管回滚段的空间。

  语法:

  ALTER ROLLBACK SEGMENT rollback_segment SHRINK ];

  申明:

   假如不指明TO integer的数值,ORACLE将试图收受接管到OPTIMAL的地位。

  例:

  ALTER ROLLBACK SEGMENT rbs01 SHRINK TO 2M;

使回滚段离线
  为了到达以下两个目标将要回滚段离线:

  1.禁止新的事务利用该回滚段;

  2.该回滚段必需删除。

  语法:

   ALTER ROLLBACK SEGMENT rollback_segment OFFLINE;

  例:

   ALTER ROLLBACK SEGMENT rbs01 OFFLINE;

  申明:

   假如有事务正在利用该回滚段,运转该号令后,回滚段的形态将是PENDING OFFLINE。事务停止后,形态将改成OFFLINE,可以经由过程V$ROLLSTAT查询回滚段的形态。

删除回滚段
  当回滚段不再需求或要重建以改动INITIAL,NEXT或MINEXTENTS参数时,可以将其删除。要删除回滚段,不准使该回滚段离线。

语法:

  DROP ROLLBACK SEGMENT rollback_segment;

例:

  DROP ROLLBACK SEGMENT rbs01;

查询回滚段的信息
  所用数据字典:DBA_ROLLBACK_SEGS

  可以查询的信息:回滚段的标识(SEGMENT_ID)、称号(SEGMENT_NAME)、地点表空间(TABLESPACE_NAME)、类型(OWNER)、形态(STATUS)。

  例:

  SQL>SELECT segment_name,tablespace_name,owner,status FROM dba_rollback_segs;

回滚段的统计信息
  数据字典:V$ROLLNAME,V$ROLLSTAT

  例:

  SQL>SELECT n.name,s.extents,s.rssize,s.optsize,s.hwmsize,s.xacts,s.status

    FROM v$rollname n,v$rollstat s

    WHERE n.usn=s.usn;

回滚段确当前举动事务
  数据字典:V$SESSION,V$TRANSACTION

  例:

  SQL>SELECT s.username,t.xidusn,t.ubafil,t.ubablk,t.used_ublk

    FROM v$session s,v$transaction t

    WHERE s.saddr=t.ses_addr;

   USERNAME  XIDUSN   UBAFIL   UBABLK  USED_UBLK

   -------  -------- ----------- ----------- -----------

   SYSTEM      2      2     7      1

   SCOTT       1      2    163      1

   2 rows selected.

回滚段的数目计划
  关于OLTP体系,存在大批的大事务处置,普通建议:

  数目多的小回滚段;每四个事务一个回滚段;每一个回滚段不要超越十个事务。

  关于批处置,普通建议:

  少的大回滚段;每一个事务一个回滚段。

回滚段的成绩及处理办法
  成绩一:事务请求的回滚段空间不敷,体现为表空间用满(ORA-01560毛病),回滚段扩大抵达参数MAXEXTENTS的值(ORA-01628)。

  处理办法:向回滚段表空间添加文件或使已有的文件变大;增添MAXEXTENTS的值。

  成绩二:读分歧性毛病(ORA-01555 SNAPSHOT TOO OLD)

  处理办法:增添MINEXTENTS的值,增添区的巨细,设置一个高的OPTIMAL值。

  
   如果你单纯是为了做网站赚钱,我想你还是别学php的好,去学ASP,JSP好了,毕竟它们有实力雄厚的公司去支持它们。

灵魂腐蚀 发表于 2015-2-4 11:06:05

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

蒙在股里 发表于 2015-2-9 22:18:48

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

海妖 发表于 2015-2-23 11:37:03

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

再见西城 发表于 2015-3-2 21:13:31

爱上php,他也会爱上你。

精灵巫婆 发表于 2015-3-11 06:17:26

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

飘灵儿 发表于 2015-3-17 22:10:21

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

小魔女 发表于 2015-3-19 18:48:21

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

谁可相欹 发表于 2015-3-21 01:01:19

Ps:以上纯属原创,如有雷同,纯属巧合

仓酷云 发表于 2015-4-6 12:01:24

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

变相怪杰 发表于 2015-4-11 22:29:52

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

第二个灵魂 发表于 2015-4-12 21:02:07

找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。

深爱那片海 发表于 2015-4-12 21:21:45

兴趣是最好的老师,百度是最好的词典。

若天明 发表于 2015-4-13 07:22:58

基础有没有对学习php没有太大区别,关键是兴趣。

分手快乐 发表于 2015-4-13 11:57:54

真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,

莫相离 发表于 2015-4-16 00:40:54

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

简单生活 发表于 2015-4-16 16:05:40

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

不帅 发表于 2015-4-26 08:33:41

没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。

兰色精灵 发表于 2015-5-6 19:11:41

基础有没有对学习php没有太大区别,关键是兴趣。

愤怒的大鸟 发表于 2015-5-10 08:15:10

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
页: [1]
查看完整版本: PHP网站制作之ORACLE回滚段的概念,用法和计划及成绩...