SqlServer 数据库服务器运用

1.压缩数据库日志文件

当数据库服务器满了之后,可用以下sql进行空间释放。

USE [master]
GO
ALTER DATABASE AFMS SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE AFMS SET RECOVERY SIMPLE
GO
USE AFMS
GO
DBCC SHRINKFILE (N'AFMS_Log' , 11, TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE AFMS SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE AFMS SET RECOVERY FULL
GO

如果对日志文件的逻辑名称不清楚的话,用下面这句sql可以直接查出来:

SELECT file_id, name FROM sys.database_files 

2.查询数据库死锁sql

SELECT  
 der.[session_id],der.[blocking_session_id],  
 sp.lastwaittype,sp.hostname,sp.program_name,sp.loginame,  
 der.[start_time] AS '开始时间',  
 der.[status] AS '状态',  
 dest.[text] AS 'sql语句',  
 DB_NAME(der.[database_id]) AS '数据库名',  
 der.[wait_type] AS '等待资源类型',  
 der.[wait_time] AS '等待时间',  
 der.[wait_resource] AS '等待的资源',  
 der.[logical_reads] AS '逻辑读次数'  
 FROM sys.[dm_exec_requests] AS der  
 INNER JOIN master.dbo.sysprocesses AS sp ON der.session_id=sp.spid  
 CROSS APPLY  sys.[dm_exec_sql_text](der.[sql_handle]) AS dest  
 WHERE [session_id]>50 AND session_id<>@@SPID  
 ORDER BY der.[session_id]  
 GO  

3.备份数据库

declare @filename varchar(255)
declare @date datetime
select @date=getdate()
select @filename='E:\每天晚上备份数据库\NDHG_BusinessData-'+CAST(DATEPART(yyyy,@date) as varchar)+'-'+CAST(DATEPART(mm,@date) as 
varchar)+'-'+CAST(DATEPART(dd,@date) as varchar)+'.bak'
backup database NDHG_BusinessData to disk=@filename with init 

select @filename='E:\每天晚上备份数据库\NDHG_SystemDataBase-'+CAST(DATEPART(yyyy,@date) as varchar)+'-'+CAST(DATEPART(mm,@date) as 
varchar)+'-'+CAST(DATEPART(dd,@date) as varchar)+'.bak'
backup database NDHG_SystemDataBase to disk=@filename with init 
go

4.删除备份文件

<# :
cls
@echo off
rem 删除指定目录\文件夹下指定天数之前创建的文件
mode con lines=5000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default)))"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$path="D:\xxx\yourfolder";
if(-not (test-path -liter $path)){Write-host ('"'+$path+'" not found');exit;};
$ago=-180;
$agoday=get-date ((get-date).adddays($ago).toSTring('yyyy-MM-dd')+' 00:00:00');
$files=@(dir -liter $path -recurse|?{$_ -is [System.IO.FileInfo]});
for($i=0;$i -lt $files.length;$i++){
if($files[$i].CreationTime -le $agoday){
write-host ('['+$files[$i].CreationTime.toSTring('yyyy-MM-dd')+']'+$files[$i].FullName);
Remove-Item -liter $files[$i].FullName -force -whatif;
};
}

解决恢复挂起的状态

RESTORE database   dbname with recovery

ALTER DATABASE [ZSYG_SystemDataBase] SET SINGLE_USER;

DBCC CHECKDB([ZSYG_SystemDataBase], REPAIR_ALLOW_DATA_LOSS)

ALTER DATABASE [ZSYG_SystemDataBase] SET MULTI_USER
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值