摘要:
以前也整理过一遍有关跟踪事件的文章,不过命令方面没有这篇强。Oracle 跟踪事件 set eventhttp://blog.csdn.net/tianlesoftware/archive/2009/12/10/4977827.aspx一.Memory Dumps1).Global AreaALTER SESSION SET EVENTS ‘immediate trace name global_area level n’;1 包含PGA2 包含SGA4 包含UGA8 包含indrect memory2).Library CacheALTER SESSION SET EVENTS ‘immed
阅读全文
posted @ 2009-12-10 10:56
davedba
阅读(88)
推荐(0)
摘要:
一、Oracle跟踪文件 Oracle跟踪文件分为三种类型,一种是后台报警日志文件,记录数据库在启动、关闭和运行期间后台进程的活动情况,如表空间创建、回滚段创建、某些alter命令、日志切换、错误消息等。在数据库出现故障时,应首先查看该文件,但文件中的信息与任何错误状态没有必然的联系。后台报警日志文件保存BACKGROUND_DUMP_DEST参数指定的目录中,文件格式为SIDALRT.LOG。另一种类型是DBWR、LGWR、SMON等后台进程创建的后台跟踪文件。后台跟踪文件根据后台进程运行情况产生,后台跟踪文件也保存在BACKGROUND_DUMP_DEST参数指定的目录中,文件格式为sid
阅读全文
posted @ 2009-12-10 10:44
davedba
阅读(132)
推荐(0)
摘要:
一、Oracle跟踪文件 Oracle跟踪文件分为三种类型,一种是后台报警日志文件,记录数据库在启动、关闭和运行期间后台进程的活动情况,如表空间创建、回滚段创建、某些alter命令、日志切换、错误消息等。在数据库出现故障时,应首先查看该文件,但文件中的信息与任何错误状态没有必然的联系。后台报警日志文件保存BACKGROUND_DUMP_DEST参数指定的目录中,文件格式为SIDALRT.LOG。另一种类型是DBWR、LGWR、SMON等后台进程创建的后台跟踪文件。后台跟踪文件根据后台进程运行情况产生,后台跟踪文件也保存在BACKGROUND_DUMP_DEST参数指定的目录中,文件格式为sid
阅读全文
posted @ 2009-12-10 10:44
davedba
阅读(124)
推荐(0)
摘要:
一、list常用命令总结备忘 list命令列出控制文件、RMAN恢复目录中备份信息, 是我们对所有可见的数据库备份文件的一个最直观的了解的方法 list incarnation; list backup summary; list backup of database summary; list backup of tablespace summary; list backup of datafile n,n summary; list archivelog all summary; list backup by file; list backup; list expired backup;
阅读全文
posted @ 2009-12-10 08:07
davedba
阅读(172)
推荐(0)
摘要:
一、list常用命令总结备忘 list命令列出控制文件、RMAN恢复目录中备份信息, 是我们对所有可见的数据库备份文件的一个最直观的了解的方法 list incarnation; list backup summary; list backup of database summary; list backup of tablespace summary; list backup of datafile n,n summary; list archivelog all summary; list backup by file; list backup; list expired backup;
阅读全文
posted @ 2009-12-10 08:07
davedba
阅读(205)
推荐(0)
摘要:
一. Oracle 控制文件内容我们可以通过v$controlfile_record_section 视图查看控制文件里包含的内容。SQL> select type from v$controlfile_record_section;TYPE--------------------------------------------------------DATABASECKPT PROGRESSREDO THREADREDO LOGDATAFILEFILENAMETABLESPACETEMPORARY FILENAMERMAN CONFIGURATIONLOG HISTORYOFFLINE
阅读全文
posted @ 2009-12-09 21:41
davedba
阅读(255)
推荐(0)
摘要:
一. Oracle 控制文件内容我们可以通过v$controlfile_record_section 视图查看控制文件里包含的内容。SQL> select type from v$controlfile_record_section;TYPE--------------------------------------------------------DATABASECKPT PROGRESSREDO THREADREDO LOGDATAFILEFILENAMETABLESPACETEMPORARY FILENAMERMAN CONFIGURATIONLOG HISTORYOFFLINE
阅读全文
posted @ 2009-12-09 21:41
davedba
阅读(269)
推荐(0)
摘要:
Rowid 与 Rownum 虽都被称为伪列,但它们的存在方式是不一样的,rowid 可以说是物理存在的,表示记录在表空间中的唯一位置ID,在DB中唯一。只要记录没被搬动过,rowid是不变的。rowid 相对于表来说又像表中的一般列,所以以 rowid 为条件就不会有 rownum那些情况发生。 rownum不能以任何基表的名称作为前缀。 对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。 举例说明: 例如表:student(学生)表,表结构
阅读全文
posted @ 2009-12-09 11:33
davedba
阅读(172)
推荐(0)
摘要:
Rowid 与 Rownum 虽都被称为伪列,但它们的存在方式是不一样的,rowid 可以说是物理存在的,表示记录在表空间中的唯一位置ID,在DB中唯一。只要记录没被搬动过,rowid是不变的。rowid 相对于表来说又像表中的一般列,所以以 rowid 为条件就不会有 rownum那些情况发生。 rownum不能以任何基表的名称作为前缀。 对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。 举例说明: 例如表:student(学生)表,表结构
阅读全文
posted @ 2009-12-09 11:33
davedba
阅读(203)
推荐(0)
摘要:
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:1. /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.例如:SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';2. /*+FIRST_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.例如:SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN F
阅读全文
posted @ 2009-12-09 10:18
davedba
阅读(107)
推荐(0)
摘要:
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法:1. /*+ALL_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化.例如:SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';2. /*+FIRST_ROWS*/表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.例如:SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN F
阅读全文
posted @ 2009-12-09 10:18
davedba
阅读(105)
推荐(0)
摘要:
1. 采用高速的存储设备,提高读写能力,如:EMC 和NetApp,2. 假如tab1表中的没有数据的话DROP TABLE TAB1;CREATE TABLE TAB1 AS SELECT * FROM TAB2;然后在创建索引 3. 用Hint 提示减少操作时间 INSERT /*+Append*/ INTO tab1 SELECT * FROM tab2;4. 采用不写日志及使用Hint提示减少数据操作的时间。建议方案是先修改表为不写日志: sql> alter table table_name NOLOGGING; 插入数据:INSERT /*+Append*/ ...
阅读全文
posted @ 2009-12-09 10:17
davedba
阅读(188)
推荐(0)
摘要:
我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。 1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1 注意:(1)要求目标表Table2必须存在,并且字段field,field2...也必须存在 (2)注意Table2的主键约束,如果Table2有主键而...
阅读全文
posted @ 2009-12-08 09:51
davedba
阅读(227)
推荐(0)
摘要:
先看一个oracle 10g 下table 创建SQL,都是默认值:CREATE TABLE SYS.QS( USERNAME VARCHAR2(30 BYTE) NOT NULL, USER_ID NUMBER NOT NULL, CREATED DATE NOT NULL)TABLESPACE SYSTEMPCTUSED 40PCTFREE 10INITRANS 1MAXTRANS 255STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BU
阅读全文
posted @ 2009-12-07 09:18
davedba
阅读(409)
推荐(0)
摘要:
首先我们来看下alertSID.log日志:MonNov3017:31:542009Thread1advancedtologsequence14214(LGWRswitch)Currentlog#3seq#14214mem#0:/u03/oradata/newccs/redo03.logMonNov3017:34:292009Thread1advancedtologsequence14215(LGWRswitch)Currentlog#1seq#14215mem#0:/u03/oradata/newccs/redo01.logMonNov3017:35:542009Thread1cannota
阅读全文
posted @ 2009-11-30 19:39
davedba
阅读(188)
推荐(0)
摘要:
首先我们来看下alertSID.log日志:MonNov3017:31:542009Thread1advancedtologsequence14214(LGWRswitch)Currentlog#3seq#14214mem#0:/u03/oradata/newccs/redo03.logMonNov3017:34:292009Thread1advancedtologsequence14215(LGWRswitch)Currentlog#1seq#14215mem#0:/u03/oradata/newccs/redo01.logMonNov3017:35:542009Thread1cannota
阅读全文
posted @ 2009-11-30 19:39
davedba
阅读(180)
推荐(0)
摘要:
将表空间和数据文件从一个位置移动到另一个位置的操作方法一.OFFLINEOFFLINE分为ALTERDATABASE与ALTERTABLESPACEOFFLINE,他们的区别参看blog:http://blog.csdn.net/tianlesoftware/archive/2009/11/29/4898800.aspx按数据文件来:1.先将相应的数据文件offlineALTERDATABASEDATAFILE'D:/ORACLE/ORADATA/DBA/TEST01.DBF'OFFLINE;2.把数据文件copy到新位置3.alterdatabaserenamefile
阅读全文
posted @ 2009-11-29 11:28
davedba
阅读(161)
推荐(0)
摘要:
将表空间和数据文件从一个位置移动到另一个位置的操作方法一.OFFLINEOFFLINE分为ALTERDATABASE与ALTERTABLESPACEOFFLINE,他们的区别参看blog:http://blog.csdn.net/tianlesoftware/archive/2009/11/29/4898800.aspx按数据文件来:1.先将相应的数据文件offlineALTERDATABASEDATAFILE'D:/ORACLE/ORADATA/DBA/TEST01.DBF'OFFLINE;2.把数据文件copy到新位置3.alterdatabaserenamefile
阅读全文
posted @ 2009-11-29 11:28
davedba
阅读(167)
推荐(0)
摘要:
一.DataFile脱机或联机的两种方法:①ALTERDATABASE语句修改单独的DataFile②ALTERTABLESPACE语句修改所有的DataFile1、在ARCHIVRLOG模式下的更改DataFile状态ALTERDATABASEDATAFILE'/u02/oracle/rbdb1/stuff01.dbf'ONLINE;ALTERDATABASEDATAFILE'/u02/oracle/rbdb1/stuff01.dbf'OFFLINE;或者用文件号来表示:SQL>selectfile#,name,checkpoint_change#fro
阅读全文
posted @ 2009-11-29 10:06
davedba
阅读(342)
推荐(0)
摘要:
一.DataFile脱机或联机的两种方法:①ALTERDATABASE语句修改单独的DataFile②ALTERTABLESPACE语句修改所有的DataFile1、在ARCHIVRLOG模式下的更改DataFile状态ALTERDATABASEDATAFILE'/u02/oracle/rbdb1/stuff01.dbf'ONLINE;ALTERDATABASEDATAFILE'/u02/oracle/rbdb1/stuff01.dbf'OFFLINE;或者用文件号来表示:SQL>selectfile#,name,checkpoint_change#fro
阅读全文
posted @ 2009-11-29 10:06
davedba
阅读(243)
推荐(0)
摘要:
1. 先通过top命令查看产用资源较多的spid号2.查询当前耗时的会话ID,用户名,sqlID等:select sid,serial#,machine,username,program,sql_hash_value,sql_id, to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$sessionwhere paddr in (select addr from v$process where spid in ('5648612','256523'));3. 如果上一步
阅读全文
posted @ 2009-11-29 09:02
davedba
阅读(196)
推荐(0)
摘要:
1. 先通过top命令查看产用资源较多的spid号2.查询当前耗时的会话ID,用户名,sqlID等:select sid,serial#,machine,username,program,sql_hash_value,sql_id, to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$sessionwhere paddr in (select addr from v$process where spid in ('5648612','256523'));3. 如果上一步
阅读全文
posted @ 2009-11-29 09:02
davedba
阅读(202)
推荐(0)
摘要:
OCM考试全称为OracleCertifiedMaster(Oracle认证大师),是在OCA(Oracle认证专员OracleCertifiedAssociate)、OCP(Oracle认证专家OracleCertifiedProfessional)之后更高一级的Oracle技术认证,也是Oracle技术认证最高的一个级别。考试是两天的时间,全部为实际操作的考试,第一天是创建数据库和安装GridControl,第二天是创建RAC以及部署DataGuard,其中穿插着几乎所有Oracle数据库管理需要用到的常用知识。其实,技术上来说OCM的考试并不很难,考试涉及的内容也是很喜闻乐见的技术架构。
阅读全文
posted @ 2009-11-28 18:24
davedba
阅读(487)
推荐(0)
摘要:
OCM考试全称为OracleCertifiedMaster(Oracle认证大师),是在OCA(Oracle认证专员OracleCertifiedAssociate)、OCP(Oracle认证专家OracleCertifiedProfessional)之后更高一级的Oracle技术认证,也是Oracle技术认证最高的一个级别。考试是两天的时间,全部为实际操作的考试,第一天是创建数据库和安装GridControl,第二天是创建RAC以及部署DataGuard,其中穿插着几乎所有Oracle数据库管理需要用到的常用知识。其实,技术上来说OCM的考试并不很难,考试涉及的内容也是很喜闻乐见的技术架构。
阅读全文
posted @ 2009-11-28 18:24
davedba
阅读(406)
推荐(0)
摘要:
1. Oracle 10g windows 平台下安装 下载地址: http://download.csdn.net/source/1850497 在线观看地址:http://v.youku.com/v_show/id_XMTM0NzA5MjY0.html2. 虚拟机上安装Linux 操作系统 下 载 地 址:http://download.csdn.net/source/1855603 在线观看地址:http://v.youku.com/v_show/id_XMTM1MTM5MzQ0.html3. Oracle 监听的配置 下 载 地 址:http://download.csdn.n...
阅读全文
posted @ 2009-11-27 10:03
davedba
阅读(105)
推荐(0)
摘要:
1. Oracle 10g windows 平台下安装 下载地址: http://download.csdn.net/source/1850497 在线观看地址:http://v.youku.com/v_show/id_XMTM0NzA5MjY0.html2. 虚拟机上安装Linux 操作系统 下 载 地 址:http://download.csdn.net/source/1855603 在线观看地址:http://v.youku.com/v_show/id_XMTM1MTM5MzQ0.html3. Oracle 监听的配置 下 载 地 址:http://download.csdn.n...
阅读全文
posted @ 2009-11-27 10:03
davedba
阅读(111)
推荐(0)
摘要:
平台:oracle9i+windows2003故障表现:ORA-12154:TNS:couldnotresolveservicenameDataGuard之前一直很正常。突然就报这个错了。无法完成归档,但用tnspingSID,没有问题,监听也没有问题。因为TNS无法解析,所以主库的归档日志无法传送到备库。无法完成归档。尝试解决方法:SQL>altersystemsetlog_archive_dest_2='';系统已更改SQL>altersystemsetlog_archive_dest_3='service=orcl_2';系统已更改SQL>
阅读全文
posted @ 2009-11-26 02:42
davedba
阅读(118)
推荐(0)
摘要:
平台:oracle9i+windows2003故障表现:ORA-12154:TNS:couldnotresolveservicenameDataGuard之前一直很正常。突然就报这个错了。无法完成归档,但用tnspingSID,没有问题,监听也没有问题。因为TNS无法解析,所以主库的归档日志无法传送到备库。无法完成归档。尝试解决方法:SQL>altersystemsetlog_archive_dest_2='';系统已更改SQL>altersystemsetlog_archive_dest_3='service=orcl_2';系统已更改SQL>
阅读全文
posted @ 2009-11-26 02:42
davedba
阅读(134)
推荐(0)
摘要:
Oracle在9i以后,可以利用DBMS_METADATA.GET_DDL包得到数据库的对象的ddl脚本。如下(SQLPLUS中执行):1.获取单个的建表、视图和建索引的语法setpagesize0setlong90000setfeedbackoffsetechooffspoolDEPT.sqlselectdbms_metadata.get_ddl('TABLE','TAB_NAME','SCOTT')fromdual;selectdbms_metadata.get_ddl('VIEW','VIEW_NAME',&
阅读全文
posted @ 2009-11-25 07:47
davedba
阅读(270)
推荐(0)
摘要:
一、监听器(LISTENER) 监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。二、本地服务名(Tnsname) Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。Oracle常用的客户端配置就是采用的本地服务名,本文中..
阅读全文
posted @ 2009-11-24 10:12
davedba
阅读(335)
推荐(0)
摘要:
一、监听器(LISTENER) 监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。二、本地服务名(Tnsname) Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。Oracle常用的客户端配置就是采用的本地服务名,本文中..
阅读全文
posted @ 2009-11-24 10:12
davedba
阅读(128)
推荐(0)
摘要:
1. 在2个实例之间同步表的数据先创建DBLINK...create database link TEST.US.ORACLE.COM connect toTEST identified byTEST using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.6.1.36)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )';测试Db_LINKselect * from tworkgroupnode@TEST删除数据tr
阅读全文
posted @ 2009-11-24 01:48
davedba
阅读(168)
推荐(0)
摘要:
Oracle中的数据字典是数据库中的非常重要的一部分,提供了相关数据库的信息,它是所有Oracle用户(从应用的最终用户、应用的设计开发者到数据库管理员)的非常重要的信息来源。数据字典的创建,是在Oracle数据库创建完毕后,运行一些相关的数据库管理脚本来完成的。当采用Oracle统一安装器(OracleUniversalInstaller)创建数据库时,Oracle服务器有关的字典视图和脚本最后会被自动安装。但当需要升级目前的Oracle数据库服务器时,数据库管理员必须要手工重新运行创建这些视图或脚本的SQL。安装完数据库后,Oracle数据库管理脚本就存放在操作系统中。对于UNIX和N..
阅读全文
posted @ 2009-11-23 11:37
davedba
阅读(152)
推荐(0)
摘要:
Oracle中的数据字典是数据库中的非常重要的一部分,提供了相关数据库的信息,它是所有Oracle用户(从应用的最终用户、应用的设计开发者到数据库管理员)的非常重要的信息来源。数据字典的创建,是在Oracle数据库创建完毕后,运行一些相关的数据库管理脚本来完成的。当采用Oracle统一安装器(OracleUniversalInstaller)创建数据库时,Oracle服务器有关的字典视图和脚本最后会被自动安装。但当需要升级目前的Oracle数据库服务器时,数据库管理员必须要手工重新运行创建这些视图或脚本的SQL。安装完数据库后,Oracle数据库管理脚本就存放在操作系统中。对于UNIX和N..
阅读全文
posted @ 2009-11-23 11:37
davedba
阅读(182)
推荐(0)
摘要:
一. 安装前的准备1.在数据库服务器上以Administrator身份登录到Windows2.停止所有Oracle相关的服务。这些服务名称通常是以Oracle打头3.停止Distributed Transaction Coordinator服务4.备份与Oracle数据库相关的所有文件(包括Oracle数据库软件及数据文件),把这些文件按原有的目录结构复制到安全的地方,并做好标记或记录二. 安装过程从metalink下载oracle for window 32 9.2.0.6 patch 安装时注意表空间大小和监听是否正常 运行PATCH的SETUP.EXE文件/Disk1/setup.exe
阅读全文
posted @ 2009-11-20 19:47
davedba
阅读(140)
推荐(0)
摘要:
一. 安装前的准备1.在数据库服务器上以Administrator身份登录到Windows2.停止所有Oracle相关的服务。这些服务名称通常是以Oracle打头3.停止Distributed Transaction Coordinator服务4.备份与Oracle数据库相关的所有文件(包括Oracle数据库软件及数据文件),把这些文件按原有的目录结构复制到安全的地方,并做好标记或记录二. 安装过程从metalink下载oracle for window 32 9.2.0.6 patch 安装时注意表空间大小和监听是否正常 运行PATCH的SETUP.EXE文件/Disk1/setup.exe
阅读全文
posted @ 2009-11-20 19:47
davedba
阅读(135)
推荐(0)
摘要:
Applies to: Oracle Server - Enterprise Edition - Version: 10.1.0.5.0 This problem can occur on any platform. Symptoms: The issue is that the following error was raised : ORA-00600: internal error code, arguments: [kesutlGetBindValue-2], [], [], [], [], [], [], [] The recent changes was the : Migrati
阅读全文
posted @ 2009-11-20 18:45
davedba
阅读(132)
推荐(0)
摘要:
Applies to: Oracle Server - Enterprise Edition - Version: 10.1.0.5.0 This problem can occur on any platform. Symptoms: The issue is that the following error was raised : ORA-00600: internal error code, arguments: [kesutlGetBindValue-2], [], [], [], [], [], [], [] The recent changes was the : Migrati
阅读全文
posted @ 2009-11-20 18:45
davedba
阅读(174)
推荐(0)
摘要:
linux下手动删除数据库实例,直接删除相应的目录就可以了,不多说了....1. $ORACLE_HOME/dbs/[oracle9@frogger dbs]$ pwd/u01/app/oracle/product/9.2.0.1/dbs[oracle9@frogger dbs]$ rm inittest02.ora[oracle9@frogger dbs]$ rm orapwdtest022. $ORACLE_BASE/oradata/SID[oracle9@frogger oradata]$ lsdefault_demo01.dbfdefault_demo99.dbfdevdb02duke
阅读全文
posted @ 2009-11-15 16:33
davedba
阅读(255)
推荐(0)
摘要:
linux下手动删除数据库实例,直接删除相应的目录就可以了,不多说了....1. $ORACLE_HOME/dbs/[oracle9@frogger dbs]$ pwd/u01/app/oracle/product/9.2.0.1/dbs[oracle9@frogger dbs]$ rm inittest02.ora[oracle9@frogger dbs]$ rm orapwdtest022. $ORACLE_BASE/oradata/SID[oracle9@frogger oradata]$ lsdefault_demo01.dbfdefault_demo99.dbfdevdb02duke
阅读全文
posted @ 2009-11-15 16:33
davedba
阅读(312)
推荐(0)