如果系统发生故障,则拥有系统的备份至关重要,因为可以恢复系统。实施怎样的备份和恢复策略取决于被恢复数据要达到的完整性和时效性。
对于某些系统及关联的流程,可能需要审计或分析独立于主生产环境的环境中的数据。可以使用备份创建这样一个独立的环境。
在需要执行常见的 DBA 任务(例如将数据从一个系统传输到另一个系统,根据特定的生产服务器状态创建开发服务器,或者将系统的特定部分恢复到用户出错前的某个状态)时使用备份。
这些动态备份在读取或修改数据的过程中进行,很少中断或者不中断传输或处理数据的功能。使用热备份时,系统仍可供读取和修改数据的操作访问。
这些备份在用户不能访问数据时进行,因此无法读取或修改数据。这些脱机备份会阻止执行任何使用数据的活动。这些类型的备份不会干扰正常运行的系统的性能。但是,对于某些应用程序,会无法接受必须在一段较长的时间里锁定或完全阻止用户访问数据。
这些备份在读取数据时进行,但在多数情况下,在进行备份时不能修改数据本身。这种中途备份类型的优点是不必完全锁定最终用户。但是,其不足之处在于无法在进行备份时修改数据集,这可能使这种类型的备份不适用于某些应用程序。在备份过程中无法修改数据可能产生性能问题。
二、
可以使用复制或 RAID 镜像之类流程,或者使用 DRBD 之类的外部应用程序,将数据直接备份到其他磁盘。这些技术提供实时(或几乎实时)备份,以及快速恢复数据的方法。
二进制日志记录对数据的修改。因此,二进制日志对恢复自上次完整备份以来发生的事件很有用。备份二进制日志的优点是其中包含了各个时间对数据所做的所有更改的记录,而不是数据的快照。可以按顺序创建多个二进制日志备份。根据修改的数据量以及完成完整备份的频率,决定要在备份之间创建的二进制日志备份的数量。二进制日志的不足之处是必须恢复自序列中最后一次完整备份以来创建的所有按顺序的二进制日志。此外,从系统故障中恢复的速度可能会很慢,具体取决于必须恢复的二进制日志的数量。
可以使用 mysqldump 进行完整数据转储。这些数据转储基于特定的时间点,但是是所有备份副本中速度最慢的。使用 mysqldump 的优点是所创建的文件是简单的 SQL 脚本,其中包含可在 MySQL 服务器上运行的语句。不足之处在于 mysqldump 会在转储过程中锁定表,这会阻止用户在备份过程中读写文件。
MySQL 备份可以是下列备份之一:
逻辑备份会产生一个文本文件,其中包含重构数据库的 SQL 语句
这是 MySQL 数据库文件的二进制副本.
在备份后所做的更改
备份只是在损失或损坏后进行数据恢复所需的组件之一。另一个组件是二进制日志,其中包含了数据更改的记录。要恢复数据库,可使用备份将数据恢复到其在备份时的状态。在恢复了备份之后,需应用二进制日志的内容以应用自备份创建以来的所有数据更改。要确保为所有 MySQL 服务器启用二进制日志记录。
mysqldump -uroot -p classicmodels employees >/u01/data/bak/emp.sql
secure_file_priv=''
mysql -uroot -p suwen < /home/mysql/backup/emp.sql
mysqldump -uroot -p -B classicmodels>/u01/data/bak/classicmodels.sql
mysql -uroot -p < /u01/data/bak/classicmodels.sql
-B会将创建数据库的语句也备份出来
mysqldump -uroot -p classicmodels suwen mysql >/u01/data/bak/more
mysql -uroot -p
mysqldump -uroot -p -S /tmp/mysql.sock
mysqldump -uroot -p -S /tmp/mysql.sock -B classicmodels|gzip > /home/mysql/backup/classicmodels.sql.gz
中继从属服务器:一个从属服务器可以作为另一个从属服务器的主服务器,每一个从属服务器仅能具有一个主服务器,一个从属服务器不能从多个主服务器复制。如果一个从属服务器作为其他服务器的主服务器,该从属服务器称为中继服务器。
复制拓扑中的每个服务器必须具有唯一的 server-id,一个无符号的 32 位整数,值从 0(默认)到 4,294,967,295。server-id 为 0 的服务器(无论是从属服务器还是主服务器)拒绝使用其他服务器进行复制。
server_id=13
log_bin=ON
mysqldump -uroot -poracle -B classicmodels>/u01/data/bak/classicmodels.sql
mysqldump -uroot -poracle -B world>/u01/data/bak/world.sql
mysql -uroot -poracle
mysql -uroot -poracle
grant replication slave on *.* to ‘root’@’localhost’ identified by ‘oracle’;
flush tables with read lock;
show master status;
修改参数文件加入以下内容
server_id=11
stop slave;
change master to master_host=’192.168.10.113’,master_user=’root’,
master_password=’oralce’,master_log_file=’ON.000003’,master_log_pos=191;
start slave;
unlock tables;