Mysql数据库备份策略

Mysql数据库备份策略

我的petstore所用的数据库是MysqlMysql的数据库备份不象那些企业界数据库那样完善,分为完全备份、差分备份以及日记纪录等等。Mysql备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件。

mysqldumpMySQL服务器协同操作。直接拷贝方法在服务器外部进行,并且你必须采取措施保证没有客户正在修改你将拷贝的表。如果你想用文件系统备份来备份数据库,也会发生同样的问题:如果数据库表在文件系统备份过程中被修改,进入备份的表文件主语不一致的状态,而对以后的恢复表将失去意义。文件系统备份与直接拷贝文件的区别是对后者你完全控制了备份过程,这样你能采取措施确保服务器让表不受干扰。

利用Mysql备份与拷贝数据库的语句为:

>mysqldump –u 用户名 –p 密码 数据库名  > 备份文件名

petstore来说:

>mysqldump –u root –p **** petstore >petstore.sql

事实上mysql备份只是成一个文本文件,比如petstore备份的结果文件petstore.sql的开头如下:

-- MySQL dump 10.9

--

-- Host: localhost    Database: petstore

-- ------------------------------------------------------

-- Server version  4.1.11-nt

 

 

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8 */;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

 

 

--

-- Table structure for table `account`

--

 

 

DROP TABLE IF EXISTS `account`;

CREATE TABLE `account` (

  `userid` varchar(25) NOT NULL default '',

  `email` varchar(80) NOT NULL default '',

  `fullname` varchar(80) NOT NULL default '',

  `country` varchar(20) NOT NULL default '',

  `city` varchar(80) NOT NULL default '',

  `address` varchar(80) NOT NULL default '',

  `zip` varchar(20) NOT NULL default '',

  `phone` varchar(80) NOT NULL default '',

  PRIMARY KEY  (`userid`),

  CONSTRAINT `fk_account` FOREIGN KEY (`userid`) REFERENCES `client` (`username`)

) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

 

 

--

-- Dumping data for table `account`

--

 

 

 

 

/*!40000 ALTER TABLE `account` DISABLE KEYS */;

LOCK TABLES `account` WRITE;

INSERT INTO `account` VALUES ('...');

UNLOCK TABLES;

/*!40000 ALTER TABLE `account` ENABLE KEYS */;

由此可见,mysql备份的结果就是sql查询语句,文件剩下的部分有更多的INSERTCREATE TABLE语句组成。

       当想恢复数据库时只要执行以下步骤即可:

>mysql –h localhost –r root –p ****

Mysql>use petstore;

Mysql>source petstore.sql;

此时数据库就恢复到备份之前的状态。

如果想自动备份,可以写一个脚本,每隔一定时间就备份一次,window下可以写个批处理,linux下可以写个bash 脚本。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值