【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
怎么把一个库里的表复制一份到相同集群的另一个库里?
例如dbtest01库里的表复制一份到相同集群的dbtest02库里。
表比较多,除了insert into select
【资源配置】
【附件:截图/日志/监控】
【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
怎么把一个库里的表复制一份到相同集群的另一个库里?
例如dbtest01库里的表复制一份到相同集群的dbtest02库里。
表比较多,除了insert into select
【资源配置】
【附件:截图/日志/监控】
逻辑导出再导入呢?
loader导入数据时指定不了导入到哪个库里,只能导入到原库名里
导出后把文件名rename成新库的,schema那个文件也改成新库的。
SELECT CONCAT(‘alter table ‘,a.TABLE_SCHEMA
,’.’,a.table_name,’ rename to ‘,‘test2’,’.‘,a.table_name,’;')
FROM information_schema.TABLES
a WHERE a.TABLE_SCHEMA
=‘test1’;
数据不动的话,先将源库的表导出,然后更换成新库表,然后再导入。
dumpling把你要导入的数据全部导出,sql或者csv都可以,然后批量改文件名,把dbtest01改成dbtest02,然后用lightning导入就行了。
mydump吧
数据量小,简单点用Navicat直接搞定,复杂点的用datax之类的
mydump导出数据,怎么保证数据一致性啊? 加上 --single-transaction --master-data=2 参数会报错,
mysqldump: Couldn’t execute ‘FLUSH TABLES WITH READ LOCK’: FLUSH TABLES WITH READ LOCK is not supported. Please use @@tidb_snapshot (1105)
用dumpling吧,默认会给你导出一致性数据。
数据量不大的话用mydumper
DATAX
lightning 导入的时候可以映射
我一般用kettle这种etl工具去复制
导出数据文件 然后再导入呗
kettle 是一个表一个作业吗?
导出再重新导入
lightning不能导入到其它库里吧?文档没找到啊
是的,我一般做成一个表一个作业
改名字呗,lightning是根据源文件的文件名来识别库名和表名的。