/*备份数据库的存储过程*/ if exists( select * from sysobjects where name='pr_backup_db' and xtype='p' ) begin drop proc pr_backup_db end gocreate proc pr_backup_db @flag varchar(20) out, @backup_db_name varchar(128), @filename varchar(1000) --路径+文件名字 as declare @sql nvarchar(4000),@par nvarchar(1000) if not exists( select * from master..sysdatabases where name=@backup_db_name ) begin select @flag='db not exist' /*数据库不存在*/ return end else begin if right(@filename,1)<>'\' and charindex('\',@filename)<>0 begin select @par='@filename varchar(1000)' select @sql='BACKUP DATABASE '+@backup_db_name+' to disk=@filename with init' execute sp_executesql @sql,@par,@filename select @flag='ok' return end else begin select @flag='file type error' /*参数@filename输入格式错误*/ return end endGO 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/haojialin/archive/2006/03/30/645004.aspx
if exists(
select * from sysobjects
where name='pr_backup_db' and xtype='p'
)
begin
drop proc pr_backup_db
end
gocreate proc pr_backup_db
@flag varchar(20) out,
@backup_db_name varchar(128),
@filename varchar(1000) --路径+文件名字
as
declare @sql nvarchar(4000),@par nvarchar(1000)
if not exists(
select * from master..sysdatabases
where name=@backup_db_name
)
begin
select @flag='db not exist' /*数据库不存在*/
return
end
else
begin
if right(@filename,1)<>'\' and charindex('\',@filename)<>0
begin
select @par='@filename varchar(1000)'
select @sql='BACKUP DATABASE '+@backup_db_name+' to disk=@filename with init'
execute sp_executesql @sql,@par,@filename
select @flag='ok'
return
end
else
begin
select @flag='file type error' /*参数@filename输入格式错误*/
return
end
endGO
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/haojialin/archive/2006/03/30/645004.aspx
你的这个存储过程创建可以,但是执行的时候报错! pr_backup_db无效!
rman> run{
allocate channel c2 --分配通道
device type disk --指定是备份到硬盘
format='c:\backup\' --指定位置
backup database plus archivelog --热备
}
我现在想实现的是数据库的定时备份,你说的这个Rman能实现吗???
肯定可以啦,Google下有很多
楼主大哥,你到时把SQL的那两个参数换成你用的啊
pr_backup_db又不是你用的名,当然无效了
小数据量可以用plsql中的exp备份但是大数据量需要用RMAN备份