之前写了个Windows下oracle多用户自动备份的脚本,这个备份完数据还是存在服务器本地的,如果系统宕机的话,数据还是没有了,这样的备份是没有意义滴;所以我们需要把数据转移到其他的存储上,常用的方式是使用Rsync工具来保持同步数据,接下来我们搭建一个简单的Rsync服务器。
安装部署rsync服务器
1 2 3 4
| [root@sftp_server ~]# yum -y install rsync [root@sftp_server ~]# mkdir -p /etc/rsyncd/ [root@sftp_server ~]# touch /etc/rsyncd/rsyncd.conf [root@sftp_server ~]# ln -s /etc/rsyncd/rsyncd.conf /etc/rsyncd.conf
|
配置rsync服务器
主配置文件/etc/rsyncd.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| [root@sftp_server ~]# cat /etc/rsyncd.conf uid = root gid = root use chroot = yes hosts allow=192.168.10.33/24 hosts deny=* max connections=5 pid file = /var/run/rsyncd.pid secrets file = /etc/rsyncd/rsyncd.secrets motd file = /etc/rsyncd/rsyncd.motd log file = /var/log/rsync.log transfer logging = yes log format = %t %a %m %f %b syslog facility = local3 timeout = 300
[db_backup] path = /data/backup/ list=yes read only = no ignore errors auth users = rdatabase comment = Oracle Database Backup
|
密码验证文件/etc/rsyncd/rsyncd.secrets
1 2 3 4
| [root@sftp_server ~]# cat /etc/rsyncd/rsyncd.secrets rdatabase:sss [root@sftp_server ~]# chown root.root /etc/rsyncd/rsyncd.secrets [root@sftp_server ~]# chmod 600 /etc/rsyncd/rsyncd.secrets
|
欢迎提示信息文件/etc/rsyncd/rsyncd.motd
1 2 3 4
| [root@sftp_server ~]# cat /etc/rsyncd/rsyncd.motd +++++++++++++++++++++++++++ + Oracle Database Backup! + +++++++++++++++++++++++++++
|
启动服务
1 2
| [root@sftp_server ~]# systemctl start rsyncd.service [root@sftp_server ~]# systemctl enable rsyncd.service
|
防火墙配置
1 2 3
| firewall-cmd --zone=public --add-port=873/tcp --permanent firewall-cmd --zone=public --add-service=rsyncd --permanent firewall-cmd --reload
|
客户端配置
有几个细节地方需要主机
- rsync命令执行的时候,前边的是src(源),后边的是dest(目标)
- 路径后有/只会同步目录下的内容,路径后没有/,会把当前目录(路径的最后一层)同步过去
linux客户端配置
1 2
| # yum install -y rsync [airmodel@silu ~]$ rsync -avzP /tmp/data/ rdatabase@192.168.6.23::db_backup #把本机/tmp/data/目录下的内容同步到rsync服务器db_backup模块配置的目录中去,如果要将rsync服务器上内容同步至本机,路径位置换一下即可
|
windows 客户端配置
- 下载free版本的cwrsync软件 https://itefix.net/cwrsync
- 在c盘根目录新建一个密码文件password.rsync,内容为sss(这里写的密码和rsync服务器上的要对应,只写密码,不需要用户名)
- cwrsync不识别Windows路径,C盘需要写为/cygdrive/c,E盘需要写为/cygdrive/e
- 新建一个计划任务,实现自动化备份,操作可以参考以下示例
以下实例内容为:将本地E:\database_backup\目录下的内容同步至rsync服务的db_backup模块中定义的路径中去,密码文件为C:\password.rsync
1
| C:\cwRsync_5.5.0_x86_Free\bin\rsync.exe -azvP --password-file=/cygdrive/c/password.rsync /cygdrive/e/database_backup/ rdatabase@192.168.6.23::db_backup
|
更优方式
linux下可以部署inotify+rsync,实现实时同步数据