mysql Database Backup

來源:互聯網
上載者:User

標籤:mysqldump   Database Backup   lock tables   mysql   mysqlhotcopy   

資料備份是資料庫管理員非常重要的工作。系統意外崩潰、磁碟損壞等都有可能導致資料丟失,所以要週期性備份資料庫。現有三種方法備份資料庫。

要想保持備份的一致性,備份前要對相關表執行LOCK TABLES操作,然後對錶執行FLUSH TABLES。FLUSH TABLES語句來確保開始將所有啟用的索引頁寫入磁碟。

一、使用mysqldump命令備份資料庫

  1. 備份單個資料庫中所有的表

    例如備份mysql資料庫


    mysqldump -h localhost -u root -p mysql > mysql_db_20141011_1412.sql


    可以開啟mysql_db.sql查看一下內容如下:

-- MySQL dump 10.13  Distrib 5.5.38, for debian-linux-gnu (i686)---- Host: localhost    Database: mysql-- -------------------------------------------------------- Server version5.5.38-0ubuntu0.12.04.1/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;/*!40101 SET @[email protected]@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;/*!40103 SET @[email protected]@TIME_ZONE */;/*!40103 SET TIME_ZONE=‘+00:00‘ */;/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO‘ */;/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;---- Table structure for table `columns_priv`--DROP TABLE IF EXISTS `columns_priv`;/*!40101 SET @saved_cs_client     = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `columns_priv` (  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT ‘‘,  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT ‘‘,  `User` char(16) COLLATE utf8_bin NOT NULL DEFAULT ‘‘,  `Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT ‘‘,  `Column_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT ‘‘,  `Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,  `Column_priv` set(‘Select‘,‘Insert‘,‘Update‘,‘References‘) CHARACTER SET utf8 NOT NULL DEFAULT ‘‘,  PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=‘Column privileges‘;/*!40101 SET character_set_client = @saved_cs_client */;
備份單個資料庫中單個資料表例如備份資料庫mysql下的user表 mysqldump -h localhost -u root -p mysql user > mysql_user_20141011_1412.sql備份多個Database Backup資料庫mysql 和 test, 使用參數--databases
 mysqldump -h localhost -u root -p --databases mysql test > mysql_test_db_20141011_1412.sql

使用--databases後必須指定至少一個資料庫,多個資料庫之間用空格分開。另外可以用--all-databases參數備份系統中所有的資料庫。


二、直接複製整個資料庫目錄

    linux下資料庫的目錄位置通常為/var/lib/mysql。直接備份資料庫目錄,這是一種簡單、快速、有效備份方式,但這不是最好的方法,因為這樣方法對InnoDB的儲存引擎的表不適用。使用這種方法備份的資料庫容易遇到版本相容問題。


三、使用mysqlhotcopy工具快速備份

  mysqlhotcopy是一個perl指令碼。他是用LOCK TABLES,FLUSH TABLES和cp或scp來快速備份資料庫,是備份資料庫和單個表的最快途徑,但他只能運行在資料庫目錄所在的機器上,並只能備份MyISAM類型的表。mysqlhotcopy在Unix系統中運行。mysqlhotcopy文法格式如下:

      mysqlhotcopy db_name_1、db_name_2......db_name_n /path/to/new_directory.

   例如備份資料庫test到/usr/backup目錄下。

     mysqlhotcopy -u root -p test /usr/backup

本文出自 “人自強,夢不息” 部落格,請務必保留此出處http://yongbird.blog.51cto.com/7554149/1562530

mysql Database Backup

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.