zoukankan      html  css  js  c++  java
  • mysql共享表空间转独立表空间

    使用innodb_export_import.py脚本:

    https://github.com/thecpaneladmin/innodb-tools

     

    安装MySQL-python模块:

    shell > yum install MySQL-python -y 

    步骤一:修改my.cnf文件

    增加innodb_force_recovery = 4参数,重启mysql,阻塞所有读写操作,

    步骤二:执行脚本导出innodb表的数据(脚本没有用户和密码选项,需要写在my.cnf文件中,即user=xxx和password=xxx参数):

    shell > python innodb_export_import.py --export --dir=/data/mysql.bak --config=/usr/local/services/mysql/my.cnf

     

    备份过程:

    Getting a list of databases...

    Checking for InnoDB tables...

    Database performance_schema... No InnoDB tables

    Database sbtest... Detected 1 InnoDB tables

    Database test... No InnoDB tables

    Database xiaoboluo... Detected 2 InnoDB tables

    Dumping tables...

    Dumped table xiaoboluo.t1 (1 / 3)

    Dumped table xiaoboluo.t2 (2 / 3)

    Dumped table sbtest.sbtest (3 / 3)

     

    SUMMARY:

     

    Tables Exported: 3

    Tables Failed: 0

    Databases Total: 2

    Tables Total: 3

     

    Log file: /data/mysql.bak/201510140221/innodb_export.log

    Tables were dumped to: /data/mysql.bak/201510140221

     

    此时可以查看export日志文件:

    shell > cat /data/mysql.bak/201510140221/innodb_export.log

     

    查看备份文件:

    shell > ll /data/mysql.bak/201510140221/

    总用量 12

    -rw-r--r-- 1 root root  211 10月 14 02:21 innodb_export.log

    drwxr-xr-x 2 root root 4096 10月 14 02:21 sbtest

    drwxr-xr-x 2 root root 4096 10月 14 02:21 xiaoboluo

     

    步骤三:停止mysql,在my.cnf中添加独立表空间参数:innodb_file_per_table=1,删掉my.cnf中的innodb_force_recovery=4参数,备份原来的数据目录,并删掉ibdata1和ib_logfile*文件,启动mysql

    shell > cp -ar /data/mysql/data /data/mysql/data.bak

    shell > rm -rf /data/mysql/data/ibdata1 /data/mysql/data/ib_logfile*

    shell > service mysqld start

     

    步骤四:并执行恢复innodb表操作:

    shell > python innodb_export_import.py --import --dir=/data/mysql.bak/201510140221/ --config=/usr/local/services/mysql/my.cnf

     

    Checking sbtest...

    /var/lib/mysql/sbtest/sbtest.ibd

    Imported table sbtest.sbtest

    MySQL Error 1049: Unknown database '201510140246'

    MySQL Error 1049: Unknown database '201510140253'

    Checking xiaoboluo...

    /var/lib/mysql/xiaoboluo/t1.ibd

    Imported table xiaoboluo.t1

    /var/lib/mysql/xiaoboluo/t2.ibd

    Imported table xiaoboluo.t2

     

    SUMMARY:

     

    Tables Failed: 0

    Tables Imported: 3

    Databases Total: 4

    Tables Total: 3

    Tables Skipped: 0

     

    Log file: /data/mysql.bak/201510140221/innodb_import.log

    此时可以查看import日志:

    shell > cat /data/mysql.bak/201510140221/innodb_import.log

     

    步骤五:进行检测:

    shell > python innodb_export_import.py --verify --dir=/data/mysql.bak/201510140221/ --config=/usr/local/services/mysql/my.cnf

    Getting a list of databases...

    Checking for InnoDB tables...

    Database performance_schema... No InnoDB tables

    Database sbtest... Detected 1 InnoDB tables

    Database test... No InnoDB tables

    Database xiaoboluo... Detected 2 InnoDB tables

    Checking tables...

    Checking xiaoboluo.t1...

    Table xiaoboluo.t1 is OK

    Checking xiaoboluo.t2...

    Table xiaoboluo.t2 is OK

    Checking sbtest.sbtest...

    Table sbtest.sbtest is OK

     

    SUMMARY:

     

    Tables Ok: 3

    Databases Total: 2

    Tables Checked: 3

    Tables Total: 3

    Tables Bad: 0

     

    Log file: /data/mysql.bak/201510140221/201510140259/innodb_check.log

    此时可以查看check日志:

    shell > cat /data/mysql.bak/201510140221/201510140259/innodb_check.log

     

    参考链接:http://thecpaneladmin.com/how-to-convert-innodb-to-innodb_file_per_table-and-shrink-ibdata1/

    除了这个方法,还可以使用mysqldump来备份数据

  • 相关阅读:
    [Java] 使用@SelectProvider注解实现多表关联查询(全注解,不使用不配置xml)
    c#winform线程间操作UI的五种方法
    C#调用Excel,拷贝图表到其他Excel文档中
    VisualSvn破解、VS2017以上版本的VisualSvn破解
    汉字数据库,汉字大全,JSON格式汉字数据,收录16159个汉字
    golang Logrus简易使用教程
    excel操作-基础篇
    02-PyQt5程序基本结构分析
    QObject信号的操作
    基于webGL三维停车场,可视化管理Demo
  • 原文地址:https://www.cnblogs.com/xiaoboluo768/p/5201875.html
Copyright © 2011-2022 走看看