透明 发表于 2015-1-16 22:39:54

MYSQL网页设计利用Oracle9i的新特性-停留(QUIESCING)...

尽管DBaaS模式有缺点,但它还是适合某些客户群体,这为解决方案提供商提供了新的商机。鉴于云服务的增长,解决方案提供商除了拥抱这些技术还有什么选择呢?如果他们不这样做,他们就会冒着被竞争对手击败的风险。但他们不能只想到如何把DBaaS的利润率与企业内部系统相比较。oracle|数据|数据库
原SameerWadhwa

停留(Quiescing)一个数据库是一个壮大的新特性,使得DBA能够完成一些数据库处于受限形式(restrictedmode)才干完成的一些操纵。利用这个特性,当以sys或system帐户上岸后,DBA能够实行查询,PL/SQL,和举行别的的一些事件。而一切别的用户的会话都将处于停息(suspended)的形态,一旦DBA把数据库置回到一般形式,用户的这些会话又将会主动持续运转了。



a:数据库处于一般形态.



b:数据库处于形态.

a是数据库处于一般形式的体系形态,在这类形式中DBA和用户的事件都是运转着的。一些DBA的事件是被限定着的,由于数据库必需处于受限形式时才能够运转这些事件。相反的方面,b是数据库处于停留形态的情形,在图中,一切用户的事件都是被堵塞(blocked)着的,而没有重启数据库到受限形式,DBA的事件也毫无成绩的运转着。



一旦一切举动的会话都实行了commit或rollback,数据库将会被停留。

让我们看一下它是怎样举行的。停留数据库所用的次要的命令为ALTERSYSTEMQUIESCERESTRICTED;我将起首利用SQLPLUS上岸实行这个操纵。

C:>U:>sqlplus/nolog

SQL*Plus:Release9.2.0.1.0-ProductiononWedApr1616:08:272003

Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.

SQL>connectsys/change_on_installassysdba
Connected.

SQL>ALTERSYSTEMQUIESCERESTRICTED;
ALTERSYSTEMQUIESCERESTRICTED
*
ERRORatline1:
ORA-25507:resourcemanagerhasnotbeencontinuouslyon

如上的毛病标明资本办理器(resourcemanager)长短举动的,要使它举动你能够如许:

SQL>altersystemsetresource_manager_plan=SYSTEM_PLANscope=spfilesid=OR9I;

Systemaltered.

OR9i是我的SID.

做完这个操纵你不能不重启一下数据库了。

SQL>showparameterRESOURCE_MANAGER_PLAN

NAMETYPEVALUE

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

resource_manager_planstringSYSTEM_PLAN

SQL>ALTERSYSTEMQUIESCERESTRICTED;

Systemaltered.

假如有一些未决的事件必要提交或回滚的话,先前的那条命令将会挂起而守候事件的完成。如想断定是哪些用户的会话没提交或回滚,你能够用以下的语句。

SELECTS.SID,S.SERIAL#,S.MACHINE,S.TERMINAL,S.USERNAME
FROMV$SESSIONSWHERES.SIDIN
(SELECTSIDFROMV$LOCKWHERETYPE=TX)
/

查询的了局将会供应充分的信息使你可以请求那些用户提交、回滚或停止他们的事件。更坏一点的情形是你能够杀失落这些会话,会话将被被主动回滚。体系处于停留形态后,你就能够不受别的用户的搅扰举行事情了,完成事情后你能够用以下命令排除这类停留的形态:

SQL>ALTERSYSTEMUNQUIESCE;

Systemaltered.
情形1:
事件按次

用户会话

DBA会话

(1)

ConnectedwithSCOTT

SQL>updateemp3set

ename=John

whereename=samir;

ConnectedwithSYS

(2)



SQL>ALTERSYSTEMQUIESCERESTRICTED;



守候用户SCOTT完成事件.

(3)

SQL>commit;



Commitcomplete.



(4)



Systemaltered.

第一种情形标明,在一切举动的事物完成前DBA是不克不及停留数据库的。一旦数据库停留了,库对别的的用户出现的是中断(halt)或非举动(inactive)的形态。然后当数据库变成一般形态后,一切的数据块和停息的事件又持续运转了。

情形2:

事件按次

用户会话

DBA会话

(1)

ConnectedwithScottUser.

ConnectedwithSYS.

SQL>ALTERSYSTEMQUIESCERESTRICTED;

Systemaltered.

(2)

Select*fromEMP;

waitforresult



(3)



SQL>ALTERSYSTEMUNQUIESCE;

Systemaltered.



EMPNOENAMESALARY

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

1Sasa1000

2John5000

3Hema7000

Usercanseetheresults.



情形2标明它怎样影响了用户的会话。简而言之,此时体系关于终极用户是一时的有效。
一般的一些成绩:
(Q)做为DBA的你怎样反省你的数据库是甚么形态呢?

(A)你能够反省V$INSTANCE视图中的ACTIVE_STATE这上字段。

SQL>SELECTACTIVE_STATEFROMV$INSTANCE;

ACTIVE_ST

---------

NORMAL

ACTIVE_STATE有以下几个大概值:

Active_state

形貌
Normal
数据库处于一般形态

QUIESCING

DATABASEwantstoQUIESCEDbutwaitingforactiverunningtransactionstofinish.

数据库要想停留,但要守候举动的运转事件完成。





Quiesced

数据库处于停留的形态了.



(Q)如何断定哪些毗连着库的会话在守候停留着的数据库呢?

(A)能够用以下的查询来断定:

SELECTSID,EVENT,TOTAL_WAITS,TIME_WAITED"TIMEWAITED",

AVERAGE_WAITFROMV$SESSION_EVENT

WHEREEVENT=waitforpossibleQUIESCEfinish

/

SQL>

SIDEVENTTOTAL_WAITSTimeWaitedAVERAGE_WAIT

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

6waitforpossibleQUIESCEfinish412126532307

"waitforpossibleQUIESCEfinish"这个事务标明会话正等着“正停留”的数据库以致于它不克不及举行它的事物。库停留后这些会话将出现hung的形态。

(Q)在停留数据库之前,关于资本办理器企图(resourcemanagerplan)必要做甚么设定?

(A)当你停留了数据库,INTERNAL_QUIESCE资本企图被激活了。除SYS_GROUPS别的一切的资本组中的ACTIVE_SESS_POOL_P1应被设置为0。因SYS和SYSTEM用户都属于SYS_GROUPS组,以是只要它们能够毗连到数据库。

要检察细节的信息能够查询DBA_RSRC_PLAN_DIRECTIVES这个视图。

记住以下几点:
处于停留形态的数据库只要SYS和SYSTEM是无效的用户来实行保护的事情;别的有DBA权限的用户也被视为一样平常的用户。在停留的数据库中备份数据文件(泠备,拷贝数据文件)是有效的。假如库中有“举动”的事件,库是不克不及被停留的。.
必要启动数据库以设置资本企图
停留数据是9i的新特性,因而之前的版本中是不克不及用的。
结论:

停留数据库是一个壮大的特性使DBA不用重启数据库就能够实行一些出格的保护事情。
与其他数据库相比,MySQL易学易用。

因胸联盟 发表于 2015-1-19 21:04:58

比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。

精灵巫婆 发表于 2015-1-26 16:26:24

可以动态传入参数,省却了动态SQL的拼写。

冷月葬花魂 发表于 2015-2-4 18:16:29

个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。

小女巫 发表于 2015-2-10 05:15:20

相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐

海妖 发表于 2015-2-28 21:31:53

但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)

金色的骷髅 发表于 2015-3-10 08:15:13

需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。

山那边是海 发表于 2015-3-17 06:08:04

理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识

admin 发表于 2015-3-23 22:47:12

备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
页: [1]
查看完整版本: MYSQL网页设计利用Oracle9i的新特性-停留(QUIESCING)...