仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1132|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网站制作之ORACLE回滚段的概念,用法和计划及成绩...

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:18:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
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 [PUBLIC] ROLLBACK SEGMENT rollback_segment

     [TABLESPACE tablespace]

     [STORAGE (][INITIAL integer][K|M]] [NEXT integer][K|M]]

           [MINEXTENTS integer]

           [MAXTENTS {integer|UNLIMITED}]

           [OPTIMAL {integer][K|M]|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

  [STORAGE (][NEXT integer][K|M]]

       [MINEXTENTS integer]

       [MAXEXTENTS {integer|UNLIMITED}]

       [OPTIMAL {integer][K|M]|NULL}]) ]

  例:

  ALTER ROLLBACK SEGMENT rbs01 STORAGE (MAXEXTENTS 1000);

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

  语法:

  ALTER ROLLBACK SEGMENT rollback_segment SHRINK [TO integer ][K|M]];

  申明:

   假如不指明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
再见西城 该用户已被删除
5#
发表于 2015-3-2 21:13:31 | 只看该作者
爱上php,他也会爱上你。
精灵巫婆 该用户已被删除
6#
发表于 2015-3-11 06:17:26 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
飘灵儿 该用户已被删除
7#
发表于 2015-3-17 22:10:21 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
小魔女 该用户已被删除
8#
发表于 2015-3-19 18:48:21 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
谁可相欹 该用户已被删除
9#
发表于 2015-3-21 01:01:19 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
10#
发表于 2015-4-6 12:01:24 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
变相怪杰 该用户已被删除
11#
发表于 2015-4-11 22:29:52 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
第二个灵魂 该用户已被删除
12#
发表于 2015-4-12 21:02:07 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
深爱那片海 该用户已被删除
13#
发表于 2015-4-12 21:21:45 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
若天明 该用户已被删除
14#
发表于 2015-4-13 07:22:58 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
分手快乐 该用户已被删除
15#
发表于 2015-4-13 11:57:54 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
莫相离 该用户已被删除
16#
发表于 2015-4-16 00:40:54 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
简单生活 该用户已被删除
17#
发表于 2015-4-16 16:05:40 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
不帅 该用户已被删除
18#
发表于 2015-4-26 08:33:41 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
兰色精灵 该用户已被删除
19#
发表于 2015-5-6 19:11:41 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
愤怒的大鸟 该用户已被删除
20#
发表于 2015-5-10 08:15:10 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 00:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表