亿级数据备份,归档, 血的教训。
千万不要备份完之后,delete from table , 你做了就准备等看凌晨4点的夜晚吧。
第一步, 数据备份,数据备份!!!!!!!!!!!
第二步, 还原到备份数据库,并检查是否正确!!!!!!!!
第三步, 复制表结构 。
select * into NewTable from OldTable where 1=2
切记不要一上来就 复制表结构和数据。(select * into NewTable from OldTable where 条件) ,你后面再来加主键你会哭的。需要等待超级长的时间。
最好的还是先复制表结构,添加主键,索引,约束…巴拉巴拉
这些添加完了就insert
insert into NewTable select * from OldTable where 条件。
数据插入完成就查下, 对不对!!!!!!
下面就是三部曲了。
这里如果你不想删你就换名字,归档。可以跳过这一步。
truncate table OldTable
drop table OldTable
重命名,把新表名字换成旧表名字
exec sp_rename 'NewTable ','OldTable ';
所有操作请勿在正式数据库中使用, 先自己测试,可以你在去正式数据库中进行操作!!!!!!!!!!!
新手上路, 大佬有更香的办法可以下面指点下。