Informix 数据库升级指南

上传人:飞*** 文档编号:40249779 上传时间:2018-05-25 格式:DOCX 页数:10 大小:88.05KB
返回 下载 相关 举报
Informix 数据库升级指南_第1页
第1页 / 共10页
Informix 数据库升级指南_第2页
第2页 / 共10页
Informix 数据库升级指南_第3页
第3页 / 共10页
Informix 数据库升级指南_第4页
第4页 / 共10页
Informix 数据库升级指南_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《Informix 数据库升级指南》由会员分享,可在线阅读,更多相关《Informix 数据库升级指南(10页珍藏版)》请在金锄头文库上搜索。

1、Informix 数据库升级指南 谢烨, 软件工程师, IBM 孙国荣, 软件工程师, IBM 谭永贻, 高级技术经理, IBM 简介:简介: Informix 数据库升级是 Informix 管理员的一项重要且具有挑战性的工作。本文主 要介绍 Informix 数据库升级前的准备工作、升级的操作过程、升级后的调优工作、升级 的注意事项,使读者对 Informix 数据库升级有较为全面的理解。引言引言Informix 11 与之前版本的 Informix 相比,新增了很多特性,如 SQL 语句跟踪、非阻断 的检查点、SDS 辅节点、星型连接、自动存储扩展、图形界面的管理工具 OAT 等,并 且

2、在性能上有了很大的提升。另外,由于 Informix 版本 7、9、10 已进入 EOS (End O f Support) 状态,所以很多 Informix 用户纷纷选择将 Informix 升级到版本 11。回页首回页首Informix 数据库升级简介数据库升级简介Informix 数据库升级是指把使用的 Informix 数据库从低版本转化为高版本。对 Informix 数据库进行升级是一项系统工程,包括升级前的测试、升级前的检查、升级操作过程、升 级后的测试、升级后的调优等。 Informix 数据库升级有两种类型:in-place 和 non-in-place。In-place 升级

3、中,新版本的 Informix 使用的数据文件与旧版本的 Informix 相同,数据库管理员无需导出导入数据。N on-in-place 升级中,新版本的 Informix 使用的数据文件与旧版本的 Informix 不同,数 据库管理员需要导出导入数据。 In-place 升级比较简单,升级操作时间短。non-in-place 升级比较复杂,升级操作时间长 ,所需的硬件资源多,风险较小。在一些情况下我们只能使用 non-in-place 升级,例如改 变了硬件或操作系统。 两种类型的 Informix 数据库升级的示意图如图 1 所示。图图 1.1. 两种类型的两种类型的 Informix

4、Informix 数据库升级的示意图数据库升级的示意图回页首回页首Informix 数据库升级的测试计划数据库升级的测试计划在升级前和升级后,我们需要对 Informix 数据库进行测试,然后比较升级前的测试结果 和升级后的测试结果,以确保现有的数据库应用程序在新版本数据库上运行的结果与在旧 版本数据库上运行的结果相同,在新版本数据库上运行的性能好于在旧版本数据库上运行 的性能。 于是,我们必须预先制定周密的测试计划。测试计划中应收集的信息主要包括以下这些方 面: 升级前后每个数据库的升级前后每个数据库的 schema 我们可以使用 dbschema 命令得到升级前后每个数据库的 schema

5、,并比较它们。我们需要 验证升级前后数据库的 schema 没有被改变。 升级前后磁盘空间的分配情况,如升级前后磁盘空间的分配情况,如 dbspace、chunk、extent 等的情况等的情况 可使用 onstat -d 查看 dbspace 和 chunk 的情况。可使用 oncheck -pe 查看 extent 的情况。 升级前后每个数据表的行数升级前后每个数据表的行数 我们需要验证升级前后数据表的行数是一样的。可使用如下的 SQL 语句:select count(*) from ;升级前后一些列的总和或平均值升级前后一些列的总和或平均值 可使用如下的 SQL 语句:select su

6、m( ) from ; select avg( ) from ;升级前后一些升级前后一些 SQL 语句的结果语句的结果 我们可以挑选出一些较复杂(比如涉及到多表查询)的 SQL 语句,然后在升级前后运行这 些 SQL 语句。我们需要验证升级前后这些 SQL 语句的运行结果是一样的。升级前后一些重要升级前后一些重要 SQL 语句的查询计划语句的查询计划 (query plan) 和运行时间和运行时间 在某一个 session 中运行如下 SQL 语句后,Informix 将把该 session 中后续的 SQL 语 句的查询计划记录在 sqexplain.out 文件中。SET EXPLAIN

7、ON;可使用如下方式得到 SQL 语句的运行时间: 1. 将 SQL 语句写在一个后缀名为 sql 的文件中,例如 my.sql 2. 在 shell 上运行如下命令:time dbaccess 例如 : time dbaccess crmdb my.sql升级前后数据库(不包括应用程序)关于典型事务的吞吐量升级前后数据库(不包括应用程序)关于典型事务的吞吐量 在 dbaccess 中使用存储过程产生大量典型事务,测试数据库(不包括应用程序)在单位 时间内最多能处理多少典型事务。 升级前后业务系统(包括数据库和应用程序)关于典型业务的吞吐量升级前后业务系统(包括数据库和应用程序)关于典型业务的

8、吞吐量 测试业务系统在单位时间内最多能处理多少典型业务。 升级前后正常负载下系统资源(升级前后正常负载下系统资源(CPU、内存、硬盘等)的使用情况、内存、硬盘等)的使用情况 可使用 onstat、iostat 等命令。 升级前后较大负载下系统资源(升级前后较大负载下系统资源(CPU、内存、硬盘等)的使用情况、内存、硬盘等)的使用情况 可使用 onstat、iostat 等命令。 在对生产系统进行升级前,我们应在模拟系统中对“Informix 数据库升级”进行演练。在 对模拟系统、生产系统进行升级的前后,我们都应执行测试计划。 在对生产系统进行升级前,我们还应在模拟系统中对“数据库升级失败时的应

9、对方案”进 行演练。如果在“数据库升级失败时的应对方案”中使用“onmode -b”的数据库回退方案, 那么我们还需制定“验证数据库回退的正确性”的测试计划并在模拟系统中执行。回页首回页首Informix 数据库升级前的检查数据库升级前的检查检查是否有足够的用于升级的磁盘空间检查是否有足够的用于升级的磁盘空间 如果是 non-in-place 升级,一般应使新的存储空间比旧的存储空间大 10% 以上。 如果是 in-place 升级,应确保:Root Chunk (Chunk 0) 至少要有 10% 的空间是可用的。足够的逻辑日志空间以重建 sysmaster、sysadmin、sysutil

10、s 数据库。Partition header pages 必须有一些可用空间。( 这些可用空间供 Informix 11 中 的某些描述符或新特性使用。)如果一个 dbspace 上有 n 个 database,则这个 dbspace 还需要 (n * 2000) KB 的可用空间。 可用下面的 SQL 语句计算每个数据库空间 (dbspace) 需要多少空间。(free_spa ce_req 的单位是 KB。)DATABASE sysmaster; SELECT partdbsnum(partnum) dbspace_num, trunc(count(*) * 2000) free_spac

11、e_req FROM sysdatabases GROUP BY 1 ORDER BY 1;可用下面的 SQL 语句计算每个数据库空间 (dbspace) 还有多少可用空间。(free_ space_avail 的单位是 page。)DATABASE sysmaster; SELECT dbsnum dbspace_num, sum(nfree) free_space_avail FROM syschunks GROUP BY 1 ORDER BY 1;检查是否有数据表的检查是否有数据表的 extent 数目大于数目大于 200 为了使升级更顺利的进行,如果一个数据表的 extent 数目大于

12、 200,那么我们最好重建 该数据表。在重建时为该数据表选择更大的 extent size,从而使该数据表的 extent 数目 小于 200。 可用下面的 SQL 语句查找 extent 数目大于 200 的数据表:DATABASE sysmaster; SELECT dbsname, tabname, nextns FROM systabnames t, sysptnhdr p WHERE t.partnum = p.partnum AND p.nextns 200 ORDER BY 3 DE SC;检查新增关键字检查新增关键字 在对数据库进行升级前,管理员应先检查数据库的 schema

13、中和数据库应用程序的 SQL 语句中是否含有新版本数据库中新增的关键词 (keyword)。例如要将 Informix 9.40 数据 库升级到 Informix 11.50,管理员应先检查 Informix 9.40 数据库中是否含有 Informix 1 0.00、Informix 11.00、Informix 11.50 数据库中新增的关键词。如果含有的话,应先将 I nformix 9.40 数据库中的这些“新增关键词”进行修改,直到 Informix 9.40 数据库中不含 有这些“新增关键词”。“新增关键词”的列表请参阅 Informix Migration Guide。 检查是否

14、有检查是否有“outstanding in-place table alters” 检查数据库中是否有“outstanding in-place table alters”,如果有则需要先消除“outstandin g in-place table alters”。(具体过程请参见“Download”中的“检查和消除 OutstandingInP laceTableAlters.doc”)Informix 数据库升级操作过程数据库升级操作过程Informix 数据库升级有两种类型:in-place 和 non-in-place。下面将分别介绍这两种类型 升级的具体操作过程。 in-place

15、升级操作过程升级操作过程 in-place 升级操作过程主要包括: 1.安装配置新版本 Informix 数据库服务器 2.检查旧版本 Informix 数据库的正确性 3.备份旧版本 Informix 数据库 4.对 Informix 数据库里的数据结构等进行转换 5.检查新版本 Informix 数据库的正确性 下面通过一个 in-place 升级操作过程的示例使读者对 in-place 升级操作过程有更好的掌 握。在这个示例中,我们将 Informix 数据库从版本 9.40 升级到版本 11.50。 1.将 Informix 9.40 数据库服务器的各个配置文件(如 onconfig、

16、sqlhosts 等)拷 贝到备份文件夹。假设初始时 Informix 9.40 数据库服务器的一些配置如下: 操作系统的环境变量 INFORMIXSERVER 为 bankserver 操作系统的环境变量 INFORMIXDIR 为 /opt/informix940 onconfig.bank 文件里的三个参数: SERVERNUM 33 DBSERVERNAME bankserver DBSERVERALIASES bankserverdr,bankservershm sqlhosts.bank 文件: bankserver onsoctcp localhost 6784 bankserverdr drsoctcp localhost 6785 bankservershm onipcshm localhost 67862. 3.安装 Informix 11.50 数据库服务器。 4.配置 Informix 11.50 数据库服务器。管理员可参考 Informix 9.40 数据库服务器 的配置参数,来对

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号