zoukankan      html  css  js  c++  java
  • 1118ALTER TABLE tabname DISCARD TABLESPACE快速导入数据利用表空间

    -- 快速导入数据
    如果你有.ibd文件的一个干净的备份,你可以按如下操作从被起源的地方恢复它到MySQL安装中:相当快速

    1. 发出这个ALTER TABLE语句:

    2. ALTER TABLE tbl_name DISCARD TABLESPACE;
    警告:这个语句删除当前.ibd文件。

    3. 把备份的.ibd文件放回到恰当的数据库目录。

    4. 发出这个ALTER TABLE语句:

    5. ALTER TABLE tbl_name IMPORT TABLESPACE;


    MYSQL表空间迁移。
      表空间迁移。
      有如下原因你可能需要将INNODB表复制到不同的数据库服务器上。
    不增加生产负载的情况下生成 一个报表
    在一个新的服务器上建立一个和生产上数据相同的表
    做一个备份在发生问题或错误操作时用于恢复
    快速将数据从一个服务器迁移到另一个服务器
      命令FLUSH TABLES ... FOREXPORT 使.ibd文件保持一致的状态。只有文件处于一致的状态我们才可以复制它。这个文件也会同时创建一个扩展名.cfg的二进制的文件。命令ALTER TABLE ...IMPORT TABLESPACE 会使用这个二进制文件对导入过程进行校验。
      对于 MySQL 5.6.8版本, ALTER TABLE ...IMPORT TABLESPACE 命令不再一定需要一个扩展名为.cfg二进制文件了。但如果真的没有这个文件我们会收到下面这样一个警告。
      Message:INNODB: IO READ error: (2, NO such FILE OR DIRECTORY) Error opening '.
      test .cfg',will attempt TO IMPORT without SCHEMA verification
      1row IN SET (0.00 sec)
      这个特性有时候还是很有用的。比如,在模式不匹配的导入过程中,或者在一些需要恢复的情景下,元数据又不能从.ibd文件获得,则这个命令不需要一个扩展名为.cfg的二进制文件就可以导入的特性就很有用。
      可迁移表空间的限制:
    innodb_file_per_table 一定要打开成 ON. 在共享表空间上的表不能使用这个特性。
    当表处理静默状态时,只有只读语句可以使用这张表。
    当导入表空间时,目的库的页尺寸要和源库的页尺寸相匹配。
    DISCARD TABLESPACE 不支持分区表。如果你在分区表上使用命令 ALTER TABLE ... DISCARD TABLESPACE 你会看到如下错误: ERROR 1031 (HY000): 表引擎没有这个选项。
    DISCARD TABLESPACE 命令不支持有父子关系的表。如果 FOREIGN_KEY_CHECKS 被设置成1. 在使用命令之前我们可以将这一参数设置为0. FOREIGN_KEY_CHECKS=0.
    ALTER TABLE ... IMPORT TABLESPACE 命令在导入表时不会检查主外键关系。
    如果是实时复制的时候, innodb_file_per_table 必需在主服务和从服务上设置为ON。

  • 相关阅读:
    HDFS详解(3)——HDFS文件结构
    HDFS详解(1)
    MapReduce工作机制
    Hadoop体系结构
    Hadoop 项目及结构
    (转)Hadoop生态系统
    Hadoop配置参数
    HDFS详解(2)——HDFS中的读写数据流
    Yarn(MapReduce V2)
    与或非实习day02
  • 原文地址:https://www.cnblogs.com/qcfeng/p/6077955.html
Copyright © 2011-2022 走看看