文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>java调用t-sql进行数据库的备份和还原...

java调用t-sql进行数据库的备份和还原...

时间:2010-08-18  来源:Li_ZiYue

     前段时间做了个项目,需要用到Sql Server2000数据库,使用了T-SQL来实现数据库的备份和恢复,总结一下:

java调用T-SQL备份数据库:

       备份数据库很简单,主要使用了改语句 String sql = "backup database " + dbName + " to disk = '" + bakupname + "'";

由于数据库操作要求安全性,所以该语句放在了hibernate的回调函数里,具体代码参考如下:

       

public Object doInHibernate(Session session)
      throws HibernateException, SQLException {
     conn = session.connection();
     stmt = conn.createStatement();
     this.backupDb(path, bakupname, fileName);
     return null;
    }

    private void backupDb(String path, String bakupname,
      String fileName) {
     try {
      String sql = "backup database " + dbName
        + " to disk = '" + bakupname + "'";
      stmt.executeUpdate(sql);
     } catch (Exception e) {
      e.printStackTrace();
     }
    }

     

java调用T-SQL还原数据库:

       在进行数据库还原时遇到了点小问题,使用了改语句进行还原   String sql = "restore database "
        + dbName + " from disk = '" + reName + "'"
        + "  WITH FILE = 1, NOUNLOAD , STATS = 10, RECOVERY , REPLACE";

当执行代码是发现出错了,仔细查了查,原来在进行数据库还原时需要设置为单用户模式,于是我修改了sql,

String sql = "use master;alter database " + dbName
    + " set  single_user with rollback immediate;restore database "
    + dbName + " from disk = '" + reName + "'"
    + "  WITH FILE = 1, NOUNLOAD , STATS = 10, RECOVERY , REPLACE";

运行代码,成功了,但当我再次访问jsp界面是,有出现了错误,错误显示由于使用了单用户模式,不能访问数据库,

于是我想,还原成功后,将权限修改过来不久行了,于是我添加了一条sql,在还原成功后,执行该sql:

String sql2 = "use master;alter database " + dbName + " set  multi_user";

好了,这次能够访问了,不知道这样的安全性如何,期待高手指点!

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载