如何将服务器上的SqlServer数据库备份到本地电脑
发布时间:2025-05-20 06:37:45 发布人:远客网络
一、如何将服务器上的SqlServer数据库备份到本地电脑
1、为了将服务器上的SqlServer数据库备份到本地电脑,可以按照以下步骤操作:
2、首先,从服务器上复制下备份文件到本地电脑,确保文件完整无误。这一步骤是备份的基础,确保了数据的可用性。
3、另外,你还可以采取另一种方式:在服务器上打开数据库管理器,选中目标数据库,在菜单中找到“脱机”选项。这样,可以在服务器上直接操作数据库文件,找到数据库文件,通常是包含数据文件和日志文件的两个文件。
4、接下来,将上述步骤中提到的两个文件复制到本地电脑的某个目录中,确保路径正确,避免文件丢失。
5、最后,在本地电脑上打开数据库管理器。在目标目录中找到并选择数据库文件,右击显示菜单,然后选择“附加...”选项。这将引导你完成数据库的本地恢复过程,确保数据能够正确加载到本地环境中。
6、在整个过程中,务必注意文件路径和文件名的正确性,以避免在操作过程中出现错误。
7、通过以上步骤,可以有效地将服务器上的SqlServer数据库备份到本地电脑,确保数据的安全性和可访问性。
8、此外,定期备份数据库是确保数据安全的重要措施之一。在进行备份时,建议定期检查备份文件的完整性和可用性,以确保在需要时能够顺利恢复数据。
9、值得注意的是,备份过程需要根据实际情况进行调整,以适应不同的环境和需求。例如,对于大型数据库,可能需要考虑备份策略和恢复计划,确保在各种情况下都能快速、准确地恢复数据。
10、通过仔细规划和执行,可以确保数据库备份过程顺利进行,保护重要数据免受意外丢失或损坏的风险。
二、Sqlserver数据库备份的几种方式
1、在实际的数据库Sqlserver的运维的过程中,很多时候我们需要做到数据的备份操作,可以做到定时备份,也可以进行手动数据库备份。在实际的过程中,有时候因业务需要备份出完整数据库,而有时候又因为实际业务只需要影响到一张表或者几张表,备份整个数据库未必是最优的方案,此时可采用生成脚本或者Select Into的方式对单表进行备份。DBA在运维过程中备份数据差不多用的就是以上几种操作方式,下面就详细说下这几种备份方式。
2、此方式备份数据库是最完整的,可以将数据库中所有的对象都备份下来生成个.Bak文件,后续如果出现问题,可以直接通过.bak文件还原数据库,但备份的耗时会比较长,并且占用磁盘空间会比较大。此方法备份的操作是直接在Sqlserver数据库管理软件中选中数据库,右键选择任务,然后选择备份,如下图
3、然后进入备份界面后选择备份存放的路径以及设置好备份文件名称,点击确定即可进行备份,如下图
4、(2)通过生成脚本的方式单表备份
5、有时候我们业务系统的更新可能只涉及到一张表或者几张表,此时可以通过对每个数据表进行单表备份的方式来操作,只备份这几张涉及到变更操作的数据表。操作的方法为在Sqlserver数据库管理软件中选中数据库,右键选择任务,然后选择生成脚本,参考方法一中的第一个图。然后进入生成脚本界面,选择下一步进入设置界面:
6、进入设置界面后,选择特定的数据库对象,然后再从中选择你需要备份的数据表,如下图:
7、然后点击下一步,进入存储路径以及导出设置界面,保存到文件可以选择保存为单个文件或者每个对象一个文件。此处关键一点记得选择高级按钮,在里面设置要编写脚本的数据类型,否则默认规则导出来的文件中只含有表的架构语句(即创建table的SQL语句),不含有任何表数据。如下图
8、选择高级按钮后,进入高级设置项,将下拉菜单下拉到最后可以看到一个设置项叫做要编写脚本的数据的类型。将之设置为架构和数据或者仅限数据。只有这两种方式导出来的文件中才包含表格中的数据,仅限架构导出来的只是创建table的语句。
9、设置好上述信息后点击完成,自动创建备份文件到指定的存储路径下,生成的文件是.sql后缀的数据库SQL文件。
10、(3)通过Select Into语句将一个表快速备份到一个临时新表中。
11、此备份方法是将查找出来的数据快速写入到指定的备份新表中,自动创建table。
12、如将A数据库中的Product表所有数据快速备份到ABackUp数据库中的Product_0228表中,可使用以下语句操作,直接在新建查询窗口执行即可。
13、Select* Into ABackUp.dbo.Product_0228 FROM A.dbo.Product;
14、执行此语句要求into后面的表在执行之前不存在,存在的话上述语句无法执行。这个Product_0228表格也无需手动处理,上述语句在执行的时候自动创建跟Product表一致的结构。
15、标签:一点新建图片保存运维出现技术处理右键
三、如何将SQLSERVER数据库备份到网络上
最近在看联机从书,在看到sp_addumpdevice时无意间看到如下内容:
[@physicalname=]'physical_name'
备份设备的物理名称。物理名称必须遵照操作系统文件名称的规则或者网络设备的通用命名规则,并且必须包括完整的路径。physical_name的数据类型为 nvarchar(260),没有默认值,并且不能为 NULL。
当创建远程网络位置上的备份设备时,请确保在其下启动 SQL Server的名称对远程的计算机有适当的写入能力。
下面的示例显示一个远程磁盘备份设备。在其下启动 SQL Server的名称必须对该远程文件拥有权限。
EXEC sp_addumpdevice'disk','networkdevice','\\servername\sharename\path\filename.ext'
以前曾看到过有人问,怎么样才能将数据备份到网络上,一直没有答案,然后我就试验了一把.
在服务器上建了一个目录,然后确保共享并有权限,如果需要建在共享目录下的目录下,那还得保证用户有权限
当然,SQLSERVER系统启动早于登录,一般用户会在登录中使用本地系统账户,我想在登录到系统之前一直是
administrator用户模拟,因此,我将登录的账户改为了网络用户,因为我公司有域,因此我将域用户设置为本机
的系统管理员,以确保该服务能启动.
sp_addumpdevice'DISK','NetWork','\\server\d$\databak\xuzh.bak'
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
本地机器名称(Client端):david
本地提供备份需求的文件夹:e:\test
在程序代码中调用(或者CMD窗口) net share test=e:\test
net share:是WINDOWS内部的网络命令。
作用:建立本地的共享资源,显示当前计算机的共享资源信息。
master..xp_cmdshell'net use\\david\test 123/user:domain\zf'
1:xp_cmdshell:是SQLSERVER的扩展存储过程。
作用,以操作系统命令行解释器的方式执行给定的命令字符串,
2:net use:是WINDOWS内部的网络命令。
作用,将计算机与共享资源连接或断开,或者显示关于计算机
连接的信息。该命令还控制持久网络连接。
backup database msdb to disk='\\david\test\msdb.bak'
这个不需要说明吧,语法参见SQLSERVER联机帮助
在程序代码中调用(或者CMD窗口) net share test/delete
已处理 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都喜欢将其删除或者禁用,所以开发人员使用时要倍加小心哦。
文章中的例子只是简要的说明了应如何利用扩展存储过程实现远程备份与恢复,没有涉及安全以及其他方面的考虑,希望读者在代码中自行完善。