YourSQLDba设置共享路径备份

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YourSQLDba设置共享路径备份相关的知识,希望对你有一定的参考价值。

YourSQLDba可以将数据库备份到网络路径(共享路径),这个也是非常灵活的一个功能,以前一直没有使用过这个功能,最近由于一个需求,于是我测试了一下YourSQLDba备份到网络路径,中间遇到了一些问题,遂整理如下。

测试环境:

    操作系统:  Windows Server Standard 2012

  数据库版本:  SQL SERVER 2014

 

1:设置共享路径权限

  

     这一步很简单,也非常好理解。共享路径需要给某些特定用户才能访问,例如某个域账号。在此略过。

 

2:映射网络驱动器。

映射网络驱动器,顾名思义,就是将局域网内的一个共享文件夹作为一个虚拟的网络硬盘,然后将该网络硬盘映射到本地计算机,然后我们就可以在本地计算机上访问该共享文件夹. YourSQLDba不能直接访问共享路径。否则会报错。

clipboard

image

 

3:然后使用Exec YourSQLDba.Maint.CreateNetworkDriv设置网络路径。

sp_configure \'show advanced option\', 1;
go
reconfigure;
go
sp_configure \'xp_cmdshell\', 1;
go
reconfigure;
go
 
 
Exec YourSQLDba.Maint.CreateNetworkDrives
 @DriveLetter = \'S:\\\'  
 @unc = \'\\\\192.168.xxx.xxx\\YourSQLDBABAK\\Server1\' 

设置网络路径,必须开启数据库“xp_cmdshell”选项,否则就会有如下错误。

 

Exec YourSQLDba.Maint.CreateNetworkDrives

  @DriveLetter = \'S:\\\' 

, @unc = \'\\\\192.168.xxx.xxx\\YourSQLDBABAK\\Server1\'

 

消息 15123,级别 16,状态 1,过程 sp_configure,第 62 行

The configuration option \'xp_cmdshell\' does not exist, or it may be an advanced option.

net use S: /Delete

net use S: \\\\192.168.xxx.xxx\\YourSQLDBABAK\\Server1

15123: The configuration option \'xp_cmdshell\' does not exist, or it may be an advanced option.

消息 15123,级别 16,状态 1,过程 sp_configure,第 62 行

The configuration option \'xp_cmdshell\' does not exist, or it may be an advanced option.

 

image

 

如果你遇到下面错误信息,请检查你SQL SERVER服务的登录账号是否是NT账号或域账号。如果是默认的NT Service\\MSSQLSERVER则会遇到该错误提示。

image

clipboard[4]

 

可以将SQL Server服务的登录账号改为共享路径设置权限的域账号。那么接下来,修改一下作业YourSQLDba_FullBackups_And_Maintenance里面的配置信息就OK了

exec Maint.YourSqlDba_DoMaint
  @oper = \'YourSQLDba_Operator\'
, @MaintJobName = \'YourSQLDba: DoInteg,DoUpdateStats,DoReorg,Full backups\'
, @DoInteg = 1
, @DoUpdStats = 1
, @DoReorg = 1
, @DoBackup = \'F\'
, @FullBackupPath = \'S:\\FULL_BACKUP\\\'
, @LogBackupPath = \'S:\\LOG_BACKUP\\\'  
-- Flush database backups older than the number of days
, @FullBkpRetDays = 1
-- Flush log backups older than the number of days
, @LogBkpRetDays =1
-- Spread Update Stats over 7 days
, @SpreadUpdStatRun =1
-- Maximum number of consecutive days of failed full backups allowed
-- for a database before putting that database (Offline).
, @ConsecutiveFailedbackupsDaysToPutDbOffline = 9999
-- Each database inclusion filter must be on its own line between the following quote pair
, @IncDb =
\'
\'
-- Each database exclusion filter must be on its own line between the following quote pair
, @ExcDb =
\'
\'
-- Each database exclusion filter must be on its own line between the following quote pair
, @ExcDbFromPolicy_CheckFullRecoveryModel =
\'
\' 

 

如果SQL Server服务是LocalSystem启动,YourSQLDba备份时会报如下错误信息,你需要将SQL Server服务的登录身份改为域账号

BackupDiskFile::CreateMedia: 备份设备 \'S:\\FULL_BACKUP\\MsDb_[2016-07-04_Mon]_database.BAK\' 无法create。操作系统错误 5(拒绝访问。)。

 

在测试过程中发现YourSQLDba备份到共享路径对网络环境要求比较高,有几次在网络出现连续掉两个或两个以上包的时候,备份进程就出错,检查出错信息,发现如下错误信息。

<Exec>
  <ctx>yMaint.backups</ctx>
  <Sql>
backup database [WSS_Content_get_teams_tdc]
to disk = \'S:\\FULL_BACKUP\\Test_[2014-11-11_18h49m05_Tue]_database.BAK\'
with Init, Format, checksum, name = \'YourSQLDba:18h49: S:\\FULL_BACKUP\\Test_[2014-11-11_18h49m05_Tue]_database.BAK\'
</Sql>
  <err>Error 3201, Severity 16, level 1 : Cannot open backup device \'S:\\FULL_BACKUP\\Test_[2014-11-11_18h49m05_Tue]_database.BAK\'. Operating system error 53(The network path was not found.).
Error 3013, Severity 16, level 1 : BACKUP DATABASE is terminating abnormally.
</err>
</Exec>

以上是关于YourSQLDba设置共享路径备份的主要内容,如果未能解决你的问题,请参考以下文章

YourSQLDba介绍

Mysql备份到Windows共享路径中

在 debian 10 服务器上配置团队基础服务器备份到 samba 共享路径时出错

从浏览器共享网址到导航片段

C 中的共享内存代码片段

片段之间动画的共享元素