Mysql数据库备份策略

Mysql数据库备份策略Mysql数据库备份策略我的petstore所用的数据库是Mysql。Mysql的数据库备份不象那些企业界数据库那样完善,分为完全备份、差分备份以及日记纪录等等。Mysql备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件。mysqldump与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 脚本。

 

 

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/134323.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 公平锁与非公平锁_公平锁和非公平锁区别

    公平锁与非公平锁_公平锁和非公平锁区别公平锁和非公平锁一、如果一个锁是公平的,那么获取的顺序就应该符合请求的绝对顺序,即FIFO。二、测试结果 非公平性锁可能使线程“饥饿”,为什么它又被设定成默认的实现呢?再次观察上表的结果,如果把每次不同线程获取到锁定义为1次切换,公平性锁在测试中进行了10次切换,而非公平性锁只有5次切换,这说明非公平性锁的开销更小。三、,公平性锁保证了锁的获取按照FIFO原则,而代价是进行…

  • 大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了…

    大放异彩的伪元素——可以做什么?(转)别人分享的文章,发现很不错,果断收藏了…

  • QT 播放器之列表[通俗易懂]

    QT 播放器之列表[通俗易懂]列表只需要显示字符串就行。直接选择使用QListView既然用到了View肯定是需要Model。该Model需要存储当前播放索引 添加的媒体链接 播放模式第一步,重写QAbstractItemModel的虚函数//QAbstractItemModelinterfacepublic:QVariantdata(constQModelIndex&a…

  • 用Java实现HTTP Multipart的服务端和客户端

    用Java实现HTTP Multipart的服务端和客户端

  • Hook 技术简介

    Hook 技术简介#include”Windows.h”#include”tchar.h”#include”resource.h”HINSTANCEg_hInstance;staticHHOOKhHook=NULL;INT_PTRCALLBACKProcWinMain(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam);LR

  • JAVA高并发的三种实现

    提到锁,大家肯定想到的是sychronized关键字。是用它可以解决一切并发问题,但是,对于系统吞吐量要求更高的话,我们这提供几个小技巧。帮助大家减小锁颗粒度,提高并发能力。初级技巧-乐观锁乐观锁使用的场景是,读不会冲突,写会冲突。同时读的频率远大于写。悲观锁的实现:悲观的认为所有代码执行都会有并发问题,所以将所有代码块都用sychronized锁住乐观锁的实现:…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号