筆者是一個中小Linux網站的管理員
系統構架是
RHEL
+ PHP
+ Mysql
+Apache
日均IP訪問量在
次
一個典型的Linux小型網站
由於是小型網站
所以沒有經費使用磁帶機進行系統備份
使用的DVD光盤刻錄機+網絡硬盤
隨著Linux的應用日益廣泛
特別是在網絡應用方面
有大量的網絡服務器使用Linux操作系統
由於Linux的桌面應用和Windows相比還有一定的差距
所以在企業應用中往往是Linux和Windows操作系統共存形成異構網絡
在服務器端大多使用Linux和Unix的
PC端使用Windows
X/
/XP
下面我們就講講在Linux異構網絡備份MYSQL
一 本地備份 Mysql數據庫的常用備份方法是使用使用實用程序mysqldump
其命令格式如下
# mysqldump [options] database [tables]
其參數的含義為
options
代表mysqldump的選項
通過mysqldump –help可以查到
database: 代表將要備份的數據庫
tables: 代表將要備份的表
如果不指定任何表
則備份整個數據庫
使用 mysqldump進行備份非常簡單
如果要備份數據庫
phpbb_db_backup
使用命令
#mysqldump –u
p phpbb_db_backup > /usr/backups/mysql/ phpbb_db_backup
還可以使用gzip命令對備份文件進行壓縮
#mysqldump phpbb_db_backup | gzip > /usr/backups/mysql/ phpbb_db_backup
gz
恢復數據使用命令
#mysql –u
p phpbb_db_backup
二 備份數據到DVD盤片 隨著MYSQL數據量的增大
使用傳統CD—R來備份硬盤並不現實
采用CD—RW分卷制作實在太麻煩
磁帶機對於中小企業又過於昂貴
另外各個應用程序的復雜度日與劇增
處理的數據量也都相當龐大
Linux用戶常常遇到的問題就是 : 有什麼辦法可以經濟快捷的對數據做備份與保存
隨著DVD刻錄機和盤片的價格迅速降低
使用DVD刻錄機用來備份Linux操作系統非常明智的
安裝
下面以IDE接口的內置刻錄設備為例
介紹在Linux環境中使用DVD刻錄機
Linux 需要將IDE接口的刻錄設備虛擬為SCSI設備才能進行DVD刻錄
以上內核Linux發行版本包含了已編譯進內核的 SCSI 仿真
所以只要對啟動文件作一些小改動
USB或
(FireWire)接口的外置刻錄機就簡單多了
把DVD刻錄機設備接入計算機第二個IDE接口(dev/hdc)
開啟電源
假設系統用Grub啟動
用文本編輯器打開/boot/grub/nf
找到以
kernel
開頭的一行
在這行內容的未尾加入
hdc=ide
scsi
例如
kernel /vmlinuz
ro root=LABEL=/ hdc=ide
scsi
安裝刻錄軟件
DVD+RW
Tools
一個包含有用於刻錄DVD和映像的軟件工具包
包括
Growisofs和dvd+rw
format
官方站點
~appro/linux/DVD+RW/
CDRDAO
DAO即是Disk
At
Once(實時刻錄)
是一種在燒錄過程中沒有音軌間的兩秒緩沖的刻錄方法
它可以對磁盤的布局和磁道進行完全的控制
這一功能在刻錄多來源的盤片相當有幫助
cdrtools
包含了一套用於CD
DVD刻錄的工具
Growisofs在創建映像時會使用這個軟件包中的mkisofs工具
並且用戶可以使用readcd來從一個現有的DVD上創建ISO映像
此外
Cdrecord應用程序可被用於掃描連接系統上的CD/DVD刻錄機
並且可以使用它來將ISO映像刻錄到CD—R(W)光盤上
通常大多數Linux版本包括這個軟件
也可以下載使用
_homepage/l
dvdrecord
命令行下的DVD刻錄軟件
命令行下的DVD刻錄可用於很多種情形
比如當我們通過遠程訪問主機時
機器上的圖形界面無法啟動時
或者機器由於某些原因無法啟動GUI時
此外
在完成一些備份等自動重復的功能時
也需要使用命令行工具
以上介紹了一下必須的軟件和相關下載網址
安裝過程比較簡單
這裡就不贅述了
命令行下刻錄
使用DVD+RW
Tools 進行刻錄工作
growisofs是DVD+RW
Tools一個工具
Growlsofs訪問其刻錄設備使用的是一種不同的方式
它使用/dev下面的Unix路徑來連接刻錄機
不同的系統和發行版中用於刻錄機的路徑不盡相同
所以最好的方法是查看發行版中的幫助
在一些系統中
一個名為/dev/dvd的軟鏈接會被設置成指向可用的DVD刻錄機
在本文中
使用/dev/dvd來指定刻錄機
如果系統中路徑設置不同
那麼請使用合適的路徑將其取代
(
)格式化可讀寫DVD光盤
可以使用DVD+RW
Tools工具包中提供的dvd十rw—format命令
它有兩種格式化DVD光盤的方式
快速模式
完全模式
快速模式
#dvd+rw
format
blank /dev/dvd
完全模式
#dvd+rw
format
blank=full /dev/dvd
(
)將文件存儲至DVD刻錄盤
DVD和普通的光盤一樣
使用的也是ISO
文件系統
以及同樣的通用擴展(Joliet和RockRidge)
Growlsofs提供了一種簡單的將文件或目錄存儲至DVD刻錄盤的方法
先用調用mkisofs工具來創建一個映像
並且無需在將該映像存儲至硬盤之前就刻錄下來
其基本的命令格式如下
#growisofs
dvd
compat
Z /dev/dvd
J
R /path/to/home/cao
此命令將/path/to/home/cao目錄下的文件制作一個映像並且刻錄到的DVD光盤
二網絡備份 將MYSQL數據放在一台計算機上是不安全的
所以應當把數據備份到局域網中其他計算機中
假設Mysql服務器IP地址是
局域網使用Linux的遠程計算機IP地址是
局域網使用Windows的遠程計算機IP地址是
網絡拓撲見圖
educitycn/img_///jpg > 通過NFS網絡備份
類似於windows的網絡共享
UNIX(Linux)系統也有自己的網絡共享
那就是NFS(網絡文件系統)
在linux客戶端掛接(mount)NFS磁盤共享之前
必須先配置好NFS服務端
linux系統NFS服務端配置方法如下
(
)修改 /etc/exports
增加共享目錄
/export/home/sunky
(rw)
/export/home/sunky
*(rw)
/export/home/sunky
linux
client(rw)
注
/export/home/目錄下的sunky
sunky
sunky
是准備共享的目錄
*
linux
client是被允許掛接此共享linux客戶機的IP地址或主機名
如果要使用主機名linux
client必須在服務端主機/etc/hosts文件裡增加linux
client主機ip定義
格式如下
linux
client
若修改/etc/export文件增加新的共享
應先停止NFS服務
再啟動NFS服務方能使新增加的共享起作用
使用命令exportfs
rv也可以達到同樣的效果
linux客戶端掛接(mount)其他linux系統或UNIX系統的NFS共享
這裡我們假設
是NFS服務端的主機IP地址
當然這裡也可以使用主機名
但必須在本機/etc/hosts文件裡增加服務端ip定義
/export/home/sunky為服務端共享的目錄
如此就可以在linux客戶端通過/mnt/nfs來訪問其它linux系統或UNIX系統以NFS方式共享出來的文件了
把MYSQL數據備份到使用Linux的遠程計算機需要在兩端都安裝NFS協議(NetworkFile System)
遠程NFS計算機安裝NFS協議後還要修改配置文件
/etc/exports
加入一行
/usr/backups/mysql/
(rw
no_root_squash)
表示將/usr/backups/mysql/目錄共享
這個目錄具有遠程root用戶讀寫權限
保存NFS配置文件
然後使用命令
#exportfs
a –r
然後重新啟動NFS服務
#service nfsd start
遠程計算機設定後
在MYSQL服務器/mnt 目錄下建立一個backup_share目錄
#mkdir /mnt/backup_share
將遠程的Linux計算機的/usr/backups/mysql/目錄掛載到MYSQL服務器的/mnt/backup_share目錄下
# mount
t nfs
/usr/backups/mysql /mnt/backup_share
將目錄掛載進來後
只要進入/mnt/backup_share 目錄
就等於到了IP地址
那部NFS計算機的/usr/backups/mysql目錄中
下面使用mysqldump把
phpbb_db_backup
備份到遠程計算機
# mysqldump phpbb_db_backup > /mnt/backup_share/ phpbb_db_backup
通過Samba網絡備份
Windows網絡共享的核心是SMB/CIFS
在linux下要掛接(mount)windows的磁盤共享
就必須安裝和使用samba軟件包
現在流行的linux發行版絕大多數已經包含了samba軟件包
如果安裝linux系統時未安裝samba請首先安裝samba
當然也可以到網站下載samba軟件包
現在最新的版本是
版
然後Windows計算機上建立一個目錄(/arc)並且共享
賦予其讀寫權限
同樣在MYSQL服務器/mnt 目錄下建立一個backup_share
目錄
然後進行掛載
# mount
t smbfs
o username=cjh
password=XXXX //
/arc /mnt/backup_share
最後使用命令進行備份
# mysqldump phpbb_db_backup > /mnt/backup_share/ phpbb_db_backup
Mysql是一個功能強大的數據庫
需要在實踐中多練習才能
From:http://tw.wingwit.com/Article/program/MySQL/201311/29475.html