SQL数据库自动备份并删除源文件的实现 (sql数据库查询语句基本语法)

教程大全 2025-07-12 17:56:33 浏览

SQL数据库的备份是DBA都需要知道的,下面就将为您介绍如何让产生后的备份文件自动压缩并删除源文件的方法,供您参考,希望对您有所帮助。

其实这里利用的是winrar的命令行来执行压缩并删除源文件的方法的

winrar命令行的压缩命令是[winrar路径] a [参数] [压缩后的路径] [需要压缩的文件路径],这是本文需要用到的命令格式

之后我们就要解决如何让SQL来执行这个命令行了

方法就是调用SQL的exec master..xp_cmdshell @cmd的存储过程方法来执行,这样我们就能够实现我们的目的了,这其实在我前面的文章介绍过

大概方向已经取得,之后就是按实际要求来操作它们了,这里我只讲我的使用方法,其他具体的还是要看大家的具体需要的

这是备份的命令:declare @filename varchar(100)set @filename=’D:\’+convert(char(10),getdate(),120) –设置备份文件的路径和文件名print @filenamebackup>


SQL数据库自动备份

企业管理器里 ->在所要进行备份的数据库上 右键 ->所有任务 ->维护计划 ->点四次下一步 ->就是备份了 。 说明:这个页面上你可以点更改来 详细的配置如每周-~周五00:00自动备份,及路径设置等。 --------------------------------------------问题补充:强调一下,备份的文件名是“数据库名+备份日期”,每次更新的,否则会覆盖原来的备份,就没有意义了!提问者:汉之尊 - 经理 五级--------------------------------------------针对你的这种做法那你尝试用存储过程吧,灵活、可以根据具体需要定制:在要备份的数据上建立以下存储过程:CREATE PROCEDURE [dbo].[过程名] ASdeclare@filename nvarchar(100),--文件名@NowDay int --设置时间set @filename=D:\data+cast(Day(GetDate()) as varchar(2))+ --文件路径及文件名Set @NowDay=Day(GetDate())if (@NowDay>=20) or (@NowDay<=10) --这个月的20到下个月的10要备份beginprint @filename BACKUP DATABASE [数据库名()你也可以设参数] TO DISK = @filename WITH INIT , NOUNLOAD , NAME = NXX数据备份, NOSKIP , STATS = 10, NOFORMATend自己推敲一下,相信你会实现的!

我用sql语句备份数据库生成.bak文件,如何用这个备份文件?

用SQL2000还原bak文件1.右击SQL server 2000实例下的“数据库”文件夹。 就是master等数据库上一级的那个图标。 选择“所有任务”,“还原数据库”2.在“还原为数据库”中填上你希望恢复的数据库名字。 这个名字应该与你的源码中使用的数据库名字一致。 3.在弹出的对话框中,选“从设备”4.点击“选择设备”5.点击“添加”6.点击“文件名”文本框右侧的“...”按钮,选中你的“”文件,并点击确定回到“选择还原设备”对话框。 7.点击确定回到“还原数据库”对话框。 8.点击“选项”选项卡9.将所有“移至物理文件名”下面的路径,改为你想还原后的将数据库文件保存到的路径。 如果你不希望改变,可以直接点击确定。 这时便恢复成功了。 很不错!我今天终于把搞定了,这里有个要注意的地方就是选项中的“移至物理文件名”下面的路径,这个路径一定要修改哦,不然会出现错误

编写一个程序,用于实现文件的备份

SQL数据库自动备份并源文件的实现

注意本脚本是应用于archive log模式下的,另外数据库的用户名密码,自己在脚本里改一下,脚本是带参数的,参数是备份的目标目录,注意要有写权限。 #!/bin/sh mypath=$1 if [ -z $mypath ] ; Then echo please use this command like ./backup /u01/backup else if [ -d $mypath ] ; then oracle_sid=dzzd; export oracle_sid oraenv_ask=no; export oraenv_ask rm -rf sqlplus -s system/oracle9i<set head off sql>set feedback off sql>spool sql>select cp ||file_name|| $mypath||substr(file_name,instr(file_name,/,-1,1)) from dba_data_files where tablespace_name=trim($spacename); sql>spol off 但是在中还是有 select ........... spool off 等内容 不能直接sh 运行啊?txfy 回复于:2003-11-07 15:32:33 要整个执行前面的 sqlplus -s system/oracle9i<就可以了(dir为你要备份到的目录)。 #!/bin/sh oracle_sid=dzzd; export oracle_sid oraenv_ask=no; export oraenv_ask rm -rf sqlplus -s / as sysdba <trim($mypath) like %/; spool off exit dire if [ -s ] ; then echo error:please do not add / at the end of the direcotry! exit fi if [ -d $mypath ] ; then rm -rf sqlplus -s / as sysdba<

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐