如何sqlserver数据库备份 如何**sqlserver数据库
一、如何将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数据库有很多办法,不过一般用的较多就是:
1、手动*作:利用SqlServer自带的备份功能,登录资源管理器,右键点击要备份的数据库,在弹出来的菜单中选择“备份”,然后按步骤*作即可
2、自动备份:这种方式一般是利用第三方工具或者写脚本,比如说用工具多备份,自动增量备份,*作非常简单
三、如何**sqlserver数据库
两种方法:
1、在“SQL Server配置管理器”中将你的SQL SERVER服务停止,然后将你安装数据库文件中的data文件夹下的
你的数据库名.mdf和你的数据库名.ldf文件夹拷给别人,后拿到该文件的人,直接在mssql2005的“SQL Server
Management Studio”工具中,用附加数据库的方式添加即可。
2、在你电脑上的“SQL Server Management
Studio”工具中找到你要用来传的数据库名,在上面点右键--任务--备份数据库。为其指定一个目录后,点保存。之后会生成一个文件,你直接将该文件
拷贝给你要给的人。拿到这个备份文件的人,首先要在他电脑的“SQL Server Management
Studio”工具中新建一个空数据库,且该数据库名要和你电脑上的那个名称一致,后在这个数据库名上点右键--任务--还原--数据库,选中刚才的那
个备份文件,点确定也可以还原。
四、如何备份sqlserver数据库
步骤/方法
1
假如你的空间商用的是星外虚拟主机管理系统,这种系统支持第一种备份文件的还原和导入。星外系统的数据库导入分为5个步骤,大家直接到空间商的数据库管理里面就可以看到,这里不再叙述,发个截图给大家看。
2
如果你只有数据库源文件,也就是有mdf和ldf文件。可以直接把SQLServer暂停,然后用备份的源文件覆盖现在的初始源文件,然后启动SQLServer。注意这种办法要先开通这个数据库,保持源文件名要一致,这样才能直接覆盖。
3
还
有一种办法就是附加数据库,把mdf和ldf文件直接附加,系统会自动生成一个数据库。下面是截图:如果你的空间商一定要第一种备份文件才能还原,可以先
通过这种附加方法把数据库生成,然后在企业管理器中导出备份文件即可。注意上面的附加为:项目要写准备还原的数据库名称。
4
用SQL网页管理器导入备份文件。这种办法需要先安装一个web界面的SQLServer管理器,类似于管理MySQL的PHPmyadmin,应该网上有**的。下面是截图: