MySQL平台数据库备份方案详细说明

mysql|备份|数据|数据库

在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时,正是MySQL管理员造成破坏。管理员已经知道表已破坏,用诸如vi或Emacs等编辑器试图直接编辑它们,这对表绝对不是件好事!

备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(如用cp、cpio或tar等)。每种方法都有其优缺点:

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

mysqldump比直接拷贝要慢些。

mysqldump生成能够移植到其它机器的文本文件,甚至那些有不同硬件结构的机器上。直接拷贝文件不能移植到其它机器上,除非你正在拷贝的表使用MyISAM存储格式。ISAM表只能在相似的硬件结构的机器上拷贝。在MySQL 3.23中引入的MyISAM表存储格式解决了该问题,因为该格式是机器无关的,所以直接拷贝文件可以移植到具有不同硬件结构的机器上。只要满足两个条件:另一台机器必须也运行MySQL 3.23或以后版本,而且文件必须以MyISAM格式表示,而不是ISAM格式。

不管你使用哪种备份方法,如果你需要恢复数据库,有几个原则应该遵守,以确保最好的结果:

定期实施备份。建立一个计划并严格遵守。

让服务器执行更新日志。当你在崩溃后需要恢复数据时,更新日志将帮助你。在你用备份文件恢复数据到备份时的状态后,你可以通过运行更新日志中的查询再次运用备份后面的修改,这将数据库中的表恢复到崩溃发生时的状态。

以文件系统备份的术语讲,数据库备份文件代表完全倾倒(full dump),而更新日志代表渐进倾倒(incremental dump)。

使用一种统一的和易理解的备份文件命名机制。象backup1、buckup2等不是特别有意义。当实施你的恢复时,你将浪费时间找出文件里是什么东西。你可能发觉用数据库名和日期构成备份文件名会很有用。例如:

%mysqldump samp_db >/usr/archives/mysql/samp_db.1999-10-02

%mysqldump menagerie >/usr/archives/mysql/menagerie.1999-10-02

你可能想在生成备份后压缩它们。备份一般都很大!你也需要让你的备份文件有过期期限以避免它们填满你的磁盘,就象你让你的日志文件过期那样。

用文件系统备份备份你的备份文件。如果遇上了一个彻底崩溃,不仅清除了你的数据目录,也清除了包含你的数据库备份的磁盘驱动器,你将真正遇上了麻烦。

也要备份你的更新日志。

将你的备份文件放在不同于用于你的数据库的文件系统上。这将降低由于生成备份而填满包含数据目录的文件系统的可能性。

用于创建备份的技术同样对拷贝数据库到另一台机器有用。最常见地,一个数据库被转移到了运行在另一台主机上的服务器,但是你也可以将数据转移到同一台主机上的另一个服务器。

1 使用mysqldump备份和拷贝数据库

当你使用mysqldumo程序产生数据库备份文件时,缺省地,文件内容包含创建正在倾倒的表的CREATE语句和包含表中行数据的INSERT语句。换句话说,mysqldump产生的输出可在以后用作mysql的输入来重建数据库。

你可以将整个数据库倾倒进一个单独的文本文件中,如下:

%mysqldump samp_db >/usr/archives/mysql/samp_db.1999-10-02

输出文件的开头看起来象这样:

# MySQL Dump 6.0# # Host: localhost Database: samp_db#-------------

--------------------------# Server version 3.23.2-alpha-log## Table st

ructure for table absence#CREATE TABLE absence( student_id int(10)

unsigned DEFAULT 0 NOT NULL, date date DEFAULT 0000-00-00 NOT NUL

L, PRIMARY KEY (student_id,date));## Dumping data for table absence

#INSERT INTO absence VALUES (3,1999-09-03);INSERT INTO absence VALUE

S (5,1999-09-03);INSERT INTO absence VALUES (10,1999-09-08);......

[1] [2] [3] 下一页  

时间: 2024-10-29 03:25:25

MySQL平台数据库备份方案详细说明的相关文章

MySQL数据库备份方案详细说明

    在数据库表丢失或损坏的情况下,备份你的数据库是很重要的.如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态.有时,正是MySQL管理员造成破坏.管理员已经知道表已破坏,用诸如vi或Emacs等编辑器试图直接编辑它们,这对表绝对不是件好事! 备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(如用cp.cpio或tar等).每种方法都有其优缺点: mysqldump与MySQL服务器协同操作.直接拷贝方法在服务器外部进行,并且你必须采取措施保

MYSQL进行数据库备份

使用MYSQL进行数据库备份,有很正规的数据库备份方法,同其他的数据库服务器有相同的概念,但有没有想过,MySQL会有更简捷的使用文件目录的备份方法,而且又快有好.  一.数据备份捷径  因为这个方法没有得到官方正式文档的验证,我们暂称为试验吧.  目的:备份hostA主机中一个MySQL数据库TestA,并恢复到到hostB机中  试验环境: Chinaz^com 操作系统:WinNT4.0,MySQL3.22.34,PHPMyAdmin 2.1.0 中.国.站.长.站 在hostA中安装My

vertica数据库备份方案

问题描述 vertica数据库备份方案 我先要对远程的vertica数据库操作,通过vpn访问美国的那边的vertica数据库,要对一个表的一个字段长度进行变更,这个数据很重要,所以不能丢失的,保险起见需要做备份,之前想过到处csv格式文件,但是通过我的操作发现,执行特别慢,等不及,有什么好方法吗,望高人指点. 解决方案 数据库备份方案数据库备份方案数据库备份方案

Mysql数据库备份方案讨论

   在数据库表丢失或损坏的情况下,备份你的数据库是很重要的.如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态.有时,正是MySQL管理员造成破坏.管理员已经知道表已破坏,用诸如vi或Emacs等编辑器试图直接编辑它们,这对表绝对不是件好事.        备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(如用cp.cpio或tar等).每种方法都有其优缺点:        mysqldump与MySQL服务器协同操作.直接拷贝方法在服务器外部

Sybase数据库备份方案

Sybase数据库产品自从1987年问世以来,它的客户机/服务器(client/server)工作模式.分布处理的基础体系结构.完善的安全保密性能.高速快捷的运行方式.多平台跨操作系统的广泛应用等优点,迅速被IT界接受并推广应用.我们作为金融业的用户,也在1995年开始使用Sybase10版本.在具体的使用中,发现集中式的数据管理有其优点,就是数据风险范围大为缩小,但是作为Sybase的服务器一端,数据风险比较集中,如何做好数据库的数据备份,成为至关重要的问题. 在实际应用中,我们总结出了两种全

mysql mysqldump数据库备份与还原

#mysqldump 数据库名 >数据库备份名 #mysqldump -A -u用户名 -p密码 数据库名>数据库备份名 #mysqldump -d -A --add-drop-table -uroot -p >xxx.sql 导出整个数据库database  代码如下 复制代码 mysqldump –opt -uroot -ppassword database > dump.sql 导出单个数据表table  代码如下 复制代码 mysqldump –opt –add-drop-

平台数据库备份功能的说明_星外虚拟主机

1.主控的数据库备份目录可以在系统参数中指定,注意,此目录(如E:\backup)必须已经在服务器上存在,而且,SQL运行用户必须对这个目录有写入的权限,而且,这个目录的根目录,如E:\,必须有SQL运行用户的读的权限,基于安全的原因,我们建议这个目录是一个单独的目录. 2.用户自己在用户区,数据库管理中,可以自己备份数据库,数据库的的备份目录,是在data目录下的backup目录中. 3.用户在数据库管理中,建立的临时备份用FTP,有效期是三天,三天后,由自动任务模块自动删除FTP. 4.平台

mssql server自动定时数据库备份图文详细

最常用的方式就是使用SQL Server代理中的作业.启动SQL Server Agent服务,然后在其中新建作业,作业中添加1个备份步骤,类型是T-SQL脚本,然后在命令中输入如下SQL语句,该语句实现了对数据库TestDB1的完整备份,备份文件在C盘Backup文件夹中,文件名就是TestDB1+当时备份的日期字符串.bak.  代码如下 复制代码 declare @name varchar(250)  set @name='C:/Backup/TestDB1_'+  convert(var

java备份数据库四种方法(mysql,mssql数据库备份)

java备份数据库教程四种方法(mysql教程,mssql数据库备份) mysql数据库备份的东西,然后研究了一下java语言中怎么来调用cmd的命令来实现mysqldump的备份功能.具体实现如下: 1.首先设置环境变量:有两种方式.第一种,在环境变量中添加 mysql_home,设置内容为 mysql的安装路径,然后,在path中添加路径  %mysql_home%bin    .第二种方法,不新建mysql_home,而是直接在path中添加   mysql安装路径bin .这样,调用cm