V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
? MySQL 5.5 Community Server
? MySQL 5.6 Community Server
? Percona Configuration Wizard
? XtraBackup 搭建主从复制
Great Sites on MySQL
? Percona
? MySQL Performance Blog
? Severalnines
推荐管理工具
? Sequel Pro
? phpMyAdmin
推荐书目
? MySQL Cookbook
MySQL 相关项目
? MariaDB
? Drizzle
参考文档
? http://mysql-python.sourceforge.net/MySQLdb.html
fanne
V2EX  ?  MySQL

mysql 引擎混用怎么维护

  •  
  •   fanne · 2019-03-19 20:57:07 +08:00 · 3999 次点击
    这是一个创建于 1874 天前的主题,其中的信息可能已经有所发展或是发生改变。

    腾讯云最新优惠活动来了:云产品限时1折,云服务器低至88元/年 ,点击这里立即抢购:9i0i.cn/qcloud,更有2860元代金券免费领取,付款直接抵现金用,点击这里立即领取:9i0i.cn/qcloudquan

    (福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

    历史原因,现有的数据库好几个实例中,每一个库中的表都有 InnoDB,MyISAM 两个引擎存在。

    现在想统一表引擎为 innodb。

    • 如果改表引擎,是否可行。最大的库有 150G 多吧,此库中有个表,单表 100G。
    • 如果直接 alter 改表引擎,会有什么的风险存在

    有哪位直接线上改表引擎的,有经验的,传授一下

    4 条回复  ?  2019-03-20 10:02:12 +08:00
    onion83
        1
    onion83  
       2019-03-19 23:35:02 +08:00
    无论基于什么理由,尽量都不要动旧数据吧,万一翻车呢:)

    比较好的方法是新建立一个 innodb 的数据库,然后用 SELECT INTO new_table from old_table 的方法迁移数据,或者用 mysqldump 先导出再导入。至于实时更新数据等问题,就要看你的需求了,但是业务一定是受损的,还是停机操作吧。

    最后还是提醒一下:备份!备份!备份!
    honeycomb
        2
    honeycomb  
       2019-03-19 23:56:38 +08:00 via Android   ?? 1
    还有一个麻烦一些但可以在某些情况下不停机(比如同时运行多个业务实例,前端有负载均衡),并且可以保证安全(可以随时回滚)的办法:

    1,建一个 InnoDB 的新表,新数据直接放新表。
    2,查询的时候,新数据查新表,旧数据查旧表。
    3,同时把旧表数据复制到新表
    4,复制完成后,查旧数据的逻辑也改成使用新表(这部分的代码和 2 同时写好)。
    5,这个时候可以删掉旧表了
    wy315700
        3
    wy315700  
       2019-03-19 23:57:55 +08:00   ?? 1
    pt-online-schema-change
    fanne
        4
    fanne  
    OP
       2019-03-20 10:02:12 +08:00
    @onion83 #1
    @honeycomb #2
    多谢二位思路,我这边在研究研究。

    @wy315700 #3
    好像是个利器。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2294 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:21 · PVG 08:21 · LAX 17:21 · JFK 20:21
    Developed with CodeLauncher
    ? Do have faith in what you're doing.


    http://www.vxiaotou.com