一、需求

定时将服务器A的oracle数据库中某个database定时生成dmp,备份到服务器B中(保存10天)

二、配置数据库定时备份

  1. 在服务器A上创建备份目录,并赋予权限
[root@localhost /]# mkdir -p /home/oraclebak
#新建oracle备份目录
[root@localhost /]# chown -R oracle:oinstall /home/oraclebak -R
#设置目录权限为oinstall用户组的oracle用户
  1. 在服务器B上创建备份目录,并赋予权限
[root@localhost /]# mkdir -p /home/oraclebak
#新建oracle备份目录
[root@localhost /]# chmod 777 /home/oraclebak
  1. 检查psopuser_bak.sh(见文末)中数据库服务器IP、端口、SID等是否正确,将psopuser_bak.sh文件放到服务器A中 /home/oraclebak 目录下
  2. psopuser_bak.sh赋权限
[root@localhost /]# chmod 777 /home/oraclebak/psopuser_bak.sh
  1. 更改psopuser_bak.sh编码
[root@localhost /]# vi /home/oraclebak/psopuser_bak.sh
:set ff=unix #设置编码
:wq #保存退出
  1. 服务器A添加定时任务
[root@localhost /]# crontab -e
#插入下面语句(每天凌晨一点备份一次)
00 1 * * * /home/oraclebak/psopuser_bak.sh
  1. 查看任务
[root@localhost ~]# crontab -l

三、配置无密传输

  1. 使用xSell或shh连接工具连接数据库服务器(服务器A),运行 ssh-keygen -t rsa ,一路回车,进入 /root/.ssh ,可以看到 id_rsaid_rsa_pub 两个文件
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #这里一直回车
[root@localhost .ssh]# cd /root/.ssh
[root@localhost .ssh]# ll
total 8
-rw------- 1 root root 1675 Mar 29 16:31 id_rsa
-rw-r--r-- 1 root root  408 Mar 29 16:31 id_rsa.pub
[root@localhost .ssh]# cp id_rsa.pub id_rsa.pub.dbbak
  1. 在远程服务器(服务器B)上运行命令
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #这里一直回车
  1. 在服务器A上运行命令
[root@localhost .ssh]# scp ./id_rsa.pub.dbbak 服务器B_IP:/root/.ssh
The authenticity of host '10.3.100.16 (10.3.100.16)' can't be established.
RSA key fingerprint is 17:a3:ae:64:08:b0:42:fd:35:2d:e0:99:a5:8a:59:5b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.3.100.16' (RSA) to the list of known hosts.
root@10.3.100.16's password:
id_rsa.pub.dbbak                              100%  408     0.4KB/s   00:00
  1. 在远程服务器(服务器B)上运行命令
[root@localhost ~]# cd /root/.ssh/
[root@localhost .ssh]# cat id_rsa.pub.dbbak    >>  authorized_keys
  1. 在服务器A上运行脚本,测试是否无需输入密码执行成功
[root@localhost .ssh]# scp ./id_rsa.pub.dbbak 服务器B_IP:/root/.ssh
id_rsa.pub.dbbak                              100%  408     0.4KB/s   00:00

四、配置远程服务器(服务器B)定时删除N天前dmp

  1. 连接服务器B,将psopuser_remote_bak.sh(见文末)脚本放到 /home/oraclebak目录下,并赋权限
[root@localhost ~]# chmod 777 /home/oraclebak/psopuser_remote_bak.sh
  1. 更改psopuser_remote_bak.sh编码
[root@localhost /]# vi /home/oraclebak/psopuser_remote_bak.sh
:set ff=unix #设置编码
:wq  #保存退出
  1. 添加定时任务
[root@localhost /]# crontab -e
#插入下面语句(每天凌晨一点删除一次)
00 1 * * * /home/oraclebak/psopuser_remote_bak.sh
  1. 查看任务
[root@localhost ~]# crontab -l

附脚本文件:

psopuser_bak.sh

#这里采用 数据库名称_bak.sh 来命名,为了区分备份的具体数据库
if [ -f ~/.bash_profile ];
then. ~/.bash_profile
fi
echo "begin export psopuser dmp file..."
#设置环境变量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
export ORACLE_SID=MEDB #SID
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LANG=en_US.UTF-8
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
date=$(date +%Y%m%d)  #当前时间
days=10  #设置删除10天前的数据
orsid='10.3.100.15:1521/MEDB' #要备份的Oracle数据库IP、端口、SID
orowner=PSOPUSER  #要备份的数据库的用户名
bakuser=PSOPUSER  #使用此用户来导出dmp
bakpass=123456789    #用户密码
bakdir=/home/oraclebak #备份文件路径
bakdata=$orowner"_"$date.dmp  #备份的dmp名称
baklog=$orowner"_"$date.log   #备份时产生的log名称
ordatabak=$orowner"_"$date.tar.gz #将备份的dmp和log压缩后的文件名称
cd $bakdir
mkdir -p $orowner
cd $orowner
#导出dmp和log文件
exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog
tar -zcvf $ordatabak $bakdata $baklog  #压缩dmp和log文件
find $bakdir/$orowner -type f -name "*.log" -exec rm {} \;  #删除log文件
find $bakdir/$orowner -type f -name "*.dmp" -exec rm {} \;  #删除dmp文件
find $bakdir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \; #删除10天前备份文件

psopuser_remote_bak.sh

bakdir=/home/oraclebak #备份文件路径
days=10  #设置删除10天前的数据
cd $bakdir
find $bakdir -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \; #删除10天前备份文件

Oracle数据库定时备份到远程服务器相关推荐

  1. Oracle数据库定时备份脚本

    Oracle数据库定时备份脚本 一.编写脚本 vim /home/backup/oraclebk.sh #! /usr/bin #路径名,指定备份的路径 FILEPATH=/home/backup/o ...

  2. Oracle数据泵自动删除,Oracle数据库定时备份并删除旧文件

    1.创建一个expdp导出bat批处理任务,自动删除30天之前备份文件: @echo off rem set backupfile=f_database_%date:~0,4%-%date:~5,2% ...

  3. oracle定时服务器,服务器oracle数据库定时备份

    首先要先建立一个.bat的文件  然后执行这个bat文件 测试是否能得到这个收据库的打包文件. bat文件内容: @echo off @color b del /f /s /q D:\oracle\b ...

  4. Oracle数据库定时备份脚本(Linux)

    说明:脚本共分两部分,一是主机脚本,二是备机脚本.主机上做备份,传到备机上,备份文件做压缩,备机上解压缩备份文件并自动导库. 如果有导库需求,导库时由于原库中前一天导入的数据存在,如果不全量删除就进行 ...

  5. Oracle数据库定时备份

    1.新建一个文本文件,命名Oracle定时备份.txt,文件名可自定义. 2.在txt文本文件添加以下内容,并修改文本文件后缀名为Oracle定时备份.bat. //1 @echo off 2 exp ...

  6. mysql数据库定时备份,linux服务器数据异地备份

    一:备份mysql数据库 (1)编写备份脚本 #!/bin/bash #设置mysql备份目录 folder=/home/javaweb/rsc/mysql/rsc-boot cd $folder d ...

  7. Oracle数据库的备份

    这两天要用oracle的数据备份,在网上找了找例子.给大家贴出来看看. PS: 选择数据库中所有的表的SQL语句 SELECT * FROM DBA_TABLES WHERE OWNER=''(填用户 ...

  8. server2012 asp odb数据原_异地服务器文件及数据库定时备份

    前言: 本文主要介绍SQLSERVER/MYSQL数据库的定时备份,现在服务器以我的一台测试服务器为例进行配置演示详细结果如下: 准备: 好备份软件包.及rar.exe文件. 好备份&rar. ...

  9. 异地服务器文件及数据库定时备份

    前言 本文主要介绍SQLSERVER/MYSQL数据库的定时备份,现在服务器以我的一台测试服务器为例进行配置演示详细结果如下: 准备: 好备份软件包.及rar.exe文件. 安装:这里直接一路点击下一 ...

最新文章

  1. 分布式缓存Redis Centos下单节点安装
  2. fota mcsync洛达检测_【科普篇】华强北洛达1536U芯片下的苹果Airpods,与正品差距还有多少...
  3. Mysql报错时区错误invalid timezone
  4. Ubuntu 16.04 下 Vim配置
  5. 操作系统核心原理-5.内存管理(下):段式内存管理
  6. 《计算机程序设计艺术》pdf
  7. 沈航计算机考研真题,2018年沈阳航空航天大学考研真题硕士研究生入学考试试题...
  8. 夯实Java基础(八)——代码块
  9. jquery动态生成的元素添加事件的方法
  10. 确保大数据安全的5个最佳实践措施
  11. 【收藏】基于Dockerfile搭建JAVA Tomcat运行环境
  12. matlab maple函数用法,怎样在matlab中调用maple命令
  13. DLL Care破解版|DLL Care(DLL修复工具)破解版下载(附激活码)
  14. 7z解压crc错误_百度网盘压缩下载文件的CRC校验错误的解决方法
  15. PHP几大框架的优点与缺点
  16. 全云端万能小程序_百搜全云端万能门店小程序v4.0.13五端独家2次开发升级独立版...
  17. webview加载html图片不显示图片,WebView加载网页不显示图片解决办法
  18. 如何在地图上批量标注经纬坐标
  19. 半导体设备基本通信标准介绍系列之-开篇
  20. 【文献阅读】数据挖掘技术在制冷空调行业的应用

热门文章

  1. 程序员鼓励师,六年前昙花一现的职业,现在居然还存在?
  2. 区块链电商市场迎来新高潮 TBK记账系统耀世启航
  3. linux cpu gonvor,LWN:Linux 5.1使用TEO governor来代替cpuidle menu governor
  4. BACnet服务器demo连接演示
  5. WPF 程序点击任务栏图标显示隐藏最小化窗体
  6. 9.15 复习一天,html hr简介
  7. CDR(cv-detect-robot)项目简介
  8. unity:练习小测试
  9. 机器学习笔记——2 简单线性模型及局部加权线性模型的基本原理和python实现(参数估计的两个基本角度:几何直观和概率直观。函数最值问题的两大基本算法:梯度方法与迭代方法)
  10. ChatGPT 桌面应用(Mac, Windows and Linux)