位置: 编程技术 - 正文

详细讲解安全升级MySQL的方法(安全升级)

编辑:rootadmin

推荐整理分享详细讲解安全升级MySQL的方法(安全升级),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:安全生产讲解,安全life,安全生产教程,安全life,安全生产教程,详细讲解安全升国旗视频,详细讲解安全升旗视频,详细讲解安全升国旗视频,内容如对您有帮助,希望把文章链接给更多的朋友!

MySQL升级是非常必要的. 我们在Percona Support上列出了关于MySQL升级最佳实践的各种问题.这篇文章推荐了一些不同情况下升级MySQL的方法.

为什么MySQL升级是必须的&#; 原因有很多,比如:为了使用新增的特性,基于性能方面的考量, 修复的bug. 但是在没有充分的测试以前就应用到你的应用中是非常危险的, 因为升级可以能会让你的应用不能正常运作- 也可能引起性能的问题. 此外, 我建议你关注MySQL的发布信息和Percona Server - 看看最近的版本有什么变化. 也许在在最新的版本中已修复了某个你正在烦恼的问题.

通过SQL Dump升级主版本:

把Percona Server从5.1升级到5.5版本或者是从5.5升级到5.6版本的升级模式同样适用于Oracle MySQL.

首先, 主版本升级并不是说可以不做任何准备,或者没有任何风险. 在升级之前你需要阅读相关的“升级”文档,比如:MySQL5.1到MySQL5.5的升级文档,MySQL5.5到MySQL5.6的升级文档.在这些文档里面你需要特别注意“Incompatible Change”部分,并检查你是否会受到这些变化的影响.它们可能是配置参数名字变更, 去掉旧的参数,引入新的参数等- 你需要根据这些变化在my.cnf文件做相应的变更.Percona Server 5.5需要特别注意的文档在这里, Percona Server 5.6需要特别注意的文档在这里.

现在,你有几种可行的方式升级,其中一种较灵活,另一种则依赖你当前系统的拓扑结构和数据库数据大小 - 这种方法比前一种更安全。我们看个例子从 Percona Server 5.5 升级到 Percona Server 5.6,来具体看一下彼此的升级过程。

通常情况下,有两中升级方式:

直接升级:安装好新版本数据库后,利用已经存在的数据文件夹,同时运行mysql_upgrade脚本来升级。 SQL 导出: 从一个较老版本的mysql把数据导出,然后恢复到新版本的数据库中。(利用mysqldump工具)。

相比之下,第二种方式更安全些,但是这也会使得升级的过程要慢一些。

理论上讲,最安全的方式是:

导出所有用户的权限 导出所有数据并恢复到新版本数据库中 恢复用户权限到新数据库中

下面是基本的操作步骤(在开始之前最好停止有关数据库操作的应用).

1) 获取用户和权限信息. 该操作会备份所有用户的权限.

2) dump 5.5数据库实例的所有信息(除去mysql, information_schema 和performance_schema数据库).

3) 停止数据库

or

4) 移动旧数据库(5.5版本)的数据目录(假设是/var/lib/mysql,此处应该改为你自己的数据目录)

5) 安装5.6版本(按照正常安装流程). 如果你不是用的yum/apt-get方式安装的,你需要执行 mysql_install_db 和mysql_upgrade两个命令.

6) 将在1)操作中导出的用户信息导入到新数据库中.

7) 将2)导出的数据导入到新数据库.

此时, 所有的表都在MySQL 5.6中重建及重新加载完成,所以所有的二进制文件对MySQL 5.6可用. 同时也你完成了最干净/最稳定的升级过程,你可以恢复你的应用- 这个升级过程和valina MySQL与Percona Server的升级过程是一样的.甚至你可以把Oracle MySQL升级到Percona Server. 比如: 把Oracle MySQL 5.5升级到Percona Server 5.6. 再次强调: MySQL的升级过程和Percona Server的升级过程是一样的,只需要将Percona Server 替换成Oracle MySQL即可.

"SQL dump" 也可以称为逻辑备份.用升级后的MySQL二进制文件来重建所有的表基本没有兼容问题,从这一方面来说"SQL dump"更安全. 但是对于TB, GB级的大数据来说,这种方法非常的耗时. 另一方面, 备份/重新加载如此大的数据集,比如重建InnoDB表,你需要恢复很多的空闲磁盘,这样会引起的磁盘碎片整理优化.对于常更新或者删除的数据来说, 这么做是有益的.

用In-Place升级小版本:

详细讲解安全升级MySQL的方法(安全升级)

这种升级方式是在一个主版本内做小版本升级, 比如把MySQL 5.5.升级到MySQL 5.5.或者是把Percona Server 5.6.升级到最新的Percona Server 5.6.

这被称为一个就地升级,你只安装一个新的二进制包,然后运行mysql_upgrade脚本,如果必要的话,检查和更新系统表。仍然,就地升级我们强烈推荐检查新功能的发布说明,bug修复等。Percona Server 5.5 和 Percona Server 5.6 发行说明可以分别在这儿和那儿找到。

当我们需要升级Percona服务器时,针对它的Percona-specific的一些特性,对于Percona服务器我们有额外的文档描述一些细节,可以在这儿和那儿找到。这也包括完成就地升级过程的和yum/apt的包管理器。

同时,在安全方面你可以升级那些使用较早描述的逻辑转储程序,mysqldump或mydumper程序——前者并行备份和恢复和逻辑备份,升级是最安全的方法。

直接升级到最新版本:

跳过5.1版本直接把MySQL从5.0版本升级到5.5版本,或者跳过5.5版本直接从MySQL 5.1升级到5.6.甚至,可以直接从MySQL 5.0升级到MySQL 5.6虽然现在只有少数人还在使用MySQL 5.0版本. 这种同样使用于Percona Server.

在这里我们假设跳过5.5版本,把Oracle MySQL或者Percona Server直接从5.1版本升级到5.6版本.

在开始之前,你要意识到这是一个很慎重的操作,将一步跨过一个重要的MySQL版本。也就是说,这是有风险的。用二进制文件升级是不建议的,而且这样直接跨越一个重要版本也是不安全的,所以你绝不能这样5.0->5.5,5.1->5.6,或者5.0->5.6做。有一个问题是,MySQL版本不是所有改变都前向兼容的。新版本中介绍的一些改变可能不仅会影响数据如何处理,还会影响服务器行为包括SQL语句和MySQL服务器和内部存储引擎(此处不知标准否)。另一个问题是MySQL5.0与5.6版本之间的变化,一些默认的设置变量被改变了,这可能会导致结果完全不一样或者行为完全不同。例如:MySQL5.5的默认存储引擎是InnoDB,MySQL5.6的存储引擎InnoDB将可以为每个数据库表创建单独表空间(separate tablespace),还有GTID复制(GTID replication)也被引入。有太多细节这里就不一一列举了,所有这些改变都被描述在MySQL的“升级文档”中,详情可以查看升级文档。

这里重点提一下,极不推荐跳过一个重要版本来升级。从MySQL5.1升级到5.6不应该一步完成,我建议先从5.1升级到5.5,再从5.5升级到5.6,每步都要运行MySQL自动升级(mysql_upgrade)。这将比较有效处理手册上所说的升级改变。

MySQL的升级预防措施:

MySQL的升级预防措施是升级的一个基本部分。在你升级之前,确保你在新的MySQL版本中彻底测试了所有的应用功能。这对重要版本之间的升级尤为重要,对重要版本之间的跨越升级也很重要(例如,从MySQL5.1升级到MySQL5.6)。

确保你认真阅读了发行说明,并且你清楚所有改变。你可以从以下链接中获取Oracle MySQL 5.5和5.6的发行说明:

Server有单独的发行说明,按上面说的顺序可以参看以下链接:

Oracle MySQL 5.6 或者 Percona Server 5.6,我建议你首先检查以下已经存在的关键bugs。以下是你需要注意的一些bugs:

dev/QA servers,然后升级 staging server,最后升级到 production servers上。实际上,你可以缩小升级的步伐,一步一步升级到你想要的版本,每步都可以充分地测试原来的应用。

一旦你对在test servers, staging servers等上运行的升级感到满意后,你就可以在你的production servers上进行升级了。在副本环境下,我建议你先升级MySQL slaves(一个接一个的)最后升级MySQL master。实际上,你可以先升级一个slaves,让它在安全环境下运行几天,同时观察仔细观察它的运行情况。如果你的服务器中没有副本环境的设置,那么还是值得建立一个副本环境来测试新版的MySQL的。一旦你对升级结果感到满意,你可以升级其他的slaves,最后升级master。

Percona软件包帮助你MySQL升级:

在MySQL升级中,Percona Toolkit 都能帮助你。Percona Toolkit 的一些工具将会起到很大的作用。

pt-upgrade 是其中的一个工具。它使你能测试新版MySQL实例是否能够达到像老版本处理一些特定查询的时候一样的速度。新版本可能有一些本质上的改变,因为MySQL的查询优化器从5.1到5.6已经有了重大改变,还有数据统计可能刷新,因此查询计划会改变。你可以在手册中看到更多优化器的改变。

pt-query-digest 是另一个能给你极大帮助的工具。你可以多次运行你的slow query log,以比较确认在现在的版本和新版本之间的表现差别。

你也可以从MySQL的Percona Cloud Tools中获得帮助,这是一个托管服务,可以为所有MySQL的使用提供查询性能分析。现在你可以免费注册这个服务,因为现在这项服务在进行公开测试。Percona Cloud Tools在许多同类产品中,能让你可视化的观察到每次MySQL升级后的查询表现。

再次重申,强烈建议你每次更新MySQL前备份数据。Percona XtraBackup就是一款免费、开源的(就像所有Percona软件一样)。这是一个热备份工具,它允许你在线备份数据而不影响你对数据库的读写操作,而且它备份数据时产生很小的影响。 结论:

一次MySQL升级看起来是个简单的任务,但实际上并没有那么简单。我试图在这篇文章中最大限度覆盖所有有关MySQL升级中你可能遇到的情况。再次强调,我建议你在应用更新的版本之前,先测试一下你的应用在新版本中的效果。否则,可能会使你的应用崩溃,或者得到的不是提高查询效率而是降低查询效率。最后,我建议你准备一个降级计划或措施,以防你升级之后出现不可预料的错误。在问题出现的时候,有一个规划好的降级程序将会极大的减少你的应用停工期。期待你在下面发表评论和提问。

大幅优化MySQL查询性能的奇技淫巧 回顾MySQL/InnoDB的改善历史。你能很容易发现。在MySQL5.6稳定版本中从来没有在read-only这么快的提速,它很容易搞懂,以及在read-only(RO)有着良好的扩张

个优化MySQL的技巧小整理 避免编辑转储文件Mysqldump创建的转储文件原本是无害的,但它很容易被尝试去编辑。然而,人们应该知道在任何情况下的试图修改这些文件被证明是有

MySQL结合使用数据库分析工具SchemaSpy的方法 近来,我和一帮老客户一起工作,他们让花时间给他们说一下在他们新环境中使用的新工具。其中,我发现的一个非常有用的工具是SchemaSpy。SchemaSpy是Ja

标签: 安全升级

本文链接地址:https://www.jiuchutong.com/biancheng/347642.html 转载请保留说明!

上一篇:大幅提升MySQL中InnoDB的全表扫描速度的方法(mysql提高效率)

下一篇:大幅优化MySQL查询性能的奇技淫巧(mysql优化查询)

  • 代扣代缴境外增值税可以抵扣
  • 中国的税收制度是什么
  • 可供出售金融资产和交易性金融资产
  • 电汇汇票和电汇的异同点
  • 网上银行回单是什么意思
  • 汽车保险专用发票怎么做账
  • 小规模纳税人销售农产品税率是多少
  • 公司向个人租房子怎么做账
  • 公司借款给个人超过一年未还
  • 补计提上一年度费用
  • 合并重组案例
  • 股票持有多久可以打新股
  • 亏损弥补额的年数如何计算?
  • 发票认证了还能退回吗
  • 一般纳税人净利润300万企业所得税怎么算
  • 利息可以开专票
  • 纳税人在同一地级行政范围内跨县经营
  • 商业健康保险个税申报
  • 跨期费用审计调整分录
  • 债券借贷业务属于表外业务吗
  • 培训费表格
  • 出租房产免收租金合法吗
  • win11如何在开机的时候进入安全模式
  • 印花税本月计提本月缴纳
  • 公司注销时账面处理
  • 没有营业执照哪个银行可以办理房产抵押贷款
  • 专业版 win10
  • Win10 20H2 Beta 预览版 19042.782正式推送(附更新内容)
  • 期间费用在会计期末要转入
  • win10显示我的电脑
  • windows 10音响没有声音
  • php写的代码怎么运行
  • 摊销专利权会计分录怎么写
  • echarts引入地图
  • php读取文件
  • 小企业会计准则财务报表至少包括
  • 网上蛋糕商城jsp页面
  • qt opencv ffmpeg
  • 残保金申报缴纳时间
  • 增值税出口税
  • 怎样网上抄税
  • 公司组织员工旅游费可以在税前扣除吗
  • 人工费没有发票咋入帐
  • Python psd-tools如何转换文件
  • 税控盘的服务费可以抵扣吗
  • 无形资产摊销年限
  • 银行日记账怎么做账
  • 总公司和分公司企业所得税分配
  • 珠宝可以开票抵扣吗
  • sql server2008中删除表中记录的命令
  • 公司一年的账目怎样算
  • mysql5.7版本安装教程
  • 财务挂账应该怎么做账
  • 存货成本主要包括
  • 收到上个月退税会计分录
  • 融资租赁汽车怎么投诉电话
  • 临时账户名称是什么意思
  • 预付款充值发票
  • 生产成本如何设置明细账
  • 详解十二建星择日方法
  • 催化剂过低怎么解决
  • ubuntu 18.04怎么用
  • 安装ubuntu 20.10
  • 电脑xp自带的杀毒软件在哪里
  • iis搭建php环境
  • linux之间拷贝文件
  • le启动exe是什么意思
  • win7怎么删除除了系统盘所有东西
  • 非常好的成语
  • CCProgressTimer 进度条动画在cocos2dx+lua中的使用
  • 编程中的python
  • hover在jquery中的用法
  • bootstrap和thymeleaf
  • 怎样开启javascript功能
  • javascript教程完整版
  • 养老待遇核定表在哪办理
  • 丰台和朝阳中间是哪里
  • 外地户口在绍兴读小学
  • 买车险代收车船税多少钱
  • 济南车辆购置税完税证明电子版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设