我创建了一个自动增长200的数据库。还原数据库后,自动增长更改为1MB。因为我的备份文件数据库自动增长是1MB。
有没有一种在不超越汽车增长的情况下恢复的方法?
发布于 2017-04-06 12:50:17
我刚刚在SQL 2016 (13.0.4001.0)中测试了这一点。还原保留数据库的自动增长设置(对其进行备份)。下面是我测试的代码。创建数据库
CREATE DATABASE [AutoGrowTest]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'AutoGrowTest', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\AutoGrowTest.mdf' , SIZE = 8192KB , FILEGROWTH = 65536KB )
LOG ON
( NAME = N'AutoGrowTest_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\AutoGrowTest_log.ldf' , SIZE = 8192KB , FILEGROWTH = 65536KB )
GO改变自动增长
USE [master]
GO
ALTER DATABASE [AutoGrowTest] MODIFY FILE ( NAME = N'AutoGrowTest', SIZE = 262144KB , FILEGROWTH = 131072KB )
GO
备份数据库
BACKUP DATABASE [AutoGrowTest] TO DISK = N'C:\AutoGrowthTestFull.bak' WITH NOFORMAT, NOINIT, NAME = N'AutoGrowTest-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO用diff名称进行还原
USE [master]
RESTORE DATABASE [AutoGrowTest_restore] FROM DISK = N'C:\AutoGrowthTestFull.bak'
WITH FILE = 1, move N'AutoGrowTest' TO
N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\AutoGrowTest_restore.mdf'
, move N'AutoGrowTest_log' TO
N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\AutoGrowTest_restore_log.ldf'
, nounload, stats = 5
GO保留了原始数据库的自动增长设置.

请注意,SQL 2016中的自动增长设置比一些评论和答复中提到的内容有所改变。
发布于 2017-04-06 07:33:44
我创建了一个自动增长200的数据库。还原数据库后,自动增长更改为1MB。因为我的备份文件数据库自动增长是1MB。
在定义新数据库时,自动增长的初始设置设置为默认值。这些默认设置是通过使用model database文件上的自动增长设置来建立的。
数据文件的默认自动增长设置是具有无限制增长的1 MB,日志文件被设置为在无限制增长的情况下增长10%。如果您没有调整您的model database settings,那么您将有相同的默认自动增长设置。
给你,服务器数据库增长和自动增长设置参考
https://dba.stackexchange.com/questions/169272
复制相似问题