zoukankan      html  css  js  c++  java
  • SQL server常用操作

    --备份
    declare @sql varchar(
    8000)
    set @sql='backup database mis to disk=''d:\databack\mis\mis'
    +rtrim(convert(varchar,getdate(),112))+'.bak'''
    exec(@sql)

    --删除15天前备份文件
    set @sql='del d:\databack\mis\mis'
    +rtrim(convert(varchar,getdate()-15,112))+'.bak'''
    exec master..xp_cmdshell @sql

    --清除日志
    dump transaction databasename with no_log
    backup log databasename with no_log

    --查看数据库里用户和进程的信息
    sp_who

    --查看SQL Server数据库里的活动用户和进程的信息
    sp_who
    'active'

    --查看SQL Server数据库里的锁的情况
    sp_lock
    --进程号--50是SQL Server系统内部用的,进程号大于的才是用户的连接进程.
    --spid是进程编号,dbid是数据库编号,objid是数据对象编号

    --收缩数据库日志文件的方法
    --收缩简单恢复模式数据库日志,收缩后@database_name_log的大小单位为M
    backup log @database_name with no_log
    dbcc shrinkfile (@database_name_log,
    5)

    --分析SQL Server SQL 语句的方法:
    set statistics time {on | off}
    set statistics io {on | off}

    --图形方式显示查询执行计划
    --在查询分析器->查询->显示估计的评估计划(D)-Ctrl-L 或者点击工具栏里的图形

    --文本方式显示查询执行计划
    set showplan_all {on | off}
    set showplan_text { on | off }
    set statistics profile { on | off }
    /*******************完整备份作业*******************/
    --完整备份,每周一次
    USE Master
    GO
    declare @str varchar(
    100)
    set @str='D:\DBtext\jgj\DBABak\FullBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.bak'
    BACKUP DATABASE [demo] TO DISK
    =@str
    WITH RETAINDAYS
    =15,NOFORMAT,NOINIT,
    NAME
    =N'Demo完整备份',SKIP,NOREWIND,
    NOUNLOAD,STATS
    =10
    GO




    /*******************差异备份作业*******************/
    --截断日志
    USE Master
    GO
    BACKUP LOG Demo WITH NO_LOG
    GO
    --收缩日志文件
    USE Demo
    GO
    DBCC SHRINKFILE (N
    'Demo_log',0,TRUNCATEONLY)
    GO
    --差异备份,每天一次
    USE Master
    GO
    declare @str varchar(
    100)
    set @str='D:\DBtext\jgj\DBABak\DiffBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.diff'
    BACKUP DATABASE [Demo] TO DISK
    =@str
    WITH DIFFERENTIAL,RETAINDAYS
    =8,NOFORMAT,NOINIT,
    NAME
    =N'Demo差异备份',SKIP,NOREWIND,
    NOUNLOAD,STATS
    =10
    GO




    /******************日志备份作业*******************/
    --日志备份,每小时一次
    USE Demo
    GO
    declare @str varchar(
    100)
    set @str='D:\DBtext\jgj\DBABak\logbak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.trn'
    BACKUP LOG [Demo] TO DISK
    =@str
    WITH RETAINDAYS
    =3,NOFORMAT,NOINIT,
    NAME
    =N'Demo日志备份',SKIP,NOREWIND,
    NOUNLOAD,STATS
    =10
    GO




    --删除过期的备份文件,每天两次
    declare @str varchar(
    100),@dir varchar(100),@fileName varchar(30)
    set @dir='del D:\DBtext\jgj\DBABak\'
    set @filename=left(replace(replace(replace(convert(varchar,getdate()-15,20),'-',''),' ',''),':',''),8)
    set @str=@dir+'fullbak'+@filename+'*.bak'
    exec xp_cmdshell @str
    set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)
    set @str=@dir+'diffbak'+@filename+'*.diff'
    exec xp_cmdshell @str
    set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,20),'-',''),' ',''),':',''),8)
    set @str=@dir+'logbak'+@filename+'*.trn'
    exec xp_cmdshell @str
    -- 如何删除 SQL2005 过期的数据库备份文件呢?

    在 SQL2005 数据库中,不可以自动删除过期的备份文件,所以借用第三方插件完成此功能。
    -- 方式一:通过 Forfiles 删除指定目录下过期的备份文件
    目的:删除目录 i: \sqldataup 中天前的 . bak 文件:

    步骤:

    1 、定义 FORFILES 批处理脚本如下:

    C: \
    > FORFILES / P i: \sqldataup / M *. bak / C "cmd /C del /Q @path" / d - 5

    如果执行成功则返回当前盘符 C: \
    >

    -- 如果没有需要删除的文件则返回信息错误 : 用指定的搜索标准没有找到文件。比如:

    --C:\>FORFILES /P i:\sqldataup /M *.bak /C "cmd /C del /Q @path" /d -5

    -- 错误 : 用指定的搜索标准没有找到文件。


    2 、通过计划任务调用批处理脚本如图所示,图太长请看这里

    3 、当然也可以用 SQLAgent 调用 CMDEXEC 完成批处理作业。


    方式二:如果在 SQL2008 中因为默认安装 Powershell
    1.0 程序,故可以用 Powershell 编写脚本来完成定时删除过期文件。
  • 相关阅读:
    菜鸟小结
    计算几何题目整理(转)
    poj 3299 Humidex
    基于C的文件操作(转)
    poj 1328 Radar Installation
    poj 1321 棋盘问题(dfs)
    poj 3302 Subsequence
    C# 资产(Property) 与普通字段(field)变量的区别
    Jumping into Cloud, Be Sure You Know How to Get Out
    关于语言的想法。
  • 原文地址:https://www.cnblogs.com/jhabb/p/2040825.html
Copyright © 2011-2022 走看看