Chinaunix首页 | 论坛 | 博客
  • 博客访问: 345005
  • 博文数量: 87
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 727
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-27 15:56
个人简介

开心了, 就笑;不开心了,就过会儿再笑。。。。

文章分类

全部博文(87)

文章存档

2017年(16)

2016年(28)

2015年(33)

2014年(10)

我的朋友

分类: Mysql/postgreSQL

2015-04-28 10:15:01

登上服务器,查出大于1G的表:
select TABLE_NAME,DATA_LENGTH, concat(round(((DATA_LENGTH+index_LENGTH)/1024/1024/1024), 2), 'G')  as data from information_schema.TABLES where TABLE_SCHEMA='dbname' and DATA_LENGTH > 1000000000;
+-------------------------+-------------+-------+
| TABLE_NAME              | DATA_LENGTH | data   |
+-------------------------+-------------+-------+
| finance_confirmed_order |  2502950912 | 3.53G |
| finance_refuse_sheet      |  1265631232 | 1.18G  |
| reg_user                        |  1194328064 | 2.70G  |
| reg_user_source             |  1477443584 | 1.51G |
| uc_yb_log                      |  2307915776 | 5.84G |
+-------------------------+-------------+-------+
5 rows in set (0.07 sec)
mysql> 

查出来后发现大于1G的表并不多,这些表是要求只要结构的。

把所有的表名放到一个文件中
]# mysql -uegou -pegou -e 'show tables from dbname' > /home/XXX/dbnametables.sql

将上面查出的大于1G的表从文件中去掉

导出除大于1G的表的结构和数据
]#cat  dump.sh
#!/bin/bash
tables=`cat /home/XXX/dbnametables.sql `
/data/bin/mysqldump   -uroot  -pXXX   --socket=/data/mysql/tmp/mysql.sock  --default-character-set=utf8 --quick  --single-transaction  --routines --triggers --events $tables > /data/2.sql

]#mysqldump  -uroot  -pXXX    -d  dbname > /data/1.sql

导入的时候,先导入1.sql  是所有表的结构,再倒入2.sql 除大于1G的表的数据

阅读(1497) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~