Version: next

数据库管理

数据库连接失败

Sql server 账号被锁住:"the account is currently locked out. The system administrator can unlock it."的解决办法

 今天遇到的问题比较有意思。首先是很久没有打开测试数据库了,今天打开,使用service程序测试的时候出现下面的错误提示:

Message: System.Data.SqlClient.SqlException: Login failed for user 'dcp_prod'. Reason: The password of the account has expired.

很明显,这个是因为密码失效了,dcp_prod这个账户使用了密码失效策略,打开数据库查看这个账户的属性,果然,Enforce password policy和Enforce password expiration这两个属性被选中了

现在只需要重新设置一下密码就可以了。但是之后又出现了一个错误,提示如下:

System.Data.SqlClient.SqlException: Login failed for user 'dcp_prod' because the account is currently locked out. The system administrator can unlock it. 这是什么原因呢,locked out是锁住了,然后使用administrator站好去解锁,字面意思是这样的,照着提示区做,再次打开账户属性。

 (这里是回复正常之后的状态,默认是灰色不可用的)

点击Status标签,果然Login is locked out属性被选中,取消选中,点击OK,回到程序中。奇怪了,还是上面的locked out提示,打开属性查看,这个属性又一次被选中了。这样连续来回了好几次都是这样,开始纳闷了。后来在网上查,网上说有其他用户尝试连接数据库,我恍然大悟,是那个service程序在跟我争夺数据库。这个service程序每3秒钟会连接一次数据库,进行相应的操作,在这中间如果尝试修改密码,账户会被锁定的。我Administrator tool->service中关掉程序,修改密码,重新打开程序,这个错误就消失了。

SQLServer 重建索引前后对比

现象 :在做维护项目的时,我们经常会遇到索引维护的问题,通过语句,我们就可以判断某个表的索引是否需要重建。

解决问题 执行一下语句:先分析表的索引

分析表的索引建立情况:DBCC showcontig('Table')

DBCC SHOWCONTIG 正在扫描 'Table'' 表... 表: 'Table'' (53575229);索引 ID: 1,数据库 ID: 14 已执行 TABLE 级别的扫描。

  • 扫描页数................................: 228
  • 扫描区数..............................: 52
  • 区切换次数..............................: 225
  • 每个区的平均页数........................: 4.4
  • 扫描密度 [最佳计数:实际计数].......: 12.83% [29:226]
  • 逻辑扫描碎片 ..................: 97.37%
  • 区扫描碎片 ..................: 98.08%
  • 每页的平均可用字节数........................: 2686.3
  • 平均页密度(满).....................: 66.81%

当你发现,扫描密度行,最佳计数和实际计数的比例已经严重失调,逻辑扫描碎片占了非常大的百分比,每页平均可用字节数非常大时,就说明

你的索引需要重新整理一下了。

执行重建索引命令: DBCC DBREINDEX('Table'') 后分析的情况

DBCC SHOWCONTIG 正在扫描 'Table'' 表... 表: 'Table'' (53575229);索引 ID: 1,数据库 ID: 14 已执行 TABLE 级别的扫描。

  • 扫描页数................................: 154
  • 扫描区数..............................: 20
  • 区切换次数..............................: 19
  • 每个区的平均页数........................: 7.7
  • 扫描密度 [最佳计数:实际计数].......: 100.00% [20:20]
  • 逻辑扫描碎片 ..................: 0.00%
  • 区扫描碎片 ..................: 55.00%
  • 每页的平均可用字节数........................: 86.8
  • 平均页密度(满).....................: 98.93%

清除指定ID的归档作业组

本文描述清除指定ID的归档作业组sql 语句。

注:运行以下sql语句,将彻底删除指定ID的归档作业组及相关数据(作业、作业项、作业组属性、作业组序列、附件、位置、KPI),删除不可恢复,请谨慎操作。

注:把F5FE0E2B-B0AF-48F8-AD58-19458873E0F2替换成你需要删除的作业组ID

Begin Transaction

declare @TaskGroupID uniqueidentifier

set @TaskGroupID='F5FE0E2B-B0AF-48F8-AD58-19458873E0F2'

delete from H_LastTask where H_LastTask.TaskID in (select ID from H_Ext_Task where TaskGroupID=@TaskGroupID)

delete from H_Ext_KPI where TaskGroupID=@TaskGroupID

delete from H_Ext_Tag where TaskGroupID=@TaskGroupID

delete from H_Ext_Task where TaskGroupID=@TaskGroupID

delete from H_Ext_TaskGroupProperty where TaskGroupID=@TaskGroupID

delete from H_TaskGroupSequence where TaskGroupEntityID=@TaskGroupID

delete from TagBuffer where TaskGroupID=@TaskGroupID

delete from Attachment where TaskGroupID=@TaskGroupID

delete from Position where TaskGroupID=@TaskGroupID

delete from H_TaskGroup where ID=@TaskGroupID

COMMIT TRANSACTION

SQL Server 数据库中ldf日志文件怎么清理

随着SQL Server长期运行,数据库中ldf日志文件将慢慢变大,本文描述怎样清理此文件。 原文链接:https://yq.aliyun.com/articles/15895

  • Sql Server 2008 R2 清空数据库中ldf日志文件

  • 将Whir_InternalSystem替换为您要操作的数据库即可

USE [master]

ALTER DATABASE [Whir_InternalSystem]

SET RECOVERY SIMPLE WITH NO_WAIT

ALTER DATABASE [Whir_InternalSystem]

SET RECOVERY SIMPLE

GO

USE [Whir_InternalSystem]

DECLARE @logname VARCHAR(150)

SELECT @logname = NAME

FROM sys.database_files

WHERE NAME LIKE'%log'

DBCC SHRINKFILE(@logname, 11, TRUNCATEONLY)

GO

USE [master]

ALTER DATABASE [Whir_InternalSystem]

SET RECOVERY FULL WITH NO_WAIT

ALTER DATABASE [Whir_InternalSystem]

SET RECOVERY FULL

GO

注意事项:

1.建议操作前将数据库做一次完整备份。

2.经过这样的处理,数据库将不能做日志恢复,需注意。

SQLServer存储文件转移

若SQL Server存储文件过大导致磁盘空间不足,将SQLServer存储文件转移至其它磁盘。 事 件:SQL Server存储文件过大导致磁盘空间不足

详 细:SQL Server存储文件过大导致C盘空间不足,影响服务器正常运行,可以将SQLServer存储文件转移至其它磁盘。

影响组件:SQL Server、 imEOC

处 置 : 1、进入Microsoft SQL Server Management Studio,在数据库下选中rockwelltpm应用数据库,右键菜单选择属性,在数据库属性左侧选择页内选择文件 2、点击自动增长栏 按钮,设置最大文件大小为限制文件增长,数值设定为稍大于当前文件大小(如当前为980MB,则最大文件大小限制为1000MB),确定完成设置 3、在数据库文件页单击添加,按照已有格式分别添加行数据和日志文件,文件路径设置为空间较大的目标磁盘,文件名按已有格式区别命名 4、可对新建文件重复步骤2

误操作数据库内表补救办法

说明链接查看

https://blog.csdn.net/dba_huangzj/article/details/8491327 https://blog.csdn.net/happymagic/article/details/79530342

Last updated on