SQL server中如何备份和还原以及备份系统数据库

备份 SQL Server 数据库、在备份上运行测试还原过程以及在另一个安全位置存储备份副本可防止可能的灾难性数据丢失。

使用有效的数据库备份,可从多种故障中恢复数据,例如:

介质故障。

用户错误(例如,误删除了某个表)。

硬件故障(例如,磁盘驱动器损坏或服务器报废)。

自然灾难。

备份模式在sql server中也有三种类型(它决定备份哪些数据)

1.完整备份

备份包括这个数据库,部分事务日志,数据库结构和文件结构.完整备份代表的是备份完成时刻的数据库状态

2.差异备份

它备份在上一次完整备份之后变化的数据

3.事务日志备份

备份事务日志中的数据

恢复模式是数据库的一种特性,它控制着数据库备份和还原的基本行为.

sql server 提供了三种恢复模式,他们决定了有多少和什么样的数据可以被备份下来.

1.简单恢复模式

主要应用于小型数据库和不经常改变的数据

2.完整恢复模式

可以在最大范围内防止出现故障时丢失数据,它包括数据库备份和食物日志备份,并提供全面保护.这个模式使用数据库和所有日志的备份恢复数据库

3.大容量日志恢复模式

在完整恢复模式下,所有大批量的数据导入导出操作产生的日志更加的少,他会进行日志的最小化记录,部分事务不会被记录下来.

完整恢复模式是默认的恢复模式.

Microsoft SQL Server系统有四种系统数据库:

master 数据库

master 数据库记录SQL Server 系统的所有系统级别信息。它记录所有的登录帐户和系统配置设置。master 数据库是这样一个数据库,它记录所有其它的数据库,其中包括数据库文件的位置。master 数据库记录 SQL Server 的初始化信息,它始终有一个可用的最新 master 数据库备份。

tempdb 数据库

tempdb 数据库保存所有的临时表和临时存储过程。它还满足任何其它的临时存储要求,例如存储 SQL Server 生成的工作表。tempdb 数据库是全局资源,所有连接到系统的用户的临时表和存储过程都存储在该数据库中。 tempdb 数据库在 SQL Server 每次启动时都重新创建,因此该数据库在系统启动时总是干净的。临时表和存储过程在连接断开时自动除去,而且当系统关闭后将没有任何连接处于活动状态,因此 tempdb 数据库中没有任何内容会从 SQL Server 的一个会话保存到另一个会话。默认情况下,在 SQL Server 在运行时 tempdb 数据库会根据需要自动增长。不过,与其它数据库不同,每次启动数据库引擎时,它会重置为其初始大小。如果为 tempdb 数据库定义的大小较小,则每次重新启动 SQL Server时,将tempdb 数据库的大小自动增加到支持工作负荷所需的大小这一工作可能会成为系统处理负荷的一部分。为避免这种开销,可以使用 ALTER DATABASE 增加 tempdb 数据库的大小。

model 数据库

model 数据库用作在系统上创建的所有数据库的模板。当发出 CREATE DATABASE 语句时,新数据库的第一部分通过复制 model 数据库中的内容创建,剩余部分由空页填充。由于 SQL Server 每次启动时都要创建 tempdb 数据库,model 数据库必须一直存在于 SQL Server 系统中。

msdb 数据库

msdb 数据库供 SQL Server 代理程序调度警报和作业以及记录操作员时使用。比如复制设置 等。

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/SQLServer/

时间: 2016-08-08

SQL server中如何备份和还原以及备份系统数据库的相关文章

sql server中datetime字段去除时间代码收藏_数据库其它

select CONVERT(varchar, getdate(), 120 )  2004-09-12 11:06:08  select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),\'-\',\'\'),\' \',\'\'),\':\',\'\')  20040912110608  select CONVERT(varchar(12) , getdate(), 111 )  2004/09/12  select CON

SQL SERVER完整、差异和事务日志备份及还原(脚本和GUI实现)

原文:SQL SERVER完整.差异和事务日志备份及还原(脚本和GUI实现) [原创] 一.完整备份.差异备份和事务日志备份的脚本 --完整备份数据库 BACKUP DATABASE Test_Bak TO DISK = 'E:\20150609_75\bak\Test_bak_full.bak' WITH INIT --差异备份数据库 BACKUP DATABASE Test_Bak TO DISK = 'E:\20150609_75\bak\Test_bak_diff.bak' WITH I

浅谈SQL Server中的高可用性(1) 高可用性概览

自从SQL Server 2005以来,微软已经提供了多种高可用性技术来减少宕机时间和增加对业务数据的保护,而随着SQL Server 2008,SQL Server 2008 R2,SQL Server 2012的不断发布,SQL Server中已经存在了满足不同场景的多种高可用性技术. 在文章开始之前,我首先简单概述一下以什么来决定使用哪一种高可用性技术. 依靠什么来决定使用哪一种高可用性技术? 很多企业都需要他们的全部或部分数据高可用,比如说在线购物网站,在线商品数据库必7*24小时在线,

Sql Server中清空所有数据表中的记录_MsSql

Sql Server中清空所有数据表中的记录 清空所有数据表中的记录: 复制代码 代码如下: exec sp_msforeachtable  @Command1 ='truncate table ?' 删除所有数据表: 复制代码 代码如下: exec sp_msforeachtable 'delete   N''?''' 清空SQL Server数据库中所有表数据的方法(有约束的情况) 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之

使用Transact-SQL在SQL Server中创建数据库对象

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   Adventure Works Cycles 的数据仓库中有几个非常大的表.为改善此数据的存储,您决定对几个跨文件组的表进行分区.这样您就可以控制基础磁盘存储. 先决条件 在开始此实验之前,您必须: 使用 Transact-SQL 在 Microsoft® SQL Server® 数据库中创建数据库对象的经验. 实验设置 实验场景 Adventure Works

浅谈SQL Server中的高可用性(2) 文件与文件组

在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允许数据库依然保持部分在线,从而保证了高可用性. 文件和文件组 有关文件和文件组的基本概念,有很多文章已经阐述过了.这里我只是提一下,文件组作为SQL Server访问文件的一个抽象层而存在.因此SQL Server上所做的操作不是直接针对文件,而是针对文件组. 使用多个文件组和文件不仅仅是为了分散IO和提高

终止SQL Server中的用户进程方法

一.情景:在很多情况下,往往会要求数据库管理员终止SQL Server中的用户进程.本文将为大家介绍如何创建一个简单的存储过程来实现同时终止多个会话.结束连续的会话和结束连接到数据库的所有会话等功能. 在很多情况下,往往会要求数据库管理员终止SQL Server中的用户进程,例如在停止某个数据库的运作时,或者还原数据库之前,或者长时间运行活动事务等情况下.数据库管理员通常会使用SQL Server中提供的"KILL"命令来完成任务. 但是,SQL Server提供的"KILL

浅谈SQL Server中的快照

原文:浅谈SQL Server中的快照 简介     数据库快照,正如其名称所示那样,是数据库在某一时间点的视图.是SQL Server在2005之后的版本引入的特性.快照的应用场景比较多,但快照设计最开始的目的是为了报表服务.比如我需要出2011的资产负债表,这需要数据保持在2011年12月31日零点时的状态,则利用快照可以实现这一点.快照还可以和镜像结合来达到读写分离的目的.下面我们来看什么是快照.   什么是快照     数据库快照是 SQL Server 数据库(源数据库)的只读静态视图

如何从SQL SERVER中恢复被删除的表?

问题描述 如何从SQL SERVER中恢复被删除的表?这表中的数据能不能一起恢复? 解决方案 恢复被删除的表可以使用SQL数据恢复软件log explorer for sql server来恢复,表中的数据可以一起恢复.具体的可以看一下这篇.http://www.wuguoqiang.com/j_note_detail.asp?id=24解决方案二:删表之前最后先备份下"create table temp as(select * from tableName)"