远程备份SQLSERVER数据库到本地

远程备份SQLSERVER数据库到本地,第1张

概述一:SQL如何备份到异机 (转) 写成存储过程,建立作业定时备份 1. --在sql中建个映射  exec master..xp_cmdshell 'net use z: \\本地计算机名或IP\本地共享文件夹的共享名 "密码" /user:本地计算机名或IP\administrator'  /*--说明: z:是映射网络路径对应本机的盘符(可以去掉,如果去掉,则在COPY 时将z: 换成 \\本

一:sql如何备份到异机 (转)

写成存储过程,建立作业定时备份

1. --在sql中建个映射 
exec master..xp_cmdshell 'net use z: \\本地计算机名或IP\本地共享文件夹的共享名 "密码" /user:本地计算机名或IP\administrator' 

/*--说明:

z:是映射网络路径对应本机的盘符(可以去掉,如果去掉,则在copY 时将z: 换成 \\本地计算机名或IP\本地共享文件夹的共享名 即可。)

administrator是登陆的用户名 
密码 面指定的administrator用户的密码 
--*/ 

2.--备份;with init覆盖 | noinit添加 
backup database 库名 to disk='E:\H_BACKUP.bak' with init 

3.--copY 
exec master..xp_cmdshell 'copy E:\H_BACKUP.bak z:' 

4.--删除(这句可以去掉) 
--exec master..xp_cmdshell 'del E:\H_BACKUP.bak' 

5.--完成后删除映射 
exec master..xp_cmdshell 'net use z: /delete'

付:

EXEC sp_configure 'show advanced options',1;RECONfigURE;EXEC sp_configure 'xp_cmdshell',1;RECONfigURE;

exec   xp_cmdshell 'net user mm 123 /add' --添加一用户 
exec xp_cmdshell 'net localgroup administrators mm /add' --为用户添加管理员权限

exec xp_cmdshell 'net user   mm   /delete' --删除一用户  

二:笨方法

1. 知道远程MSsql IP 用户名 密码。

2. 在本地MSsql企业管器里新注册 远程数据库

3. 将远程数据库的,用户自定义函数,用户表,存储过程,全部 生成sql脚本 ,保存在本地。(视图不需要)

4. 在本地新建一数据库,在新建数据库中执行之前生成的sql脚本,注意要先执行用户自定义函数的脚本,因为有可能存储过程里调用了用户自定义函数。

5. 然后在新建的数据库中用导入\导出工具,将数据导入本地的数据库。(注意:如果数据库中存在有自增的字段的表,并且该表的数据不是连续自增的,此时就不能用导入\导出工具将该表数据导入到本地数据库对应的表中)


------------------------------------------------------------------------------------------

整理。。。。收藏


--使用变量进行备份
declare @db sysname
declare @dbpath varchar(120)
set @db='adventureworks'
set @dbpath='e:\'+@db+convert(varchar(10),getdate(),112)+'.bak'
--文件名根据数据库名称+日期YYYYMMDD+扩展名

--完整备份
--
Backup Database @db To  disk=@dbpath --差异备份
Backup Database @db To 
disk=@dbpath  With Differential --日志备份,默认截断日志  
--日志备份,需要修改恢复模式为FulL
alter database adventureworks set recovery full with no_wait
Backup database adventureworks To disk='e:\adventureworks\adventureworks.bak'
--必须要有数据库完整备份
Backup
Log adventureworks To disk='e:\adventureworks\adventureworks_log' --日志备份,不截断日志
Backup Log adventureworks To disk='e:\adventureworks\adventureworks_log1'
With No_Truncate
--截断日志不保留
Backup Log adventureworks With No_Log
--或者
Backup Log adventureworks With Truncate_Only
--截断之后日志文件不会变小
--有必要可以进行收缩
--文件备份
Exec Sp_Helpdb adventureworks --查看数据文件
Backup Database adventureworks
file='adventureworks_data'   --数据文件的逻辑名
To disk='E:\adventureworks\adventureworks20090502.bak'
--文件组备份
Exec Sp_Helpdb adventureworks --查看数据文件
Backup Database adventureworks
fileGroup='Primary'   --数据文件的逻辑名
To disk='E:\adventureworks\adventureworks.bak'
With init
--分割备份到多个目标
--恢复的时候不允许丢失任何一个目标
Backup Database adventureworks
To disk='E:\adventureworks\adventureworks_1.bak'
    ,disk='E:\adventureworks\adventureworks_2.bak'
--镜像备份
--每个目标都是相同的
Backup Database adventureworks
To disk='E:\adventureworks\adventureworks_Mirror_1.bak'
Mirror 
To disk='E:\adventureworks\adventureworks_Mirror_2.bak'
With Format --第一次做镜像备份的时候格式化目标
--镜像备份到本地和远程
Backup Database adventureworks
To disk='E:\adventureworks\adventureworks_Mirror_1.bak'
Mirror 
To disk='\\192.168.0.254\adventureworks\adventureworks_Mirror_2.bak'
With Format
--远程电脑上注意共享和权限
--每天生成一个备份文件
Declare @Path Nvarchar(2000)
Set @Path ='E:\adventureworks\adventureworks_Full_'
+Convert(Nvarchar,Getdate(),112)+'.bak'
Backup Database adventureworks
To 
disk=@Path
--从norecovery或者
--Standby模式恢复数据库为可用
Restore Database adventureworks
With Recovery
--查看目标备份中的备份集
Restore headerOnly
From disk ='E:\adventureworks\adventureworks.bak'
--查看目标备份的第一个备份集的信息
Restore fileListOnly
From disk ='E:\adventureworks\adventureworks.bak'
With file=1
--查看目标备份的卷标
Restore LabelOnly
From disk ='E:\adventureworks\adventureworks.bak'
--备份设置密码保护备份
Backup Database adventureworks
To disk ='E:\adventureworks\adventureworks.bak'
With Password = '123',init
--备份数据库的日志尾部
BACKUP LOG adventureworks To disk ='E:\adventureworks\adventureworks_log.bak' WITH norECOVERY
Restore Database adventureworksFrom disk ='E:\adventureworks\adventureworks.bak'With Password = '123'--恢复数据库前要先备份数据库的日志尾部。--消息 3159,级别 16,状态 1,第 1 行--尚未备份数据库 "adventureworks" 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH norECOVERY 备份该日志。请使用 RESTORE 语句的 WITH REPLACE 或 WITH StopAT 子句来只覆盖该日志的内容。--消息 3013,级别 16,状态 1,第 1 行RESTORE DATABASE 正在异常终止。
总结

以上是内存溢出为你收集整理的远程备份SQLSERVER数据库到本地全部内容,希望文章能够帮你解决远程备份SQLSERVER数据库到本地所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1180839.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存