18. shoug.info 上海Oracle用户组
使用SAN Snapshot备份
DB Server1
D
B
DB Volume
Active
Backup NFS
NA
S
Compress
Backup Server
1. Mirror Volume 挂载到 Backup Server
2. DB Lock
mysql>FLUSH TABLE WITH READ LOCK
3. 对Active 进行Mirror 同步到最新
4. Active 和Mirror分离
5. DB Unlock
mysql>UNLOCK TABLES
6. 对Mirror Volume进行备份
7. 挂载Backup NFS
8. 创建备份区,将备份存放为tar归档
9. Mirror Volume卸载
DB Server2
D
B
DB Volume
Mirror
19. shoug.info 上海Oracle用户组
使用mylvmbackup备份
DB Server
D
B
OS Volume DB Volume Backup Volume Backup NFS
NA
S
Compress File
1. DB锁定
mysql>FLUSH TABLE WITH READ LOCK
2. 获取backup当时的位置
mysql>SHOW SLAVE STATUS
mysql>SHOW MASTER STATUS
3. 进行snap shot
lvcreate -s -l 100%FREE --name=#{db_backup} #{Volname}
4. 释放DB锁定
mysql>UNLOCK TABLES
5. 安装snap shot区域
6. 对backup区域进行tar归档
7. 卸载snap shot 区域
8. 确认snapshot 区域的使用大小
lvdisplay #{LVName}
9.移除snapshot 区域
lvremove -f #{LVName}
20. shoug.info 上海Oracle用户组
SAN Snapshot/mylvmbackup恢复
Backup NFS
NA
S DB Server
D
B
Local disk 有空闲时
1. 挂载Backup NFS
2. 将tar 归档文件拷贝到本地
3. tar 归档文件的展开
Local disk 没有空闲时
1. 挂载Backup NFS
2. 将tar 归档文件在NAS上展开
Compress
File
DB
恢复的位置可以是共有环境或NFS
• tar 展开非常花费时间
• 特别是在定期维护之前时,会发生资源竞争
• 不仅占用磁盘,也包含内存使用
• 性能与真正运行环境相比要显著低下
20
21. shoug.info 上海Oracle用户组
Vmware Snapshot备份
1. 获取DB锁
mysql>FLUSH TABLE WITH READ LOCK
2. 取得backup时位置
mysql>SHOW SLAVE STATUS
mysql>SHOW MASTER STATUS
3. 进行Vmware snapshot
4. 释放DB锁定
mysql>UNLOCK TABLES
5. 制成Backup文件
在VMWare使用环境中进行的软备份
• 进行全量/增量备份、不断去除过时的备份
• 可作为一种主流备份方式
• 备份时对生产环境的影响只有在取得snapshot时的几秒
VirtualAP
P
Vmware Management
Server
Backup NFS