SQL Server数据库备份恢复(Simple Recovery Model和Full Recovery Model)(链接)
下面这篇微软文档,介绍了SQL Server数据库在Simple Recovery Model下的备份和恢复机制:
Complete Database Restores (Simple Recovery Model)
下面这篇微软文档,介绍了SQL Server数据库在Full Recovery Model下的备份和恢复机制:
Complete Database Restores (Full Recovery Model)
SQL Server数据库的数据和日志文件是只增不减的,即便是删除了数据库中的大量数据,我们还是会发现SQL Server数据库的数据和日志文件并没有变小,所以我们要经常对数据库文件进行收缩,来释放没有用到的空间,下面的微软文档,介绍了如何收缩SQL Server数据库:
DBCC SHRINKDATABASE (Transact-SQL)
DBCC SHRINKFILE (Transact-SQL)
注意这里(After you shrink a database)有说到,在收缩SQL Server数据库后,会造成索引碎片,导致索引性能下降,所以在收缩数据库后,要重建索引,可以参考下面的文档:
Measure index fragmentation and page density
对于在Full Recovery Model下的SQL Server数据库,因为其日志文件中记录了所有数据库的事务日志,所以日志文件会增长得非常快,时间长了日志文件会变得非常巨大,下面几篇微软文档介绍了如何管理和收缩数据库日志文件:
注意上面这个文档中的这个地方:
Log truncation doesn't reduce the size of the physical log file. To reduce the physical size of a physical log file, you must shrink the log file.
这也是为什么要执行下面的Shrink log file文档中的内容后,才会真正地收缩SQL Server数据库的日志文件
有些情况会阻止收缩SQL Server数据库的日志文件,详情参考下面的文档:
How to resolve a full transaction log
SQL Server中的系统数据库tempdb,时间久了也可能会变得非常大,下面的文档介绍了如何收缩tempdb数据库:
Shrink the tempdb database
下面的微软文档,介绍了SQL Server数据库的Full database backups:
Full database backups (SQL Server)
下面的微软文档,介绍了SQL Server数据库的Differential backups:
Differential backups (SQL Server)
Create a Differential Database Backup (SQL Server)
下面的微软文档,介绍了SQL Server数据库的Transaction log backups:
Transaction log backups (SQL Server)
Back Up the Transaction Log When the Database Is Damaged (SQL Server)