我刚刚创建了我的第一个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
不要托管公司自动执行此操作吗? –