我在所有服务器上运行 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 2012 并使用 Ola Hallengren 备份脚本备份到 Azure Blob。
一些备份是租用锁定的(例如模型),而其他备份则不是(例如 msdb)。它是不一致的,反之亦然,完全锁定或解锁。
为什么备份被租用锁定?我如何将它们全部解锁?
我有一个带有 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 2012 Standard 安装,其中引擎和代理在默认 NT 服务帐户下运行
引擎 - NT 服务\MSSQLSERVER
代理 - NT 服务\SQLSERVERAGENT
我试图让 Ola Hallengrens 备份脚本备份到网络共享,但这证明有点问题。通常我会让引擎和代理在域帐户下运行并授予这些访问网络共享的权限,它会正常工作,但是这是在我之前设置的,无法更改这些。
由于代理和引擎不在域帐户下运行,我试图使用代理来使其正常工作。
我有一个共享\\ComputerName\Folder
和一个服务帐户Domain\account.svc
。我可以使用该Domain\account.svc
帐户浏览和创建文件和文件夹,因此访问似乎正常。但是,当通过代理运行它时,它不起作用。
我做了什么。
Domain\account.svc
我在日志文件中得到的错误是
消息 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
我正在寻找一种简单的方法来更新从 Ola 的 MaintenanceSolution.sql 脚本创建的作业,而不必完全删除和重新创建它们,也不必通过进入作业的属性来单独修改每个作业,然后进入步骤并修改命令。
具体来说,我正在尝试更新@CleanupTime
参数,该参数用于告诉作业何时删除旧备份。根据他的常见问题解答,每当他的脚本的新版本可用并且您想更新到该新版本时,您只需要下载 MaintenanceSolution.sql 脚本并再次运行它,@CreateJobs = 'N'
如果没有,可以选择指定 SET想创造就业机会。这告诉我,如果你离开@CreateJobs = 'Y'
,它会重新创造就业机会,但情况似乎并非如此。
例如,如果“DatabaseBackup - USER_DATABASES - FULL”作业已经存在,并且步骤中的命令显示@CleanupTime = 48
,那么我使用 重新运行 MaintenanceSolution.sql 脚本@CleanupTime = 168
,然后返回作业的步骤,它仍然显示@CleanupTime = 48
。
需要帮助解决使用Ola Hallengren 的存储过程将数据库备份到共享文件夹的问题。
我有一个在 SQL Server 启动时执行的过程。它运行Ola Hallengren的DatabaseBackup
程序。SQL Server 服务在NT Service
.
该共享对运行 SQL 的计算机具有权限。
现在,如果DatabaseBackup
手动执行它会很好。当它在启动时自动执行时失败并出现以下错误:
Msg 50000, Level 16, State 1, Procedure DatabaseBackup, Line 786 [Batch Start Line 0] 目录 \\*** 不存在
如果我用Execute As DBO
子句更改程序,它会失败并出现相同的错误。
我也试过Alter
SP withExecute As Self
子句 - 又是同样的错误。
所以问题是:
我该怎么做才能让它发挥作用?
\\machine2\backup\
)