使用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来备份数据

mysql共享表空间转独立表空间的更多相关文章

  1. Mysql InnoDB 共享表空间和独立表空间

    前言:学习mysql的时候总是习惯性的和oracle数据库进行比较.在学习mysql InnoDB的存储结构的时候也免不了跟oracle进行比较.Oracle的数据存储有表空间.段.区.块.数据文件: ...

  2. mysql共享表空间和独立表空间

    innodb这种引擎,与MYISAM引擎的区别很大.特别是它的数据存储格式等. 对于innodb的数据结构,首先要解决两个概念性的问题: 共享表空间以及独占表空间. 什么是共享表空间和独占表空间 共享 ...

  3. mysql InnoDB引擎 共享表空间和独立表空间(转载)

    PS:innodb这种引擎,与MYISAM引擎的区别很大.特别是它的数据存储格式等.对于innodb的数据结构,首先要解决两个概念性的问题: 共享表空间以及独占表空间. 1.什么是共享表空间和独占表空 ...

  4. MySQL数据库系列(四)- InnoDB下的共享表空间和独立表空间详解

    一.概念 共享表空间: Innodb的所有数据保存在一个单独的表空间里面,而这个表空间可以由很多个文件组成,一个表可以跨多个文件存在,所以其大小限制不再是文件大小的限制,而是其自身的限制.从Innod ...

  5. 如何开启 MySQL InnoDB 共享表空间和独立表空间

    修改数据库的表空间管理方式 修改my.ini文件的innodb_file_per_table的参数值即可,但是修改不能影响之前已经使用过的共享表空间和独立表空间: innodb_file_per_ta ...

  6. mysql之 共享表空间与独立表空间、frm,MYD,MYI.idb,par文件说明

    一.共享表空间与独立表空间MySQL5.5默认是共享表空间 ,5.6中,默认是独立表空间. 共享表空间:ibdata1是InnoDB的共享表空间,默认配置是把全部表空间存放到ibdata1中,因此而造 ...

  7. 共享表空间VS独立表空间

    基础概念:共享表空间 VS 独立表空间 [共享表空间] 又称为system tablespace系统表空间,a small set of data files (the ibdata files) . ...

  8. 【转载】Innodb共享表空间VS独立表空间

    http://www.mysqlsupport.cn/innodb%E5%85%B1%E4%BA%AB%E8%A1%A8%E7%A9%BA%E9%97%B4vs%E7%8B%AC%E7%AB%8B%E ...

  9. mysql 共享空间转为独立表空间

    由于以前的mysql配置为共享表空间,服务器空间不足,清理日志表里的数据后,数据库并没缩小,照成空间浪费,现在修改为独立表空间 #独立表空间innodb_file_per_table=1 #停止事物日 ...

  10. MySQL 中的共享表空间与独立表空间

    对于 InnoDB 存储引擎来说,它可以将每张表存放于独立的表空间,即tablename.ibd 文件:也可以将数据存放于 ibdata 的共享表空间,一般命名是 ibdataX,后面的 X 是一个具 ...

随机推荐

  1. [bzoj1087][scoi2005]互不侵犯king

    题目大意 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上 左下右上右下八个方向上附近的各一个格子,共8个格子. 思路 首先,搜索可以放弃,因为这是一 ...

  2. 手动删除portal中托管服务。

    在portal中将server作为托管联合服务器,然后发布了托管服务.若中间取消了托管联合服务器,再重新连接,那么会出现之前的托管服务无法删除的现象. 下文为怎样手动删除这些服务的方法,(不过貌似之后 ...

  3. Springboot数据库连接池报错的解决办法

    Springboot数据库连接池报错的解决办法 这个异常通常在Linux服务器上会发生,原因是Linux系统会主动断开一个长时间没有通信的连接 那么我们的问题就是:数据库连接池长时间处于间歇状态,导致 ...

  4. vert.x学习(一),开篇之hello world

    今天决定学习下vert.x这个框架,记录下学习笔记. 下面列下我的开发环境: Java版本 1.8 maven版本 3.3 IDEA版本 2016 在idea中使用vert.x不用下载或安装其他东西了 ...

  5. 使用postman发送数据并构建collections执行测试

    1.安装 下载地址:https://www.getpostman.com/.直接安装,成功后在chorme的应用程序中会多出一个Postman.如果无法在google store上直接安装,可以下载. ...

  6. [功能改进]Live Writer发博支持“建分类、加标签、写摘要”

    以前您在园子里用Windows Live Wirter发布博文是不是有以下三个不爽: 不爽1:如果想在发布随笔时新建分类并将随笔添加至该分类,需要先在博客后台添加分类,然后在Live Writer中刷 ...

  7. iOS:使用模板引擎渲染HTML界面

    在实际开发中,UIWebView控件接受一个HTML内容,用于相应的界面,下面是该API的接口: - (void)loadHTMLString:(NSString *)string baseURL:( ...

  8. 通过pustil模块取pid及对应的pidname

    通过pustil模块取pid及对应的pidname import psutil import json def getpid(): reslut = psutil.pids() return resl ...

  9. 可爱的Python_课后习题_CDay0 时刻准备着!发布

    请根据软件发布的流程和软件开发的编码规范,将读者在前面章节所写的程序修改并发 布出去.另外,可以查找下除了 epydoc 外还有哪些较好的 py 文档生成器? pydoc是Python自带的模块,主要 ...

  10. delphi 判断一个数组的长度用 Length 还是 SizeOf ?

    判断一个数组的长度用 Length 还是 SizeOf ?最近发现一些代码, 甚至有一些专家代码, 在遍历数组时所用的数组长度竟然是 SizeOf(arr); 这不合适! 如果是一维数组.且元素大小是 ...