首页 > 数据库 >oracle 数据库备份shell脚本

oracle 数据库备份shell脚本

时间:2023-07-10 10:47:36浏览次数:38  
标签:shell remote log 备份 备份文件 oracle backup dir

#!/bin/bash

# 设置 Oracle 环境变量
export ORACLE_HOME=/path/to/oracle/home
export ORACLE_SID=your_oracle_sid
export PATH=$ORACLE_HOME/bin:$PATH

# 定义备份目录
backup_dir="/path/to/backup/directory"

# 定义日志文件路径
log_file="/path/to/log/file.log"

# 定义远程服务器信息
remote_server="user@remote_server"
remote_dir="/path/to/remote/directory"

# 定义 RMAN 备份脚本
rman_script="
run {
allocate channel ch1 device type disk;
backup database plus archivelog;
release channel ch1;
}
"

# 函数用于输出日志到文件和标准输出
log() {
local timestamp=$(date +"%Y-%m-%d %H:%M:%S")
local message="$1"
echo "[$timestamp] $message"
echo "[$timestamp] $message" >> "$log_file"
}

# 执行 RMAN 备份并记录日志
log "开始执行 RMAN 备份..."
rman target / nocatalog cmdfile=<(echo "$rman_script") >> "$log_file" 2>&1

# 检查备份是否成功
if [ $? -eq 0 ]; then
log "RMAN 备份已成功完成!"

# 移动备份文件到指定目录并记录日志
log "移动备份文件到目录:$backup_dir"
mv $ORACLE_HOME/dbs/*.bkp $backup_dir >> "$log_file" 2>&1

# 复制备份文件到远程服务器并记录日志
log "复制备份文件到远程服务器:$remote_server"
scp $backup_dir/*.bkp $remote_server:$remote_dir >> "$log_file" 2>&1

if [ $? -eq 0 ]; then
log "备份文件已成功复制到远程服务器!"
else
log "复制备份文件到远程服务器时发生错误!"
fi
else
log "RMAN 备份过程中发生错误!"
fi

标签:shell,remote,log,备份,备份文件,oracle,backup,dir
From: https://www.cnblogs.com/summerk/p/17540283.html

相关文章

  • shell参数使用
    shell参数使用说明参数说明$0执行脚本本身的名字。$1传递给脚本的第一个参数。$#脚本的参数个数。$*脚本的所有参数。当被双引号("$*")包含时,会将所有参数当作一个整体来输出。$@与$*类似,但是可以当作数组用。当被双引号("$@")包含时,会将各个参数分开。$?......
  • Linux,shell入门,第二篇
    #!/bin/bash#显示出本机的ip地址方法一#ipa|grepdynamic|tr-s''\/|cut-d'/'-f3#显示出本机的ip地址方法二ipa|sed-rn's/(.*inet)([0-9].*)(\/[0-9].*)(brd.*)/\2/p'#显示出本机ip地址方法三#hostname-I#把ip地址赋值给变量ipaddr,上述三种方法均可ipaddr=......
  • linux shell template
    Replaceenvironmentvariablesinafilewiththeiractualvalues?#config.xml<property><name>instanceId</name><value>$INSTANCE_ID</value></property><property><name>rootPath</name>......
  • 1_Oracle安装教程
    Oracle安装教程安装环境Centos7.9最小化安装Oracle11gR2版本JDK8u202安装教程新建用户组和用户#新建用户数组和Oracle用户及设置Oracle用户密码[root@ora11g~]#groupadddba[root@ora11g~]#groupaddoinstall[root@ora11g~]#useradd-goinstall-Gdba......
  • 如何自动(定时/间隔/重复)执行 同步文件、备份打包加密压缩文件
    参考下列两个教程结合使用即可:快捷自由定时重启、注销、关机如何从多个文件夹内转移全部文件(忽略文件夹的结构)(进行复制)(再打包)就是先设定好勾选对'来源路径’Zip打包,并且勾选备份模式备份模式下,就会先对要复制的文件(夹)先打包,然后可以再对包重命名,再复制到指定的位置中去保......
  • MySQL--Sorted Index Builds 导致备份失败故障分析
    问题概述xtrabackup备份失败,日志中有这样的信息InnoDB:Anoptimized(withoutredologging)DDLoperationhasbeenperformed.Allmodifiedpagesmaynothavebeenflushedtothediskyet.问题原因redologs会跳过一些DDL,PerconaXtraBackup监测到redolog有跳过时,它会......
  • shell 变量多行原样输出,支持\n 回车换行
    假设:git的commit提交说明是多行内容,要给一个变量。但要保持原来样式,比如原来是是3行,在变量输出时候也是3行。经验:要想原样显示,就要在变量上加双引号;单引号和不加会显示成一行。1.原始样式:gitlog-1--format="%B"2.内容给shell变量a:a_test=$(gitlog-1--for......
  • [PowerShell]设置笔记本亮度 -- CIM cmdlet
    如下:$monitor=Get-CimInstance-Namespaceroot/WMI-ClassNameWmiMonitorBrightnessMethodsInvoke-CimMethod-InputObject$monitor-MethodNamewmisetBrightness-Arguments@{Timeout='10';Brightness='25'}参考https://learn.microsoft.com......
  • oracle 面试
    面试题1、promptPL/SQLDeveloperimportfilepromptCreatedon2012年2月4日星期六byAdministratorsetfeedbackoffsetdefineoffpromptCreatingDINGDAN...createtableDINGDAN(NAMEVARCHAR2(60),CHANPINIDVARCHAR2(30))tablespaceUSER......
  • oracle中实现主键的自动增加
    实现方法1:建立一个最小为1,最大为nomaxvalue的一个序列号会自动循环的序列createsequence序列名incrementby1startwith1nomaxvaluenocycle;当向表中插入数据时,SQL语句写法如下:SQL>insertinto表名values(序列名.nextval,列1值,列2值,...);当要重用该序列号......