热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux服务器数据库(MySQL、ORACLE)简单的异地备份方案

Linux服务器数据库(MySQL、ORACLE)简单的异地备份方案Linux服务器MySQL数据库简单的异地备份方案www.2cto.com首先简单说下:1、执行脚本导出数据库。mysqldump-h127.0.0.1-P3306-uroot-ppasswordd...Synt

Linux服务器数据库(MySQL、ORACLE)简单的异地备份方案
 
Linux服务器MySQL数据库简单的异地备份方案
  www.2cto.com  
首先简单说下:
 
1、执行脚本导出数据库。
 
mysqldump -h127.0.0.1 -P3306 -uroot -ppassword dbname > /bak/db/backup.sql
 
2、使用scp将导出的数据库文件传输到其他服务器上,一般进行异地备份,容灾。
 
scp -P 195 /bak/db/backup.sql root@xxx.xxx.xxx.xxx:/bak
 
其中195为ssh端口号,如果是默认的22,可以省略 -P 22。
 
-----------------------------------------------------------------
  www.2cto.com  
现在需要编写一个sh脚本,并设定到定时任务中
 
sh脚本内容如下:
 
[java] 
#!/bin/sh  
  
filename=`date '+%Y%m%d-%H%M%S'`  
filename="${filename}bak.sql"  
  
mysqldump -h127.0.0.1 -P3306 -uroot -ppassword dbname > /bak/db/${filename}  
  
scp -P 195 /bak/db/${filename} root@xxx.xxx.xxx.xxx:/bak  
  
echo "success"  
sh文件不要忘记使用 chmod +x backup.sh 进行授予可执行权限。
假设我们将sh文件存放与opt目录下,需要配置一下定时任务
 
编辑文件:vi /etc/crontab 设定每天凌晨4点半执行
30 04 * * * root /bin/sh /opt/db/backup-database.sh
 
可以使用命令:cat /var/log/cron  查看定时任务执行日志
如上处理后,服务器就会自动进行数据库备份并上传到异地服务器上了,但是有个问题还需要解决,那就是让scp命令不需要密码才行。
 
具体配置方法参考:http://www.2cto.com/os/201212/175290.html
 
下面说一下oracle与mysql的不同之处
 
oracle备份一般情况需要使用 su - oracle 切换到oracle用户下才能执行,下面说一下直接在root用户下如何进行操作。
 
特殊的地方就是,有的操作需要root用户(比如无密码scp操作,我这里只是举例),有的操作需要oracle用户(exp导出用户)。
关键命令:su - oracle -c "/opt/expdatabase.sh" 
意思是在root用户下不需要切换到oracle用户,而直接使用oracle用户的角色执行 expdatabase.sh 文件。
  www.2cto.com  
我们需要在 root 下的 sh 文件中调用 expdatabase.sh 文件。
 
shell 脚本如下:
 
1、主 sh 脚本,root 执行
 
[java] 
#!/bin/sh  
  
filename=`date '+%Y%m%d-%H%M%S'`  
filename="${filename}bak.dmp"  
  
su - oracle -c "/u01/oradata/bak/expdatabase.sh ${filename}"  
  
scp -P 195 /u01/oradata/bak/${filename} root@124.207.35.132:/bak/202.102.41.35  
  
echo "Execution completed"  
 
2、需要用oracle用户的角色来执行的sh脚本 expdatabase.sh
[java] 
#!/bin/sh  
  
#进入oracle home  
cd /u01/oracle  
#加载oracle用户环境变量  
. ./.bash_profile  
  
exp user/password@clmt file=/u01/oradata/bak/$1 full=y  
 

推荐阅读
author-avatar
lovely叫我龙哥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有