`
zl5897
  • 浏览: 3187 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Mysql 5.0 升级到 5.1[CSDN迁移文章]

阅读更多

如果仅仅是一个小数据量的schema,我想最简单的应用是使用mysqldump这种逻辑备份形式,更具有迁移性,但涉及到大量数据的时候,mysqldump需要花费大量的时间,另外导入也需要很多时间。

一 台已经使用了近3年的测试Mysql数据库服务器,已经存储了大量的schema ,而且一些schema内的表引擎有Innodb、MyISAM、MEMORY这几种引擎,数据量也比较大。昨晚公司突然停电,早上上班后发现系统已经点 不亮了,找人弄了台配置一模一样的机器接入原先的硬盘,经过漫长的文件系统检测修复后,顺利进入了系统。修改了网卡的udev配置后,又可以继续使用 eth0这个设备号。

对于mysql 5.0和 5.1间的差异导致的问题,我吃过几次亏,借此机会,我尝试升级这台服务器的相关服务组件,尽可能和生产环境的相似。由于数据量较大,以及本着学习的精神,探索一下一个合理的升级方案以备日后存在更大的数据库需要升级时提供些经验。

我 开始认为从5.0 到5.1的升级应该不算复杂,版本号差异不大,应该可以完全通过拷贝文件的形式进行升级。然而这个实验我失败了,日志中提示授权表异常信息,我只能好好琢 磨一下Mysql的帮助文档以求解决问题。其实5.0 和5.1 是两个差异很大的版本,对于大版本间的升级,Mysql官方总是会给出升级说明 ,虽然描述的不是那么的清楚,但总算个指导手册。

安装官方的说明,想从5.0升级到5.1,首先需要在5.0的环境下执行针对5.1的权限升级脚 本"mysql_fix_privilege_tables.sql"。完成后可以使用mysqldump导出后再倒入到5.1的mysql中;也可以在 相同浮点格式的不同架构之间拷贝MyISAM表的文件,对于Innodb和MEMORY这类引擎,就没有这么幸运了,今天花费了不少时间来实验和寻找解决 办法。

其实在5.0的环境中执行了"mysql_fix_privilege_tables.sql"前,还有一些 很重要的工作需要处理的(如果现实的环境允许的话),那就是备份、和检查所有的schema内的表是否正常,并进行修复。前面我提到过这台测试服务器是经 历过突然断电的,开始我太理所当然的觉得不会有问题,仅仅是对整个mysql 5.0做了备份。但在升级的过程中发现,大量的表存在非正常关闭、受损的问题,为此我又切回到mysql 5.0的环境下先对这些表进行修复。今天庆幸做了两件正确的事情:

  • 做了备份
  • 同时在服务器上保留了两套mysql环境(为他们设置不同的目录,专门为他们准备不同的my.cnf配置文件和启动控制脚本)

当我在5.0的环境中完成了表的修复,"mysql_fix_privilege_tables.sql"的升级后,关闭5.0的服务。拷贝相应的 表文件、innodb文件、innodb日志到5.1的环境下。mysql 5.1能顺利启动了,出于安全起见,我又自行了一次表检查,并发现了innodb和memory引擎表的问题(我开始又理所当然的觉得他们应该是不会有问 题的了)。检测命令:
$MYSQL5.1_BIN_PATH/mysqlcheck -A –check-upgrade -s
-s参数能屏蔽那些正常的表的信息,通过这条命令,我发现有问题的都是innodb、memory引擎的表,提示我需要执行REPAIR TABLE或者dump/restore来修复这些表。这种情况下REPAIR TABLE命令是不管用了" The storage engine for the table doesn’t support repair ",dump/restore又跟我的初衷相违背。google上找到一些解决思想 ,通过ALTER TABLE tbl ENGINE=INNODB来重建,以符合当前的mysql版本。所以,对于此次的升级,较为合理的顺序将是:

  1. 备份(如果数据量还在容忍范围的话,对于太大的数据库,如果使用了lvm,仍可以通过快照的形式来进行备份)
  2. 在旧版本的mysql上检查、修复各个表 mysqlcheck --all-databases -s   -f -o -c --auto-repair
  3. 执行目的版本的权限升级脚本 mysql --database=mysql < mysql_fix_privilege_tables.sql
  4. 停止旧版本的mysql。拷贝、移动表数据(表文件、innodb的相应文件,如果没有特殊设置,他们都在data目录下)到新版本的相应目录下。
  5. 启动新版本的mysql
  6. 检查新版本环境下所有表的情况mysqlcheck -A –check-upgrade –s
  7. 对于那些innodb已经memory引擎的表,需要执行下面的命令来修正 ALTER TABLE tbl ENGINE=INNODB 


对于现实中的一个生产环境,尤其是大数据的环境,仍然需要一些辅助措施才能顺利的完成升级和迁移。

  • 使用lvm的快照技术更合理的进行备份
  • 结合replication技术进行无中断的升级
分享到:
评论

相关推荐

    mysql5.0和5.1的jar包.zip

    在给定的压缩包“mysql5.0和5.1的jar包.zip”中,包含了不同版本的MySQL JDBC驱动程序,具体包括以下文件: 1. `mysql-connector-java-5.1.39.jar`:这是MySQL 5.1系列的JDBC驱动程序的一个较新版本,版本号为...

    PowerDesigner16.5版本包含MySQL5.0模型的DBMS文件

    将解压出的文件覆盖到这个目录,这样PowerDesigner就能识别并支持MySQL5.0模型了。 在实际操作中,确保备份原目录的文件是一个好习惯,以防覆盖过程中出现问题。同时,确保PowerDesigner已关闭,以免文件在被替换时...

    手册系列更新(php5.0+mysql5.1+javascript+css2.0)

    本压缩包包含的"手册系列更新(php5.0+mysql5.1+javascript+css2.0)"是针对这四个关键技术的参考资料,旨在提供全面且方便的查询指南。 1. **PHP5.0**:PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言...

    mysql5.0的安装步骤

    MySQL 5.0 是一个广泛使用的开源关系型数据库管理系统,尤其在Web开发中扮演着重要角色。本教程将详述在Windows XP系统上安装MySQL 5.0的步骤,帮助初学者快速上手。 **一、下载MySQL 5.0安装包** 首先,你需要...

    MySQL 5.0存储过程 mysql5.0 mysql 用户手册 中文版

    MySQL 5.0存储过程 mysql5.0 mysql 用户手册 中文版 新特性

    mysql安装包mysql5.0

    MySQL 5.0是MySQL数据库管理系统的一个早期版本,它在当时提供了可靠且高效的数据存储解决方案。MySQL是一款开源的关系型数据库管理系统(RDBMS),由瑞典的MySQL AB公司开发,后来被Oracle公司收购。它的设计目标是...

    MySql5.0下载

    MySQL5.0是MySQL数据库系统的一个重要版本,它在2005年发布,为用户提供了许多增强的功能和性能优化。MySQL是一个开源的关系型数据库管理系统(RDBMS),以其高效、稳定和易于管理的特点,广泛应用于网站开发、数据...

    mysql5.0.75tar.gz

    MySQL 5.0.75 是 MySQL 数据库管理系统的一个旧版本,发布于2008年,属于 MySQL 5.0 系列的一部分。MySQL 5.0 是一个重要的里程碑,因为它引入了许多新特性...在升级或迁移前,请务必评估潜在的兼容性问题和准备工作。

    mysql 5.0 解压版

    1. **安装与解压**:MySQL 5.0 解压版意味着它不需要经过传统的安装过程,只需要将压缩包解压到指定目录。首先,找到下载的压缩文件,使用解压工具(如WinRAR或7-Zip)将其解压到一个方便的位置,如`C:\Program ...

    MySQL 4.1 5.0 5.1 5.5 5.6各版本的主要区别

    在讨论MySQL 4.1、5.0、5.1、5.5以及5.6这些版本的主要区别时,首先要了解各个版本中引入的新特性以及改进的功能点,这对于数据库管理员(DBA)来说尤为重要,他们需要了解这些变化来确保数据库的稳定运行和性能优化。...

    windows同时安装mysql5.0和8.0步骤(完美测试)

    windows同时安装mysql5.0和8.0步骤 windows同时安装mysql5.0和8.0步骤 windows同时安装mysql5.0和8.0步骤 windows同时安装mysql5.0和8.0步骤 windows同时安装mysql5.0和8.0步骤 windows同时安装mysql5.0和8.0步骤 ...

    64位mysql5.0 下载

    2. **客户端工具**:包括命令行客户端、MySQL Workbench(或在5.0时代可能的MySQL Administrator和MySQL Query Browser)等,用于连接到服务器并执行数据库操作。 3. **开发库**:为编程语言(如C, C++, Java, PHP...

    mysql5.0安装使用教程手册参考.pdf

    MySQL 5.0 安装使用教程手册参考 MySQL 5.0 安装教程 * 安装 MySQL 5.0 需要双击 Setup.exe 文件,开始安装。 * 在安装过程中,需要选择组件和更改文件夹位置,组件可以默认的,位置要选择 Change 来改变。 * ...

    mysql5.0 安装板

    - MySQL 5.0 提供了多种客户端工具,如MySQL Workbench、MySQL Command Line Client等,允许用户通过网络远程连接到数据库。 10. **日志系统**: - 错误日志和查询日志帮助管理员监控和诊断系统状态,性能日志则...

    MySql5.0 免安装版

    MySQL5.0免安装版是一款无需复杂安装过程的数据库管理系统,它允许用户快速启动并使用MySQL服务,尤其适合开发者在测试环境或者临时项目中快速部署。这个版本的MySQL以其便捷性和高效性受到许多用户的青睐。 MySQL...

    MySQL5.0安装教程(原创)

    MySQL5.0安装教程(原创) 希望大家多多指教~~~

    MySQL5.0工具

    MySQL5.0是数据库管理系统MySQL的一个重要版本,它在数据库管理、性能优化和安全性方面有着显著的提升。本文将深入探讨MySQL5.0的主要特点、功能以及安装过程。 首先,MySQL5.0引入了增强的SQL支持,包括对存储过程...

    Mysql5.0 java连接

    总之,"Mysql5.0 java连接"涉及到的是Java程序通过JDBC驱动与MySQL 5.0数据库的交互,以及如何在JSP页面中实现这一过程,以展示查询结果给用户。这个过程中,`mysql-connector-java-5.1.6-bin.jar`是关键的依赖库,...

Global site tag (gtag.js) - Google Analytics