我有一个数据库,想将.mdf
和.ldf
文件移动到另一个位置。但是我不想停止MSSQLSERVER
服务,也不想导出到另一台服务器。
我怎样才能做到这一点?
有时,在我们的索引维护期间,作业会失败并出现 SEV 17 错误,其中无法为正在重建的对象分配足够的空间。数据库布局如下:
Data_file1 PRIMARY 0 growth 0% free Max Size UNLIMITED
Data_file2 PRIMARY 0 growth 0% free Max Size UNLIMITED
Data_file3 PRIMARY 0 growth Less than 1% free Max Size UNLIMITED
Data_file4 PRIMARY 250 MB growth Less than 1% free Max Size UNLIMITED
Run Code Online (Sandbox Code Playgroud)
本质上,4 个数据文件中的 3 个已满且不允许增长,第四个已满且允许增长。文件分布在不同的 LUN 上(原因是杂乱无章)。所以当在线索引重建开始时,我的理解是,如果需要任何额外的空间,它会增长到 Data_file4 并且很好,但它显然试图增长到一个不同的文件,其中不允许增长并且失败。我无法重现此错误,但我想知道是否有人了解发生这种情况的原因。
完整的 SQL Server 版本是 2008 R2 Enterprise, SP2 CU 4 (10.50.4270)。我们使用 Ola Hallengren 的重建脚本,我们在线重建,但没有在tempdb
.
我正在构建一个配置表并希望将一行作为默认值。例如,我有一个list
包含所有数据库的表和一个msg
包含我所有返回值的表。在里面msg
表中,我有一行是“alldbs”,如果连接的数据库没有另一行,我希望返回该值。
所以输出应该是:
--LIST TABLE
dbname createdate
-------------------------------------------------- -----------------------
master 2015-06-23 10:05:14.363
model 2015-06-23 10:05:14.363
msdb 2015-06-23 10:05:14.363
tempdb 2015-06-23 10:05:14.363
dummy 2015-06-23 10:05:14.363
--MSG Table
dbname msgval
-------------------------------------------------- --------------------
alldbs Message 1
dummy Message 2
--DESIRED OUTPUT
dbname msgval
-------------------------------------------------- --------------------
dummy Message 2
master Message 1
model Message 1
msdb Message 1
tempdb Message 1
Run Code Online (Sandbox Code Playgroud)
现在我可以得到结果,但查询很笨重,似乎应该有更好的方法:
select
a.dbname
,b.msgval
from
list a
join msg b on a.dbname = b.dbname
union all
select
a.dbname …
Run Code Online (Sandbox Code Playgroud) 我正在使用 Powershell 脚本来更新故障转移集群中命名 SQL 实例上的服务帐户。我正在尝试使用 SMO 和 WMI 来更新它,以便我可以更新主动节点上的服务帐户并将其填充到其他被动节点(如果我在配置工具中手动更新会发生这种情况)。我正在尝试在本地机器上执行脚本但更新远程服务器。根据我的 Google 搜索,我看到的错误似乎与安全相关,如果我在远程计算机上以提升的权限(以管理员身份)本地运行脚本,则该错误会成功。
编码:
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement") | Out-Null
$mc=New-Object -TypeName Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer "SQLHOST01"
$srvcs= $mc.Services | Where {$_.name -like "*INSTANCE01*"} | Where {$_.Type -like "Sql*"}
$srvcs | ft name,servicestate,serviceaccount
foreach ($s in $srvcs){
$s.SetServiceAccount("FOO\Bar","strongpass")
}
Run Code Online (Sandbox Code Playgroud)
错误:
Exception calling "SetServiceAccount" with "2" argument(s): "Set service account failed. "
At line:11 char:5
+ $s.SetServiceAccount("FOO\Bar","strongpass")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : FailedOperationException
Run Code Online (Sandbox Code Playgroud)
使用:Windows 2008 R2(远程)SQL 2008 R2(远程)Windows 7 with SQL 2012 …
压缩和收缩 SQL Server 中的数据库是否相同?如果我压缩一个表,它会降低查询性能和 DML 吗?
我试图删除作为发布者的数据库中的表。有问题的表没有被发布。我得到的错误是:
Msg 15021, Level 16, State 1, Procedure sp_MStran_ddlrepl, Line 14 [Batch Start Line 1]
Invalid value given for parameter @procmapid. Specify a valid parameter value.
Msg 3609, Level 16, State 2, Line 2
The transaction ended in the trigger. The batch has been aborted.
Run Code Online (Sandbox Code Playgroud)
我已经检查sysarticles
过是否有旧记录或孤立记录,但该表没有出现。关于这里的问题有什么想法吗?
编辑:SQL Server 2016 RTM
sql-server ×5
backup ×1
clustering ×1
compression ×1
maintenance ×1
powershell ×1
replication ×1
shrink ×1