前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql数据库备份策略

Mysql数据库备份策略

作者头像
全栈程序员站长
发布2022-08-15 21:01:12
5.5K0
发布2022-08-15 21:01:12
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

Mysql数据库备份策略

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

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

利用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查询语句,文件剩下的部分有更多的INSERT和CREATE TABLE语句组成。

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

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

Mysql>use petstore;

Mysql>source petstore.sql;

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档