小编Ola*_*ren的帖子

Ola Hallengren 索引维护 - 命令之间的时间长吗?

我在所有服务器上运行 Ola Hallengren 脚本以进行索引和统计维护。当我查看命令日志表时,我注意到命令结束和下一个命令开始之间的时间很长。有时这个间隔会超过一个小时。

有没有其他人在他们的系统上观察到这一点?我可以做些什么来缩短(我猜)要维护的项目之间的发现时间?下面是我运行它们的参数集。

sqlcmd -E -S $(ESCAPE_SQUOTE(SRVR)) -d master -Q "EXECUTE [dbo].[IndexOptimize] 
@Databases = 'USER_DATABASES', 
@LogToTable = 'Y',
@FragmentationLow = NULL,
@FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationLevel1 = 50,
@FragmentationLevel2 = 80,
@UpdateStatistics = 'ALL',
@OnlyModifiedStatistics = 'Y' " -b
Run Code Online (Sandbox Code Playgroud)

所以当我运行这个时:

SELECT DATEDIFF(MINUTE, cl.StartTime, cl.EndTime)
, *
FROM master.dbo.CommandLog AS cl
WHERE cl.StartTime > '2014-12-13'
ORDER BY cl.ID
Run Code Online (Sandbox Code Playgroud)

我看到这个:

样本输出

sql-server maintenance ola-hallengren

7
推荐指数
2
解决办法
2070
查看次数

为什么使用 Ola Hallengren 备份脚本对 Azure Blob 的一些完整 sql 备份锁定租约?

我正在使用 SQL Server 2012 并使用 Ola Hallengren 备份脚本备份到 Azure Blob。

一些备份是租用锁定的(例如模型),而其他备份则不是(例如 msdb)。它是不一致的,反之亦然,完全锁定或解锁。

为什么备份被租用锁定?我如何将它们全部解锁?

sql-server azure-sql-database ola-hallengren

5
推荐指数
1
解决办法
371
查看次数

备份到本地和 MIRROR TO Azure 文件返回错误

我有一个带有 SQL Server 2014 的 Azure VM,带有一个用于存储备份的本地驱动器 (X:)。使用 Ola Hallengren 的脚本。我添加了 Azure 文件共享并尝试进行镜像备份,但出现以下错误:

BACKUP DATABASE [Test] TO DISK = 
    N'X:\Backup\SRVSQL01\Test\FULL\SRVSQL01_Test_FULL_20150420_185840.bak' 
MIRROR TO DISK = 
    N'\\storage.file.core.windows.net\backup\SRVSQL01\Test\FULL\SRVSQL01_Test_FULL_20150420_185840.bak' 
WITH NO_CHECKSUM, COMPRESSION, FORMAT

Msg 3212, Level 16, State 0, Line 3
The mirror device "X:\Backup\SRVSQL01\Test\FULL\SRVSQL01_Test_FULL_20150420_185840.bak" 
and the mirror device "\\storage.file.core.windows.net\backup\SRVSQL01\Test\FULL\SRVSQL01_Test_FULL_20150420_185840.bak" 
have different device specifications.

Msg 3013, Level 16, State 1, Line 3
BACKUP DATABASE is terminating abnormally.
Outcome: Failed
Run Code Online (Sandbox Code Playgroud)

最初,本地驱动器被格式化为 64K 分配单元大小。尝试切换到 4K,并使用BlockSize开关,但没有运气。有任何想法吗?

sql-server backup sql-server-2014 ola-hallengren

5
推荐指数
1
解决办法
1254
查看次数

使用 Ola Hallengrens 备份脚本获取代理帐户以备份到共享

我有一个 SQL Server 2012 Standard 安装,其中引擎和代理在默认 NT 服务帐户下运行

引擎 - NT 服务\MSSQLSERVER

代理 - NT 服务\SQLSERVERAGENT

我试图让 Ola Hallengrens 备份脚本备份到网络共享,但这证明有点问题。通常我会让引擎和代理在域帐户下运行并授予这些访问网络共享的权限,它会正常工作,但是这是在我之前设置的,无法更改这些。

由于代理和引擎不在域帐户下运行,我试图使用代理来使其正常工作。

我有一个共享\\ComputerName\Folder和一个服务帐户Domain\account.svc。我可以使用该Domain\account.svc帐户浏览和创建文件和文件夹,因此访问似乎正常。但是,当通过代理运行它时,它不起作用。

我做了什么。

  • 使用创建凭据 Domain\account.svc
  • 创建操作系统 (CmdExec) 代理并将其链接到凭据
  • 在备份系统数据库作业步骤中,将“运行方式”设置为代理帐户

我在日志文件中得到的错误是

消息 50000,级别 16,状态 1,服务器 [服务器名称],过程 DatabaseBackup,第 457 行
目录 \\ComputerName\Folder 不存在。

Msg 50000, Level 16, State 1, Server [SERVER NAME], Procedure DatabaseBackup, Line 740 该文档可在https://ola.hallengren.com/sql-server-backup.html 获得

这与您通常在代理域帐户无权访问共享时遇到的错误相同。

问题 - 有人可以解释为什么这不起作用。

谢谢。

编辑 1:Domain\account.svc 对共享具有完全控制权,是机器上的本地管理员以及 SQL 中的系统管理员。

编辑 2:在我的桌面上安装了 SQL 的测试实例,并且能够复制该问题。当我将引擎和代理服务帐户更改为在 Domain\account.svc 下运行时,备份成功完成到共享。 …

sql-server permissions sql-server-2012 sql-server-agent ola-hallengren

5
推荐指数
1
解决办法
3123
查看次数

如何更新 Ola Hallengren 的 SQL Server 作业中的命令?

我正在寻找一种简单的方法来更新从 Ola 的 MaintenanceSolution.sql 脚本创建的作业,而不必完全删除和重新创建它们,也不必通过进入作业的属性来单独修改每个作业,然后进入步骤并修改命令。

具体来说,我正在尝试更新@CleanupTime参数,该参数用于告诉作业何时删除旧备份。根据他的常见问题解答,每当他的脚本的新版本可用并且您想更新到该新版本时,您只需要下载 MaintenanceSolution.sql 脚本并再次运行它,@CreateJobs = 'N'如果没有,可以选择指定 SET想创造就业机会。这告诉我,如果你离开@CreateJobs = 'Y',它会重新创造就业机会,但情况似乎并非如此。

例如,如果“DatabaseBackup - USER_DATABASES - FULL”作业已经存在,并且步骤中的命令显示@CleanupTime = 48,那么我使用 重新运行 MaintenanceSolution.sql 脚本@CleanupTime = 168,然后返回作业的步骤,它仍然显示@CleanupTime = 48

sql-server ola-hallengren

3
推荐指数
1
解决办法
750
查看次数

Ola Hallengren DatabaseBackup 在定位 Windows 目录时出错

需要帮助解决使用Ola Hallengren 的存储过程将数据库备份到共享文件夹的问题。

我有一个在 SQL Server 启动时执行的过程。它运行Ola HallengrenDatabaseBackup程序。SQL Server 服务在NT Service.

该共享对运行 SQL 的计算机具有权限。

现在,如果DatabaseBackup手动执行它会很好。当它在启动时自动执行时失败并出现以下错误:

Msg 50000, Level 16, State 1, Procedure DatabaseBackup, Line 786 [Batch Start Line 0] 目录 \\*** 不存在

如果我用Execute As DBO子句更改程序,它会失败并出现相同的错误。

我也试过AlterSP withExecute As Self子句 - 又是同样的错误。

所以问题是:

我该怎么做才能让它发挥作用?

  • 文件路径以 UNC 路径的形式提供(例如\\machine2\backup\
  • 这是 SQL Express,所以我无权访问 SQL 代理作业。
  • 因此,这是一个配置为在 SQL Server 实例启动时运行的存储过程,而不是设置为在 SQL 代理启动时运行的 SQL 作业。

security sql-server ola-hallengren

2
推荐指数
1
解决办法
4291
查看次数