T-SQL 备份和还原
2009-09-14 00:00:00 来源:WEB开发网总结了一些SQL Server常用的备份还原T-SQL 语句,代码基本是支持2005/2008的,不过部分功能需要企业版数据库:
Code
/*
Author:Terry.Sai.M.J 浪客
Location:BeiJing
DateTime:GETDATE()
Description:使用镜像备份
*/
IF DB_ID('db') IS NOT NULL
DROP DATABASE db;
GO
CREATE DATABASE db;
GO
CREATE TABLE db.dbo.T(ID INT);
INSERT INTO db.dbo.T SELECT 1;
BACKUP DATABASE db TO DISK='c:\1.bak' MIRROR TO DISK='c:\2.bak'
WITH FORMAT,MEDIANAME='MydbMedia';
RESTORE DATABASE db FROM DISK='c:\2.bak' WITH RECOVERY,REPLACE
SELECT COUNT(*) FROM db.dbo.T
RESTORE DATABASE db FROM DISK='c:\1.bak' WITH RECOVERY,REPLACE
SELECT COUNT(*) FROM db.dbo.T
DROP DATABASE db;
GO
Code
/*
Author:Terry.Sai.M.J 浪客
Location:BeiJing
DateTime:GETDATE()
Description:使用多备份设备组成媒体集进行备份还原
*/
--删除已经存在的db数据库
IF DB_ID('db') IS NOT NULL
DROP DATABASE db;
GO
--创建数据库db
CREATE DATABASE db;
GO
--创建T表
CREATE TABLE db.dbo.T(ID INT PRIMARY KEY IDENTITY(1,1));
--插入一条记录
INSERT INTO db.dbo.T DEFAULT VALUES
--首先使用FORMAT启用一个新的媒体标头,然后分别放到3个磁盘中,形成一个备份集,同时命名一个媒体名
BACKUP DATABASE db TO DISK='c:\1.bak',DISK='d:\1.bak',DISK='e:\1.bak'
WITH FORMAT,MEDIANAME='MydbMedia'
--插入一条记录
INSERT INTO db.dbo.T DEFAULT VALUES
--创建一个差异备份,必须强制的与主备份一样的路径(3个磁盘),使用相同的路径的话,可以通过媒体标头区分上文的主备份与现在的差异备份,因为我们使用了 NOFORMAT关键字,就是不重新初始化媒体(这也叫追加媒体集).还有加上DIFFERENTIAL以表示是差异备份.还要指定媒体名称
BACKUP DATABASE db TO DISK='c:\1.bak',DISK='d:\1.bak',DISK='e:\1.bak'
WITH NOFORMAT/*或者使用NOINIT,效果一样的哈*/,MEDIANAME='MydbMedia',DIFFERENTIAL;
GO
--还原主备份
RESTORE DATABASE db FROM DISK='c:\1.bak',DISK='d:\1.bak',DISK='e:\1.bak'
WITH MEDIANAME='MydbMedia',FILE=1,NORECOVERY,REPLACE;
--还原差异备份(注意FILE=2,因为他标头的备份是属于2顺序的.第一个备份的就是1,依次类推)
RESTORE DATABASE db FROM DISK='c:\1.bak',DISK='d:\1.bak',DISK='e:\1.bak'
WITH MEDIANAME='MydbMedia',FILE=2,NORECOVERY;
--数据库在线
RESTORE DATABASE db WITH RECOVERY
--测试记录
SELECT * FROM db.dbo.T
GO
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››备份Chrome(谷歌)浏览器扩展程序的技巧
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
更多精彩
赞助商链接