`
wtnhwbb
  • 浏览: 163954 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SQL 2000 备份数据库,排它访问权。解决方法

阅读更多
--还原数据库时数据库正在使用导致数据库无会还原,此存储过存在msater数据库下创建。exec killspid cztdba 结束此数据库的进程,这样才能还原数据库
create proc killspid (@dbname varchar(20))     
as     
begin     
declare @sql   nvarchar(500)     
declare @spid  int     
set @sql='declare getspid cursor for select spid from sysprocesses where dbid=db_id('''+@dbname+''')'     
exec (@sql)     
open getspid     
fetch next from getspid into @spid     
while @@fetch_status <> -1     
begin     
exec('kill '+@spid)     
fetch next from getspid into @spid     
end     
close getspid     
deallocate getspid     
end  

 

/**
   * 还原数据库备份文件
   * @return
   */
  public String restoreDatabase() {
    String path = null;
    try {
      path = WebUtils.getRealPath(getServletContext(), restDatabasePath);
    } catch (FileNotFoundException e) {
      logger.error("Can't get web path.", e);
    }
    //文件夹不存在创建
    uploadedFileHandler.setTargetPath(path);
    //得到上传后文件对象
    File file = uploadedFileHandler.doUpload(data, dataFileName);
    if (file.exists()) {
      StringBuffer sbf = new StringBuffer();
      sbf.append("use master exec killspid 'cztdba' restore database cztdba from disk='")
         .append(file.getPath())
         .append("'");
      
      //执行还原数据语句
      try {
        jdbcTemplate.execute(sbf.toString());
        addActionError("还原数据库成功");
      } catch(Exception e) {
        addActionError("还原数据库失败");
      }
      
      /**
       * 不添加这句会找不到数据库里的表,添加上这句会出现异常但是对系统无影响,所以把此异常屏蔽
       */
      try {
        jdbcTemplate.execute("use cztdba");
      } catch(Exception e) {
        //e.printStackTrace();
      }
    }
    return INPUT;
  }
 
  /**
   * 备份数据库文件
   * @return
   */
  public String backDatabase() {
    StringBuffer path = new StringBuffer();
    try {
      path.append(WebUtils.getRealPath(getServletContext(), backDatabasePath));
    } catch (FileNotFoundException e) {
      logger.error("Can't get web path.", e);
    }
    //文件夹不存在创建
    uploadedFileHandler.setTargetPath(path.toString());
    //下载文件名称,随机生成
    downFileName = DateUtil.getDateTime("yyyyMMddhhmmss", new Date()) + ".back";
    //得到文件在系统中实际地址
    path.append(File.separatorChar)
        .append(downFileName);
    //开始备份文件
    StringBuffer sbf = new StringBuffer("backup database cztdba to disk='")
      .append(path.toString())
      .append("'");
    jdbcTemplate.execute(sbf.toString());
    try {
      inputStream = new FileInputStream(path.toString());
    } catch (FileNotFoundException e) {
      e.printStackTrace();
      addActionError("备份文件出现问题");
      return INPUT;
    }
    return SUCCESS;
  }

 

 

分享到:
评论

相关推荐

    sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法

    问题二描述:在对SQL Server数据库进行还原时,提示:System.Data.SqlClient.SqlError:因为数据库正在使用,所以无法获得对数据库的独占访问权。(Microsoft.SqlServer.Smo)。出现此问题的原因是在还原数据库时,有...

    迷你版SQL2000服务器

    +计划任务在备份数据库后,自动清除旧备份,只保留最后5个备份(按文件,不按时间); *修正计划任务无法正确执行的问题,由皮肤引起的。 1.1.9 +增加win8的支持,增加皮肤以美化界面; +增加查询分析器,方便...

    SQL语言在数据库安全方面的应用(全文).docx

    数据库的加密存储与冗余:即对数据库库进行加密处理,以及数据的备份策略。 1) 身份认证:对于非法用户的控制。 对于非法进行数据连接和访问的用户 ,一般采取的策略即系统保护机制,通过设置系统账号和密码进行 ...

    sql备份还原

    asp.net备份SQLServer数据库和还原SQLServer数据库 ...//调用存储过程 killspid(此存储过程应写在Master中) 来避免数据库被占用 这个很关键,要不然就出现错误:"因为数据库正在使用,所以未能获得对数据库的排它访问权

    迷你SQL2000

    +计划任务在备份数据库后,自动清除旧备份,只保留最后5个备份(按文件,不按时间); *修正计划任务无法正确执行的问题,由皮肤引起的。 1.1.9 +增加win8的支持,增加皮肤以美化界面; +增加查询分析器,方便...

    oracle数据库dba管理手册

    11.2.2 数据库访问 326 11.2.3 并发管理器 327 11.2.4 演示数据库 328 11.2.5 版本管理 328 11.2.6 文件定位 328 11.2.7 init.ora参数 329 11.2.8 最活跃的表和索引 330 11.2.9 优化程序 330 11.3 管理Oracle ...

    数据库餐饮管理系统课程设计(2).doc

    1.2开发工具 硬件:笔记本电脑 软件:Windows XP操作系统 Microsoft Visual Studio 2008 Microsoft SQL Server 2000 本系统是采用 C#技术结合SQL Server数据库设计并实现的。窗口的开发工具为...

    金蝶K3日常问题解决手册

    1.15 K3运行时反复提示安装Office2000的解决方法。 12 1.16 K3合并报表如何进行单独安装。 12 1.17 K310.3如何对加密服务进行加载和反加载。 12 1.18 K3不同组件的手动注册方法。 12 1.19 K3安装过程中报如图错误: ...

    L-Blog v1.08(SE) Final兄弟修改版.rar

    6:虽然独立了数据库,后台管理也同时更新,后台可以直接删除访问记录,可以压缩和备份数据库. 7:处理了一些页面可能出现乱码的情况,关闭了引用页面,防止垃圾引用,如果要开启,请删除trackback.asp的以下内容:   8:...

    2011年最新ASP站长助手 v1.0.rar

    把程序放在一台既能让外网访问又能被内网访问的WEB服务器上, 这样你就可以从网内通过它来上网,可以从网外通过它来访问内网网站, 这是一个神奇的功能) 16.超强的 ASP CMD命令运行(两种) 17.14.Sql提权(通过SQL...

    星外提权工具

    星外虚拟主机提权目录 C:\Documents and Settings\All Users\Application Data\Microsoft\Media Index\ C:\php\PEAR\ C:\Program Files\Zend\ZendOptimizer-3.3.0\ C:\Program Files\Common Files\有的杀毒 ...

    先锋内容管理系统 v1.5.zip

    4、周密的安全策略和攻击防护:表单令牌机制、字段类型验证、输入过滤、上传安全过滤、防止XSS攻击和目录安全保护等功能,对SQL参数进行敏感字符过滤、对密码、cookie进行了不可逆加密处理,数据库备份功能、对管理...

    2011年最新ASP站长助手.zip

    把程序放在一台既能让外网访问又能被内网访问的WEB服务器上, 这样你就可以从网内通过它来上网,可以从网外通过它来访问内网网站, 这是一个神奇的功能) 16.超强的 ASP CMD命令运行(两种) 17.14.Sql提权(通过SQL...

    Perl 实例精解(第三版).pdf

    练习6 它是sed、awk或grep吗?尝试Perl 第8章 获得控制:正则表达式元字符 8.1 正则表达式元字符 8.1.1 用于单字符的元字符 8.1.2 白空元字符 8.1.3 重复模式匹配的元字符 8.1.4 tr或y函数 8.2 统一...

    先锋内容管理系统 X1.0

    4、周密的安全策略和攻击防护:表单令牌机制、字段类型验证、输入过滤、上传安全过滤、防止XSS攻击和目录安全保护等功能,对SQL参数进行敏感字符过滤、对密码、cookie进行了不可逆加密处理,数据库备份功能、对管理...

    先锋内容管理系统最新官方版

    4、周密的安全策略和攻击防护:表单令牌机制、字段类型验证、输入过滤、上传安全过滤、防止XSS攻击和目录安全保护等功能,对SQL参数进行敏感字符过滤、对密码、cookie进行了不可逆加密处理,数据库备份功能、对管理...

    精迅CMS v2.1 简体中文 UTF8 正式版.zip

    10、强大的数据管理功能,可以在线备份、恢复数据库、执行SQL语句。 11、支持广告类型:图片广告、FLASH广告、文字广告、代码广告,广告调用非常方便只需在模板中添加广告标记就好了! 12、远程上传,添加或采集...

    伴江行购物系统源码 6.0

    BJXSHOP购物系统提供了迄今最强大的WEB界面数据备份和恢复功能,使得管理员不需任何服务器权限即可轻松维护BJXSHOP购物系统数据库。提供在线数据库优化功能以消除存储碎片,保证存取效率。可方便的查看系统占用空间...

Global site tag (gtag.js) - Google Analytics