成都网站建设|域名注册|虚拟主机|网站制作|网站案例|网站优化|网站推广|企业邮局|服务器租用|广告设计
在虚拟主机的环境下,因为没有管理员权限,只有数据库使用权限,定时备份SQL数据是 个比较麻烦的问题。解决思路如下:(仅对SQL2000有效) 1. 利用T-SQL备份数据库到指定目录,文件名根据日期指定。 2. 利用Resin的定时功能,定时执行备份。 3. 用户定时下载备份并且删除过期备份。 导出全部数据到Excel也比较实用。下面提供的方法可以导出库中的全部表,也可以指定 几个表导出。注意: 1. 因为是导出全部数据,在数据比较多的情况下慎用。 2. 理论上应该适用各种JDBC数据库,仅对SQL2000测试过 3. 对于B/S下载,建议不要在服务器上生成文件,以免造成垃圾文件。直接从HTTP的Response中取得OutputStream进行输出。 4. Excel操作的API请到这里下载:http://www.andykhan.com/jexcelapi/ package steeven; import jxl.write.*; import java.util.*; import java.sql.Statement; import java.sql.ResultSet; import java.sql.Types; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.text.DateFormat; import java.io.*; /** * <p>Title: 数据库备份</p> * <p>Description: 在Java中备份数据库</p> * @author steeven * @version 1.0 */ public class DBackup{ Context ctx ; public DBackup(Context ctx) { this.ctx = ctx; } /** * 备份SQL2000数据库到文件,整个数据库备份 * 文件名后面将追加备份年月日。例如:c:\dbBackup\mydb031109 * @param file 导出的文件名全路径。例如:"c:\\dbBackup\\mydb" */ public void backup(String dbName, String file)throws SQLException{ String sql = "BACKUP DATABASE ["+dbName+"] TO DISK = N'"; sql += file + new SimpleDateFormat("yyMMdd").format(new Date()); sql += "' WITH NOINIT , NOUNLOAD , NAME = N'lvdong', NOSKIP ,