首页 > 数据库技术 > 详细

sqlserver backup and restore -- partital restore

时间:2020-02-16 22:17:06      阅读:70      评论:0      收藏:0      [点我收藏+]

Like a tratitional database, sqlserver not only could resotre full database but also do restore one part of it.

There are two important base physical file in sqlserver: Primary group and others group. Any situation, we must restore primary group at

least.

Here is an example.


USE [master]
GO
ALTER DATABASE [AdventureWorksDW2014] SET RECOVERY FULL WITH NO_WAIT
GO

ALTER DATABASE AdventureWorksDW2014 ADD FILEGROUP new_customers
ALTER DATABASE AdventureWorksDW2014 ADD FILEGROUP sales
GO

ALTER DATABASE AdventureWorksDW2014 ADD FILE
(NAME=‘mywind_data_1‘,FILENAME=N‘D:\Program Files\Microsoft SQL Server\mssql2014\mw.dat1‘) TO FILEGROUP new_customers
ALTER DATABASE AdventureWorksDW2014 ADD FILE
(NAME=‘mywind_data_2‘,FILENAME=N‘D:\Program Files\Microsoft SQL Server\mssql2014\mw.dat2‘) TO FILEGROUP sales
GO

BACKUP DATABASE [AdventureWorksDW2014] TO DISK = N‘D:\Program Files\Microsoft SQL Server\mssql2014\AdventureWorksDW2014.bak‘ WITH NOFORMAT, NOINIT, NAME = N‘AdventureWorksDW2014-Full Database Backup‘, SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10
GO

-----> generate a database and create two extra file group

USE AdventureWorksDW2014
GO

CREATE TABLE t1 (id int) ON new_customers
CREATE TABLE t2 (id int) ON sales
GO

BACKUP LOG [AdventureWorksDW2014] TO DISK = N‘D:\Program Files\Microsoft SQL Server\mssql2014\AdventureWorksDW2014.trn‘ WITH NOFORMAT, NOINIT, NAME = N‘AdventureWorksDW2014-Full Database Backup‘, SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10

---> create two tables and each table on separate file groups

-- new_customers is not online in new database (must primary group & logfile are include)
RESTORE DATABASE AdventureWorksDW2014_part
FILEGROUP = ‘PRIMARY‘, FILEGROUP = ‘sales‘
FROM DISK = N‘D:\Program Files\Microsoft SQL Server\mssql2014\AdventureWorksDW2014.bak‘
WITH FILE=1,NORECOVERY,PARTIAL,
MOVE ‘AdventureWorksDW2014_Data‘ TO N‘D:\Program Files\Microsoft SQL Server\mssql2014\new\AdventureWorksDW2014_Data.mdf‘,
MOVE ‘AdventureWorksDW2014_Log‘ TO N‘D:\Program Files\Microsoft SQL Server\mssql2014\new\AdventureWorksDW2014_Log.ldf‘,
MOVE ‘mywind_data_2‘ TO N‘D:\Program Files\Microsoft SQL Server\mssql2014\new\mw2.dat2‘
GO


RESTORE LOG AdventureWorksDW2014_part
FROM DISK = N‘D:\Program Files\Microsoft SQL Server\mssql2014\AdventureWorksDW2014.trn‘ WITH FILE=1,RECOVERY
GO

---> we could not need restore all filegroups beside primary group. You see ? That is possible/

So, Please make your primary group at less size as your can..

sqlserver backup and restore -- partital restore

原文:https://www.cnblogs.com/partition-liu/p/12317872.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!