使用 lt_dump/lt_restore 进行导入导出
通过使用 lt_dump 和 lt_dumpall 可以进行导出,通过 -F 选项可以指定导出的格式:
- plain 表示导出纯文本格式的SQL脚本文件(需要使用 ltsql 进行导入);
- custom 表示导出自定义的归档格式(需要使用 lt_restore 进行导入);
- directory 表示导出目录格式(需要使用 lt_restore 进行导入);
- tar 表示导出 tar 格式(需要使用 lt_restore 进行导入);
lt_dump 支持的选项非常多,以下是常见的几种选项:
- -a:只导出数据,不导出定义;
- -s:只导出定义,不导出数据;
- -t:只导出指定的表;
- -T:导出时排除指定表;
- -n:只导出指定 schema;
- -N:导出时排除指定 schema;
- --exclude-table-data:导出时排除指定表的数据;
而 lt_dumpall 则是通过直接调用 lt_dump 来实现全量导出的。
LightDB 内置了越来越丰富的插件,而用户导入导出时往往只关系自己定义的各种数据库对象,为此 LightDB 新增了 --lt-exclude-lightdb-objects 选项,实现导出时忽略各种内置的数据库对象。
但其中有少部分的内置表是允许用户自定义修改的,比如定时任务 cron.job,如果用户希望也将这些表的数据导出,则可以使用新增加的 --lt-dump-lightdb-tables 选项。
新增 --lt-exclude-lightdb-objects 选项
表示过滤 LightDB 创建的各种数据库对象,优先级高于其他选项:
- 和 -t [built-in-table-name] 一起使用时,会忽略 -t 指定的内置表;
- 和 -n [built-in-schema-name] 一起使用时,会忽略 -n 指定的内置模式;
新增 --lt-dump-lightdb-tables 选项
表示只导出指定内置表的数据,在导入到新的库时,会先清空这些表的数据,再导入,以实现新老库中的数据一致。且优先级低于其他选项:
- 和 -s/--section 一起使用时,不再导出内置表数据;
- 和 --exclude-table-data [built-in-table-name] 一起使用时,不再导出 --exclude-table-data 指定的内置表的数据;
- 和 -t [built-in-table-name] 一起使用时,只导出 -t 指定的内置表数据
- 和 -T [built-in-table-name] 一起使用时,-T 指定的内置表数据不会导出;
- 和 -n [built-in-schema-name] 一起使用时,只导出 -n 指定的内置模式下的表数据;
- 和 -N [built-in-schema-name] 一起使用时,-N 指定的内置模式下的表数据不会导出;