‘壹’ 求sqlBackupAndFTP(数据库备份软件) V10.1.25 绿色版网盘资源
链接:
提取码:11ih
软件名称:SQLBackupAndFTP(数据库备份软件)V10.1.25绿色版
语言:英文软件
大小:7.87MB
类别:系统工具
介绍:SQLBackupAndFTP是郑猜一款国外专业的数据库备份工具。该款数据库拍悔备份软件每天必须发送到一个远程FTP服务器,这将大大节省维修时间,让您更好的管理自己的喊贺型服务器。
‘贰’ sql server 能不能自动备份到网盘
1.给SqlServer设置维护计划定时备份
这个操作比较简单,按向导新增维护计划即可。
2.自动压缩脚本
c:\Progra~2\WinRar\winRar.exe a D:\bak\database_buckup_%date:~0,4%_%date:~5,2%_%date:~8,2% d:\bak\database_*%date:~0,4%_%date:~5,2%_%date:~8,2%_*.bak 11
备份文件的格式是:database_backup_2015_05_15_010001_5555338.bak,
压缩文件格式是:data_2015_06_15.rar这种样式。
3.自动删除旧的备份
设置一个计划任务,在压缩前把老的备份删除。这里通过bat脚本调用vbs脚本,因为vbs脚本相对好写一点。
autoDeleteOld.bat
cscript d:/bak/autoDeleteOldBak.vbs11
autoDeleteOldBak.vbs
const reMainCount = 1 '保留几day
Dim fso,dc,file,files,folder,subfolders,subfolder
set fso=createobject("Scripting.FileSystemObject")
set folder=fso.getfolder("D:\bak")
Dim today
today=Now
for each tempFile in folder.files
dim arr
arr=Split( tempFile,"_backup_")
if UBound(arr)>0 then
dim tempDate,diff
tempDate=Cdate( Replace( Left(arr(1),10),"_","-"))
diff= DateDiff("d",tempDate,today)
if (diff>reMainCount) then
fso.deleteFile(tempFile),true
end if
end if
next
set fso=
如果另外有ftp服务器,可以压缩文件后,远程同步到另一台服务器上。
‘叁’ 如何将SQL数据库备份到网络共享
定期备份SQL数据库是必须的。我们已经覆盖的方式就可以轻松备份您的所有SQL Server数据库到本地硬盘中,但这并不能防止驱动器和/或系统故障。作为针对此类灾难的额外保护层,您可以在网络共享上复制或直接创建备份。
在本地备份,然后复制到网络共享
完成此任务的首选和最直接的方法是简单地创建数据库的本地备份,然后将相应的备份文件复制到网络共享。您可以通过创建如下所示的批处理脚本来完成此操作:
SET LocalFolder = C:Program Files Microsoft SQL ServerMSSQL.1MSSQLBackup
SqlCmd -E -Q“备份数据库MyDB到磁盘=%LocalFolder%MyDB.bak”
XCopy“%LocalFolder%MyDB.bak”“ 192.168.16.55BackupDatabases”/ Z / V
DEL“%LocalFolder%MyDB.bak”
此脚本执行以下操作(逐行):
将变量设置为本地SQL备份目录。
创建MyDB的SQL备份(使用Windows身份验证)到本地SQL备份目录。
将本地备份文件复制到网络共享。
删除本地备份文件。
- 如果您使用备用帐户运行SQL Server实例,请务必记住这些要点。如果采取适当的预防措施,则这些不显示阻止程序,则应考虑添加额外的硬盘驱动器空间,然后实施本地备份和复制,以便可以使用本地帐户运行SQL服务。
同样,这是首选方法,因为它的工作原理和备份失败的可能性是最小的,因为备份是在本地磁盘上创建。但是,如果没有足够的磁盘空间来存储备份文件的本地副本,则此操作将失败。在这种情况下,您需要添加额外的磁盘空间或直接备份到网络共享。
直接备份到网络共享
通常,当您尝试使用以下命令直接创建备份到网络共享时:
SqlCmd -E -Q“备份数据库MyDB到磁盘= 192.168.16.55BackupDatabasesMyDB.bak”
你很可能会得到一个错误的行:
消息3201,级别16,状态1,服务器JF,行1
无法打开备份设备 192.168.16.55BackupDatabasesMyDB.bak。操作系统错误5(访问被拒绝。)。
消息3013,级别16,状态1,服务器JF,第1行
BACKUP DATABASE异常终止。
尽管使用Windows身份验证(-E开关)和Windows帐户作为通过Windows资源管理器访问和复制文件到共享的能力运行SQL备份命令,仍会出现此错误。
此操作失败的原因是SQL命令在SQL Server服务运行的帐户的边界内执行。当您在计算机上查看服务列表时,很可能您将看到运行为(登录为)列的SQL Server服务本地系统或网络服务,它们是没有网络访问权限的系统帐户。
在我们的系统上,网络共享命令的备份失败,因为我们有SQL Server服务作为本地系统运行,再也无法获得任何网络资源。
为了允许SQL直接备份到网络共享,我们必须将SQL Server服务作为可访问网络资源的本地帐户运行。
编辑SQL Server服务的属性,并在“登录”选项卡上将服务配置为作为具有网络访问权限的备用帐户运行。
单击“确定”后,您将收到一条提示,指示在重新启动服务之后,设置才会生效。
重新启动服务。
服务列表现在应显示SQL Server服务正在作为您配置的帐户运行。
现在当您运行命令直接备份到网络共享:
SqlCmd -E -Q“备份数据库MyDB到磁盘= 192.168.16.55BackupDatabasesMyDB.bak”
您应该会看到一个成功消息:
处理数据库MyDB的152页,文件1上的文件MyDB。
为数据库MyDB处理2页,文件1上的文件MyDB_log。
BACKUP DATABASE在0.503秒(2.493 MB /秒)中成功处理了154页。
使用备份文件现在在网络共享目录:
网络共享注意事项请务必注意,备份命令希望能够直接连接到网络共享,而不会提示您输入凭据。您配置要运行的SQL Server服务的帐户必须与网络共享具有可信连接,其中相应的凭据允许访问,否则可能会发生以下错误:
消息3201,级别16,状态1,服务器JF,行1
无法打开备份设备 192.168.16.55BackupDatabasesMyDB.bak。操作系统错误1326(登录失败:未知用户名或密码错误。)。
消息3013,级别16,状态1,服务器JF,第1行
BACKUP DATABASE异常终止。
此错误表示网络共享不接受帐户的用户名和密码,并且命令失败。
另一个要记住的问题是备份直接执行到网络资源,因此网络连接中的任何打嗝可能会导致您的备份失败。因此,您只应该备份到稳定的网络位置(即可能不是VPN)。
安全隐患
如前所述,使用在本地备份然后复制到网络共享的方法是首选,因为它允许您将SQL服务作为仅具有本地系统访问权限的帐户运行。
通过将服务作为备用帐户运行,您打开了潜在的安全问题的大门。例如,恶意SQL脚本可以在备用帐户下执行并攻击网络资源。此外,对相应帐户(密码更改/到期或帐户的删除/禁用)的任何更改将导致SQL Server服务无法启动。
‘肆’ 如何自动备份数据库后将备份自动上传到FTP服务器
这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到远程FTP服务器的部署,在Linux技术交流群中,也有朋友会遇到这方面的问题,可以将此文分享给群友共益。
注意:任何的操作都会具有风险性,请在本机实际测试通过之后再部署到服务器环境,这样即熟练的掌握了操作的技巧,也能在测试过程中发现问题,寻找解决方法。
说明:我这里要把MySql数据库存放目录/var/lib/mysql下面的data数据库备份到/home/mysql_data里面
并且保存为mysqldata_bak_2012_12_19.tar.gz的压缩文件格式(2012_12_19是指备份执行时当天的日期)
然后只保留最近7天的备份
再把备份文件通过ftp服务器上传到指定空间,只保留最近7天的数据
实现步骤:
1、创建保存备份文件的路径:/home/mysql_data
cd /home
mkdir mysql_data
2、创建备份脚本文件:/home/mysql_data/mysql_databak.sh
cd /home
cd mysql_data
touch mysql_databak.sh
vim mysql_databak.sh
输入以下内容:
#######################################################################################################
#!/bin/sh
DUMP=/usr/bin/mysqlmp #mysqlmp备份文件执行路径
OUT_DIR=/home/mysql_data #备份存放路径
LINUX_USER=root #系统用户名
DB_NAME=data #要备份的数据库名字
DB_USER=root #数据库账号 注意:非root用户要用备份参数 --skip-lock-tables,否则可能会报错
DB_PASS=123456 #数据库密码
DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
cd $OUT_DIR #进入备份存放目录
DATE=`date +%Y_%m_%d` #获取当前系统时间
OUT_SQL="$DATE.sql" #备份数据库的文件名
TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最终保存的数据库备份文件名
$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #备份
tar -czf $TAR_SQL ./$OUT_SQL #压缩为.tar.gz格式
rm $OUT_SQL #删除.sql格式的备份文件
chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改备份数据库文件的所有者
find $OUT_DIR -name "mysqldata_bak_*" -type f -mtime +$DAYS -exec rm {} \; #删除7天前的备份文件
deldate=` date -d -7day +%Y_%m_%d ` #获取7天前的时间
ftp -n<<!
open 192.168.1.1 21 #打开ftp服务器。21为ftp端口
user admin 123456 #用户名、密码
binary #设置二进制传输
cd mysqlbak #进入ftp目录(这个目录必须为ftp空间真实存在的目录)
lcd /home/mysql_data #列出本地目录
prompt
put mysqldata_bak_$DATE.tar.gz mysqldata_bak_$DATE.tar.gz #上传目录中的文件
delete mysqldata_bak_$deldate.tar.gz mysqldata_bak_$deldate.tar.gz #删除ftp空间7天前的备份
close
bye !
#######################################################################################################
3、修改文件属性,使其可执行
chmod +x /home/mysql_data/mysql_databak.sh
4、修改/etc/crontab
vi /etc/crontab
在下面添加
30 1 * * * root /home/mysql_data/mysql_databak.sh
表示每天凌晨1:30分执行备份
5、重新启动crond使设置生效
/etc/rc.d/init.d/crond restart
chkconfig crond on #设为开机启动
service crond start #启动
每天你在/home/mysql_data目录下面可以看到类似mysqldata_bak_2012_12_19.tar.gz这样的压缩文件
如果需要恢复文件的时候,只需要把这个文件解压即可
解压缩tar -zxvf mysqldata_bak_2012_12_19.tar.gz
至此,我们完成了Linux中Mysql数据库自动备份并上传到远程FTP服务器的部署。
‘伍’ 如何将sql数据库自动定时的备份或更新到另一台电脑
两个思路:
1、在备份机共享一个目录出来,在生产机建立到备份机共享目录的网络映射驱动器,之后在生产机执行数据库备份时,直接将备份卷质指定为网络驱动器。
2、备份数据库到生产机的某个磁盘,然后用定时任务传送到备份机。备份机可以安装一个ftp server软件,直接用ftp的方式传送,这样也比较安全、可靠。