我们拒绝平庸,拒绝随波逐流,拒绝墨守成规,让梦想不再流浪。

Oracle的体系结构和启动关闭专题研究

上一篇 / 下一篇  2014-07-17 17:09:40 / 个人分类:甲骨文

Oracle的体系结构数据库的体系结构是从某一角度来分析数据库的组成和工作过程,以及数据库如何管理和组织数据,因此,这部分内容对全面深入地掌握Oracle数据库系统是至关重要的,对于初学者而言,体系结构与基本理论的学习会涉及到大量新的概念和术语,掌握这些概念和术语后对于以后的学习会如虎添翼。
D7u+S&h:dibz0知识要点: }Oracle实例与数据库 }Oracle数据库的物理存储结构 }Oracle数据库的逻辑存储结构 }逻辑存储结构与物理结构的关系 }Oracle实例的内存结构 }Oracle实例的进程结构 }了解主要后台进程的作用 }理解Oracle数据库中数据字典的作用51Testing软件测试网YSugF*I,[Rl[
oracle体系结构概述
tK&bQq o$G&]3P1@0完整的Oracle数据库系统通常由两个部分组成:实例(instance)和数据库(database)。数据库是由一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);实例则是由一组Oracle后台进程/线程以及在服务器分配的共享内存区。
q1I6n)XYJ3w:p JH0Oracle体系结构:51Testing软件测试网{6hd+Qj!F
51Testing软件测试网W6Cp{Q*C_
              instance   --进程(用户进程、服务进程、后台进程)、内存51Testing软件测试网5h#U0s` D J$myz
         
$R^SFf AG0              database   -- datafile、controlfile、redolog、parameterfile51Testing软件测试网N1~4H8Do[

_V@ Fh |m+hB0
'?6`9yd S \c n051Testing软件测试网CRf+J8RAV`
DATABASE51Testing软件测试网ke1dc9MdXY H
查看datafile文件:
3H8MS v,u%x%Fs[0       select name from v$datafile;51Testing软件测试网pp `z'^4^ Y5]
查看控制文件:
:K7C `@G/@BM9M!\0       select * from v$controlfile;51Testing软件测试网2q8r(xim!U)wl
查看联机日志文件:
[0AQf$k0e/z0       select * from v$logfile; 51Testing软件测试网%J i9GQKeL
51Testing软件测试网9L1cw6ZA2]X J
一个数据库的database,必须具备:1个controlfile、2个datafile(system.dbf、sysaux.dbg)、2个redolog51Testing软件测试网 O^l'f2S9o;R_ A F

:i Z o+GL0
_'~@3o)r K0ARCHIVE 模式
c*d[lV0Oracle归档模式与非归档模式设置:
EX} d_s B0Oracle的日志归档模式可以有效的防止instance和disk的故障,在数据库故障恢复中不可或缺,由于oracle初始安装模式为非归档模式,因此需要将其设置为归档模式,下面就其方法和步骤做一些总结。?51Testing软件测试网s;ZQg!Y I+V:RJ{
例子是建立在windowsXP和oracle11g的环境下,如有环境不同,仅供参考。51Testing软件测试网N#CG#}6hH
Oracle非归档模式设置为归档模式方法步骤:51Testing软件测试网wkUk j"U%U
1,? 运行cmd命令,开启sql*plus51Testing软件测试网&Y7S d'EL,@2~
C:\Documents and Settings\Administrator>sqlplus/nolog
1oz5O$G'_z2e-F02,? 以sysdba身份连接数据库
](V1c{*sy4Ip0SQL> CONNECT / AS SYSDBA51Testing软件测试网psA'UOI:c
3,? 若数据库是打开的,首先关闭卸载数据库。
A ]%F8ne0SQL> SHUTDOWN
$[ w!iZ9Z^'m04,? 以mount模式打开数据库。51Testing软件测试网u,_{;f|6`N&B
SQL> STARTUP MOUNT
0D I#_#wt(L)\F05,? 查询当前归档模式
FK7ST'|"i&N,?0SQL> ARCHIVE  LOG  LIST51Testing软件测试网3@/iB3bZ\H*@
数据库日志模式             非存档模式
&[?z/E#w3N H]0自动存档             禁用
GP&j^ R8gA7k5Lx$^0存档终点            USE_DB_RECOVERY_FILE_DEST51Testing软件测试网.am2GjSfl
最早的联机日志序列     1
h7H].J,dN;eC0当前日志序列           151Testing软件测试网 v(fk)T Ym0o
6,? 更改归档模式为ARCHIVELOG
4S0^ s5}SV6n0SQL> ALTER DATABASE ARCHIVELOG;51Testing软件测试网_[*sl5Z/m
7,? 重新查询归档模式
` S1g&s n0SQL> ARCHIVE  LOG  LIST
-q"u"Rrb;W0数据库日志模式            存档模式
fR"Ya3fn0自动存档             启用
7Sr } t \D0存档终点            USE_DB_RECOVERY_FILE_DEST51Testing软件测试网P8yer:wq W AP
最早的联机日志序列     1
7`1M fF:qo0下一个存档日志序列   1
/G-FG&mBIh]+eV0当前日志序列           151Testing软件测试网d7^0^!d-M IN,[7P
8,? 打开数据库
T+B'B*Z:hqH'bJ3A7@.g0SQL> ALTER  DATABASE  OPEN;
h*v)v%q$i8a7Z3i~a0数据库归档模式设置已经完成,查询其归档模式除了ARCHIVE  LOG  LIST方法外,也可以通过v$database来查询,语法如下:
4vnR{{g7o9W~Q0    SQL> select  log_mode  from  v$database;51Testing软件测试网rekt`7Xl\
?
6b Fr$z+PZ,B0LOG_MODE51Testing软件测试网:J jt \ X
------------51Testing软件测试网CwQM IEs5i
ARCHIVELOG51Testing软件测试网zg*T(mo.k d9bH
?51Testing软件测试网C\ t*G[/C l)]8L
?
P;S^{Vzg)Xa0如果因特殊需要,需要重新设置数据库为非归档模式,可以参照如下方法。
~ Ej!\@V:q0Oracle归档模式设置为非归档模式方法步骤:51Testing软件测试网 s FMM8IJ2}$g8u
1,运行cmd命令,开启sql*plus51Testing软件测试网;h0f#QhY-}4N
C:\Documents and Settings\Administrator>sqlplus/nolog51Testing软件测试网M4ol(U.\+sH5fq"s2E
2以sysdba身份连接数据库51Testing软件测试网dr1R0Fb(L.D
SQL> CONNECT / AS SYSDBA51Testing软件测试网7tZ QMx8A IS
3,? 若数据库是打开的,首先关闭卸载数据库。
x'qc?cPq0SQL> SHUTDOWN51Testing软件测试网Lx.K+tl*o^K-_ o.?
4,? 以mount模式打开数据库。51Testing软件测试网}gNIgd'To
SQL> STARTUP MOUNT51Testing软件测试网,Q HfP"XT-t
5,? 查询当前归档模式
2F2nMo3a0SQL> ARCHIVE  LOG  LIST
N"h\!QZ0数据库日志模式            存档模式
}9u3U!YdRnl(R [0自动存档             启用51Testing软件测试网YQT3m.Jef$fu
存档终点            USE_DB_RECOVERY_FILE_DEST51Testing软件测试网`(I;sz9n2P
最早的联机日志序列     1
%_.aN B,x%`0下一个存档日志序列   151Testing软件测试网4? s,_&Sx;j
当前日志序列           1
&cc'q)rC+]06,? 更改归档模式为ARCHIVELOG
`:_Qe V^hMMYn0SQL> ALTER DATABASE NOARCHIVELOG;
0fpH dZ8Z07,? 重新查询归档模式
4]$_VZ*`1`0SQL> ARCHIVE  LOG  LIST
T#s ChL8K?5X`'t{0数据库日志模式             非存档模式
qM\S'jG0_0自动存档             禁用
3jVArE!y0存档终点            USE_DB_RECOVERY_FILE_DEST
Hb)]-UA#c`(j0最早的联机日志序列     1
ztkO.Ge |8uy0当前日志序列           151Testing软件测试网\ I;S%j4y X@
8,? 打开数据库
[Uq}$`4q0SQL> ALTER  DATABASE  OPEN;
4t%i q(Y8N5p4U0也可以通过v$database来查询,语法如下:
Mm$xQ G'R0SQL> select  log_mode  from  v$database;
S|VM0H1`9Xy0?
d(y,L(aY'w2f UNV/p0LOG_MODE51Testing软件测试网EOX QF;^2` h_)B
------------
I:Pl(b&_ y!~3q0NOARCHIVELOG
D+@eCo oCn0
2u-]"F5GGg(R0
"o*u@p~m }`y0逻辑存储结构
\I,os5e9o0k a:j1k'EV0逻辑存储结构是Oracle数据库存储结构的核心内容,对Oracle数据库的所有操作都会涉及到其逻辑存储结构。数据库的逻辑结构是从逻辑的角度分析数据库的构成,即创建数据库后形成的逻辑概念之间的关系。在逻辑上,Oracle将保存的数据划分为一个个小单元来进行存储和维护,高一级的存储单元由一个或多个低一级的存储单元组成。51Testing软件测试网 p*G5~U*h&m9@F3`
Oracle的表空间由若干的数据文件(OS级)所组成。一个表空间最多可以有1024个数据文件组成。
e t }:hdJ.K0数据库  ?  表空间  ? 段(主要包括:回滚段、临时段、索引段、数据段) ?  盘区  ? 块(BLOCK)
2wVBm:nem0块,是数据库测最小存储单位。51Testing软件测试网x2N;`9Q]@V ?
数据文件的大小受块大小的限制。
-}7n??@4}0数据块
)g$~.RNvly0数据块是Oracle用来管理存储空间的最小单元,也是执行数据库输入输出操作时的最小单位。相对应地,操作系统执行输入输出操作的最小单位为一个操作系统块的大小。在操作系统中,执行I/O操作是以操作系统块为单位,而在Oracle中,执行的I/O操作以Oracle数据块为单位
O}"h$Z|cQ)D J0数据块大小(单位:K)    BFT 最大值(单位:T)       2k????????????????????? 8T       4k????????????????????? 16T       8k????????????????????? 32T       16k???????????????????? 64T       32k???????????????????? 128T SQL> show parameter cache_size51Testing软件测试网EW|Gsic&S{
51Testing软件测试网3z&lF h$K|(S wu)@v
NAME                                 TYPE        VALUE51Testing软件测试网 u~*p7nKse
------------------------------------ ----------- -----------
/A E/[.dcv@0client_result_cache_size             big integer 0
\:m6s7z.?$^\Q!s"X/v0db_16k_cache_size                    big integer 0
,CV]dw8c0db_2k_cache_size                     big integer 0
Dh,A:g y1O s G0db_32k_cache_size                    big integer 051Testing软件测试网*caO8b o2Cg
db_4k_cache_size                     big integer 0
N HHs)Ut9Z$I-C0db_8k_cache_size                     big integer 0
.]J_2LZ!or!Lbg0db_cache_size                        big integer 0
%`n ?&@ z?3@0db_keep_cache_size                   big integer 0
V1P Vj2~)qCV*FY1m0db_recycle_cache_size                big integer 051Testing软件测试网+Yq+Wq H(qd
SQL>51Testing软件测试网/J M0a+t*SZ4@

P6k'|5w5Q/Nc0一般数据库使用的块的大小是8K,Oracle中block的大小在创建数据库的时候的DB_BLOCK_SIZE确定,一旦确定,不能改变。51Testing软件测试网 m0IA f%l)x[2A;w'm
51Testing软件测试网e7r$@ZN/E
数据块的格式
;aKI8R?Ez0    块中存放表的数据和索引的数据,无论存放哪种类型的数据,块的格式都是相同的。51Testing软件测试网+|jk}uGH,l.}l
块的组成:
(x;qov-s*^Y0    块头(header/Common and Variable)
xA4_}zz0    表目录(Table Directory)
RNr%S8Y[V0    行目录(Row Directory)51Testing软件测试网,ucq8}J
    自由空间(Free Space)51Testing软件测试网V\ n0R/_ La
    行数据(Row Data)51Testing软件测试网dul._6oD

]*A|?,^0块头(header/Common and Variable):存放块的基本信息,如:块的物理地址,块所属的段的类型(是数据段还是索引段)。
6W#bG`9}Ai0表目录(Table Directory):存放表的信息,即:如果一些表的数据被存放在这个块中,那么,这些表的相关信息将被存放在“表目录”中。51Testing软件测试网3Dx+Me kS
行目录(Row Directory):如果块中有行数据存在,则,这些行的信息将被记录在行目录中。这些信息包括行的地址等。51Testing软件测试网$[8u7k,l,zHQ
行数据(Row Data):是真正存放表数据和索引数据的地方。这部分空间是已被数据行占用的空间。51Testing软件测试网TT9@7I'M
空余空间(Free Space):空余空间是一个块中未使用的区域,这片区域用于新行的插入和已经存在的行的更新。
'H t#\#y6iLsN0头部信息区(Overhead):我们把块头(header/Common and Variable),表目录(Table Directory),行目录(Row Directory)这三部分合称为头部信息区(Overhead)。头部信息区不存放数据,它存放的整个块的信息。头部信息区的大小是可变的。一般来说,头部信息区的大小介于84字节(bytes)到107字节(bytes)之间。
Udc]5\Y Q}0
%rz*N&Y Zm:z m_0盘区51Testing软件测试网lI[y)q/E
盘区是由一系列物理上连续存放的数据块所构成的Oracle存储结构,由一个或多个数据块组成一个盘区,而一个或多个盘区组成一个段。当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的盘区。盘区是Oracle存储分配的最小单位。51Testing软件测试网*K7I;@ c,NNc"o
盘区(Extent)Extent:连续的块组成extent。
+J!ByMe a0段:段是由一系列区组成的,它也不再是存储空间的分配单位,而是一个独立的逻辑存储结构。对于具有独立存储结构的对象,它的数据全部存储在保存它的段中。一个段只属于一个特定的数据库对象,每当创建一个具有独立段的数据库对象时,Oracle将为它创建一个段。51Testing软件测试网nE tk k)z)F Q
段(Segment)
U*^l}n}3~A~%B0     Segment:一旦oracle建立一个逻辑结构(如table、index),就建立一个segment。51Testing软件测试网F)GLc+]!S9A[K
     一个segment至少有一个extent(一个extent至少有一个block)。51Testing软件测试网T1KJg Pk
  
#\"H6{*z,K7O0Zn0   注意:         一个segment只能属于一个tablespace。51Testing软件测试网am O B/gEi

4?,]2U'v'a `\iyE0表空间
5B4OG8H ?9QL0表空间是在Oracle中用户可以使用的最大的逻辑存储结构,用户在数据库中建立的所有内容都被存储在表空间中。Oracle使用表空间将相关的逻辑结构组合在一起,表空间在物理上与数据文件相对应,每一个表空间是由一个或多个数据文件组成的,一个数据文件只可以属于一个表空间,这是逻辑与物理的统一。51Testing软件测试网4CvZ+Xj sj7l
建立表空间 CREATE TABLESPACE mmsgdata01 DATAFILE '/oracle/oradata/db/MMSGDATA01.dbf'
n"}|-z3vR ya;V0SIZE 500M51Testing软件测试网Y%cF Lq
UNIFORM. SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k 删除表空间 DROP TABLESPACE mmsgdata01 INCLUDING CONTENTS AND DATAFILES; 修改表空间大小 alter database datafile '/opt/oracle/oradata/mmsgdate02.dbf' resize 100M 移动表至另一表空间 alter table move tablespace tablespac_ename; 51Testing软件测试网 nC-o/E w `N[L
一、建立表空间 CREATE TABLESPACE mmsgdata01 DATAFILE '/oracle/oradata/mmsgdb/MMSGDATA01.dbf' SIZE 500M UNIFORM. SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k 二、建立UNDO表空间 CREATE UNDO TABLESPACE UNDOTBS02 DATAFILE '/opt/oracle/oradata/mmsgdb/UNDOTBS02.dbf' SIZE 50M #注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间: ALTER SYSTEM SET undo_tablespace=UNDOTBS02; 三、建立临时表空间 CREATE TEMPORARY TABLESPACE temp_data TEMPFILE '/opt/oracle/oradata/TEMP_DATA.dbf' SIZE 50M 四、改变表空间状态 1.使表空间脱机 ALTER TABLESPACE TABLESPACE_NAME OFFLINE; 如果是意外删除了数据文件,则必须带有RECOVER选项 ALTER TABLESPACE TABLESPACE_NAME OFFLINE FOR RECOVER; 2.使表空间联机 ALTER TABLESPACE TABLESPACE_NAME ONLINE; 3.使数据文件脱机 ALTER DATABASE DATAFILE 3 OFFLINE; 4.使数据文件联机 ALTER DATABASE DATAFILE 3 ONLINE; 5.使表空间只读 ALTER TABLESPACE TABLESPACE_NAME READ ONLY; 6.使表空间可读写 ALTER TABLESPACE TABLESPACE_NAME READ WRITE; 五、删除表空间 DROP TABLESPACE mmsgdata01 INCLUDING CONTENTS AND DATAFILES; 六、扩展表空间 首先查看表空间的名字和所属文件 select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; 1.增加数据文件 ALTER TABLESPACE game ADD DATAFILE '/opt/oracle/oradata/MMSGDATA03.dbf' SIZE 1000M; 2.手动增加数据文件尺寸 ALTER DATABASE DATAFILE ‘/opt/oracle/oradata/MMSGDATA01.dbf' RESIZE 4000M; 3.设定数据文件自动扩展 ALTER DATABASE DATAFILE '/opt/oracle/oradata/MMSGDATA01.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE 10000M; 4.设定后查看表空间信息 SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE, (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE" FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;
hq+@4b%U(R2W [2W0
Or r(N r!k8E0物理存储结构51Testing软件测试网!N/Hk2U4M:|Cc L
与逻辑存储结构相比,物理存储结构相对简单并且更容易理解。但是物理存储结构并不是独立存在的,它与数据库逻辑存储结构之间有着不可分割的联系。从整体上看,Oracle的数据在逻辑上存储在表空间中,而物理上存储在表空间所对应的数据文件中。
sm9D(L8b R0a jm0物理存储结构
1x _&y3U1]2qfzRs M0          数据文件51Testing软件测试网-~$?k}2?3JC
          控制文件
FS*tZkE6i v%_*^3F0          重做日志文件
`D*oz-S6x#x0          口令文件51Testing软件测试网1R$aM(R3w2a7U0j
          参数文件51Testing软件测试网 k6Lp-s&Q(F;tkV
          归档文件51Testing软件测试网H t:|(gt Z4T{
          告警日志
GbD X4^.~*b/F3H4R)J0          …………51Testing软件测试网9Ax]k~3_ jl5w
数据文件51Testing软件测试网 R2D(\(q$lF.y
数据库中的数据在物理上保存在若干个操作系统文件中,这些操作系统文件就是数据文件。一个表空间在物理上对应于一个或多个数据文件,而一个数据文件只能属于一个表空间。数据文件是操作系统文件,Oracle通过表空间创建数据文件,从硬盘中获取存储数据所需的物理存储空间,一个数据文件只能属于惟一的一个表空间。51Testing软件测试网 F[R'M s*V-C
数据文件(datafile) 一般是指数据库的文件,如: 每一个ORACLE数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表、索引)的数据物理地存储在数据库的数据文件中。51Testing软件测试网1D'`6fz(g*h
数据文件有下列特征: l、一个数据文件仅与一个数据库联系; 2、一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。 51Testing软件测试网pW6QO\
数据文件中的数据在需要时可以读取并存储在ORACLE内存储区中。例如:用户要存取数据库一表的某些数据,如果请求信息不在数据库的内存存储区内,则从相应的数据文件中读取并存储在内存。当修改和插入新数据时,不必立刻写入数据文件。为了减少磁盘输出的总数,提高性能,数据存储在内存,然后由 ORACLE后台进程DBWR决定如何将其写入到相应的数据文件。51Testing软件测试网.p.| F.BXW+s ?e
51Testing软件测试网#xR s0K [&]
控制文件
1Ez)s]I;u0数据库控制文件是一个二进制文件,在其中包含了关于数据库物理结构的重要信息。通过在加载数据库时读取控制文件,Oracle才能找到自己所需的操作系统文件(数据文件、重做日志文件等)。
a*s,b r[0       控制文件对于数据库的成功启动和正常运行是至关重要的。在加载数据库时,实例必须首先找到数据库的控制文件。如果控制文件正常,实例才能加载并打开数据库。但是如果控制文件中记录了错误的信息,或者实例无法找到一个可用的控制文件,数据库将无法加载,当然也法打开。51Testing软件测试网[x&Q.X!n{0}"|
控制文件中保存着下列信息:
1f+q;y]@0    数据库名称;
^%I6?o"A6|o0    数据库创建的时间;
~L h!c+~I0    所有数据文件和重做日志文件的名称和位置;51Testing软件测试网T Z;}/CN*z(Dj
    表空间信息;
?5v'K| j0    OFFLINE数据文件信息;
cO~NeE0    重做日志历史信息;
H3Ca)MM n)Oz5H!B q0    归档日志文件信息;51Testing软件测试网.I F SINxP;w,R
    备份集信息;51Testing软件测试网%T.le6A!f BM
    备份数据文件和重做日志文件信息;
$SX8Sv?{7OqG0S/F6Sl0    数据文件拷贝信息;
v*`/]*a7K\a0    当前重做日志序号和检查点信息。51Testing软件测试网,d J4w}[_

Eke+V2Vg-W0     控制文件对于Oralce数据库的作用,就好像微软操作系统中注册表的作用一样。当数据文件和联机重做日志文件51Testing软件测试网/B8\s*[8zFR
 发生变化时,都会将信息写道控制文件中。Oracle记录这些信息是为了:
"{?h%y |RR5W#w@0      在启动时,Oracle可以找到并打开数据文件和重做日志文件;
UIH(I-hne0      Oracle可以确定数据库恢复是否需要或是否可能。51Testing软件测试网N@;P,?*f/v
?51Testing软件测试网X$lV ][
 控制文件还记录CHECKPOINT信息,用于在恢复时指定哪些恢复操作是没有必要的,它们已经写到数据文件中。
P8I[Y W#z {0?51Testing软件测试网%cSKo\b2j
由于控制文件的重要性,因此一定要建立多个控制文件,并放到不同的物理磁盘上,同时注意对控制文件的备份。
g'r2K }7U!E4P4JV0SQL> show parameter control_files51Testing软件测试网"PyPz2[M]

LtLp7eV%C%P+M0NAME                                 TYPE        VALUE
nn7TlebF S7h8b A0------------------------------------ ----------- ------------------------------
7C[a1P;iW0control_files                        string      D:\ORACLE\ORADATA\ORA11G\CONTR
GPf{m:nWF0                                                 OL01.CTL, D:\ORACLE\ORADATA\OR51Testing软件测试网-k6ew?&a8bX
                                                 A11G\CONTROL02.CTL, D:\ORACLE\51Testing软件测试网8MN7{]4Wu&n |&r8v
                                                 ORADATA\ORA11G\CONTROL03.CTL
.t.y-y {!]GsKO:Ia7g0p"l0SQL>51Testing软件测试网C$NtCE%?6xWGj
51Testing软件测试网0f!k5yU/ft2{P6q
     示例现实,Control files 有三个,这个方法叫做多路控制文件(多工),oracle可以利用这个方法恢复被破坏的
4Q?X&M%YAR^_F0控制文件,oracle最多允许设置8个多路控制文件。
#h(C~ IV5F0     建议控制文件创建在不同的磁盘上或者在不同的分区上。
p1Bh(];`Dz0重做日志文件
:`)|h1X$|$R0数据库控制文件是一个很小的二进制文件,在其中包含了关于数据库物理结构的重要信息。通过在加载数据库时读取控制文件,Oracle才能找到自己所需的操作系统文件(数据文件、重做日志文件等)。
-S @:t}r(YNM0       控制文件对于数据库的成功启动和正常运行是至关重要的。在加载数据库时,实例必须首先找到数据库的控制文件。如果控制文件正常,实例才能加载并打开数据库。但是如果控制文件中记录了错误的信息,或者实例无法找到一个可用的控制文件,数据库将无法加载,当然也法打开。51Testing软件测试网"znaoCq#B
重做日志文件
$@CCb/y^3r KH"Z8q:v0  每个Oracle数据库都包含至少两组到多组重做日志文件,重做日志文件主要是记录数据变化一过程,是记录一个延续变化过程,其实控制也记录Oracle变化过程,但是两者还是有很大区别的,控制记录着数据库体系结构的变化。一个架构的变化,重做日志文件当然也记录这些变化,但它记录更细数据库中数据变化。这些信息主要是用于数据库恢复操作。51Testing软件测试网,c$]_Bn H:N
51Testing软件测试网"{w!W)y%c-eAk+t
    一个重做日志组可以包括一个或多个日志成员,这多个成员应该放再不同的磁盘上,作为磁盘日志镜像,同一组的成员的内容是一样的,如果没有多个磁盘,没有必要为重做日志组建立多个日志成员。当一组都写满时开始归档,使用下一日志组,当日志组都写满又轮回到第一日志组时,如果第一日志组归档完毕就覆盖它,若没有就只能使用日志缓冲区等待归档完毕之后才能使用它。如果归档很慢而且日志文件很大时你可以提前强制归档: ALTER SYSTEM SWITCH LOGFILE; 归档日志用于rman恢复,如果不做rman恢复,不需要保存日志,可以直接删除。
0a8j`x+k,y!c9g0select * from v$logfile;51Testing软件测试网 N9^q8[;L0E8d-@
1    1        ONLINE    D:\ORACLE\ORADATA\ORA11G\REDO01.LOG    NO
5k'l&h mn02    2        ONLINE    D:\ORACLE\ORADATA\ORA11G\REDO02.LOG    NO
KB T-k5rF0M03    3        ONLINE    D:\ORACLE\ORADATA\ORA11G\REDO03.LOG    NO51Testing软件测试网%p+NQ.~~ ic
51Testing软件测试网!u f"p9u|} G"C%^
重做日志切换时间查询
&^hAc"~c4D0select b.recid,to_char(b.first_time,'dd-mon-yy hh:mi:ss') start_time, a.recid,to_char(a.first_time,'dd-mon-yy hh:mi:ss') end_time,round(((a.first_time-b.first_time)*25)*60,2) minutes from   v$log_history a, v$log_history b where  a.recid = b.recid+1order  by a.first_time asc51Testing软件测试网Q$B8N6l NnI([
其他文件51Testing软件测试网P RK/mJ
除了上述三种类型的文件外,Oracle还提供了其他一些类型的文件,如参数文件、归档日志文件、跟踪和密码文件等。本节将对这些类型的文件进行简单地介绍。51Testing软件测试网Y2M"Q6d$IuFb
51Testing软件测试网$b7T6b!^d!J
口令文件51Testing软件测试网QXp i^ N
Oracle登录认证方式:
3r%{'B%N ~}uf;j0    OS级、口令文件。
]}4N@Jy051Testing软件测试网/}fO5d:h
    oracle数据库通过sqlnet.ora文件中的参数SQLNET.AUTHENTICATION_SERVICES,PFILE(或SPFILE)文件中的参数REMOTE_LOGIN_PASSWORDFILE和口令文件PWDsid.ora三者协同作用实现身份认证。?
6a['WI9m6M$X0 
d)s"VU^%tA0SQLNET.AUTHENTICATION_SERVICES=(NTS)|(NONE) 51Testing软件测试网vlV5kiU T } L
SQLNET.AUTHENTICATION_SERVICES=(NTS): 操作系统认证方式,不使用口令文件 
8{6r \ }E(q*C0SQLNET.AUTHENTICATION_SERVICES=(NONE):口令文件认证方式 
R:Tt*@;e0 51Testing软件测试网_*Iv*Ss }~!?
REMOTE_LOGIN_PASSWORDFILE=(NONE)|(EXCLUSIVE)|(SHARED) 
6hG0`7?6hs8{s0REMOTE_LOGIN_PASSWORDFILE=(NONE):不使用口令文件,操作系统认证 
3Q7l)~2V![ht0REMOTE_LOGIN_PASSWORDFILE=(EXCLUSIVE):口令文件认证方式,但只有一个数据库实例可以使用此文件, 
+P"s*p6i0N:x+WN0系统允许将SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用户,且以具有这类身份的其他用户登录是有效的 
/w|m,O T"v0REMOTE_LOGIN_PASSWORDFILE=(SHARED):口令文件认证方式,可有多个数据库实例使用此文件,但是此设置下 
o#N,ME~O%RE0只有INTERNAL/SYS帐号能被识别,即使文件中存有其他用户的信息,也不允许他们以SYSOPER/SYSDBA登录 51Testing软件测试网#MP0XgG9Z?_ft6u
51Testing软件测试网7bO)nb1X']5L`4XF
案例讲解51Testing软件测试网Ug:SQT
    口令文件丢失,连接数据库失败
6Je!w\:x @6S0    orapwd??? file=<file_name>??? password=password??? entries=max_users?
nVZPbGR |YWn0
.l] T%bW lc6d$iI051Testing软件测试网aH NYP
参数文件(parameterfile)51Testing软件测试网"\k_U_O9t&]+X
pfile和spfile文件51Testing软件测试网1R z&a'LAhN_Dn

B K \Yr.xc0     参数文件指的是oracle安装目录下的dbs目录下的initSID.ora 和 spfileSID.ora文件。 PFILE属于静态文件,修改之后的参数需要重启Oracle服务器才能生效,为文本文件;SPFILE属于动态文件,参数修改后立即使之生效,且为二进制文件,更加的安全。51Testing软件测试网e/K8x6A8p.R6T'vN
   51Testing软件测试网t ?$l,b'y9f6g+q
51Testing软件测试网@ Q@;R$^VD
查看系统是以pfile还是spfile启动 ?Select isspecified,count(*) from v$spparameter group by isspecified; ?如果isspecified里有true,表明用spfile进行了指定配置 ?如果全为false,则表明用pfile启动 ? 使用SPfile的好处 ?Spfile改正了pfile管理混乱的问题,在多结点的环境里,pfile会有多个image ??? 启动时候需要跟踪最新的image。这是个烦琐的过程。 ?用spfile以后,所有参数改变都写到spfile里面(只要定义scope=spfile或both),参数配置有个权威的来源。
*?-kY7h7vk(\0查看spfile location ?show parameter spfile
!L:V w:^2J {0
LW/bH3~ I6A5C Q0用spfile创建pfile ?Create pfile='Your_pfile_location' from spfile; ?Create pfile='Your_pfile_location' from spfile='spfile_location';
9}9Xki&o\ v.a051Testing软件测试网 a7h[*zw
用pfile创建spfile ?Create spfile from pfile=‘Your_pfile_location’ ?Create spfile=‘spfile_location’ from pfile=‘Your_pfile_location’ ? 动态修改参数 ?alter system set parameter=Value scope=spfile|both|memory ? Startup nomount的时候需要读去spfile或pfile,两者共存,spfile优先。
1Eu _U.r051Testing软件测试网_(M$W F ^;Ks
强制用pfile启动数据库 ?SQL>startup pfile='Your_Pfile.ora' ?
T)O{Vq{!r0强制用spfile启动数据库51Testing软件测试网@usQ+y'kt9X5[ A
SQL>startup spfile='/opt/oracle/product/11g/dbs/spfilemmsgdb.ora' force
)]Ub:l0X0
hA[.b|)~4@1Q m0案例讲解51Testing软件测试网3op's+yI(q
   spfile文件丢失,数据库启动失败。
rwt rd051Testing软件测试网B9_,rG@:{/O/~:O
51Testing软件测试网;e @.o){P[!g,^
日志文件
1`@.{A] ~Hvp0    告警日志、跟踪日志
q3`+Stx d0实例的内存结构51Testing软件测试网(gm1F rt6m]a"K
内存结构是Oracle数据库体系结构中最为重要的部分之一,内存也是影响数据库性能的主要因素。在Oracle数据库中,服务器内存的大小将直接影响数据库的运行速度,特别是多个用户连接数据库时,服务器必须有足够的内存支持,否则有的用户可能连接不到服务器,或查询速度明显下降。51Testing软件测试网B9R-y.n.m*qh
系统全局区
nO[q:`NZ W0系统全局区SGA是由一组内存结构组成,它是由所有用户进程共享的一块内存区域。如果多个用户连接到同一个数据库实例,则实例的SGA区中的数据可被多个用户共享。在数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA被回收。SGA区中的主要包含如下内存结构:数据缓存区、共享池、重做日志缓存、Java池和大型池等结构。51Testing软件测试网#],Bd%[(A;N;A2Q U X
实例
QD"\)r!S6}#m0SGA:System global area 系统全局区51Testing软件测试网s Mq6@I*FmI
1、SGA的基本概念51Testing软件测试网2SF`L a7UL
  当启动Oracle数据库时,系统会先在内存内规划一个固定区域,用来储存用户需要的数据,以及Oracle运行时必备的系统信息。我们称此区域为系统全局区(System Global Area),简称SGA。51Testing软件测试网[{8U2Dbd!jS"Eo
  SGA 包含数个重要区域,分别是:51Testing软件测试网*f3[.[yw5zR B
  ■ Database Buffer Cache (数据库缓冲区)51Testing软件测试网f-Q8{,XLt'QF
  ■ Redo Log Buffer (重做日志缓冲区)51Testing软件测试网s$E#g pf
  ■ Shared Pool (共享区)
a1{@/Ie0?wg0  ■ 其它,如Java pool, Large pool  --可选
Z(Ox_.MI x051Testing软件测试网?{}.?{~'@+]0G
  1.1 Database Buffer Cache (数据库缓冲区)51Testing软件测试网2O2CPr@
  数据库缓冲区的作用主要是在内存中缓存从数据库中读取的数据块。数据库缓冲区越大,为用户已经在内存里的共享数据提供的内存就越大,这样可以减少所需要的磁盘物理读。
*A)A;A`;|4_5XOM0  在9i以前数据库缓冲区的大小是由db_block_buffers*db_block_size 来决定大小的。db_block_size参数是在创建数据库时设置的,OLTP系统的db_block_size一般设置为8k。51Testing软件测试网$EEh EA
  在9i中,数据库缓冲区的大小由db_cache_size决定,8i中的db_block_buffers被取消。db_cache_size的单位是字节,它直接决定了数据库缓冲区的大小,而不再是块的数量。51Testing软件测试网 ^X;BF}$Vhv
    在11g中,依然使用db_cache_size决定数据库缓冲区的大小,同时,增加了db_cache_advice自动调整系统所需的db_cache_size。
hWDAv$B0SQL> show parameter db_cache51Testing软件测试网!`%Ss;hWd ew
51Testing软件测试网 zRU;v DUI9k d
NAME                                 TYPE        VALUE
j3d e.?*n!YGT9s~J0------------------------------------ ----------- ------------------------------51Testing软件测试网4M.^@1XV
db_cache_advice                      string      ON
GQC(N,eLIu0db_cache_size                        big integer 051Testing软件测试网^5TPy)ujL2Z p
SQL>
2n9Fx)Bm-{|051Testing软件测试网aD} Yfz'J,x
  1.2 Shared Pool (共享区)
%g2P$g9i D0  共享区由三部分组成,分别是Dictionary cache(包括数据字典的定义,如表结构、权限等),Library cache(包括共享的sql游标,sql原代码以及执行计划、存储过程和会话信息)和Control structure。它的大小由初始化参数shared_pool_size控制,它的作用是缓存已经被解析过的SQL,使其能被重用,不用再解析。SQL的解析非常消耗CPU的资源,如果一条SQL在Shared pool中已经存在,则进行的仅是软解析(在Shared pool中寻找相同SQL),这将大大提高数据库的运行效率。当然,这部分内存也并非越大越好,太大的Shared pool,oracle为了维护共享结构,将付出更大的管理开销。建议在150M-500M之间。如果系统内存为1G,该值可设为150M-200M;如果为2G,该值设为250M-300M;每增加1G内存,该值增加100M;但该值最大不应超过500M。51Testing软件测试网 c_ lPlg p

*Y)J:p8M)IHz0  1.3 Redo Log Buffer (重做日志缓冲区)
+k%L$l7dBTD r0  Log_buffer是重做日志缓冲区,对数据库的任何修改都按顺序被记录在该缓冲,然后由LGWR 进程将它写入磁盘。
8T a*RQ!b6or&|5I0LGWR的写入条件是:
*V6O avft+x9qY%O0          用户提交;
L` D,vO:L f\?c,q0          有1/3 重做日志缓冲区未被写入磁盘;51Testing软件测试网!R@4z jH;b
          有大于1M 重做日志缓冲区未被写入磁盘;51Testing软件测试网P[X-p,^o'g5i
          超时;
9a.\ ?e`d+I-A0          DBWR需要写入的数据的SCN 号大于LGWR 记录的SCN 号,DBWR 触发LGWR写入。51Testing软件测试网)MJv%N!H(~
  从中可以看出,大于1M的log buffer值意义并不大。
0kf B}*oV0    重做日志缓冲区的大小由初始化参数log_buffer设定。51Testing软件测试网rdr(?8p"V!sN+q/o

!r)h1rR)P-NK(I(V0    1.4 Large pool和Java pool51Testing软件测试网V6a/Kobj3u*d
  Large pool:51Testing软件测试网/g2|Z l3QNP;k/@
      用于MTS(Microsoft Transaction Server  分布式事务处理)、并行查询和RMAN(主要适用于备份与恢复)。如果使用了MTS或RMAN,large_pool特别有用,它可以降低用户对share pool的争用。
:P(t0Hc LNg0  如果应用系统不使用MTS,也不使用RMAN,large_pool_size的大小可设为1M。
k7W m9[:Ymz0
j8nA"|9k Z:dF5y0  Java pool:
].zJ&WX*X_}d D0     Oracle8I以后,oracle数据库内置了对java的支持,如果数据库安装时选择了JServer组件,则这个值可以设置为20M-30M之间。可以查询v$option动态视图,如果java那一项值为true,则表示安装了JServer,为false,表示未安装。51Testing软件测试网_.@JC-H%]
  如果应用系统不使用PORTAL,APPS,也不使用RMAN,java_pool_size值的大小可设为1M。如果系统需要安装补丁,建议先把Java pool值的大小临时增加到50-150M。51Testing软件测试网b)A6b9dR BR3Ev

D/a~ L9D0
B4?;v%mC!pRh02 SGA运行情况检查51Testing软件测试网1m8v;ap5d
  2.1 SGA整体检查51Testing软件测试网BWr7LM
  对于SGA部分,我们通过sqlplus查询:
)^;M&W1`PVq0SQL> show parameter sga
{(L~k3J!mF.Gg V051Testing软件测试网oQ'y'`c
NAME                                 TYPE        VALUE51Testing软件测试网M i0^7AP
------------------------------------ ----------- ------------------------------
/B0Nk#?c"ra!x D0vuW0lock_sga                             boolean     FALSE
.Z5`2\ K'it@0pre_page_sga                         boolean     FALSE
#e#A;e*]@e0sga_max_size                         big integer 612M
A"FF0c#Ao0sga_target                           big integer 051Testing软件测试网Ux?.w"Y
51Testing软件测试网[)g| ``-nNJ
或者
Sz2[V wdh f'?!i0
9P [(L$\+W0F6@0SQL> select * from v$sga;51Testing软件测试网@~3K4c;z{'B:?)Jg

@0g_,o4nE_0NAME                      VALUE51Testing软件测试网9z:Wfm$NF
-------------------- ----------
:AF.lY?MT"ZK0Fixed Size              133508051Testing软件测试网8I|Jz,d8M P
Variable Size         17616098451Testing软件测试网n"C~9wS#a
Database Buffers      45717913651Testing软件测试网0w&h&rok1R&s
Redo Buffers            5611520
n(r/sL9R!T0
x1jG:rK]051Testing软件测试网,[ v^.q&Ns
show sga的结果和SGA的初始化参数配置并不是完全一一对应的,下面是每一个部分的具体解释:51Testing软件测试网1CR t-zd
  Fixed Size
5mPD,_|?j0  oracle 的不同平台和不同版本下可能不一样,但对于确定环境是一个固定的值,里面存储了SGA各部分组件的信息,可以看作引导建立SGA的区域。51Testing软件测试网&w9u@8Z7d;{w
  Variable Size51Testing软件测试网:d5K2jE{&c
  包含了shared_pool_size、java_pool_size、large_pool_size等内存设置和用于管理数据缓冲区等内存结构的hash table、块头信息等。51Testing软件测试网8o"^/P%s tW&auh+_
Database Buffers
oq1FqFy3Q0  指数据缓冲区,在8i中包含default pool、buffer_pool_keep、buffer_pool_recycle三部分内存。在9i中包含db_cache_size、db_keep_cache_size、db_recycle_cache_size、db_nk_cache_size。这里要注意在8i中三部分内存总和为db_block_buffers*db_block_size。
k3Ai's;r(c%]0  Redo Buffers
0x}8V_mG0j^ w0  指重做日志缓冲区的实际大小,和log_buffer的值可能稍有不同。
'yj s7aC(f Cw0
4t)b.S3?4XPo0  2.2 Data buffer 命中率检查
^QK|6A+}x9m al!R0  检查语句:51Testing软件测试网 e"KT\YI;f V @
   ???? SQL>select 1 - (phy.value / (cur.value + con.value)) "HIT RATIO"   from v$sysstat cur, v$sysstat con, v$sysstat phy where cur.name = 'db block gets'
nN W5Jq a0s7q&rF3y7D0  and con.name = 'consistent gets'51Testing软件测试网KNNm(S0r-D_
  and phy.name = 'physical reads';51Testing软件测试网.L:M#A]9{si'r7Jo1p

;U5H8I&w/O SG.A5H0  调整原则:51Testing软件测试网N6Spi4R;C
  命中率不应该低于90%.
i$zI0b6@F0  如果该值过低,应该调高初始化参数。8i调整db_block_buffer,9i调整db_cache_size。
Tyhz+bq&Z.s sk]A0
7~rRX'Tmi0  2.3 Dictionary cache命中率检查51Testing软件测试网"t.{3})[6~+g5u-{
  检查语句:
g}(E8ko0   ???? SQL>SELECT 1 - (SUM(getmisses)/SUM(gets)) "Data Dictionary Hit Ratio" FROM v$rowcache;     
X r%vm'CPQ0    调整原则:
(pPB|q0  命中率不应该低于95%.51Testing软件测试网GOEGnl;_E
  如果该值过低,应调高shared_pool_size的大小。51Testing软件测试网z lo j{ R+Mx0^e
51Testing软件测试网_DMlD:|BKod i
  2.4 Library cache命中率检查
VR8K:QN\"z0  检查语句:51Testing软件测试网9Ys te0|+u[
   ???? SQL>SELECT 1-(SUM(reloads)/SUM(pins)) "Library cache Hit Ratio" FROM v$librarycache;  51Testing软件测试网Z.Q,BtTp
   51Testing软件测试网.]Q;}U(s0c'SG;E;[ U0`
    调整原则:
9Ll7X`Y e+pR0  命中率不应该低于99%.51Testing软件测试网T2Ff8Y#n{
  如果该值过低,应调高shared_pool_size的大小。
+y B ]H].JD&Uz zl0
S;})B5X2S@Pf(j0    2.5 Log buffer命中率检查51Testing软件测试网5E7m5qI%a6E
  检查语句:51Testing软件测试网%C5X;fO-^YY@Y
   ???? SQL>select (req.value*5000)/entries.value "Ratio"   from v$sysstat req, v$sysstat entries
eYB]1}x0  where req.name = 'redo log space requests'51Testing软件测试网.F]?S/E
  and entries.name = 'redo entries';
vtP L[%F SAK051Testing软件测试网&gq)DrF?2]#A
  调整原则:
&E%B&`rRx+U-CI0  命中率不应该高于1.51Testing软件测试网bxBy0Re2R
  如果该值过高,应调高log_buffer的大小。
cvwR3?;z2EyL051Testing软件测试网~7Y:Sn%Rw |k2x"R
    3 SGA 的参数设置原则51Testing软件测试网 c*YLM(hP1X.o&\
  在 Oracle8i 时,SGA 的大小是由初始化参数文件内的某些参数所设定,最麻烦的是每次调整参数之后必须等重新激活数据库才生效。从Oracle9i 开始,DBA 可以动态配置内存的大小;这样的技术我们称为「dynamicSGA」。有了dynamic SGA ,SGA的各组成区域都可以动态地进行规划与调整,而不需先关闭数据库。51Testing软件测试网 Q sx&qY'F
  在Oracle9i中,SGA_MAX_SIZE可设定 SGA 所占用的最大内存空间。需要注意的是:SGA_MAX_SIZE 尽量不要超过物理内存大小,否则将会使用到硬盘上的虚拟内存,反而导致性能低下。如果 SGA_MAX_SIZE 之设定值小于其它 SGA 相关参数设定值的总和,或是小于各相关参数默认值的总和,则 SGA_MAX_SIZE 之设定值无效。
*FQk q}nO&wM0  在SGA的基本概念部分,已经介绍了各个部分大小设置的原则,这里再用一句话来总结:51Testing软件测试网Y&?+nk+Uwa
  1)数据库缓冲区建议占物理内存的20%-30%。物理内存在1G以内,可以占20%,1G-2G之间可占25%,物理内存在2G以上,可以占30%,甚至更高。51Testing软件测试网3vH*hPd(U-DM&GL
  2)共享区建议在150M-500M之间。如果系统内存为1G,该值可设为150M-200M;如果为2G,该值设为250M-300M;每增加1G内存,该值增加100M;但该值最大不应超过500M。
[-c ~J3J;z~,pQ0  3)重做日志缓冲区建议设为1M。
1S i$cx.v9H"\0  4)如果应用系统不使用MTS,也不使用RMAN,Large pool的大小可设为1M。否则设为16M。
+~ |3? }H$H e/X.}0  5)如果应用系统不使用RMAN,Java pool值的大小可设为1M。否则设为50M。如果系统需要安装补丁,建议先把Java pool值的大小临时增加到50-150M。51Testing软件测试网"CG8_mC9G7E'T
  调整完上述参数后,一定要计算SGA的尺寸,总原则是SGA的尺寸应小于物理内存的一半。SGA的计算方法如下:SGA=DB_BLOCK_BUFFERS*DB_BLOCK_SIZE+SHARED_POOL_SIZE+LOG_BUFFER。同时还要保证(SGA+sort_area_size*sesson数量)不大于物理内存的70%。51Testing软件测试网8el1zob2o&{D
51Testing软件测试网3a(\][C2l.iwrn@"jb
程序全局区51Testing软件测试网x,C:a j4Ys~8V _
程序全局区(PGA)是保存特定服务进程的数据和控制信息的内存结构,这个内存结构是非共享的,只有服务进程本身才能够访问它自己的PGA区。每个服务进程都有它自己的PGA区,各个服务进程PGA区的总和即为实例的PGA区的大小。51Testing软件测试网#{aj5X0A_.x(]
PGA
u}(\U$g/D01、PGA51Testing软件测试网,|a)qg2UM7c#e
   PGA(Process Global Area),即程序全局区,一个进程的专用的内存区。
O4Lq7v;B {0
xwD p:z#b0   UGA(User Global Area),即用户全局区,与特定的会话相关联。
(Zd$q0C:bd0Q:p,d0  专用服务器连接模式,UGA在PGA中分配。
8oD"Sl7FC k0  共享服务器连接模式,UGA在SGA中的Large Pool中分配。51Testing软件测试网*Vk'r@ QX'J
  如果采用专用服务器连接模式,PGA中包含UGA,其他区域用来排序,散列和位图合并。51Testing软件测试网2DQ@0Rosw(p6J"A
  简单来讲,PGA=UGA+排序区+散列区+位图合并区。
j _,g y1kv1Q*SG,W2H.`051Testing软件测试网#}'B%j];xwl2@8fu
2、PGA的管理模式51Testing软件测试网C$S+^$SG0U
  PGA分两种管理模式:
&?[N(m)Rm"O1Rm1` L0  1)手动PGA内存管理,用户指定排序区和散列区所使用的内存,每个连接使用相同的内存。
dS-a,hsA8O0  2)自动PGA内存管理,告诉Oracle可以使用的PGA的总量,由Oraclce根据系统负载决定具体分配。51Testing软件测试网f"d)Iz5r R
  ?9iR1时默认为手动PGA内存管理,9iR2以后默认为自动PGA内存管理。51Testing软件测试网#~Ed"@ F1oL
  ?PGA内存可以动态扩大和回收。
y0sA5F-@h7[ rt051Testing软件测试网4R4WF"c-E!b6W+uk
  PGA内存管理模式由WORKAREA_SIZE_POLICY控制。51Testing软件测试网[Si`-_{bWB'i
  1)设为MANUAL,启用手动内存管理。51Testing软件测试网`f^!Oh~
  2)设为AUTO,并且PGA_AGGREGATE_TARGET不为0时,启用自动内存管理。51Testing软件测试网O,E2}W:U

"?kd'H7L{Ln03、手动PGA内存管理
m1~?/ez+J1RM5k0  有三个参数对PGA影响最大。
;C:xQ%W%| Jp0  SORT_AREA_SIZE:对信息排序所用的内存总量51Testing软件测试网 RaD'aP
  SORT_AREA_RETAINED_SIZE:排序后在内存中保存排序信息的内存总量。51Testing软件测试网?eF*G @O{[
  HASH_AREA_SIZE:存储散列列表所用的内存量。
/_^ o |v0
tZ3}u2RM}0  下面对这三个参数进行说明:
2g;MR{ Ni)_S9GH0  1) SORT_AREA_SIZE:
K-O,h&r"ls/jz)D_0      如果SORT_AREA_SIZE设为512KB,SORT_AREA_RETAINED_SIZE也为512KB,则Oracle使用512KB的内存进行排序,排序后所有数据都留在内存中。
2N m'aC!Q0    2)SORT_AREA_RETAINED_SIZE:51Testing软件测试网Q"KU3P|(s [ Y2k&A
       如果SORT_AREA_SIZE设为512KB,SORT_AREA_RETAINED_SIZE设为384KB,则Oracle使用512KB的内存进行排序,然后保留384KB的已排序数据,另
w ^:Q.V(p+[ d.[,n4_0      外512KB-384KB=128KB的已排序数据会写到临时表空间中。
1|rdAN3@gw0  ?  如果SORT_AREA_RETAINED_SIZE没有设置,则它的值为0,但是实际保留的排序数据和SORT_AREA_SIZE相同。51Testing软件测试网s2IEL+V+q
  3) HASH_AREA_SIZE:
t'Z5^krBGc NX1d0      一个大集合和另个集合进行连接时,会用到HASH_AREA_SIZE参数。较小的 表会放到这部分内存中作为驱动表,然后大表进行探索(PROBE)操作进行连接。
^Vs YLtX0    如果HASH_AREA_SIZE过小会影响两个集合(表)连接时的性能。51Testing软件测试网.J3oR(pX i{'p ]qK

aA;zdM~,HqZ |/N0  注意点:51Testing软件测试网(U0P:O(whsN~6S]7`;K)M8s
  1) 如果需要排序的数据量大于SORT_AREA_SIZE,Oracle会分批进行排序。把当前已排序的数据保存到临时表空间中,然后对剩余的数据进行排序。最后,还会对这些保存在临时表空间中的已排序数据再进行排序,因为每次保存到临时表空间中的已排序数据只是部分数据的排序,对整体需排序的数据来说只是部分局部有序。51Testing软件测试网0uP'YN+[jPd
  2) SORT_AREA_SIZE只是对某个操作的限制,一个查询可能有多个操作,每个操作都有自己的内存区。如果SORT_AREA_SIZE设为5MB,一个查询可能会有10个排序操作,这样一个查询会占用50MB的排序内存。
8N#jw,`@4xRn^0  3) SORT_AREA_SIZE内存的分配是按需分配。如果一个查询需要5MB内存进行排序,就算分配1G的SORT_AREA_SIZE也不会全部使用,只会使用需要的5MB的内存量。
:wS+kX dli/W0
5SO5E@/sJ%Z04、自动PGA内存管理51Testing软件测试网[E*X:n%}0Xqdjq
  要启用自动PGA内存管理,设置下列参数:51Testing软件测试网0Q1\ww,R#v
  1,WORKAREA_SIZE_POLICY=AUTO
Q\K2i$c0  2,PGA_AGGREGATE_TARGET=非零51Testing软件测试网(MF|o!Gs,[K
  有关PGA_AGGREGATE_TARGET:51Testing软件测试网O$L1D3e}VBe:_L
     1) PGA_AGGREGATE_TARGET是一个目标值。连接数少的时候实际分配PGA内存会比它要小。连接数多的时候实际分配的PGA内存会比它要大,但是Oracle会努力保持总PGA保持在PGA_AGGREGATE_TARGET值内。
Y+RgukHhj_|0  例如,PGA_AGGREGATE_TARGET 设为300MB。5个用户连接时,每个用户可能分配10MB的PGA内存,共分配50MB的PGA内存。300个用户连接时每个用户可能分配1.3MB的PGA内存,共分配390MB的PGA内存。当用户连接多时,Oracle会降低每个用户的PGA内存使用量。51Testing软件测试网{ai4u ^
   2) 一个串行查询(非并行查询)可能包括多个排序/散列操作,每个排序/散列操作最多使用5%的PGA内存。51Testing软件测试网4l N;uWmL'kA$I0_
   3) 一个并行查询最多可用到30%的PGA内存,无论有多少并行进程。51Testing软件测试网#z'T.QTY4{
51Testing软件测试网py(M ?n&{[c
5、手动PGA内存管理与自动PGA内存管理51Testing软件测试网:h E+OF*X*_
  自动PGA内存管理相对于手动PGA内存管理有很多优点
'DP1l*u'~3?zCm(Qf0  1、当用户连接少时
A/M2Q3B0SPFz0  a) 手动PGA内存管理不管有多少可用内存都按照预设值进行分配。比如当前空闲内存为300MB,连接需要10MB的内存进行排序,而我们设定的排序区大小为5MB,导致虽然有足够的空闲内存却无法分配给当前连接,造成执行效率低下。51Testing软件测试网3JH+m"n X*S'n
  b) 自动PGA内存管理会根据当前空闲内存来进行分配。当空闲内存为300MB,当前用户需要10MB内存进行排序,Oracle就会分配10MB内存给当前用户。51Testing软件测试网wj6?!wGcUIWP
  2、 当用户连接多时
Q^)K$`7w(v D5P*h5A0R|1Q*\0  a) 手动PGA内存管理会完全按照预设值分配内存。如果物理内存总量为1G,排序区设为5MB,当有300个用户连接时,Oracle会分配1.5G的内存,这已经超过了我们的实际物理内存!51Testing软件测试网*o,@Zr*]0{
  b) 自动PGA内存管理会根据当前连接情况进行分配。如果物理内存总量为1G,PGA_AGGREGATE_TARGET为300MB,当用户数从10升到300时,每个用户连接的内存会从满足需要的10MB慢慢减少到1.3MB,虽然最后总量也会超过PGA_AGGREGATE_TARGET,但比起手动PGA内存管理要好很多了。51Testing软件测试网SZ:b8vr(Z)j
51Testing软件测试网'_4W"sr1H8i!N#T
什么时候使用自动PGA内存管理?什么时候使用手动PGA内存管理?
_ d)K'quy4`#V8U%@0  白天系统正常运行时适合使用自动PGA内存管理,让Oracle根据当前负载自动管理、分配PGA内存。51Testing软件测试网'v @d`1H;g
  夜里用户数少、进行维护的时候可以设定当前会话使用手动PGA内存管理,让当前的维护操作获得尽可能多的内存,加快执行速度。51Testing软件测试网F;p_ J7{~ed;Q
  如:服务器平时运行在自动PGA内存管理模式下,夜里有个任务要大表进行排序连接后更新,就可以在该操作session中临时更改为手动PGA内存管理,然后分配大的SORT_AREA_SIZE和HASH_AREA_SIZE(50%甚至80%内存,要确保无其他用户使用),这样能大大加快系统运行速度,又不影响白天高峰期对系统造成的影响。
!b}z|h2X2uR:[0
~'b9M"g2m!E H*F06、操作命令
Y"oFk+d-]4toxq0    系统级更改:
ynqffGq0  ALTER SYSTEM SET WORKAREA_SIZE_POLICY = {AUTO | MANAUL};51Testing软件测试网2u#ICb-oa
  ALTER SYSTEM SET PGA_AGGREGATE_TARGET=100000000;
Q!eM$g/u0  ALTER SYSTEM SET SORT_AREA_SIZE = 65536 SCOPE = SPFILE;51Testing软件测试网w"^n1Zg8q x
  ALTER SYSTEM SET HASH_AREA_SIZE = 65536 SCOPE = SPFILE;51Testing软件测试网5bt7N4rB_k&Fp
  会话级更改
;xc3g*a$U3B ~/Q7[0  ALTER SESSION SET WORKAREA_SIZE_POLICY = {AUTO | MANAUL};51Testing软件测试网1G^bqnz Mn0u(Ok r
  ALTER SESSION SET SORT_AREA_SIZE = 65536;
D9_OZ5o3\0  ALTER SESSION SET HASH_AREA_SIZE = 65536;
:N3h6E\{:ey(jR0
,UFg A!l0实例的进程结构51Testing软件测试网x d:Y!s\Z0s
进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。进程与程序的区别在于前者是一个动态概念,后者是一个静态实体。程序仅仅是指令的有序集合,而进程则强调执行过程。进程可以动态地创建,当完成任务后即会消亡。
0a;G)c5rpC0
)|t|bq2G3nq?f0数据库使用模式51Testing软件测试网!X.Mnz\fw

8^ b7lA?8vU,i m0专用模式和共享模式的本质区别就是:?用户进程对ORACLE内存区里“服务器进程”的专用还是共享。 具体表现在: 1、在共享模式下,多个用户进程共享一个服务器进程,在专用模式下,ORACLE为每一个用户进程准备一个服务器进程。 2、在实际情况中,应用系统与数据库的连接请求总是很多,导致用户进程也很多,如果你的内存和CPU是有限的,同时,用户进程对数据库的操作占用空间不多,那你就把数据库连接模式设置为共享模式,这样,ORACLE内存区的服务器进程只是有限的几个,这几个服务器进程会通过一个调度程序来应付若干用户进程的请求。 3、如果你的硬件资源比较好,就设置成专用模式,每一个用户进程都有一个服务器进程对应,这样,你的用户进程对数据的处理会非常快! 简单的说,连接客户数少,需要长时间占用数据库的,建议用专有模式,如果连接客户数众多,使用共享模式
4[$G'B0z1J:o0最主要的是3个参数: ? ? shared_servers ? ? max_shared_servers ? ? dispatchers 如果shared_servers=0,则数据库会运行在dedicated模式下。 如果shared_servers>0,数据库会运行在shared模式下,如果没有指定dispatchers参数,则oracle自动根据每种protocol创建一个dispatcher。 两种模式可以通过修改参数自由切换。51Testing软件测试网.J8e!N/AMrH
用户进程
U8P DaR3V0连接是一个用户进程与数据库实例之间的一条通信路径,这条通信路径通过操作系统平台中的进程间通信机制或网络连接来实现。会话则是一个用户到数据库的指定连接。例如当一个用户启动SQL*Plus,并输入正确的用户名和密码连接到一个数据库库后,就为该用户创建了一个会话。会话在用户连接到实例的过程中始终存在,直到用户断开连接或终止应用程序为止。
.@y{(HqE0用户进程(User Process)   是一个需要与 Oracle Server交互的程序   运行于客户端   当用户运行某个工具或应用程序(如SQL*Plus)时创建,当用户退出上述程序时结束   用户进程向 Oracle Server发出调用,但它并不与Oracle Server直接交互,而是通过Server Process与Oracle Server进行交互。 51Testing软件测试网.Y9s+W;v$e

3u,|Z qW0服务器进程
X1Bflk`h0服务器进程就是代表用户会话完成工作的进程,应用向数据库发送的SQL语句就是由这些进程接收并执行。在Oracle数据库中可以同时存在两种类型的服务器进程:一种类型是专用服务器进程,一个专用服务进程只能为一个用户进程提供服务;另一种是共享服务进程,一个共享服务进程可以为多个用户进程提供服务。
7wsj-H7k9R3obJe0服务进程(Server Process)   是一个直接与Oracle Server交互的程序。   与Oracle Server运行于同一台机器上   使用PGA执行User Process发出的调用,并向User Process返回结果状态和结果信息。51Testing软件测试网9U/}z q1|(xi?6G'ga0?
后台进程
&XV Cy#o+p6H%D0Oracle实例包括两部分:SGA和一组后台进程。在任意一个刻,Oracle数据库可以处理多个并发用户请求,进行复杂的数据操作,与些同时还要维护数据库系统使其始终具有良好的性能。为了完成这些任务,Oracle具有一组后台进程保证数据库运行所需的实际维护任务。51Testing软件测试网K;ii/R!r:[du
后台进程(Background Process)   后台进程用于维护物理存存储与内存中的数据之间的关系。主要包括:   DBWn   PMON   CKPT   LGWR   SMON   RECO   ARCn
!D$r vMZ/Hs&W$X0 查看后台进程51Testing软件测试网1vQx3Z|(W.YKk0l'W
    select * from v$bgprocess;51Testing软件测试网TIo/q `3D3Gy
  Database Writer(DBWn)   DBWn在以下情况将数据写入磁盘(数据文件data file):   1)发生检查点   2)达到脏缓冲区阈值   3)没有可用的缓冲区   4)超时   5)将表空间设置为脱机或只读   6)删除或截断表   7)备份表空间   51Testing软件测试网{*\/SbW1Y.\
  LOG Writer(LGWR)   LGWR在以下情况将缓冲区中的数据写入磁盘(联机日志文件redo log):   1)事务提交   2)三分之一的redo日志缓冲区已满   3)Redo日志缓冲区中的内容超过1M   4)每三秒钟   4)在DBWn写磁盘之前   51Testing软件测试网a$E8wNV}
  System Monitor(SMON)   负责检查和维护Oracle database的一致性。它主要完成以下工作:   1)实例恢复   2)重做已提交的事务   3)打开数据库   4)回滚未提交的事务   5)合并数据文件中相邻的自由空间   6)释放临时段的空间   
9`;}*yFb%?%^0   Process Monitor(PMON)   当某个进程失效时,清除相关的资源。它主要负责以下工作:   1)回滚用户的当前事务   2)释放相关的锁   3)是否其它相关的资源   51Testing软件测试网 };XT+XG u]:m F!s
  Checkpoint(CKPT)   Checkpoint负责:   1)使DBWn将SGA中所有被修改的数据库缓冲区的内容写入磁盘,无论事务是否被提交   2)用检查点信息更新数据文件头   3)用检查点信息更新控制文件   它可以保证:   1)将经常被修改的数据块写入磁盘   2)简化实例恢复   51Testing软件测试网j ]2]J4R~1}
  Archiver(ARCn)   是一个可选的后台进程   当把数据库设置为ARCHIVELOG模式时,可以自动归档联机redo日志   能够保存所有对数据库所做修改的记录51Testing软件测试网'nr#w1V"o

gxk{6zj051Testing软件测试网~K#b \l7m@4qu/hCg
总结51Testing软件测试网SH{ w4NnyPK
后台进程  PMON,LCLN,RECO,SMON,DBWR,LGWR,CKPT,ARCH PMON 做程序的清洁工作,处理一些不正常退出的事件. SMON 做系统的清洁工作,执行系统出错后自动恢复工作. LCKN  Oracle系统表级或行级加锁的进程. RECO  恢复进程. DBWR  数据写进程  LGWR  日志文件写的进程 CKPT  检测点 ARCH  归档方式备份进程51Testing软件测试网(x!y*bXsq g;kN
51Testing软件测试网^GN,o#tE9AS"U
数据字典
#z Y6g!I/E ?0数据字典是Oracle数据库的核心组件,它是由一系列对于用户而言是只读的基础表和视图组成,它保存了关于数据库本身以及其中存储的所有对象的基本信息。可以认为数据字典记录了数据库实例自身的重要信息。51Testing软件测试网 y"Il QV/@iLeT
数据字典51Testing软件测试网S;kc b|9P9wn4I a
        动态 v$51Testing软件测试网"dI,u N(r l
        静态 dba_
Ety.Ux D;c X^`051Testing软件测试网7OYm#@#J
参考《A.Dive.Into.Oracle.Dictionary(数据字典)》51Testing软件测试网a STR-S+~k$Iq'i9Q
51Testing软件测试网 C%e5h]d.`A(v
oracle的启动和关闭51Testing软件测试网0]&m_t#{A!Sq?
oracle 的启动,使用startup命令,startup命令后面可以带相关参数:51Testing软件测试网+kAGr'aF ]
1、startup nomount
R4Bw7E5?\2viV!Q02、startup mount  [dbname]51Testing软件测试网1N:f"w"zk;N F I
3、startup open  [dbname]
$i"C0J Js%N04、startup51Testing软件测试网Y/u:q'T v
5、startup  restrict
?rx I Y(] T![R%BQ06、startup force51Testing软件测试网PV5R_#D CH]
7、 startup (s)pfile
*gi7J.ctrI&P\08、startup upgrade51Testing软件测试网?k ]f })pe0@:p
51Testing软件测试网z+^p6IFQPv(\
51Testing软件测试网|8_6{2et_7HC%O
startup nomount
s%d_\2K0D:\oracle>sqlplus / as sysdba
Q&QFa t;WB2NY*e&v0
h'}9] \0uU\0SQL*Plus: Release 11.1.0.6.0 - Production on 星期六 3月 13 21:47:36 201051Testing软件测试网ap;IB5]
51Testing软件测试网2|"w-PSt7z P
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
8DfVY/@? b0
(G{F/w j `0已连接到空闲例程。51Testing软件测试网*{+d)O%qq+n0h
51Testing软件测试网zI%o []a
SQL> startup nomount51Testing软件测试网&T} j O`d4Z
ORACLE 例程已经启动。51Testing软件测试网 v4l8uq-? @"`_T
51Testing软件测试网%hf*iR:q:vvZw
Total System Global Area  640286720 bytes51Testing软件测试网%d!Qq E*mh&{
Fixed Size                  1335080 bytes51Testing软件测试网-yl}v$_M
Variable Size             176160984 bytes51Testing软件测试网Z1yQ_ynT
Database Buffers          457179136 bytes51Testing软件测试网?IexL&g[f9S
Redo Buffers                5611520 bytes51Testing软件测试网P0Y1r/q e^
SQL>
7~P6z(m6p6t!Z9P(`0
9|FM6i!Tf0非安装启动,这种方式启动下可执行:
h.A:|4} IHt`0   重建控制文件;51Testing软件测试网)R)D B-P#V
   重建数据库。51Testing软件测试网 }:?"Y Fba[rV
51Testing软件测试网\3g&N0_|P;p1o8u_
读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。51Testing软件测试网9jK#p1O8@X'u-M9W

3y;_k-@([eo"j0STARTUP NOMOUNT:仅仅通过初始化文件,分配出SGA区,启动数据库后台进程,没有打开控制文件和数据文件。不能任何访问数据库。
d$xJ5V1hYe f0
1N$DW,e%`0startup mount
1@$`(D;i Y!W_0STARTUP MOUNT:MOUNT数据库,仅仅给DBA进行管理操作,不允许数据库的用户访问。仅仅只是当前实例的控制文件被打开,数据文件未打开。 51Testing软件测试网mZI(B.|!_W Y
startup open51Testing软件测试网%kjP6HC$P3PL
startup open dbname51Testing软件测试网-l-O9Y9Aa;Qc kn
先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件。51Testing软件测试网 {2w1m?~y{@_
这种方式下可访问数据库中的数据,相当于startup命令。51Testing软件测试网9c7w ^!pp
51Testing软件测试网UH }'SGD2g&A
STARTUP OPEN:STARTUP缺省的参数就是OPEN,打开数据库,允许数据库的访问。当前实例的控制文件中所描述的所有文件都已经打开。
S;~[/C |3u A?0
w Q'EQ@6jx!yz3h0startup51Testing软件测试网o:] Bc0c5h)S
startup,等于以下三个命令
o:~_Xo+Fj0startup nomount
Y+e"K~3xz0alter database mount
Hm{g!zP0alter database open
?!^ Y)X&FiFD4o0
Wp+fy#J9X0startup  restrict51Testing软件测试网P R.QN8Jpc!q
约束方式启动51Testing软件测试网X+`e"uj^'\:|h e
这种方式能够启动数据库,但只允许具有一定特权的用户访问
9Z0l.@8\[w0非特权用户访问时,会出现以下提示:51Testing软件测试网nF8?I6g s` K
ERROR:51Testing软件测试网(]f:d$Md5RoS7x
ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用
Xl Dva7Q I0STARTUP RESTRICT:只允许具有RESTRICTED SESSION权限的用户访问数据库。
9N9OX)@;N#QuRn0
0yi RHA^0startup force51Testing软件测试网I)p(Y2I8NEUnZ
强制启动方式
R MDq6U;hU] N0当不能关闭数据库时,可以用startup force来完成数据库的关闭
.X-|1[RQMi0先关闭数据库,再执行正常启动数据库命令
$_#_ IcO!M0STARTUP FORCE:中止当前数据库的运行,并开始重新正常的启动数据库。 51Testing软件测试网9Y!F)i'w&Y? V

,k.H }a"d$u5A0startup (s)pfile51Testing软件测试网 V+b z3COx|*i
51Testing软件测试网;LGtgT6}c
startup pfile=参数文件名
!OQ/aDJg Wc0startup spfile=参数文件名51Testing软件测试网q4aDa*~1J9T.n1o*f
带初始化参数文件的启动方式51Testing软件测试网iBw(H1QO9\ \ gS_
先读取参数文件,再按参数文件中的设置启动数据库51Testing软件测试网`8h&H(Ck8a6Z
51Testing软件测试网$j p%{'_2z7uv^
STARTUP PFILE= filename:以filename为初始化文件启动数据库,不是采用缺省初始化文件。51Testing软件测试网 H'P)j+eK;llwjym
51Testing软件测试网5ay"b'\[M,B,x^I
startup upgrade
Xc;ZIK%|0startup upgrade主要适用于数据库升级失败后,启动升级失败后的数据库,对数据库进行修正,手工完成升级任务,使数据库能够在手工升级干预下成功完成升级操作,并能够正常使用。
F`*q A"ZD;}051Testing软件测试网&\?_1@Z;?7ma+TM
另外:
etk Q0UYsxl0 STARTUP RESTRICT:只允许具有RESTRICTED SESSION权限的用户访问数据库。 STARTUP RECOVER:数据库启动,并开始介质恢复。
&`&TI|W$r&DQ C%q051Testing软件测试网ET9W.w$W
oracle  关闭51Testing软件测试网Bk!P s8dA$R,N
51Testing软件测试网;LJi%M!L$P
SHUTDOWN有四个参数:
[B%rjMO1V*Q*[H0           NORMAL51Testing软件测试网A-B+s QL)f-N
           TRANSACTIONAL51Testing软件测试网:]AQ B0Nf0OY \
           IMMEDIATE
vvm/A8X s.k0           ABORT51Testing软件测试网+YLd6[tdh6c*@V;p

|LyY9^|q0  缺省不带任何参数时表示是NORMAL。51Testing软件测试网,t3pG t&Nw,M
 
e.N H2t2RY4R@)u0  shutdown normal
u$G,^[&?(W sr6{0  SHUTDOWN NORMAL:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。51Testing软件测试网5R1h,S Bgs.Y
51Testing软件测试网!k$MW&\/ff[
shutdown immediate51Testing软件测试网LPHM}-R
SHUTDOWN IMMEDIATE:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。
l7S(`pW;IX6^8a5G g0shutdown transaction
jG/{+pD8o+L0N0         SHUTDOWN TRANSACTIONAL:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。
TVd[l {"i0        
|QO!R[4tS0shutdown abort
,Cb)uqhryy#L0SHUTDOWN ABORT:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。51Testing软件测试网4},Knws9P

TAG:

 

评分:0

我来说两句

日历

« 2024-05-06  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 110229
  • 日志数: 89
  • 图片数: 1
  • 文件数: 15
  • 建立时间: 2013-03-01
  • 更新时间: 2018-08-23

RSS订阅

Open Toolbar