分割SQL文件
admin
2023-04-21 06:04:23
0

小生博客:http://xsboke.blog.51cto.com

                            -------谢谢您的参考,如有疑问,欢迎交流

SQL备份需要导入到Mysql,但是SQL文件太大怎么办?

推荐一个shell脚本:mysqldumpsplitter

选项:

--source: mysqldump filename to process. It could be a compressed or regular file.
--desc: This option will list out all databases and tables.
--extract: Specify what to extract. Possible values DB, TABLE, ALLDBS, ALLTABLES, REGEXP
--match_str: Specify match string for extract command option.
--compression: gzip/pigz/bzip2/none (default: gzip). Extracted file will be of this compression.
--decompression: gzip/pigz/bzip2/none (default: gzip). This will be used against input file.
--output_dir: path to output dir. (default: ./out/)
--config: path to config file. You may use --config option to specify the config file that includes following variables.
    SOURCE=
    EXTRACT=
    COMPRESSION=
    DECOMPRESSION=
    OUTPUT_DIR=
    MATCH_STR=

mysqldumpsplitter食谱:

从mysqldump中提取单个数据库:
sh mysqldumpsplitter.sh --source filename --extract DB --match_str database-name

上面的命令将从指定的“filename”sql文件为指定的数据库创建sql,并将其以压缩格式存储到database-name.sql.gz。

从mysqldump中提取单个表:
sh mysqldumpsplitter.sh --source filename --extract TABLE --match_str table-name

上面的命令将从指定的“filename”mysqldump文件为指定的表创建sql,并将其以压缩格式存储到database-name.sql.gz。

从mysqldump中提取与正则表达式匹配的表:
sh mysqldumpsplitter.sh --source filename --extract REGEXP --match_str regular-expression

上面的命令将为指定的“filename”mysqldump文件中的指定正则表达式的表创建sqls,并将其以压缩格式存储到单个table-name.sql.gz中。

从mysqldump中提取所有数据库:
sh mysqldumpsplitter.sh --source filename --extract ALLDBS

上面的命令将从指定的“filename”mysqldump文件中提取所有数据库,并将其以压缩格式存储到单个database-name.sql.gz中。

从mysqldump中提取所有表:
sh mysqldumpsplitter.sh --source filename --extract ALLTABLES

上面的命令将从指定的“filename”mysqldump文件中提取所有表,并将其以压缩格式存储到单个table-name.sql.gz中。

从mysqldump中提取表的列表:
sh mysqldumpsplitter.sh --source filename --extract REGEXP --match_str '(table1|table2|table3)'

上面的命令将从指定的“filename”mysqldump文件中提取表,并将它们以压缩格式存储到单个table-name.sql.gz中。

从压缩的mysqldump中提取数据库:
sh mysqldumpsplitter.sh --source filename.sql.gz --extract DB --match_str 'dbname' --decompression gzip

上面的命令将使用gzip解压缩filename.sql.gz,从“filename.sql.gz”中提取名为“dbname”的数据库并将其存储为out / dbname.sql.gz

以压缩格式从压缩的mysqldump中提取数据库:
sh mysqldumpsplitter.sh --source filename.sql.gz --extract DB --match_str 'dbname' --decompression gzip --compression none

上面的命令将使用gzip解压缩filename.sql.gz并从“filename.sql.gz”中提取名为“dbname”的数据库并将其存储为plain sql out / dbname.sql

从不同文件夹中的mysqldump中提取alltables:
sh mysqldumpsplitter.sh --source filename --extract ALLTABLES --output_dir /path/to/extracts/

上面的命令将从指定的“filename”mysqldump文件中提取所有表,并将压缩格式的表提取到存储在/ path / to / extracts /下的各个文件table-name.sql.gz。该脚本将创建文件夹/ p​​ath / to / extracts /如果不存在。

从完整转储中的一个数据库中提取一个或多个表:
考虑您有一个包含多个数据库的完整转储,并且您希望从一个数据库中提取少量表。

Extract single database:
`sh mysqldumpsplitter.sh --source filename --extract DB --match_str DBNAME --compression none`

Extract all tables
`sh mysqldumpsplitter.sh --source out/DBNAME.sql --extract REGEXP --match_str "(tbl1|tbl2)"`
虽然我们可以使用另一个选项在单个命令中执行此操作,如下所示:

sh mysqldumpsplitter.sh --source filename --extract DBTABLE --match_str "DBNAME.(tbl1|tbl2)" --compression none

上面的命令将从当前目录中文件夹“out”下的sql格式的DBNAME数据库中提取tbl1和tbl2。

您可以按如下方式提取单个表:

sh mysqldumpsplitter.sh --source filename --extract DBTABLE --match_str "DBNAME.(tbl1)" --compression none

从特定数据库中提取所有表:
mysqldumpsplitter.sh --source filename --extract DBTABLE --match_str "DBNAME.*" --compression none

上面的命令将以sql格式从DBNAME数据库中提取所有表,并将其存储在“out”目录下。

列出mysqldump文件的内容
mysqldumpsplitter.sh --source filename --desc

上面的命令将列出转储文件中的数据库和表。

相关内容

热门资讯

AI和算力的升级大幅提高了轮式... 一、从“看见”到“看懂” · 传统方式:依赖预先编程的规则和简单的传感器(如磁条、二维码)进行导航,...
【第一财经】“新青鸟拼三张真的... 【第一财经】“新青鸟拼三张真的有挂吗?”(果然有透视挂)您好,新青鸟拼三张这个游戏其实有挂的,确实是...
【今日要闻】“富豪麻将开挂器?... 网上科普关于“富豪麻将有没有挂”话题很是火热,小编也是针对富豪麻将作*弊开挂的方法以及开挂对应的知识...
最新引进“新圣游炸/金/花有没... 家人们!今天小编来为大家解答新圣游炸/金/花透视挂怎么安装这个问题咨询软件客服徽9752949的挂在...
最新引进“新皇豪牛牛到底有挂吗... 最新引进“新皇豪牛牛到底有挂吗?”(必胜开挂神器)您好,新皇豪牛牛这个游戏其实有挂的,确实是有挂的,...
玩家分享攻略“鱼扑克有挂吗?”... 网上科普关于“鱼扑克有没有挂”话题很是火热,小编也是针对鱼扑克作*弊开挂的方法以及开挂对应的知识点,...
最新引进“微乐陕西挖坑开挂器?... 网上科普关于“微乐陕西挖坑有没有挂”话题很是火热,小编也是针对微乐陕西挖坑作*弊开挂的方法以及开挂对...
终于了解“九酷牛牛到底是不是挂... 终于了解“九酷牛牛到底是不是挂?”(透视曝光猫腻)您好,九酷牛牛这个游戏其实有挂的,确实是有挂的,需...
今日重磅消息“小闲川南棋牌怎么... 有 亲,根据资深记者爆料小闲川南棋牌是可以开挂的,确实有挂(咨询软件无需...
【第一资讯】“九酷牛牛怎么装挂... 【第一资讯】“九酷牛牛怎么装挂?”(太坑了果然有挂)您好,九酷牛牛这个游戏其实有挂的,确实是有挂的,...