oracle 数据库备份shell脚本
#!/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
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号