首页数据库sqlserver数据库备份 sqlserver数据库几种备份方法

sqlserver数据库备份 sqlserver数据库几种备份方法

编程之家2023-10-21112次浏览

其实sqlserver数据库备份的问题并不复杂,但是又很多的朋友都不太了解sqlserver数据库几种备份方法,因此呢,今天小编就来为大家分享sqlserver数据库备份的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

sqlserver数据库备份 sqlserver数据库几种备份方法

SqlServer备份数据库的4种方式有哪些

数据库备份可以分为4个备份类型。

l全备份:创建备份完成时数据库内存在的数据的副本。

l差异备份:只记录自上次数据库备份后发生更改的数据。差异数据库备份比数据库备份小,而且备份速度快,因此可以更经常地备份,经常备份将减少丢失数据的危险。

l日志备份:是自上次备份事务日志后对数据库执行的所有事务的一系列记录。可以使用事务日志备份将数据库恢复到特定的即时点(如输入多余数据前的那一点)或恢复到故障点。

l文件组备份:可以备份和还原数据库中的个别文件。可以只还原已损坏的文件,而不用还原数据库的其余部分,从而加快了恢复速度。

不同的备份类型适用的范围也不同。全备份,可以只用一步操作完成数据的全部备份,但执行时间比较长。差异备份和日志备份,都不能独立作为一个备份集来使用,需要进行一次全备份。文件备份必须与事务日志备份一起使用,所以文件备份只适用于完全恢复模型和大容量日志记录恢复模型。

sqlserver数据库备份 sqlserver数据库几种备份方法

每一种备份类型都有不足之处,要针对需要选择备份类型,或者使用几种备份方式的配合来完成数据库的备份。

经常使用备份方式组合有以下几种:

l全备份+差异备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行差异备份。

l全备份+日志备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行日志备份。

l文件组备份+日志备份:备份周期取决于数据库的大小和能力,每周期分别进行一部分数据文件备份,每天进行日志备份。

Sqlserver数据库备份的几种方式

sqlserver数据库备份 sqlserver数据库几种备份方法

在实际的数据库Sqlserver的运维的过程中,很多时候我们需要做到数据的备份操作,可以做到定时备份,也可以进行手动数据库备份。在实际的过程中,有时候因业务需要备份出完整数据库,而有时候又因为实际业务只需要影响到一张表或者几张表,备份整个数据库未必是最优的方案,此时可采用生成脚本或者Select Into的方式对单表进行备份。DBA在运维过程中备份数据差不多用的就是以上几种操作方式,下面就详细说下这几种备份方式。

(1)数据库整库备份

此方式备份数据库是最完整的,可以将数据库中所有的对象都备份下来生成个.Bak文件,后续如果出现问题,可以直接通过.bak文件还原数据库,但备份的耗时会比较长,并且占用磁盘空间会比较大。此方法备份的操作是直接在Sqlserver数据库管理软件中选中数据库,右键选择任务,然后选择备份,如下图

然后进入备份界面后选择备份存放的路径以及设置好备份文件名称,点击确定即可进行备份,如下图

(2)通过生成脚本的方式单表备份

有时候我们业务系统的更新可能只涉及到一张表或者几张表,此时可以通过对每个数据表进行单表备份的方式来操作,只备份这几张涉及到变更操作的数据表。操作的方法为在Sqlserver数据库管理软件中选中数据库,右键选择任务,然后选择生成脚本,参考方法一中的第一个图。然后进入生成脚本界面,选择下一步进入设置界面:

进入设置界面后,选择特定的数据库对象,然后再从中选择你需要备份的数据表,如下图:

然后点击下一步,进入存储路径以及导出设置界面,保存到文件可以选择保存为单个文件或者每个对象一个文件。此处关键一点记得选择高级按钮,在里面设置要编写脚本的数据类型,否则默认规则导出来的文件中只含有表的架构语句(即创建table的SQL语句),不含有任何表数据。如下图

选择高级按钮后,进入高级设置项,将下拉菜单下拉到最后可以看到一个设置项叫做要编写脚本的数据的类型。将之设置为架构和数据或者仅限数据。只有这两种方式导出来的文件中才包含表格中的数据,仅限架构导出来的只是创建table的语句。

设置好上述信息后点击完成,自动创建备份文件到指定的存储路径下,生成的文件是.sql后缀的数据库SQL文件。

(3)通过Select Into语句将一个表快速备份到一个临时新表中。

此备份方法是将查找出来的数据快速写入到指定的备份新表中,自动创建table。

如将A数据库中的Product表所有数据快速备份到ABackUp数据库中的Product_0228表中,可使用以下语句操作,直接在新建查询窗口执行即可。

Select* Into ABackUp.dbo.Product_0228 FROM A.dbo.Product;

执行此语句要求into后面的表在执行之前不存在,存在的话上述语句无法执行。这个Product_0228表格也无需手动处理,上述语句在执行的时候自动创建跟Product表一致的结构。

Sqlserver数据库备份的几种方式

标签:一点新建图片保存运维出现技术处理右键

sqlserver数据库几种备份方法

数据库备份可以分为4个备份类型。

l全备份:创建备份完成时数据库内存在的数据的副本。

l差异备份:只记录自上次数据库备份后发生更改的数据。差异数据库备份比数据库备份小,而且备份速度快,因此可以更经常地备份,经常备份将减少丢失数据的危险。

l日志备份:是自上次备份事务日志后对数据库执行的所有事务的一系列记录。可以使用事务日志备份将数据库恢复到特定的即时点(如输入多余数据前的那一点)或恢复到故障点。

l文件组备份:可以备份和还原数据库中的个别文件。可以只还原已损坏的文件,而不用还原数据库的其余部分,从而加快了恢复速度。

不同的备份类型适用的范围也不同。全备份,可以只用一步操作完成数据的全部备份,但执行时间比较长。差异备份和日志备份,都不能独立作为一个备份集来使用,需要进行一次全备份。文件备份必须与事务日志备份一起使用,所以文件备份只适用于完全恢复模型和大容量日志记录恢复模型。

每一种备份类型都有不足之处,要针对需要选择备份类型,或者使用几种备份方式的配合来完成数据库的备份。

经常使用备份方式组合有以下几种:

l全备份+差异备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行差异备份。

l全备份+日志备份:以一周为周期,星期日进行全备份,星期一到星期六每天进行日志备份。

l文件组备份+日志备份:备份周期取决于数据库的大小和能力,每周期分别进行一部分数据文件备份,每天进行日志备份。

如何将SQLSERVER数据库备份到网络上

最近在看联机从书,在看到sp_addumpdevice时无意间看到如下内容:

"

[@physicalname=]'physical_name'

备份设备的物理名称。物理名称必须遵照操作系统文件名称的规则或者网络设备的通用命名规则,并且必须包括完整的路径。physical_name的数据类型为 nvarchar(260),没有默认值,并且不能为 NULL。

当创建远程网络位置上的备份设备时,请确保在其下启动 SQL Server的名称对远程的计算机有适当的写入能力。

B.添加网络磁盘备份设备

下面的示例显示一个远程磁盘备份设备。在其下启动 SQL Server的名称必须对该远程文件拥有权限。

USE master

EXEC sp_addumpdevice'disk','networkdevice','\\servername\sharename\path\filename.ext'

以前曾看到过有人问,怎么样才能将数据备份到网络上,一直没有答案,然后我就试验了一把.

在服务器上建了一个目录,然后确保共享并有权限,如果需要建在共享目录下的目录下,那还得保证用户有权限

当然,SQLSERVER系统启动早于登录,一般用户会在登录中使用本地系统账户,我想在登录到系统之前一直是

administrator用户模拟,因此,我将登录的账户改为了网络用户,因为我公司有域,因此我将域用户设置为本机

的系统管理员,以确保该服务能启动.

接下来更简单了:

sp_addumpdevice'DISK','NetWork','\\server\d$\databak\xuzh.bak'

go

backup database xuzh to network

得到的结果如下:

已处理 96页,这些页属于数据库'xuzh'的文件'xuzhP01'(位于文件 2上)。

已处理 16页,这些页属于数据库'xuzh'的文件'xuzhP02'(位于文件 2上)。

已处理 16页,这些页属于数据库'xuzh'的文件'xuzhS01'(位于文件 2上)。

已处理 8页,这些页属于数据库'xuzh'的文件'xuzhS02'(位于文件 2上)。

已处理 1页,这些页属于数据库'xuzh'的文件'xuzh_Log'(位于文件 2上)。

BACKUP DATABASE操作成功地处理了 137页,花费了 0.516秒(2.161 MB/秒)。

成功完成网络备份

另外,----------------------

实例说明:

环境:win2k+sqlserver 2K+查询分析器

SQLSERVER服务实例名称:mainserver

需要备份的数据库名称: msdb

本地机器名称(Client端):david

本地用户:zf密码:123

本地域名:domain

本地提供备份需求的文件夹:e:\test

第一步:建立共享文件夹

在程序代码中调用(或者CMD窗口) net share test=e:\test

或者用NetShareAdd这个API

简要说明:

net share:是WINDOWS内部的网络命令。

作用:建立本地的共享资源,显示当前计算机的共享资源信息。

语法:参见 net share/?

第二步:建立共享信用关系

master..xp_cmdshell'net use\\david\test 123/user:domain\zf'

简要说明:

1:xp_cmdshell:是SQLSERVER的扩展存储过程。

作用,以操作系统命令行解释器的方式执行给定的命令字符串,

并以文本行方式返回任何输出。

语法:参见SQLSERVER联机帮助

2:net use:是WINDOWS内部的网络命令。

作用,将计算机与共享资源连接或断开,或者显示关于计算机

连接的信息。该命令还控制持久网络连接。

语法:参见 net use/?

第三步:备份数据库

backup database msdb to disk='\\david\test\msdb.bak'

这个不需要说明吧,语法参见SQLSERVER联机帮助

第四步:删除共享文件夹

在程序代码中调用(或者CMD窗口) net share test/delete

或者用NetShareDel这个API

结果:

已处理 1376页,这些页属于数据库'msdb'的文件'MSDBData'(位于文件 1上)。

已处理 1页,这些页属于数据库'msdb'的文件'MSDBLog'(位于文件 1上)。

BACKUP DATABASE操作成功地处理了 1377页,花费了 3.653秒(3.086 MB/秒)。

这样mainserver服务器上的msdb就备份到了david机器的E:\test\msdb.bak文件了,使用起来很简单吧?恢复数据库操作也是一样,只要将第三个步骤的语句改为'restore database msdb from disk='\\david\test\msdb.bak'就可以啦。。你看完了也可以试试呀?!(最简单的测试工具查询分析器+CMD窗口)

备注:xp_cmdshell这个扩展存储过程只能SA级别的用户调用,而且是SQLSERVER的安全隐患之一,许多DBA都喜欢将其删除或者禁用,所以开发人员使用时要倍加小心哦。

文章中的例子只是简要的说明了应如何利用扩展存储过程实现远程备份与恢复,没有涉及安全以及其他方面的考虑,希望读者在代码中自行完善。

sqlserver数据库备份和sqlserver数据库几种备份方法的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

国内服务器租用?国内服务器租用一年的价格大概是多少湖南服务器租用(租用一个服务器大概要多少钱)