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

第一步

创建数据库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

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

  1. SQLSERVER将一个文件组的数据移动到另一个文件组

    SQLSERVER将一个文件组的数据移动到另一个文件组 有经验的大侠可以直接忽视这篇文章~ 这个问题有经验的人都知道怎麽做,因为我们公司的数据量不大没有这个需求,也不知道怎麽做实验 今天求助了QQ群里 ...

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

    SQL Server 在缺少文件组的情况下如何还原数据库 一.背景 我有一个A库,由于a,b两张表的数据量比较大,所以对表进行分区:在把A库迁移到一个新的集群上去,我只备份了A库的主分区过去进行还原为 ...

  3. SQL Serever学习12——数据库的备份和还原

    公司的服务器奔溃了,事先没相应的保护措施,使得公司遭到了较大损失,为了以后不再出现类似事件,在系统中引入备份机制,使得数据库被破坏后损失降到最低. 数据的导出和导入 数据转换服务 数据转换服务DTS( ...

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

    sa密码的修改转载自:http://blog.csdn.net/templar1000/article/details/20211191 SQL server 2008数据库的备份与还原转自 :htt ...

  5. 如何用SQL语句实现Mysql数据库的备份与还原

    以前一直做android客户端的项目,根本没有开发asp.net mvc的开发,现阶段做了一个模块,参数设置,以及数据库的备份与还原.其需求如下: 参数设置 本项参数设置为对自动数据备份进行设置,管理 ...

  6. SQL server 2008数据库的备份与还原、分离(转)

    SQL server 2008数据库的备份与还原.分离(转)   一.SQL数据库的备份: 1.依次打开 开始菜单 → 程序 → Microsoft SQL Server 2008 → SQL Ser ...

  7. mysql数据库的备份和还原的总结

    mysql数据库的备份和还原的总结 (来自一运维同事的总结) 1. 备份方式: 热备:数据库在线进行备份,不影响读和写的在线备份方式! 温备:数据库在线进行备份,对表备份时先锁定写操作,仅可以执行读操 ...

  8. 用分离、附加的方式实现sql server数据库的备份和还原

    一.数据库分离.附加的说明 SQL Server提供了"分离/附加"数据库."备份/还原"数据库.复制数据库等多种数据库的备份和恢复方法.这里介绍一种学习中常用 ...

  9. 【Mongodb】数据库操作--备份、还原、导出和导入

    文章转载自点这里 mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport. mongo ...

随机推荐

  1. ASP.NET Button、ImageButton、LinkButton、HyperLink区别

    这4个控件都属于WEB服务器控件,有很多相同的属性和事件.其区别如下所示. 在*.aspx页面中插入Button控件如以下代码所示.<asp:Button runat="server& ...

  2. SSH面试题(struts2+Spring+hibernate)

    struts2 + Spring +hibernate Hibernate工作原理及为什么要用?   原理:   1.读取并解析配置文件   2.读取并解析映射信息,创建SessionFactory ...

  3. 分享一个html+js+ashx+easyui+ado.net权限管理系统

    EasyUI.权限管理 这是个都快被搞烂了的组合,但是easyui的确好用,权限管理在项目中的确实用.一直以来博客园里也不少朋友分享过,但是感觉好的要不没源码,要不就是过度设计写的太复杂看不懂,也懒得 ...

  4. 4-pl-sql的安装

    pl-sql的安装 一.安装pl-sql 1.安装前准备 1).在windows安装的oracle client目录下创建相应目录 2).上传oracle数据库的文件到admin目录下 3).然后打开 ...

  5. 复选框checkbox选中个数限制

    今天遇到一个问题:就是项目里有用到限制 checkbox框选中个数,看起来很简单,但是确实花了点时间才弄清楚,废话不多说,上代码 <!DOCTYPE html> <html lang ...

  6. transactionManager 以及datasource type解析

    transactionManager 在 MyBatis 中有两种事务管理器类型(也就是 type=”[JDBC|MANAGED]”): JDBC – 这个配置直接简单使用了 JDBC 的提交和回滚设 ...

  7. Ajax中POST和GET的区别

    Get和Post都是向服务器发送的一种请求,只是发送机制不同. 1. GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给WEB服务器.当然在Ajax请求中,这种 ...

  8. ngx_http_core_module模块.md

    Directives aio Syntax: aio on | off | threads[=pool]; Default: aio off; Context: http, server, locat ...

  9. WIN10下安装HBASE教程

    工作需要,现在开始做大数据开发了,通过下面的配置步骤,你可以在win10系统中,部署出一套hadoop+hbase,便于单机测试调试开发. 准备资料: 1. hadoop-2.7.2: https:/ ...

  10. NPOI操作EXCEL(五)——含合并单元格复杂表头的EXCEL解析

    我们在第三篇文章中谈到了那些非常反人类的excel模板,博主为了养家糊口,也玩命做出了相应的解析方法... 我们先来看看第一类复杂表头: ...... 博主称这类excel模板为略复杂表头模板(蓝色部 ...