部分还原

时间:2013-02-21 15:40:18

标签: mysql

是否可以从完整备份或并行数据库中恢复,只能恢复具有原始ID的某些记录?

让我们说记录是从特定日期删除的,那些记录可以在不恢复整个表的情况下恢复吗?

所以要明确我可以说我有500 - 720的记录仍在备份或并行数据库中,但该表自备份后添加了新记录,因此也不想丢失它们。因此,只需要将记录500 - 720与原始ID一起放回当前表格。

1 个答案:

答案 0 :(得分:1)

如果您有数据库的副本,这将是最简单,最快捷的方式 - 只需要您需要的行创建表的副本:

CREATE TABLE table2
AS
SELECT * FROM table1
WHERE  table1.ID BETWEEN 500 AND 720

然后使用mysqldump转储table2:

mysqldump -u -p thedatabase table2 > table2_dump.sql

并将转储发送到主数据库,在使用临时数据库时运行转储,并使用以下命令插入缺少的记录:

INSERT INTO table1
SELECT *
FROM   temp_db.table2

如果你没有丢失记录的数据库副本,只是备份,那么我认为你不能做这样的选择性恢复。如果你只有一个整个数据库的转储文件,那么你必须将一个完整的副本恢复到临时数据库,并以与我上面描述的方式类似的方式插入缺失的记录,但是使用where子句在插页中。