sqlserver多文件组数据库的备份和还原实战

数据库文件过大时就要进行数据分区,就是讲数据库拆分到多个文件组中。已方便数据文件管理,提高数据库的读取效能,多文件组如何进行数据库的备份和还原呢,今天主要做多文件组数据库的备份和还原实验。

第一步

创建数据库qhw_test 数据库包括一个userinfo 数据表,userinfo数据表根据id做分区 包括一个主分区

,五个次分区,主分区包括qhw_test,data2两个文件,

数据表脚本如下

CREATE TABLE [dbo].[userinfo](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [UserName] [varchar](50) NOT NULL,
    [CreateTime] [datetime] NOT NULL,
 CONSTRAINT [PK_userinfo] PRIMARY KEY CLUSTERED
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF,

ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON)
)

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[userinfo] ADD  CONSTRAINT [DF_userinfo_UserName]  DEFAULT (‘‘) FOR

[UserName]
GO

ALTER TABLE [dbo].[userinfo] ADD  CONSTRAINT [DF_userinfo_CreateTime]  DEFAULT (getdate())

FOR [CreateTime]
GO

往数据表中写入数据

第二部

然后执行数据库备份

使用完整备份模式一次备份数据库文件,先备份主分区,一次备份其他次分区,最后做事务日志备份

备份完成后,将备份文件转移至另一台机器

第三部

进行还原操作,先还原主分区,依次还原次分区,还原事务日志,注意NORECOVERY,

RESTORE DATABASE  qhw_test FILEGROUP = ‘PRIMARY‘  FROM DISK = ‘D:\bak\bak\qhw_test1.bak‘

WITH FILE = 1,
move ‘qhw_test‘ to ‘d:\bak\qhw_test.mdf‘,
move ‘data2‘ to ‘d:\bak\data2.ndf‘,
move ‘qhw_test_log‘ to ‘d:\bak\qhw_test_log.ldf‘
,
NORECOVERY,REPLACE,STATS = 10

RESTORE DATABASE  qhw_test FILEGROUP = ‘g1‘  FROM DISK = ‘D:\bak\bak\g1.bak‘ WITH FILE = 1,
move ‘g1‘ to ‘d:\bak\g1.ndf‘,

NORECOVERY,REPLACE,STATS = 10

RESTORE DATABASE  qhw_test FILEGROUP = ‘g2‘  FROM DISK = ‘D:\bak\bak\g2.bak‘ WITH FILE = 1,
move ‘g2‘ to ‘d:\bak\g2.ndf‘,

NORECOVERY,REPLACE,STATS = 10

RESTORE DATABASE  qhw_test FILEGROUP = ‘g3‘  FROM DISK = ‘D:\bak\bak\g3.bak‘ WITH FILE = 1,
move ‘g3‘ to ‘d:\bak\g3.ndf‘,

NORECOVERY,REPLACE,STATS = 10

RESTORE DATABASE  qhw_test FILEGROUP = ‘g4‘  FROM DISK = ‘D:\bak\bak\g4.bak‘ WITH FILE = 1,
move ‘g4‘ to ‘d:\bak\g4.ndf‘,
NORECOVERY,REPLACE,STATS = 10

RESTORE DATABASE  qhw_test FILEGROUP = ‘g5‘  FROM DISK = ‘D:\bak\bak\g5.bak‘ WITH FILE = 1,
move ‘g5‘ to ‘d:\bak\g5.ndf‘,
NORECOVERY,REPLACE,STATS = 10

RESTORE LOG  qhw_test
FROM DISK =  ‘D:\bak\bak\log.bak‘
WITH NORECOVERY
GO

RESTORE DATABASE  qhw_test
WITH RECOVERY

RESTORE DATABASE [‘ + @DataBaseName + ‘]
WITH RECOVERY

时间: 2024-12-10 01:15:07

sqlserver多文件组数据库的备份和还原实战的相关文章

SQL Server 在缺少文件组的情况下如何还原数据库

SQL Server 在缺少文件组的情况下如何还原数据库 一.背景 我有一个A库,由于a,b两张表的数据量比较大,所以对表进行分区:在把A库迁移到一个新的集群上去,我只备份了A库的主分区过去进行还原为B库(主分区的备份还原可参考:SQL Server 维护计划备份主分区 和 主分区备份与还原),为了对a,b表进新的数据,我修改了a,b表名,在B库新建了两张不分区的a,b表: 这样运行都没有什么问题的,但是在一次我分离了数据库B,拷贝了mdf和ldf文件,现在想使用mdf和ldf还原为B库的时候出

SQLServer2008修改sa密码的方法与SQL server 2008数据库的备份与还原

sa密码的修改转载自:http://blog.csdn.net/templar1000/article/details/20211191 SQL server 2008数据库的备份与还原转自 :http://www.cnblogs.com/zgqys1980/archive/2012/07/04/2576382.html 一.SQLServer2008修改sa密码的方法 1. 先用Window身份验证方式登陆进去,选择数据库实例,右键选择属性--安全性:把服务器身份验证选项从"Window身份验

windows server 2012R2数据库的备份与还原

windows server 2012R2数据库的备份与还原 实验模拟:北京有一个uec.com 的主服务器,需要在上海创建一个额外域控制器,但上海与北京网络延迟较大,正常复制不成功. 思路:在北京创建一个AD数据库的介质文件,存放AD数据库内的数据,将此介质文件复制到上海的服务器上,在上海利用 介质问价创建额外域控制器. 准备环境: 北京: server 01       IP: 192.168.1.101 上海: server 02       IP: 192.168.1.102 步骤一:在

达梦数据库的备份和还原

达梦数据库的备份和还原 达梦数据库的备份还原方式:物理备份还原和逻辑备份还原物理备份:冷备:(dmap服务打开的状态下,数据库是关闭的)热备:(dmap服务一定是打开的,数据库是打开的,数据库要开归档)物理备份还原是对数据库的操作系统物理文件(如数据文件.控制文件和日志文件等)的备份还原. 逻辑备份:导出:dexp导入:dimp逻辑导出和逻辑导入数据库对象分为四种级别:数据库级.用户级.模式级和表级.四种级别独立互斥,不能同时存在.四种级别所提供的功能: ? 数据库级(FULL):导出或导入整个

sqlserver数据库的备份与还原——完整备份与还原

sqlserver提供四种数据库备份方式 完整备份:备份整个数据库的所有内容包括书屋和日志 差异备份:只备份上次完整备份后更高的数据部分 事务日志备份:只备份事务日志里的内容 文件或文件组备份:只备份文件或文件组中的某些文件 在数据库完整备份期间,sqlserver做一下工作: 备份数据以及数据库中的所有表的结构和相应的文件结构 备份在备份期间发生的所有活动 备份在事务日志中未确认的事务 备份过程: 右击要备份的数据库--->任务--->备份 可以选择备份类型以及备份文件的存放位置. 还原过程

4-04数据库的备份与还原

SQL Sever 提供四种数据库备份方式: 完整备份:备份整个数据库的所有内容包括事务日志. 差异备份:只备份上次完整备份后更改的数据部分. 事务日志备份;只备份事务日志里的内容. 文件或文件组备份"只备份文件或文件组中的某些文件. 在数据库完整备份期间,SQL Sever做以下工作: 备份文件及数据库中所有表的结构和相关的文件结构. 备份在备份期间发生的所有活动. 备份在事务日志中未确认的事务. 数据库的备份: 点击你要操作的数据库,右击任务,在点击备份. 在上面可以选择你要操作的数据库,下

项目经验——Sql server 数据库的备份和还原____还原数据库提示“介质集有2个介质簇,但只提供了1个。必须提供所有成员” .

在对数据库备份与还原的过程中,我遇到一个问题“介质集有2个介质簇,但只提供了1个.必须提供所有成员”,下面详细的介绍一下遇到问题的经过与问题解决的方法! 一.备份与还原遇到的问题描述与解决方法: 前两天用户测试我们做的评教系统小软件,有点问题我们过去看了看,想将他们的测试数据备份一下,以便我们修改软件测试使用. 我是这样备份的,数据库备份默认有一个路径:C\...,而我又添加了一个新路径,没将默认路径删除,而是选中新路径,我就理所当然的认为数据库中的数据备份到我新加的路径下了. 今天还原数据库时

SQL server 2008数据库的备份与还原(转)

一.SQL数据库的备份: 1.依次打开 开始菜单 → 程序 → Microsoft SQL Server 2008 → SQL Server Management Studio → 数据库:Dsideal_school_db既是我们需要备份的学籍数据库 图(1) 2.选择要备份的数据库“Dsideal_school_db”,点击鼠标右键 → 任务 → 备份,如图(2): 图(2) 3.在打开的“备份数据库 —Dsideal_school_db”对话框中,先点击删除,然后点击“添加”,如图(3):

第一章、关于SQL Server数据库的备份和还原(sp_addumpdevice、backup、Restore)

在sql server数据库中,备份和还原都只能在服务器上进行,备份的数据文件在服务器上,还原的数据文件也只能在服务器上,当在非服务器的机器上启动sql server客户端的时候,也可以通过该客户端来备份和还原数据库,但是这种操作实质是在服务器上进行的,备份的数据文件在服务器上,还原的数据文件也只能在服务器上,这个原则不会变,只是使用了客户端的一个工具来操作这个过程而已. 1.1.备份数据库 备份数据库有两种方式: 第一种是在企业管理器中,利用工具对数据库进行备份,这种备份的文件只会有一个,即以