`

mysql实现自动远程备份

    博客分类:
  • PHP
 
阅读更多

mysql数据库备份给数据库的操作带来很大的简便,很好的保证了mysql数据库中数据库的绝对安全,如果不备份数据库,数据库中数据丢失了,工作人员则是无计可施,而数据库的备份就使数据库管理员更好的管理数据库。如今,随着技术的不断发展,mysql数据库的自动远程备份也得到了实现。

一、实现本地自动备份数据库很简单:

1.以root身份登陆

2.计划任务(每天的3:30自动执行 /usr/bin/mysqlbackup)

crontab
0 3:30 * * * /usr/bin/mysqlbackup

3.写一个自动备份数据库脚本
vi /usr/bin/mysqlbackup
#!/bin/bash
mv /home/.../db_bak5.tgz /home/.../db_bak6.tgz
mv /home/.../db_bak4.tgz /home/.../db_bak5.tgz
mv /home/.../db_bak3.tgz /home/.../db_bak4.tgz
mv /home/.../db_bak2.tgz /home/.../db_bak3.tgz
mv /home/.../db_bak1.tgz /home/.../db_bak2.tgz
rm -rf /home/.../db_bak.txt
/usr/bin/mysqldump -uroot -ppassword dbname
> /home/.../db_bak.txt
cd /home/.../
tar czvf db_bak1.tgz db_bak.txt

二、这样每天的3:30就会在本地目录/home/.../下生成相应的数据库备份,开始由于/home/.../目录下缺少数据系统会提示错误,这是正常的。

三、至于远程备份可以配合使用ftp或scp命令实现,方法很简单,查一下相关命令的使用,然后再改动一下mysqlbackup脚本就可以了。

上文中就是在mysql数据库中实现数据库自动远程备份,和高兴与大家分享这个技巧,希望对大家能够有所帮助。

 

mysql自动本地+远程双备份  

前一阵子,远程机房所放bbs的服务器老是当机,为了不影响公司的事务,此时要临时迁移到公司内部,程序内部是有的,可是没有同步的数据库,被主管 给说了一通,遂发誓要搞好数据库的备份,借鉴了一些网友的思想与实现方法.终于实现好了,而且经宝宝老师的提醒,拿出了两套方案。
一种是网上很普遍的那种就是:利用MYSQLDUMP命令来保存数据库的SQL语句,这种方法的好处是兼容性好,因为SQL语句是通用的,适合各种版本的mysql数据库,但也有缺点,那就是偶尔会出现SQL语句中一些引号的匹配问题;
这就有了第二种:直接拷贝MYSQL文件夹下的data下的bbs数据库文件夹的所有文件。
下面给出实现的一些代码,供各位切磋:
第一种方法:
[php]
<?php
/***********************************************************************
@file name:mysqldump_all.php
@author:ChengXiangChuang
@gtalk:chengxch@gmail.com
@msn:cxc-0378@163.com
@creat time: 2006-12-20 12:32
@description:利用mysql自带的mysqldump来备份所有的表
*************************************************************************/
//保存目录,路径要用反斜杠.您需要手动建立它.
$store_folder = 'D:\ServerRoot\mysql5\database_bak';
//该帐号须有操作[所有]的数据库及FILE的权限,否则有些数据库不能备份.
$db_username = "root";  //数据用户名
$db_password = "123456"; //数据库密码
$time=time();
//按星期命名,只保存最近一周的数据库备份
$nowdir = "$store_folder\mysql_".date("l",$time);
if(file_exists("$nowdir.rar"))
{
@unlink("$nowdir.rar");//如果同名文件已经存在,则删除之
}
else
{
@mkdir($nowdir); //如果不存在则,则创建之
}
mysql_connect("localhost","$db_username","$db_password");
$query=mysql_list_dbs();
while($result=mysql_fetch_array($query))
{
system ('D:\ServerRoot\mysql5\bin\mysqldump --opt '."$result[Database] -u{$db_username} ".($db_password?"-p{$db_password}":"")." > $nowdir\\$result[Database].sql");
echo "dumping database `$result[Database]`...\n";
}
echo "\nWinrar loading...\n";
//注意WinRAR.exe存放的路径,根据需要修改
system( "D:\ServerRoot\db_bak\winrar\WinRAR.exe a -ep1 -r -o+ -m5 -df \"$nowdir.rar\" \"$nowdir\" " );
echo "\nOK!\n";
?>
[/php]
上面是第一种方法备份全部数据库,如果只备份某个数据库如BBS就用下面的一段代码替换
[php] //如果要只是备份一个数据库就用
$db_name= "bbs"; //要备份的数据库名
$result=mysql_fetch_array($query);
if(is_array($result))
{
system ('D:\ServerRoot\mysql5\bin\mysqldump --opt '."{$db_name} -u{$db_username} ".($db_password?"-p{$db_password}":"")." > $nowdir\\{$db_name}.sql");
echo "dumping database `{$db_name}`...\n";
}
替换
while($result=mysql_fetch_array($query))
{
system ('D:\ServerRoot\mysql5\bin\mysqldump --opt '."$result[Database] -u{$db_username} ".($db_password?"-p{$db_password}":"")." > $nowdir\\$result[Database].sql");
echo "dumping database `$result[Database]`...\n";
}[/php]
第二种方法:
[php]<?php
/***********************************************************************
@file name:mysql_copy.php
@author:ChengXiangChuang
@gtalk:chengxch@gmail.com
@msn:cxc-0378@163.com
@creat time: 2006-12-20 12:32
@description:先拷贝mysql文件夹data下的某个数据库
(如bbs)到另外的地方(如果直接在该文件下压缩会
出错,因为mysql并没有停止进程),然后压缩后存放到本地.
*************************************************************************/
//保存目录,路径要用反斜杠.您需要手动建立它.
$store_folder = 'D:\ServerRoot\mysql5\database_bak';
//数据库待备份的文件目录
$source_data = 'D:\ServerRoot\mysql5\data\bbs\*.*';
$time=time();
$nowdir = "$store_folder\bbs_".date("l",$time); //按星期命名
//echo "$nowdir.rar";
if(file_exists("$nowdir.rar"))
{
@unlink("$nowdir.rar");//如果同名文件已经存在,则删除之
}
else
{
@mkdir($nowdir); //如果不存在则,则创建之
}
$dest_data = $nowdir."\\";
//先将数据库文件拷贝出来
exec("copy $source_data,$dest_data");
echo "\nWinrar loading...\n";
//对拷贝出来的数据库文件进行压缩
system( "D:\ServerRoot\db_bak\winrar\WinRAR.exe a -ep1 -r -o+ -m5 -df \"$nowdir.rar\" \"$nowdir\" " );
echo "\nOK!\n";
?> [/php]
对于压缩文件的东西,你只需将你安装的WINRAR文件夹下的Rarreg.key和WinRAR.exe拷贝出来建立一个新文件夹winrar,不过不要担心,你可以从我上传的源码中获得。
对于自动备份,你只需用CGI方式运行php.exe创建.bat文件然后添加到任务计划中几可以拉。
如对第一种方法建立.bat文件,在编辑器中输入如下代码(我的PHP放在D:\ServerRoot\php5_2):
D:\ServerRoot\php5_2\php.exe mysqldump_all.php
复制代码
然后保存为mysqldump_all.bat即可
对于第二种:
D:\ServerRoot\php5_2\php.exe mysql_copy.php
复制代码
然后保存为bbs_copy.bat即可

分享到:
评论

相关推荐

    mysql实现自动远程备份一办法

    ### MySQL 实现自动远程备份的方法 #### 一、本地自动备份数据库步骤 1. **以 root 身份登录** - 使用 root 用户登录 MySQL 服务器,确保有足够的权限执行备份操作。 2. **设置计划任务(Cron Job)** - 通过 ...

    如何在linux下实现mysql数据库每天自动备份 txt

    ### 如何在Linux下实现MySQL数据库每天自动备份 在Linux环境下进行MySQL数据库的日常自动备份是一项重要的维护工作,它能够确保数据的安全性与完整性。本文将详细介绍如何通过编写Shell脚本并结合Cron定时任务来...

    mysqldump java远程备份mysql数据库 cmd备份

    如果你的项目中已经使用了Java,那么可以通过Java代码调用mysqldump命令来实现自动化备份。首先,需要引入一个能够执行系统命令的库,如Apache Commons Exec。以下是一个简单的示例: ```java import org.apache....

    Mysql数据库远程备份脚本

    Mysql数据库远程备份脚本:实现在windows上按日期备份远程mysql数据库数据,结合windows任务可实现自动备份

    自动定时备份远程服务器的mysql数据库并存储在本地

    本篇文章将详细介绍如何实现这一目标,将远程服务器的MySQL数据库自动定时备份并存储在本地。 首先,我们需要了解MySQL的数据备份类型。常见的备份方式有全量备份和增量/差异备份。全量备份是备份所有数据库或选定...

    远程备份MySQL数据库

    "远程备份MySQL数据库" 远程备份MySQL数据库是一种非常重要的数据库管理任务,旨在保护数据库中的数据免受意外损失或篡改的影响。利用sqldump工具,可以轻松地将远程数据库备份到本地,确保数据的安全性和可靠性。 ...

    windows系统备份远程mysql到本地服务器

    在Windows操作系统环境下,为了实现定期自动备份远程MySQL数据库到本地服务器,我们需要遵循一系列步骤和技术。这里,我们主要涉及的是使用`sqldump.exe`工具,这是一个MySQL数据库提供的命令行实用程序,用于生成...

    Windows下Mysql自动备份数据脚本

    1.备份MySQL到指定的目录。 2.支持压缩备份。无需安装压缩软件支持CAB压缩备份。或者安装RAR软件,支持RAR压缩备份。 3.支持备份日志。可以了解哪些数据库没有备份成功。 4.支持保留多少次备份。也就是删除多少次...

    mysql自动备份工具

    MySQL自动备份工具是一种高效、便捷的解决方案,用于定期保护和保存MySQL数据库中的数据。它允许用户设置特定的备份时间,确保在系统运行过程中不会丢失重要信息。这些备份通常以.sql格式存储,这是一种文本文件格式...

    mysql自动化备份方案

    - **撰写MySQL自动备份脚本**:通过编写bash脚本实现MySQL数据库的自动化备份。脚本中定义了数据库名称、用户名、密码等关键参数,并指定了备份文件的保存路径。使用`mysqldump`命令进行热备份,即在不中断数据库...

    远程备份数据

    总结来说,远程备份数据是保障业务连续性的关键措施,通过阿里云等云服务提供商,我们可以实现高效、安全的远程备份和程序更新,从而增强系统的稳定性和可靠性。理解并掌握这些技术对于任何IT专业人员来说都是至关...

    MySQL自动备份

    ### MySQL自动备份与清理策略详解 #### 一、Shell脚本+Cron实现MySQL数据库自动备份及清理 在现代企业环境中,数据库的安全性至关重要。对于基于MySQL的企业而言,定期备份数据库不仅可以确保数据的安全,还能在...

    MySQL数据库自动备份、还原bat

    通过上述批处理脚本,我们可以实现MySQL数据库的自动化备份与恢复操作。这不仅大大减轻了数据库管理员的工作负担,还提高了数据安全性。需要注意的是,在实际部署前,应根据自己的环境调整脚本中的参数,例如数据库...

    mysql上线自动备份脚本

    本文介绍的MySQL自动备份脚本主要用于在线环境中对MySQL数据库进行定期备份,并同时实现了本地与远程FTP服务器的双重备份策略。此脚本已经经过了长时间的实际验证,运行稳定可靠。 #### 二、脚本功能特点 1. **自动...

    linux自动备份文件 并上传到远程服务器 脚本实现

    本文将详细介绍如何利用Shell脚本在Linux系统上实现MySQL数据库的定时自动备份,并通过FTP协议上传至远程服务器。 #### 目标需求分析 目标是开发一个脚本,该脚本能定期执行MySQL数据库的备份,并将这些备份文件...

    Linux(Centos)全自动异地备份数据(WEB+Mysql).pdf

    10. 远程备份的概念:异地备份意味着将数据备份到物理位置不同的服务器上,这样可以在本地服务器发生灾难性故障时,依然保证数据的安全。 综合以上知识点,该文件应当详细描述了一个基于CentOS系统的自动备份解决...

    mysql自动备份shell脚本

    MySQL自动备份是保护网站数据安全的关键措施,尤其是在服务器上运行着关键业务的环境中。手动备份虽然可靠,但耗时且容易遗漏,而通过编写shell脚本实现自动化备份则能极大地提高效率,确保数据的安全性。以下是一些...

Global site tag (gtag.js) - Google Analytics