SQL Server中的事务日志管理(6/9):大容量日志恢复模式里的日志管理 (2)

在这篇文章里所有例子都假定数据和日志文件位于“D:\SQLData”,所有备份位于“D:\SQLBackups”,不是同个地方的。当运行例子时,直接修改这些位置作为你系统的正确位置(在真实系统中,请记住我们不会存储所有东西在同个硬盘!)

我们使用在SQL Server 2008里会最小化日志的SELECT...INTO语句插入ScmeTable表200条记录,每条记录2000字节。因为在SQL Server里页大小是8kb,我们会得到4行一页,总共50个数据页(加上一些分配页)。代码6.1创建一个测试数据库,完整恢复,请保证它运行在完整恢复模式,然后运行SELECT...INTO语句。

1 USE master 2 GO 3 IF DB_ID(\'FullRecovery\') IS NOT NULL 4 DROP DATABASE FullRecovery; 5 GO 6 7 -- Clear backup history 8 EXEC msdb.dbo.sp_delete_database_backuphistory 9 @database_name = N\'FullRecovery\' 10 GO 11 12 CREATE DATABASE FullRecovery ON 13 (NAME = FullRecovery_dat, 14 FILENAME = \'D:\SQLData\FullRecovery.mdf\' 15 ) LOG ON 16 ( 17 NAME = FullRecovery_log, 18 FILENAME = \'D:\SQLData\FullRecovery.ldf\' 19 ); 20 21 ALTER DATABASE FullRecovery SET RECOVERY FULL 22 GO 23 24 BACKUP DATABASE FullRecovery TO DISK = \'D:\SQLBackups\FullRecovery.bak\' 25 WITH INIT 26 GO 27 28 USE FullRecovery 29 GO 30 IF OBJECT_ID(\'dbo.SomeTable\', \'U\') IS NOT NULL 31 DROP TABLE dbo.SomeTable 32 GO 33 34 SELECT TOP ( 200 ) 35 REPLICATE(\'a\', 2000) AS SomeCol 36 INTO SomeTable 37 FROM sys.columns AS c;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwjgjg.html