学习oracle技术,每天学一点,每天进步一点

SRVCTL 命令参考

上一篇 / 下一篇  2008-06-27 17:09:51 / 个人分类:数据库高可用性

SRVCTL是ORACLEi RAC集群配置管理的工具。本文是对SRVCTL的所有命令进行详细说明的一篇参考文档。ITPUB个人空间c)h gPd|-hb|Eu

.aXPRz9_6O0SRVCTL AddITPUB个人空间6f+NE} v

1Y Dt#a&eu0添加数据库或实例的配置信息。在增加实例中,与-i一起指定的名字应该与INSTANCE_NAME 和 ORACLE_SID参数匹配。ITPUB个人空间,o(b:s'T5J;d

.}fkc7TA F{0srvctl add database -d database_name [-m domain_name] -o oracle_home [-s spfile]ITPUB个人空间 m s,q }v S8[j8e@
ITPUB个人空间x w;\lH)i
srvctl add instance -d database_name -i instance_name -n node_nameITPUB个人空间0Z)f!kM}SqcL&V"o
ITPUB个人空间ya|6no'k'G
表- SRVCTL Add命令详细选项ITPUB个人空间U~0m5gU`+NH
ITPUB个人空间z~(C2l.{0H+[f \bw
命令  选项ITPUB个人空间;lZ9L!p^{

8JkESSo0L`0-m   数据库域名 格式如"us.mydomain.com"
8Qtd.ZU ['ID$h0ITPUB个人空间Z)R-`Da~2x
-m 选项指定的数据库域名必须匹配数据库INIT.ORA或者SPFILE中DB_DOMAIN 和DB_NAME参数。在增加数据库时,-d指定的数据库名必须与DB_NAME参数匹配
J"N[@$_W!g0
m"ducr.W0-n   实例节点名ITPUB个人空间:e*\_y$JU`
ITPUB个人空间Q9sb l&?~ s/D
-o   $ORACLE_HOME(用来确定lsnrctl和Oracle等命令路径)
@x8KI)x2i DQ,cl!^+_0ITPUB个人空间+X([}5r p b,zJ
-s   SPFILE 文件名
ws(ac1@ xZ)o Rg0
0p.L.qV#\7^3D0实例:添加一个新的数据库ITPUB个人空间 }J2B`RS8O U.Y5C
ITPUB个人空间A)`J4Pe|1~K:}s
srvctl add database -d mydb -o /ora/ora
!ws!d)\3DA:[0
d/n7p| ga0实例:向数据库添加实例ITPUB个人空间HQ7_.j7~tz+f
ITPUB个人空间.],p$uU[
srvctl add instance -d mydb -i mydb0 -n gm0
;V#B"M R`%A0
@*B9o']9[@t0srvctl add instance -d mydb -i mydb0 -n gm0ITPUB个人空间 [xR5f#E\m;]

(Kn n3I5snh;C0srvctl add instance -d mydb -i mydb0 -n gm0ITPUB个人空间y ho0R8f3kO3JJ7\

IF%GX A~,|0SRVCTL ConfigITPUB个人空间'TD}4WAP
ITPUB个人空间Dz!H#di
显示保存在SRVM配置文件中的配置信息
'z5~Ck%a5Q0
*J*X~O+ac0srvctl config database
J)qE7k-]z3s*h5|&Iu0
5mG"u H0k#c3B|0显示数据库配置列表
9G7Gp;a"c$|0ITPUB个人空间.}R{0|e/U(i
srvctl config database -d database_name
_!J~)TR#M+dHF A0ITPUB个人空间F^1B6FY{
数据库配置信息显示的格式:ITPUB个人空间9TU#~(jE'CY,p

!IS%_t`A/g s0nodename instancename oraclehomeITPUB个人空间;B3k TXj(ruu Z

N2}"i.dAQn0nodename instancename oraclehome
m6]1uBcw,K{1a0

  实例:显示数据库配置信息
qHF1x4`;F:U/c%[0ITPUB个人空间 Z S+R3W.x,C
srvctl config database -d mydbITPUB个人空间4m6OB H(Rcz"U
ITPUB个人空间*}d"hP e(ml*V
SRVCTL GetenvITPUB个人空间w(SFml.M)v&hl
ITPUB个人空间.E9SMW0o?`;D!a
getenv操作用来从SRVM配置文件中获取与显示环境变量
re&o~-u;CBxP)]0
4e-ZI5l[0srvctl getenv database -d database_name [-t name[,name,……]]ITPUB个人空间*r(N6W1[;t ~WsL
ITPUB个人空间[!I[ T;O i(M!T
srvctl getenv instance -d database_name -i instance_name [-t name[,name,……]]ITPUB个人空间-GA:c5M_U|K|
ITPUB个人空间 vHV[VZs
实例:列出数据库的所有环境变量
(Ixx;{ j M)FBm(q0
nK j3a3g*EIz0srvctl getenv database -d mydb
r$_:S:}8a u(vq~0ITPUB个人空间;NS!Xf[a)cU|
SRVCTL Modify
u/^$A1Wpdu7M#Kc I1~0
5HBH[dn0修改实例的节点配置信息。这些修改会在程序下次重新启动后生效。修改后的信息将永久保存。ITPUB个人空间#]ny*MuK

R0W0}*c&wSx8}/^0srvctl modify instance -d database_name -i instance_name -n node_nameITPUB个人空间XN0w!V:v*W/j p lr

9PJ{%iB3}gp0实例:修改实例到另一个节点ITPUB个人空间6a9q oU&S|1_}
ITPUB个人空间0XX;{9}.L8J
srvctl modify instance -d mydb -n my_new_nodeITPUB个人空间 k9^9_.{ J!u*I/_y1Y

/AIw\ |Y h L,^$r0SRVCTL Remove
1j xGf sx0
`d0W8O"f y0这是用来删除SRVM库中配置信息的命令。对象相关的环境设置也同样删除。如果你未使用强制标志(-f),ORACLE将提示你确认是否删除。

  ITPUB个人空间q\"F9hx6qr?
使用强制选项(-f),删除操作将不进行提示
L8m_8wy'C0
lg8q;`H \!Z0srvctl remove database -d database_name [-f]
.aUK;O#c|#r0ITPUB个人空间!{ jh0X/vj
srvctl remove instance -d database_name -i instance_name [-f]ITPUB个人空间 j7iw5hdQ{!P
ITPUB个人空间 |.c? t.RN
SRVCTL Remove命令详细选项ITPUB个人空间9c%rxRk5O!P
ITPUB个人空间 QYO]'s
-f 强制删除应用时不进行确认提示ITPUB个人空间 U$p*Y'P:x9zu
ITPUB个人空间? X3Rzq
实例:删除数据库
8bI0BFFp0
)ux|.x%}U Tu0srvctl remove database -d mydbITPUB个人空间 mq5Y:S7_
ITPUB个人空间C'MX?N4b4\}6e
实例:删除数据库实例ITPUB个人空间/RT+pD lg7Eds

9ri}{ fwnT ?0srvctl remove instance -d mydb -i mydb0
l%~-WF5T2Fv9H0
]$BHZ6~,dg"`]m0srvctl remove instance -d mydb -i mydb0
2E t'GY m&z0
2t6].[f#X2L%{*g0srvctl remove instance -d mydb -i mydb0ITPUB个人空间[*F \k1~+v
ITPUB个人空间^8@+VF:c
SRVCTL SetenvITPUB个人空间8YJ2@M;Gy
ITPUB个人空间%W$muCI#M1LM
设置SRVM配置文件中的环境变量值。ITPUB个人空间4eZ Q.c0i
ITPUB个人空间#g td'S1Z-D5[9y
srvctl setenv database -d database_name -t name=value [,name=value,……]
tM]5K L%zX0
JiY]:c0srvctl setenv instance -d database_name [-i instance_name] -t name=value [,name=value,……]
?(Oq*Sy1f"d0
#qk1k2`'m~0实例:设置数据库环境变量

  ITPUB个人空间d@(s]O3Rf)o(Z I
srvctl setenv database -d mydb -t LANG=en
2a?CO}b2m0ITPUB个人空间gOtr}M+p
SRVCTL Start
b/hQ!?6OBW-W `0
5B o u!?g(Z0启动数据库,所有实例或指定的实例,及启动所有相关未启动的监听。
t9S*t d*~#{/C0ITPUB个人空间&dWIiN7\.w5j
注:ITPUB个人空间p;lq#u*LH3LL X

dUS] t-Hz+A0对于start命令和其它一些可以使用连接字符串的操作,如果你不提供连接字符串,那么ORACLE会使用"/ as sysdba"在实例上执行相关的操作。另外,要执行类似的操作,你必须是OSDBA组的成员。关于更多的OSDBA组权限信息,请参考ORACLEi的 安装指南。ITPUB个人空间6D$[m_A/~^ Hb

OVM"K }}-[K0srvctl start database -d database_name [-o start_options] [-c connect_string]
0F;y_/`;k n0
`}S%?*f-rMNJ0srvctl start instance -d database_name -i instance_name [,instance_name-list] [-o start_options] [-c connect_string]
8a&ZX?!J8r%W c0
SRg_h+c&bB S;b/f0表- SRVCTL Start命令详细选项
8Vo[YlEN,V"J*O0
(IJq,s+e%|)]0命令  选项ITPUB个人空间GYj0R,V!k'^}T/}g

O9CVvS9P[m]E#c0-o   在SQL*Plus直接传递的startup命令选项,可以包括PFILE
TAP&ZR7hp |,N0
[vj;],l$] a D0-c   使用SQL*Plus连接数据库实例的连接字符串
9p8V3y2_#\#f~KBK0
)w-ca1EpMg;J.E0实例:启动数据库及所有的实例

  
3`0g3H,q l!T MV%xO0srvctl start database -d mydbITPUB个人空间9~)d9[b2?P7o

2Q-ZN!]$B0实例:启动指定的实例ITPUB个人空间)_ A#U"n9rQp)D?e^

V,|![3tQ6R&C]"D,_e0srvctl start instance -d mydb -i mydb,mydbITPUB个人空间MvMr }9S
ITPUB个人空间r6[{ Xw TE!s!h`
SRVCTL StatusITPUB个人空间 [0DS3B9i An[ShHF

B4H6qC i/t t8o0显示指定数据库的当前状态
X[7|+Hl { S+t2A |0
w\;vh(f0srvctl status database -d database_name
ig JOa3ph7G,_A b0
c\ e j$Ct7nD0srvctl status instance -d database_name -i instance_name [,instance_name-list]
xpB/l)unp.@0
D"} _Q!} `N-d0实例:显示数据和所有实例状态ITPUB个人空间;q3de bCY

"x/T%c| ` R[b0srvctl status database -d mydbITPUB个人空间8OTQ0Gi-GS3Fh)b#V

@6r-I-_6UAI0实例:显示指定实例的状态ITPUB个人空间Z4`_f6r2V8[3K
ITPUB个人空间j [)`V9{.P)k!Fq3yR
srvctl status instance -d mydb -i mydb,mydb
-T:~:v#r8_~ t?0ITPUB个人空间Fxa Aq
SRVCTL StopITPUB个人空间y6^2W rx boG rf

h`g mivPB4f0停止数据库所有实例可者指定实例
/]X3O}iIk0
7K*bw&tC0srvctl stop database -d database_name [-o stop_options] [-c connect_string]ITPUB个人空间A^2f` R7E h3aMl

.F#u'u0w6f0srvctl stop instance -d database_name -i instance_name [,instance_name_list] [-o stop_options][-c connect_string]
6q? Br e-_%R6h"k0
(SL1DuR"@0表- SRVCTL Stop命令详细选项ITPUB个人空间4i)`1{s'U
ITPUB个人空间-v0A:{Zb!eP l
命令  选项
!^'i7c.U!PXP0ITPUB个人空间}&nO8j H/JByb"f(H(V
-c   使用SQL*Plus连接数据库实例的连接字符串
b#Rc?t^*ML,zT [0
up4\8T w0-o   在SQL*Plus直接传递的shutdown命令选项
/S4oqlJd+x%_0
[,g&vno9j0实例:停止数据库所有的实例
(qobqT Dh)U0
)^#L4uQ(|0srvctl stop database -d mydbITPUB个人空间vuZMK

z1y9z-WBmx@0实例:停止指定实例
#q.r:bP+m0_Q]0ITPUB个人空间 ]+Y V Fj~b S'z
srvctl stop instance -d mydb -i mydbITPUB个人空间+E*i&sD4\$t)pqT!d

"W@ EwC7fi0SRVCTL UnsetenvITPUB个人空间"KN0?P1F
ITPUB个人空间!n yI \DlfTE
取消SRVM配置文件中环境变量定义值ITPUB个人空间VE"p!tJx7I

^{?*@ mEk6a w0srvctl unsetenv database -d database_name-t name[,name,……]ITPUB个人空间;R } T7`9}ILw

M8aFzp}G0srvctl unsetenv instance -d database_name[-i instance_name] -t name[,name,……]ITPUB个人空间#_*|W)\ i/Z

U N5_*x(U,B:F[z1h0实例:取消环境变量,回到缺省值ITPUB个人空间 F7R1F/D |I5e
ITPUB个人空间t%A@m(^]
srvctl unsetenv database -d mydb -t CLASSPATH
faN Y-^0
Vp/fdq:})|H.B*w0使用SRVCONFIG导入和导出RAW设备配置信息ITPUB个人空间xx|Pk(^ d H
ITPUB个人空间;FYUO r9W@1y
你可使用SRVCONFIG导入和导出RAW设备配置信息,不管配置文件是在集群文件系统上还是在RAW设备上。你可以使用这种方法来备份与恢复SRVM配置信息。
t*z3`MHk{ R0ITPUB个人空间 r&xz P1e%Z2H!W9E
例如:ITPUB个人空间3O|'b5Z4x6S
ITPUB个人空间 Lc%Dn/] ^7YQh cI
下面的命令用来导出配置信息的内容到你指定文件名的文本文件中。
gi5Ir`&R \`0ITPUB个人空间5x*C%|7C*~"hI/my
srvconfig -exp file_nameITPUB个人空间ywY0G{]

eKZ$i.I0下面的命令用来从指定文本文件中导入配置信息到到你运行命令的RAC环境配置信息库。
^{ Y\N0
kXo:A x,{0srvconfig -imp file_name

核实 RAC 集群/数据库配置

应在集群的所有节点上执行以下 RAC 核实检查!对于本指南,我将只从linux1中执行这些检查。

本节提供了几个可用于验证 Oracle RAC 10g配置的srvctl命令和 SQL 查询。

有五个为 SRVCTL 定义的节点级任务:

  • 添加和删除节点级应用程序
  • 设置和取消设置节点级应用程序的环境
  • 管理节点应用程序
  • 管理 ASM 实例
  • 启动和停止一组包含虚拟 IP 地址、监听器、Oracle 通知服务和 Oracle 企业管理器代理的程序(出于维护目的)。

所有实例和服务的状态

$ srvctl status database -d orcl
gr1Ku2KN ~$f0Instance orcl1 is running on node linux1
f#D{t)V!h]0Instance orcl2 is running on node linux2

单个实例的状态

$ srvctl status instance -d orcl -i orcl2ITPUB个人空间
H:S"|\Z0|&G@
Instance orcl2 is running on node linux2

在数据库全局命名服务的状态

$ srvctl status service -d orcl -s orcltestITPUB个人空间p:pC0n&K"UVr\
Service orcltest is running on instance(s) orcl2, orcl1

特定节点上节点应用程序的状态

$ srvctl status nodeapps -n linux1
\&t/jN3Mku Un.Eo7T0VIP is running on node:linux1
.Lm `&gFx0GSD is running on node:linux1ITPUB个人空间2e Sd)H?3{)Q
Listener is running on node:linux1
M.@5l@8se0ONS daemon is running on node:linux1

ASM 实例的状态

$ srvctl status asm -n linux1ITPUB个人空间ZJQd8_
g!n
ASM instance +ASM1 is running on node linux1.

列出配置的所有数据库

$ srvctl config databaseITPUB个人空间!Z%brEl1KmD
orcl

显示 RAC 数据库的配置

$ srvctl config database -d orclITPUB个人空间1Iw%q}G:P}2I
linux1 orcl1 /u01/app/oracle/product/10.1.0/db_1ITPUB个人空间y&\&I)\SQ$qqOSm
linux2 orcl2 /u01/app/oracle/product/10.1.0/db_1

显示指定集群数据库的所有服务

$ srvctl config service -d orclITPUB个人空间0`g	T4VR'JK4]
orcltest PREF:orcl2 orcl1 AVAIL:

显示节点应用程序的配置 -(VIP、GSD、ONS、监听器)

$ srvctl config nodeapps -n linux1 -a -g -s -lITPUB个人空间|;]
J-KSk
kf&{
VIP exists.:/vip-linux1/192.168.1.200/255.255.255.0/eth0:eth1ITPUB个人空间&Z.L'qq*z~@ MQ
GSD exists.
*v$A k_h:L Ih;N0ONS daemon exists.ITPUB个人空间 ^ge^t
Listener exists.

显示 ASM 实例的配置

$ srvctl config asm -n linux1
y |hL5II0+ASM1 /u01/app/oracle/product/10.1.0/db_1

集群中所有正在运行的实例

SELECTITPUB个人空间
h,u_+pg*A6{2^X&C
inst_id
7l!^ YZi V%\0, instance_number inst_no
[2CVN;OX0, instance_name inst_name
?P5j$i6u|i0, parallel
WF/A!~?6U4L0C0, status
:|[A+B6lg;xu0, database_status db_statusITPUB个人空间^ZTt0Ed BgA
, active_state state
,P p(I ^b)C0, host_name hostITPUB个人空间Wb.w&h d$f"T9}
FROM gv$instanceITPUB个人空间 U.yJ#s Wh
ORDER BY inst_id;
tUb'dz9~0
@'CGz|IZ3k%l0INST_ID INST_NO INST_NAME PAR STATUS DB_STATUS STATE HOST
{6jA R6w$]E:yf0-------- -------- ---------- --- ------- ------------ --------- -------
Ni'o^ I[9y01 1 orcl1 YES OPEN ACTIVE NORMAL linux1
(UnB+TF02 2 orcl2 YES OPEN ACTIVE NORMAL linux2

位于磁盘组中的所有数据文件

select name from v$datafile
"w-o];z"N/J.F5w0unionITPUB个人空间v^,DHkj%y H'o;Q0`
select member from v$logfile
xE V{Nh0unionITPUB个人空间Z"Xl4i/BZ4GyzPi
select name from v$controlfile
kP hUW,Tn0unionITPUB个人空间.EXb&koo)s5L `"`
select name from v$tempfile;
&M VU-J.d8J"b0ITPUB个人空间W@!p%Q9t3z+L8O?&D
NAMEITPUB个人空间jAQ0V l/?:W'G!GT
-------------------------------------------ITPUB个人空间l!C0{3m z T L.pZ pA#x
+ORCL_DATA1/orcl/controlfile/current.256.1ITPUB个人空间"ar&zM`x&Q$V8bn
+ORCL_DATA1/orcl/datafile/indx.269.1
(a}3N_w0+ORCL_DATA1/orcl/datafile/sysaux.261.1ITPUB个人空间 L"nGp5xW6Z
+ORCL_DATA1/orcl/datafile/system.259.1ITPUB个人空间7i tS-p:X)ZI-J
+ORCL_DATA1/orcl/datafile/undotbs1.260.1
/HF$x1Bp.DEW0+ORCL_DATA1/orcl/datafile/undotbs1.270.1
4h%C\)ZE"FoP|%j0+ORCL_DATA1/orcl/datafile/undotbs2.263.1ITPUB个人空间 {4gG1T(p d#|]
+ORCL_DATA1/orcl/datafile/undotbs2.271.1
-R2R S_5m`bd0+ORCL_DATA1/orcl/datafile/users.264.1ITPUB个人空间&@3Yxc,G8j[$__e7z
+ORCL_DATA1/orcl/datafile/users.268.1
9P#ua8z'x3r o0+ORCL_DATA1/orcl/onlinelog/group_1.257.1
:s{!p:s fX0k!{)f&y0+ORCL_DATA1/orcl/onlinelog/group_2.258.1ITPUB个人空间X,eR6PUm)o
+ORCL_DATA1/orcl/onlinelog/group_3.265.1ITPUB个人空间`0BEa.H
+ORCL_DATA1/orcl/onlinelog/group_4.266.1
J)s J1z0k7r3\/K}d0+ORCL_DATA1/orcl/tempfile/temp.262.1ITPUB个人空间KW0B}lL.F

X{ LC{#m015 rows selected.

属于“ORCL_DATA1”磁盘组的所有 ASM 磁盘

SELECT path
YGGbq7? ?dE0FROM v$asm_diskITPUB个人空间a?A9H8A)K7} fy L
WHERE group_number IN (select group_number
5S~1y;`3x&h0N+|0from v$asm_diskgroupITPUB个人空间/Q3hb2lQ6}
where name = 'ORCL_DATA1');ITPUB个人空间(q xM,`F/] ip
ITPUB个人空间1JJ M#t!l^`$z,s?x
PATH
H8z mX(Fm0----------------------------------
*~JS7A}|*r0ORCL:VOL1
i7K%V;egdC0ORCL:VOL2ITPUB个人空间:Z8E3c2W'_*`U}
ORCL:VOL3


26. 启动和停止集群

此时,我们已经完全安装并配置了 Oracle RAC 10g并拥有了一个功能完善的集群化数据库。

至此完成所有工作后,您可能会问“那我又怎样启动和停止服务呢?”如果您遵循了本指南中的说明,则所有服务(包括 CRS、所有 Oracle 实例、企业管理器数据库控制台等)应在 Linux 节点每次重新引导时自动启动。

但有时您可能想要关闭某个节点,然后手动重新启动它。或者,您可能发现企业管理器没有而需要启动它。本节提供了启动和停止集群环境的命令(使用SRVCTL)。

确保您是以oracleUNIX 用户登录的。我们将从linux1运行本节中的所有命令:

# su - oracle
"a_nERB;jO0
8cyQEn R``7H2M }0$ hostnameITPUB个人空间!D2iw&gme%{
linux1

停止 Oracle RAC 10g环境

第一步是停止 Oracle 实例。当此实例(和相关服务)关闭后,关闭 ASM 实例。最后,关闭节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。

$ export ORACLE_SID=orcl1ITPUB个人空间L+v8U(c\5xU3rl,fdZJ.O
$ emctl stop dbconsoleITPUB个人空间$|k7Y\Q1YG3J_
$ srvctl stop instance -d orcl -i orcl1
P v#e,]8x+m8j0$ srvctl stop asm -n linux1
9}[V i9tH3f.eG0$ srvctl stop nodeapps -n linux1

启动 Oracle RAC 10g环境

第一步是启动节点应用程序(虚拟 IP、GSD、TNS 监听器和 ONS)。当成功启动节点应用程序后,启动 ASM 实例。最后,启动 Oracle 实例(和相关服务)以及企业管理器数据库控制台。

$ export ORACLE_SID=orcl1
l6TQbu#A%z8JK0$ srvctl start nodeapps -n linux1ITPUB个人空间#Oc7t xES^;y | e
$ srvctl start asm -n linux1ITPUB个人空间P&O%g aX#gM
$ srvctl start instance -d orcl -i orcl1
t1g"xUip;a%E0$ emctl start dbconsole

使用 SRVCTL 启动/停止所有实例

启动/停止所有实例及其启用的服务。我只是觉得有意思就把此步骤作为关闭所有实例的一种方法加进来了!

$ srvctl start database -d orcl
Z(q$Yw@\T0

TAG:

paul oracle my love 引用 删除 paulyibinyi   /   2008-07-03 14:41:48
原帖由football2006于2008-07-03 10:11:57发表
[oracle@node1 ~]$ srvctl
/opt/ora10g/product/10.2.0/db_1/jdk/jre/bin/java: error while loading s

用root用户进到crs bin目录看下
./srvctl
引用 删除 football2006   /   2008-07-03 10:11:57
[oracle@node1 ~]$ srvctl
/opt/ora10g/product/10.2.0/db_1/jdk/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
[oracle@node1 ~]$

srvctl 不知道为什么不能用了
[oracle@node1 ~]$ echo $LD_LIBRARY_PATH
/opt/ora10g/product/10.2.0/db_1/lib
[oracle@node1 ~]$
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-14  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 20466
  • 日志数: 291
  • 图片数: 2
  • 建立时间: 2007-12-11
  • 更新时间: 2008-10-04

RSS订阅

Open Toolbar