我剛剛創建了我的第一個PHP/MySQL站點,並且正在研究創建用於備份的數據庫鏡像。當然,這是一些黑客設法去窺探並破壞主數據庫的情況。有沒有這樣做的正確或錯誤的方式?鏡像PHP/MySQL設置的正確方法
編輯:是的,我已經在其他一些主機託管計劃,我想鏡子被放置在
我剛剛創建了我的第一個PHP/MySQL站點,並且正在研究創建用於備份的數據庫鏡像。當然,這是一些黑客設法去窺探並破壞主數據庫的情況。有沒有這樣做的正確或錯誤的方式?鏡像PHP/MySQL設置的正確方法
編輯:是的,我已經在其他一些主機託管計劃,我想鏡子被放置在
主要有兩種方式來備份你的MySQL數據庫:冷(靜態/脫機)備份&熱(動態/聯機)備份。
1使用crontab腳本每天/每週/每月等備份數據庫,我們稱之爲冷備份。該腳本可能是這樣的:
!#/bin/sh
mysqldump -usample_name -S/tmp/sample.sock --databases db1 db2 > db_backup_time.sql
你可以找到手冊的mysqldump here。實際上,整個chp.6正在談論數據庫備份和恢復。在此之後,您每天都會看到您的數據(例如上午6點)的鏡像。
2使用mysql replication solutions(主從結構)進行聯機備份。主站上的所有查詢導致數據修改也將在從站上執行。
比較 - :
基本上,冷備份更容易。但是當發生不好的事情時,第一種方法只能將數據恢復到傾銷鏡像的時間。藉助熱備份和mysqldump工具,您可以隨時恢復數據。
在我的經驗中,我們始終將這兩種方法一起組成:
這將是安全的。
如果您通過將數據庫鏡像到另一臺主機來備份數據庫,那麼每天說一次,如果它的數據損壞/丟失,並且在它鏡像之前沒有捕獲它,它仍然會丟失。正確的方法是定期保存轉儲。我每天都會對數據庫進行轉儲,每日備份4周,然後每週備份6個月。
如果您的數據庫和備份服務器彼此相鄰(網絡距離),這種方式效果最佳。但是,如果您的數據庫託管在其他地方並且不是太大,它應該仍然可以正常工作(許多主機會每天轉儲您的數據庫,但您可以自行取回數據庫)。
你可以設置一個MySQL主/從複製:
首先創建一個你要使用複製的數據庫用戶:replUser
在要進行以下設置主服務器:
[mysqld]
log-bin=mysql-bin
server-id=1
在你的my.cnf你想以下設置從屬服務器
## Replication
server-id = 2
relay-log-space-limit = 16G
expire-logs-days = 7
master-host = 10.10.10.10
master-user = replUser
master-password = yourpassword
master-connect-retry=60
replicate-do-db = database_name
mysqldump是一個方便的實用程序,可讓您將數據庫備份爲文本文件。
備份數據庫:
mysqldump -u username -p database_name > backup.sql
我們從備份中恢復:
mysql -u username -p database_name < backup.sql
這是最好創建一個腳本,這是否定期讓你總是有一個新鮮的恢復點。
您可以瞭解更多關於語法的mysqldump here
不要託管公司自動執行此操作嗎? –