文章目录环境文档用途详细信息环境系统平台Linux x86-64 Red Hat Enterprise Linux 7版本4.5.10文档用途有些客户因安全需求要实现数据备份异地存放。此文档讨论两种实现方式方案还不成熟仅供参考欢迎各位补充斧正。详细信息一、异地备份实现方式目前实现异地备份的方法主要有两种1、通过nfs远程目录备份脚本中的冗余备份实现。优点有成熟稳定的脚本提供冗余备份。 不足需要nfs服务脚本不能实现冗余归档。2、通过scp定时任务拷贝实现。优点配置简单。 不足需要配置ssh互信如果拷贝期间备份或者归档正在生成会导致其不可用的情况。二、通过nfs远程目录备份脚本中的冗余备份实现1、目标端配置nfs服务安装提供nfs服务的软件包 yum install nfs-utils yum install rpcbind 创建共享目录并修改权限 mkdir -p /path/to/shared_directory chmod -R 755 /path/to/shared_directory 编辑nfs配置文件 vi /etc/exports /path/to/shared_directory *(rw,sync,no_root_squash,no_subtree_check) *:可以使用单个 IP 地址如 192.168.1.100、网络段如 192.168.1.0/24或通配符如 * 表示所有客户端 rw表示客户端可以以读写模式访问共享目录。 sync表示所有文件系统操作都将同步执行确保数据立即写入磁盘。 no_root_squash表示远程的 root 用户将具有与本地 root 用户相同的权限。默认情况下root 用户会被 squash降低权限通常是变成匿名用户 nfsnobody。 no_subtree_check表示 NFS 服务器不会检查共享目录的父目录权限这可以提高性能但可能降低安全性。 用配置文件的更改 exportfs -a 显示服务器上的 NFS 共享目录 showmount -e server 重启服务并设置开启自启 systemctl start nfs-server systemctl enable nfs-server systemctl start rpcbind systemctl enable rpcbind2、源端挂载nfs远程目录安装提供nfs服务的软件包 yum install nfs-utils 创建挂载点目录 mkdir -p /local/mount/point 设置nfs文件共享 mount -t nfs -o rw,bg,hard,rsize32768,wsize32768,vers3,nointr,timeo600,prototcp,nolock 目标端IP:/path/to/shared_directory/ /local/mount/point 永久挂载 vi /etc/fstab 目标端IP:/path/to/shared_directory/ /local/mount/point nfs rw,bg,hard,rsize32768,wsize32768,vers3,nointr,timeo600,prototcp,nolock 0 0 挂载生效并验证 mount -a df -h3、修改备份脚本中冗余备份部分[rootlogical01 ~]# vi /root/hgdb_backup.sh ...... #冗余备份选项 re_bakyes #启用冗余备份 rebak_dir/local/mount/point #新挂载nfs目录 rearch_dir/local/mount/point/arch #冗余归档目录暂时没有实现 rebak_num7 #冗余备份保留份数 ......三、通过scp定时任务拷贝实现1、配置ssh互信源端A 上执行如下命令来生成配对密钥 cd ~/.ssh ssh-keygen -t rsa 目标端 B 上也同样运行 ssh-keygen -t rsa 将来源端A ~/.ssh/ 目录中的 id_rsa.pub 文件复制到目标端B 的 ~/.ssh/ 目录中并改名为 authorized_keys 源端进行测试 scp /usr/local/shell/host.txt root目标端ip:/usr/local/host2、编写脚本客户要求异地保留7天的备份[rootlogical01 ~]# cat /root/synchgdbback.sh #!/bin/bash scp -r /data/hgdbbackup root目标端IP:/data ssh 目标端IP find /data/hgdbbackup/* -type d -mtime 6 -exec rm -rf {} ; ssh 目标端IP find /data/hgdbbackup/* -type f -mtime 6 -exec rm -f {} \; 备注/data/hgdbbackup:源端数据库备份目录包含归档目录目标端也需要创建。3、配置异地备份定时任务[rootlogical01 ~]# crontab -l 30 00 * * * /root/hgdb_backup.sh 30 03 * * * /root/synchgdbback.sh 备注根据备份完成时间确定两个脚本的执行间隔确保备份完成后再跑异地备份同步任务。