首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Windows 與 Linux 下 MySQL 備份還原完整指南

     編輯:MySQL 綜合教學

前言

資料備份與還原是資料庫維運的核心技能。本文涵蓋 Win32 與 Linux 兩大平台的冷備份、邏輯備份、單表匯出入,並介紹免安裝版 MySQL 部署與 InnoDB 熱備份工具 ibbackup。

一、Windows (Win32) 環境備份還原

1. 邏輯備份

# 進入 bin 目錄
cd "C:\Program Files\MySQL\MySQL Server 5.0\bin"

# 備份單一資料庫
mysqldump -u root -p voice > voice.sql

2. 還原步驟

# 進入 MySQL 客戶端
mysql -u root -p

# 建立資料庫並匯入
mysql> CREATE DATABASE voice;
mysql> USE voice;
mysql> SOURCE voice.sql;

二、Linux 環境備份還原

1. 備份

cd /var/lib/mysql  # 依實際安裝路徑調整
mysqldump -u root -p voice > voice.sql

2. 還原(兩種方式)

方式一:進入客戶端還原

mysql -u root -p
mysql> CREATE DATABASE voice;
mysql> USE voice;
mysql> SOURCE voice.sql;

方式二:管道導入

mysql -u root -p voice < voice.sql

三、Windows 免安裝版 MySQL 5.1 部署配置

1. 解壓與環境變數

解壓至 E:\mysql-5.1.39-win32,將 bin 目錄加入系統 PATH。

2. 配置 my.ini

複製 my-medium.ini 為 my.ini,分別放置於 MySQL 目錄與 C:\WINDOWS:

[mysqld]
basedir=E:/mysql-5.1.39-win32/
datadir=E:/mysql-5.1.39-win32/data
default-character-set=utf8

[client]
default-character-set=gbk

3. 安裝與啟動服務

# 安裝服務(名稱可自訂,如 mysql5)
mysqld --install mysql5 --defaults-file=C:\WINDOWS\my.ini

# 啟動/停止
net start mysql5
net stop mysql5

4. 設定 root 密碼

mysql -u root -p
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('admin') WHERE User='root';
mysql> FLUSH PRIVILEGES;

四、進階:InnoDB 熱備份工具 ibbackup

ibbackup 為 InnoDB 官方熱備份工具(現歸 Oracle 所有,需付費授權),可在不停機情況下進行物理備份。

配置檔範例

my.cnf(啟動用)

[mysqld]
datadir=/home/heikki/data
innodb_data_home_dir=/home/heikki/data
innodb_data_file_path=ibdata1:10M:autoextend
innodb_log_group_home_dir=/home/heikki/data
innodb_log_files_in_group=2
innodb_log_file_size=20M

my2.cnf(備份目標目錄)

[mysqld]
datadir=/home/heikki/backup
innodb_data_home_dir=/home/heikki/backup
innodb_data_file_path=ibdata1:10M:autoextend
innodb_log_group_home_dir=/home/heikki/backup
innodb_log_files_in_group=2
innodb_log_file_size=20M

備份與還原指令

# 備份
ibbackup my.cnf my2.cnf

# 還原前需重做 log
ibbackup --apply-log my2.cnf

# 以備份配置啟動驗證
./bin/mysqld_safe --defaults-file=my2.cnf &

五、時間點恢復 (PITR) 與位置恢復

前提:啟用 log-bin 二進位日誌。

時間點恢復

# 恢復至 9:59:59
mysqlbinlog --stop-date="2005-04-20 9:59:59" /var/log/mysql/bin.123456 | mysql -u root -p

# 跳過故障時段,從 10:01:00 繼續
mysqlbinlog --start-date="2005-04-20 10:01:00" /var/log/mysql/bin.123456 | mysql -u root -p

位置恢復(更精確)

# 先導出特定時段至 SQL 檔
mysqlbinlog --start-date="2005-04-20 9:55:00" --stop-date="2005-04-20 10:05:00" /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql

# 編輯檔案找出錯誤語句前後 position(如 368312, 368315)
mysqlbinlog --stop-position="368312" /var/log/mysql/bin.123456 | mysql -u root -p
mysqlbinlog --start-position="368315" /var/log/mysql/bin.123456 | mysql -u root -p

六、MyISAM 表損壞修復

# 方法一:myisamchk
myisamchk -r table_name  # 修復
myisamchk -o table_name  # 強制修復

# 方法二:SQL 指令
CHECK TABLE tbl_name [QUICK|FAST|MEDIUM|EXTENDED|CHANGED];
REPAIR [LOCAL|NO_WRITE_TO_BINLOG] TABLE tbl_name [QUICK] [EXTENDED] [USE_FRM];

總結

建立定期備份策略、驗證備份可用性、善用二進位日誌做 PITR,是確保資料安全的關鍵三部曲。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved