请问:备份表结构恢复时的问题
本帖最后由 shynodes 于 2023-3-9 14:08 编辑1、使用mysqldump备份表结构,可以正常恢复
2、使用mysqlfrm工具读取.frm文件获取的表结构文件,在恢复时,报了索引超长的错误
mysqlfrm命令:
mysqlfrm --diagnostic /app/mysql/data/db1/>createtb.sql
ERROR 1071 (42000): Specified key was too long; max key length is 3072 bytes
Query OK, 0 rows affected (0.01 sec)
请问:这是什么原因呢?谢谢
(表数量少的话,可以手动更改建表语句,多的话比较麻烦,求指教)
mysqldump备份有逻辑可读性很强的SQL建表语句,你直接分析frm文件是为了测试? lizibin 发表于 2023-3-9 14:36
mysqldump备份有逻辑可读性很强的SQL建表语句,你直接分析frm文件是为了测试? ...
有需求,从全量物理备份中恢复单库,库里表数据还挺多,而且备份数据中表信息,可能和现在库中表信息不一致,比如新增一些表。
如果不全量恢复,只能从.frm文件中解析建表语句。
但测试恢复过程出现了问题。 如果备份文件的表结构和生产的表结构存在不一致,何不直接show create table tablename
查看生产表结构,直接分析物理文件是不得已的做法。 lizibin 发表于 2023-3-9 15:31
如果备份文件的表结构和生产的表结构存在不一致,何不直接show create table tablename
查看生产表结构, ...
表的数量,三千个 先贴个表DDL看看 yejr 发表于 2023-3-9 21:05
先贴个表DDL看看
CREATE TABLE `DB`.`TABLE2` (
`api_id` varchar(765) NOT NULL,
`host_svr` varchar(765) DEFAULT NULL,
`api_status` varchar(765) DEFAULT NULL,
`api_ver` varchar(765) DEFAULT NULL,
`branch_no` varchar(765) DEFAULT NULL,
`company_id` varchar(765) DEFAULT NULL,
`create_datetime` datetime DEFAULT NULL,
`customized_uri` varchar(765) DEFAULT NULL,
`expose_t2_switch` varchar(765) DEFAULT NULL,
`function_id` varchar(765) DEFAULT NULL,
`group_name` varchar(765) DEFAULT NULL,
`location_index` int(11) DEFAULT NULL,
`method` varchar(765) DEFAULT NULL,
`modify_time` datetime DEFAULT NULL,
`open_api_desc` varchar(765) DEFAULT NULL,
`api_partition` varchar(765) DEFAULT NULL,
`protocol_type` varchar(765) DEFAULT NULL,
`record_status` varchar(765) DEFAULT NULL,
`restful_uri` varchar(765) DEFAULT NULL,
`service_name` varchar(765) DEFAULT NULL,
`sub_system_no` varchar(765) DEFAULT NULL,
`system_no` varchar(765) DEFAULT NULL,
`t2_router` varchar(765) DEFAULT NULL,
`t2_status` int(11) DEFAULT NULL,
`api_user_demand_status` varchar(765) DEFAULT NULL,
`t2_user_demand_status` varchar(765) DEFAULT NULL,
PRIMARY KEY `PRIMARY` (`api_id`),
UNIQUE KEY `UK_labu0l6f7t09b9k5qpaucbg91` (`restful_uri`)
) ENGINE=InnoDB;
---- shynodes 发表于 2023-3-10 10:14
CREATE TABLE `DB`.`TABLE2` (
`api_id` varchar(765) NOT NULL,
`host_svr` varchar(765) DEFAULT N ...
这个语句是mysqlfrm获取到的SQL,在库中查询的是varchar(255),表字符集是UTF8。 shynodes 发表于 2023-3-10 10:19
这个语句是mysqlfrm获取到的SQL,在库中查询的是varchar(255),表字符集是UTF8。 ...
如果知道有固定规律,那就照规律批量处理就好了
页:
[1]