ITPub博客

首页 > Linux操作系统 > Linux操作系统 > IBM solidDB and IBM solidDB Universal Cache认证指南,第 3 部分: 安装与配置

IBM solidDB and IBM solidDB Universal Cache认证指南,第 3 部分: 安装与配置

原创 Linux操作系统 作者:ArtCode 时间:2010-09-20 16:11:02 0 删除 编辑
吴敏达, 信息管理软件高级技术顾问, IBM

简介:  本系列共分为 7 个部分,旨在帮助您准备 IBM solidDB and IBM solidDB Universal Cache 认证 (考试 550),从中您可以学习构建 IBM solidDB and IBM solidDB Universal Cache 解决方案的技能。本文是系列教程的第 3 部分,主要介绍了 IBM solidDB and IBM solidDB Universal Cache 的安装和配置等相关内容。

开始之前

关于本系列

如果您正准备参加 IBM solidDB and IBM solidDB Universal Cache 认证考试 550,那您就来对地方了 —— 这是一份内容翔实的自学教程。这一共分 7 部分的准备 IBM solidDB and IBM solidDB Universal Cache 认证考试系列教程囊括了为考试而必须掌握的主要概念。您可通过本系列教程做好准备工作,轻松应对考试。

关于本教程

本教程介绍了为恰当地架构 IBM solidDB and IBM solidDB Universal Cache 解决方案而必须具备的技能。共分 7 部分的系列教程帮助您备考 IBM solidDB and IBM solidDB Universal Cache 认证(考试 550),这是其中的第 3 篇。本教程中的内容主要涵盖了考试第 3 部分“安装配置”中的目标,共占有 15% 的分数。要查看这些目标,请参阅 IBM solidDB and IBM solidDB Universal Cache 认证考试信息。

目标

学习完本教程后,您应能够:

  • 掌握安装和配置独立部署环境的 solidDB 数据库
  • 掌握安装和配置高可用性双机部署环境的 solidDB 数据库
  • 掌握安装和配置作为磁盘数据库高速缓存应用的 solidDB 数据库

先决条件

为了理解本教程中的内容,您应该熟悉以下概念:

  • 掌握 SolidDB 表的类型,内存表与磁盘表的区别和特性
  • 掌握内存表的持久性选项
  • 熟悉数据类型
  • 掌握应用接口 JDBC、ODBC、SA
  • 掌握服务器进程,驱动,连接属性,文件系统使用
  • 掌握启动和停止 solidDB 数据库
  • 掌握运用 solsql 和 solcon 来管理 SolidDB 数据库
  • 掌握 solidDB 数据库的备份和恢复
  • 掌握使用 solexp、solload 和 soldd 进行 solidDB 的数据迁移
  • 掌握 solidDB 数据库的版本迁移

系统需求

您不需一份 IBM solidDB and IBM solidDB Universal Cache 拷贝即可顺利完成本教程的学习。但是建议获得一份拷贝,亲自动手实践和实验,并与教程配合使用。同时可以阅读 IBM solidDB and IBM solidDB Universal Cache 的相关文档来更深入掌握知识点,同时在本教程末尾处的参考资料部分中,您还可找到其他一些关于 IBM solidDB and IBM solidDB Universal Cache 的资源。

独立部署环境的 solidDB 数据库

安装

solidDB 系统需求大约 64MB 磁盘空间,用于保存代码、文档和测试数据库。默认配置需要至少 40MB 内存,在内存中保存的每个表需要额外的空间。

solidDB 数据库的安装是通过 Java based InstallAnywhere 来进行的,因此需要 JRE 或 JDK 1.4.2 或更新的版本来运行 solidDB 安装程序。

整个安装步骤大致如下:

  1. 如果还没有安装 Java 运行时环境(JRE)或 Java Development Kit(JDK),V1.4.2 或更新的版本,先将其安装。
  2. 在 Windows 系统上,运行 exe 产品安装文件执行安装。在 Unix 或 Liunx 系统上,运行相应的 bin 产品安装文件执行安装。界面如图 1 所示。
  3. 在简介屏幕上,按 Enter 键以显示许可协议。浏览并接受许可协议。输入安装目录的绝对路径,或者按 Enter 键以接受缺省值。如果安装程序无法创建此目录,那么将提示您指定另一个目录。查看安装总结。按 Enter 键以开始安装。
  4. 如果购买了 solidDB 或 solidDB Universal Cache,请将许可证文件(solid.lic 或 soliduc.lic)从许可证证书映像复制至 solidDB 工作目录。solidDB 的缺省安装将在 solidDB 安装目录下包括一个评估许可证(solideval.lic)。评估许可证允许您在 90 天之内试用 solidDB。
  5. 如果计划使用 solidDB JDBC 驱动程序,将所在环境的 CLASSPATH 环境变量设置为包含 solidDB JDBC 驱动程序 .jar 文件安装路径。 solidDB JDBC 驱动程序(SolidDriver2.0.jar)位于 solidDB 安装目录下的 jdbc 目录中。


图 1. 安装 solidDB
图 1. 安装 solidDB

配置

solidDB 从 solid.ini 文件中获取它的大多数配置信息。更确切地说,其实有两个不同的 solid.ini 配置文件,一个位于服务器上,另一个位于客户端。这两个配置文件都不是必需的。如果没有配置文件,那么将使用出厂值。这两个 solid.ini 配置文件分别包含客户端和服务器的配置参数。如果使用了 ODBC 驱动程序,那么将使用客户端配置文件,并且此文件必须在应用程序的工作目录中。

当启动 solidDB 时,它将从 solid.ini 配置文件中读取配置参数。也可以使用不带配置文件的 solidDB,这种情况下将使用缺省设置。solid.ini 配置文件指定了可帮助定制和优化 solidDB 的参数。例如,FileSpec 参数指定 solidDB 数据库文件的名称和最大大小。

另外,当启动 solidDB 时,它将检查数据库是否已经存在。如果未找到任何数据库,那么引擎会自动使用 solid.ini 配置文件中的设置来创建新的数据库。

高可用性双机部署环境的 solidDB 数据库

“高可用性”这个术语 hot standby 是指一项常规技术,即,当第一台服务器发生故障时,另一台服务器可以立即接替工作。而 HotStandby (它是一个单词,首字母大写)是指 solidDB 用于实现此常规技术的特定组件。通常将 HotStandby 缩写为 HSB。


图 2. solidDB 高可用性概念图
图 2. solidDB 高可用性概念图

图 2 说明了 solidDB 高可用性部署的基本概念:

  • Application 应用:在线连接主数据库和备数据库的用户应用。
  • Primary database 主数据库:活动的、可以接受更新操作的数据库。
  • Secondary database 备数据库:只读的数据库,是主数据库的镜像。
  • Replication 复制:solidDB 的高可用性组件利用主数据库已经提交的事务日志实现主数据库和备数据库的同步。
  • Watchdog 看守程序:看守程序是一个独立程序,用于监视和控制主服务器和辅助服务器。看守程序将同时监视两个热备用服务器,并在必要时切换它们的状态。这就减轻了数据库管理员需要监视服务器的负担。solidDB 提供了一个样本看守程序,可以将它用作构建能够满足您需要的定制看守程序的基础。

服务器状态

  • PRIMARY ACTIVE:已连接服务器,并且此服务器(主服务器)正在接受读写事务并且正在将数据发送至备服务器。备服务器必须处于 SECONDARY ACTIVE 状态。
  • PRIMARY ALONE:对等服务器之间未互相连接。备服务器可能在运行,但是未建立连接,因此它未接受任何事务(即,它可能处于 SECONDARY ALONE 状态)。主服务器正在积极接受和执行读写事务,并且正在收集这些事务以便稍后发送至备服务器。
  • PRIMARY UNCERTAIN:服务器之间已异常断开连接,并且 AutoPrimaryAlone 配置参数设置为“No”。在 PRIMARY UNCERTAIN 状态下,任何未经确认的事务将保持暂挂状态,这意味着在 HAC 将此服务器更改为另一种状态之前,此服务器将不会落实或回滚事务。
  • SECONDARY ACTIVE:对等服务器之间已互相连接,并且此服务器正在接受来自主服务器的事务日志数据。将在备服务器中执行这些事务,以使它与主服务器具有相同的数据(还会将这些事务写入备服务器自己的事务日志,以便在备服务器失败的情况下它自己就可以恢复数据)。此外,客户机可以执行处于 SECONDARY ACTIVE 状态的服务器上的只读事务。当服务器处于 SECONDARY ACTIVE 状态时,此服务器的对等服务器必须处于 PRIMARY ACTIVE 状态。
  • SECONDARY ALONE:备服务器已与其对等服务器断开连接。它仅接受读取请求。服务器可以通过在辅助服务器或主服务器发出 HotStandby connect 命令来连接至对等服务器。
  • STANDALONE:服务器没有 HSB 状态(主服务器或辅助服务器),且以常规独立服务器的运行方式运行。同时也按正常方式处理和除去事务日志;不会为辅助服务器保存事务日志。要继续执行 HSB 操作,必须将服务器设置为 PRIMARY ALONE 或 SECONDARY ALONE 状态,并且主服务器将必须执行 netcopy 或 copy 操作以将数据库的完整副本发送至辅助服务器。
  • OFFLINE:服务器是以“netcopy 侦听方式”(也称为“备份服务器方式”)启动的。在此方式下,服务器将等待来自处于 PRIMARY ALONE 状态的服务器的 netcopy。在服务器成功完成 netcopy 之后,服务器将更改为 SECONDARY ALONE 状态。

安装和配置

高可用性双机部署环境需要在主点和备点机器上分别安装 solidDB 数据库。数据库安装过程与独立部署环境的 solidDB 数据库相同。

要设置和运行 HSB 服务器对,需要两台互相联网的计算机。HSB 系统的具体配置过程如下:

1. 修改配置文件 solid.ini。

要启用 HotStandby 功能,必须在 solidDB 配置文件(solid.ini)中提供一个特殊的 [HotStandby] 节,并且您的许可证文件必须允许使用 solidDB HotStandby 组件。

[HotStandby] 节中至少需要的配置信息是:

  • 将 HSBEnabled 设置为“yes”。
  • 设置服务器的 Connect 参数设置。此设置定义用于连接至其他服务器(主服务器或辅助服务器)的网络名。如果您在 solid.ini 文件中未设置此参数,那么服务器将不会作为 HotStandby 服务器启动。请注意,在服务器已启动之后,可以使用 ADMIN COMMAND 来设置或更改此参数。请注意,每个服务器的 Connect 字符串必须与另一个服务器的 Listen 字符串相匹配。


清单 1. 主数据库 HotStandby 服务器的 solidDB 配置文件(solid.ini)示例

				
 [Com] 
 ; The first server listens to the network with this 
 ; name 
 Listen = tcp 1320 
 [HotStandby] 
 HSBEnabled=yes 
 ; The first server connects to the second server 
 ; using the following connect string. 
 Connect = tcp 188.177.166.12 1321 
 AutoPrimaryAlone=No 
 [Logging] 
 LogEnabled=yes 


清单 2. 备数据库 HotStandby 服务器的 solidDB 配置文件(solid.ini)示例
				
 [Com] 
 ; The second server listens to the network using the following 
 ; connect string. 
 Listen = tcp 1321 
 [HotStandby] 
 HSBEnabled=yes 
 ; The second server connects to the first server 
 ; using the following connect string. 
 Connect = tcp 188.177.166.11 1320 
 AutoPrimaryAlone=No 
 [Logging] 
 LogEnabled=yes 

在清单 1 和清单 2 的示例中可以看到主数据库监听端口是 IP 为 188.177.166.11 的 1320 端口,而备数据库监听端口是 IP 为 188.177.166.12 的 1321 端口。

在本例中 [HotStandby] 节中使用 AutoPrimaryAlone 参数来控制以下情况:主服务器在与备服务器失去联系之后是自动切换到 PRIMARY ALONE 状态还是继续保持 PRIMARY UNCERTAIN 状态。如果 AutoPrimaryAlone 设置为 Yes,那么当主服务器与备服务器失去联系时,主服务器将自动切换到 PRIMARY ALONE 状态,从而允许它继续接受事务。如果 AutoPrimaryAlone 设置为 No,那么当主服务器与备服务器失去联系时,主服务器将自动切换到 PRIMARY UNCERTAIN 状态。缺省情况下,AutoPrimaryAlone 设置为 No。

2. 初始化数据库服务器。

可以安装正常的方式启动主数据库如清单 3 所示。

通常,当您启动 solidDB 服务器时,如果还没有数据库,那么将创建新的数据库。但是,如果此服务器是一个备服务器,那么它应当使用主服务器数据库的副本而不是创建它自己的数据库。因此,当启动一个没有现成数据库的备服务器时,必须为它提供一个命令行参数,以告诉它等待接收来自主服务器的数据库副本。此命令行如清单 4 所示。

-x backupserver 命令行参数让服务器进入“netcopy 侦听方式”(也称为“备份侦听方式”)。在此方式下,辅助服务器唯一可以执行的操作就是接收来自主服务器的数据库副本。辅助服务器将不会对任何其他命令作出响应,实际上它甚至不会接受来自客户机程序(例如,solsql、应用程序或者看守程序)的连接请求。


清单 3. 启动主数据库

				
 solid – c \primary_directory 


清单 4. 启动备数据库
				
 solid – c \secondary_directory – x backupserver 

3. 主数据库切换到 PRIMARY ALONE 状态。

可以用 solcon 或者 solsql 来执行,如清单 5 所示。


清单 5. 切换主数据库状态

				
 ADMIN COMMAND 'hsb set primary alone'; 

 >solcon – e ”hsb set primary alone” ”tcp 1320” dba dba 

4. 拷贝主数据库到备数据库。

可以用 solcon 或者 solsql 来执行,如清单 6 所示。

当启动 netcopy 命令时,它将在后台异步运行。当完成 netcopy 时,服务器不会显示一条消息。实际上,即使由于发生诸如网络错误之类的问题而导致 netcopy 失败,服务器也不会显示一条消息。要了解是否成功完成了 netcopy,必须通过 status copy 来验证 netcopy 的状态。此命令将显示一条状态消息,它通过错误代码和错误消息让您知道 netcopy 是已成功完成、仍在执行还是已失败。


清单 6. 拷贝主数据库

				
 ADMIN COMMAND 'hsb netcopy'; 
 ADMIN COMMAND 'hsb status copy'; 

 >solcon – e”hsb netcopy” “tcp 1320” dba dba 
 >solcon – e”hsb status copy” “tcp 1320” dba dba 

5. 连接主数据库和备数据库

可以用 solcon 或者 solsql 来执行,如清单 6 所示。

通过在任一服务器中发出 hsb connect 命令将主数据库连接至备数据库。可以通过输入 hsb status connect 命令来检查 hsb connect 的状态。要验证连接是否成功,请输入 hsb state 命令。主服务器的状态应为 PRIMARY ACTIVE。


清单 7. 连接主数据库和备数据库

				
 ADMIN COMMAND 'hsb connect'; 
 ADMIN COMMAND 'hsb status connect'; 
 ADMIN COMMAND 'hsb State'; 

 >solcon – e”hsb connect” “tcp 1320” dba dba 
 >solcon – e”hsb status connect” “tcp 1320” dba dba 
 >solcon – e”hsb state” “tcp 1320” dba dba 

作为磁盘数据库高速缓存应用的 solidDB 数据库

IBM solidDB Universal Cache 是用于加速传统的基于磁盘的数据库的解决方案。它包含了高速 solidDB 前端内存数据库,此数据库减少了后端数据库中处理应用程序负载所需响应时间,这将改善性能、提高速度和减少等待时间。

除了 solidDB 前端数据库之外,解决方案还利用 IBM InfoSphere Change Data Capture(被称为 InfoSphere CDC 或 CDC)技术进行数据复制。前端和后端数据库均为自包含数据库管理系统(DBMS)。

InfoSphere CDC 对于系统的需求为:对于每个数据源,InfoSphere CDC 需要大约 220MB 磁盘空间;InfoSphere Access Server 需要大约 250MB 磁盘空间;InfoSphere Management Console 需要大约 250MB 磁盘空间;建议使用 1024MB 内存。


图 3. solidDB Universal Cache 体系结构
图 3. solidDB Universal Cache 体系结构

上图说明了 solidDB Universal Cache 的典型配置的体系结构和关键组件。

  • solidDB:您将数据复制至和从其中复制数据的前端数据库。取决于复制模型的不同,solidDB 可以是源数据库或目标数据库。
  • 数据服务器:您将数据复制至和从其中复制数据的后端数据库。取决于复制方式的不同,后端数据库可以是源数据库或目标数据库。
  • CDC 实例:给定 DBMS 的 CDC 引擎的运行时实例。要设置 CDC 实例,必须在正运行所讨论的 DBMS 的节点上安装了相应的 CDC 代理程序软件(例如,CDC for DB2 或者 CDC for solidDB)。对于 solidDB,可以在与正在运行 solidDB 的节点相连的任何节点上安装和设置 CDC for solidDB 代理程序。
  • Configuration tool 配置工具:用于配置和创建 CDC 实例的 GUI 工具或基于控制台的工具。在配置实例时,提供用于与其余 CDC 系统进行通信的端口号以及用于连接至数据库的登录信息。
  • Access Server 访问服务器:一个进程(通常作为一项服务或一个守护进程运行),它允许管理控制台用户访问和配置 CDC 实例。不同的用户可能对不同的实例具有访问权。在安装访问服务器期间,将要求您提供管理控制台要使用的端口号和管理员登录信息。
  • Management Console 管理控制台:一个具有 GUI 的交互式应用程序,可以用来配置和监视复制。它允许您管理各个服务器上的复制操作,指定复制参数,以及从客户机工作站中启动刷新和监视操作。

安装

solidDB Universal Cache 的安装包括安装 solidDB、后端数据服务器和相关的 CDC 组件,其步骤如下:

1. 安装 IBM solidDB。

主要工作是安装 IBM solidDB 和验证 solidDB 的安装。

2. 安装后端数据服务器。

将后端数据服务器与 CDC 配合使用时,需要检查其安装先决条件。按照产品文档来来安装后端数据服务器。

3. 安装 InfoSphere CDC for IBM solidDB。


图 4. 安装 InfoSphere CDC for IBM solidDB
图 4. 安装 InfoSphere CDC for IBM solidDB

安装 CDC for solidDB 结束时,选择启动 CDC 配置工具来配置 CDC for solidDB 实例。安装之前需要确保:

  • solidDB 服务器正在运行。
  • 已创建了 solidDB 数据库。
  • 知道 solidDB 数据库的用户名和密码。
  • 知道 solidDB 服务器正在侦听的网络地址和端口号。
  • 已创建新的模式或确定了要 CDC for solidDB 使用哪个现有模式来创建元数据表。

4. 安装适用于后端数据服务器的 InfoSphere CDC。

在安装开始之前,需要检查您的后端数据服务器是否正在运行,其步骤为:

  • 检查安装先决条件。
  • 安装适用于后端数据服务器的 CDC。
  • 使用配置工具,为后端数据服务器创建 CDC 的新实例。

5. 安装 InfoSphere CDC Access Server 访问服务器。

访问服务器帐户在安装期间创建。访问服务器帐户用于:

  • 从管理控制台登录到访问服务器。
  • 在管理控制台中管理用户和数据存储器。

6. 安装 InfoSphere CDC Management Console 管理控制台。

使用安装访问服务器时创建的系统管理员帐户登录到管理控制台。


图 5. 安装 InfoSphere CDC Management Console
图 5. 安装 InfoSphere CDC Management Console

配置

要配置 solidDB Universal Cache,需要先配置前端和后端数据服务器,以便与 Universal Cache 配合使用,然后创建与数据服务器对应的 CDC 实例,最后设置它们之间的复制预订。

配置 solidDB

为了能够将 solidDB 与 CDC 技术配合使用,需要修改配置设置,以便 CDC for solidDB 可以连接至 solidDB 数据库或从中复制数据。另外,还必须设置 CLASSPATH 环境变量,以标识 solidDB JDBC 驱动程序的位置,该驱动程序使 CDC for solidDB 能够访问 solidDB 数据库。

1. 修改 solidDB 配置文件(solid.ini)中的 LogReader 节的参数。

  • 设置 LogReaderEnabled 配置参数设置为“yes”。为了能够在 CDC 复制中将 solidDB 用作源数据库,需要执行此操作。出厂值为“no”。
  • 在 solidDB 配置文件(solid.ini)中设置事务日志保留时间空间大小。使用配置参数 MaxLogSize 对此进行设置。出厂值为 10 240(10 GB)。如果已启用 LogReaderEnabled,那么会始终完全使用所指定日志文件保留时间空间。如果未执行备份,或者参数 CheckpointDeleteLog 未设置为“Yes”,那么日志文件可能会占用更多空间。
  • 用 MaxSpace 参数设置定义在减速前缓存的日志记录的最大数目。日志记录在内存日志阅读器缓冲区中进行缓存。日志记录的大小是(二进制)行大小加上几个用于存储附加元数据开销的字节。缓冲区装满后,将在前端进行吞吐量调速:在日志阅读器缓冲区中腾出空间之前,操作将被阻塞。出厂值是 100000。


清单 8. 修改 LogReader 参数

				
 [LogReader] 
 LogReaderEnabled=yes 
 MaxLogSize= 
 MaxSpace= 

2. 如有必要,修改其他配置参数。

  • DurabilityLevel:缺省情况下,solidDB 服务器耐久性级别设置为宽松(DurabilityLevel=1)。如果 solidDB 服务器意外地发生故障,那么这样可能会导致最新事务丢失的情况。为防止此情况,可以将耐久性级别设置为严格(DurabilityLevel=3)。与宽松的耐久性设置相比,严格的耐久性设置会引起性能损失。如果对 solidDB HA(HotStandby)配置应用 2-Safe 复制协议(缺省值),那么可以使用宽松的耐久性,而不会存在数据丢失的危险。
  • DefaultStoreIsMemory:缺省情况下,solidDB 表存储类型设置为 M 表(DefaultStoreIsMemory=yes)。
  • IsolationLevel:缺省情况下,solidDB 隔离级别设置为落实读 Read Committed(IsolationLevel=1)。

3. 检查是否已设置 CLASSPATH 环境变量,以便它包括 solidDB JDBC 驱动程序 SolidDriver2.0.jar 文件。solidDB JDBC 驱动 (SolidDriver2.0.jar) 安装在 solidDB 的 ‘ jdbc ’ 目录下。在 Windows 环境下,需要检查 Control Panel > System > Advanced > Environment Variables。在 Linux 或 UNIX 环境请参考清单 9。


清单 9. Bourne shell 示例

				
 export CLASSPATH=/jdbc/SolidDriver2.0.jar:$CLASSPATH 

配置后端数据库

后端数据库如果是 DB2,则需要把 LOGRETAIN 设置成 ON。如果是 IDS,则需要把 ENABLE_FULL_ROW_LOGGING 设置为 1。

创建 CDC 实例

使用 CDC 配置工具可以创建 CDC 实例。可以通过命令 //bin/dmconfigurets 来启动配置工具。如图分别是 DB2 和 SolidDB 的 CDC 实例配置界面。


图 6. 创建 CDC for DB2 的实例
图 6. 创建 CDC for DB2 的实例

图 7. 创建 CDC for IBM solidDB 的实例
图 7. 创建 CDC for IBM solidDB 的实例

设置复制预订

复制预订可在管理控制台 Management Console 中创建。在设置时需要了解以下概念:

  • Datastore(也称为 Replication Agent):这是源或目标服务器上的一个进程,它从 Access Server 接收请求并与 Replication Engine 通信,从而管理复制活动。
  • Replication Engine:这个进程发送或接收复制的数据。
  • Access Manager:这是 Management Console 的集成组件。使用 Management Console 管理数据存储和用户帐户。

整个设置复制预订的步骤如下:

  1. 登录管理控制台 Management Console,连接访问服务器 Access Server。
  2. 设置用于 solidDB 和后端数据库的数据存储器 Datastore,设置连接参数。
  3. 将数据存储器 Datastore 分配给用户。
  4. 为复制设置数据存储器 Datastore。
  5. 设置预订,预订是指从源到目标的单向复制订阅。可以是 solidDB 是源,后端数据存储器是目标;或者后端数据存储器是源,solidDB 是目标。
  6. 为两个预订中的复制映射表。
  7. 对于每个表映射,请根据业务规则设置冲突检测和解决。
  8. 启动两个预订上的复制。

样例试题

问题 1:How many different installations of solidDB binaries can exist on the same host?

A. one

B. as many as can fit

C. one per release of solidDB

D. one per version of solidDB

答案:B

问题 2:To set the log persistence level server-wide, which parameter would be set in the solid.ini file?

A. LogLevel

B. Isolation

C. DurabilityLevel

D. Adaptive

答案 : C

原文链接:http://www.ibm.com/developerworks/cn/data/tutorials/dm-1009wumd/resources.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15082138/viewspace-674490/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-08-05

  • 博文量
    269
  • 访问量
    558193