Java 写方法 备份数据库 MySql MSSQL

lizejia01 2008-07-11 05:52:42
在项目中 用 java实现数据库备份,是写SQL 语句还是有别的其它方法.

MSSQL 可以 XXX.bak文件形式备份吗? 没有思路.......希望高手们能指导.......谢谢.

MySQL 除过 XXX.sql 形式备份,还有什么形式文件备份吗?
因为 XXX.sql 的文件有点不安全,再一个好像资源也比较大.
...全文
138 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
egcbahzzz 2008-08-05
  • 打赏
  • 举报
回复
UP
yiyi_wx 2008-07-13
  • 打赏
  • 举报
回复
ms的可以将备份数据库的sql写成存储过程 然后程序中调用该过程
附存储过程:转MS SQL版大版主 邹建

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_backupdb]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_backupdb]
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO


create proc p_backupdb
@dbname sysname='', --要备份的数据库名称,不指定则备份当前数据库
@bkfname nvarchar(260)='', --备份文件名,文件名中可以用\DBNAME\代表数据库名,\DATE\代表日期,\TIME\代表时间
@bkpath nvarchar(260)='c:\' --备份文件的存放目录,在该目录下创建每天备份的目录
as
declare @sql varchar(8000)
if isnull(@dbname,'')='' set @dbname=db_name()
if right(@bkpath,1)<>'\' set @bkpath=@bkpath+'\'
set @bkpath=@bkpath+convert(varchar,getdate(),112)+'\'

--创建目录
set @sql='md '+@bkpath
exec master..xp_cmdshell @sql,no_output

--备份处理
if isnull(@bkfname,'')='' set @bkfname='\DBNAME\_\DATE\.BAK'
set @bkfname=replace(replace(replace(@bkfname,'\DBNAME\',@dbname)
,'\DATE\',convert(varchar,getdate(),112))
,'\TIME\',replace(convert(varchar,getdate(),108),':',''))
set @sql='backup database '+@dbname
+' to disk='''+@bkpath+@bkfname+''''
exec(@sql)

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
happy08_xhx 2008-07-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bootupnow 的回复:]
直接用SQL的BACKUP DATABASE 来处理吧。
[/Quote]
xuxiang19840814 2008-07-12
  • 打赏
  • 举报
回复
支持楼上的观点,佳佳加油
da11393 2008-07-11
  • 打赏
  • 举报
回复
用Runtime.exec运行mysqldump来备份数据库

备份数据库的外部命令为
mysqldump -h[host] -u[username] -p[pass] database >[backed file]

可以把mysqldump -h[host] -u[username] -p[pass] database输出到一个OutputStream里面,然后存为文件就可以实现备份

恢复的时候
mysqldump -h[host] -u[username] -p[pass] database <[backed file]
bootupnow 2008-07-11
  • 打赏
  • 举报
回复
直接用SQL的BACKUP DATABASE 来处理吧。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧