精华内容
下载资源
问答
  • 2021-07-12 16:18:02

    本地备份数据库
    #!/bin/bash
    export ORACLE_BASE=/software/app/oracle
    export ORACLE_HOME=/software/app/oracle/product/11.2.0/dbhome_1

    export PATH= P A T H : PATH: PATH:HOME/bin:$ORACLE_HOME/bin

    #export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

    YESTERDAY=date -d yesterday +%Y%m%d

    #/home/oracle/app/product/11.2.0/db_1/bin/expdp system/ZAQ1xsw2@orcl DIRECTORY=backup DUMPFILE=full_ Y E S T E R D A Y . d m p l o g = YESTERDAY.dmp log= YESTERDAY.dmplog=YESTERDAY.log FULL=y

    expdp system/LW_SYS_2017@localhost/ATS50 DIRECTORY=DMPDATA DUMPFILE=full_KaTeX parse error: Expected group after '_' at position 23: …AY.dmp log=full_̲YESTERDAY.log FULL=y

    #删除7天前备份数据
    find /software/app/backup -name ‘full_*’ -type f -mtime +7 -exec rm {} ;

    find /software/app/backup -name ‘*.log’ -type f -mtime +7 -exec rm {} ;

    传数据到异地
    需要安装sftp和lftp

    #!/bin/bash
    #SFTP配置信息
    #IP
    IP=10.196.12.2
    #端口
    PORT=22
    #用户名
    USER=oracle
    #密码
    PASSWORD=*********
    #待上传文件根目录
    CLIENTDIR=/software/app/backup
    #SFTP目录
    SEVERDIR=/software/app/backup
    #待上传文件名
    date=date -d yesterday +%Y%m%d
    FILE=full_${date}*
    #FILE=test.log

    lftp -u U S E R , {USER}, USER,{PASSWORD} sftp:// I P : {IP}: IP:{PORT} <<EOF
    cd $SEVERDIR
    lcd $CLIENTDIR
    mput $FILE
    by
    EOF

    更多相关内容
  • 备份oracle数据库,并压缩打包,传至远程FTP服务器,做到本地异地同时备份,可自动清理本地过期备份,自动保留N个最新备份(针对此种备份,不针对文件夹),老的备份自动删除,将此文件加入系统任务计划,则可实现定时...
  • 程序坏了换台机器重新发布就可以,但数据一旦丢失,造成的损失将不可挽回,程序发布到生产后,数据的备份便显得尤为重要,由于不一定所有的服务均有资金完成高级的备份如RAC和DG,在我们只有一台数据库服务器的,...
  • # 备份服务器地址 backIP=$BackIP # 数据库SID sid=$SID # 数据库连接端口 port=$Port # 数据库连接用户 user=$User # 备份服务器系统用户 backUser=$BackUser # 分解备份服务器用户名和密码 backUserName=$(echo $...

    脚本文件

    #!/bin/bash
    
    # 解析配置文件
    # 通过`source`加载配置文件
    source config
    # 备份服务器地址
    backIP=$BackIP
    # 数据库SID
    sid=$SID
    # 数据库连接端口
    port=$Port
    # 数据库连接用户
    user=$User
    # 备份服务器系统用户
    backUser=$BackUser
    # 分解备份服务器用户名和密码
    backUserName=$(echo $backUser | awk -F '/' '{print $1}')
    backUserPasswd=$(echo $backUser | awk -F '/' '{print $2}')
    # 远程服务器地址
    remoteIP=$RemoteIP
    # 远程服务器系统用户
    remoteUser=$RemoteUser
    # 分解远程服务器用户名和密码
    remoteUserName=$(echo $remoteUser | awk -F '/' '{print $1}')
    remoteUserPasswd=$(echo $remoteUser | awk -F '/' '{print $2}')
    # 备份的用户目录
    owner=xiaoer
    
    # 判断当前系统登录用户是否是备份服务器用户,如果不是则切换用户
    currentUser=$(whoami)
    if [ $currentUser != $backUserName ];then
        expect -c "
        spawn su - $backUserName
        expect \"Password:\"
        send \"$backUserPasswd\r\"
        interact
        "
    fi
    
    # 远程机器相关操作
    # B机器(远程机器)备份文件路径
    remotePath=/home/yankee/$owner
    # 如果支持免密登录时
    ssh $remoteUserName@remoteIP -tt << EOF
        if [ ! -d $remotePath ];then
            mkdir $remotePath
        fi
        exit 0
    EOF
    
    # 备份机器相关操作
    # 数据文件备份路径
    # A机器备份文件路径
    backdirk=/home/yankee/$owner
    # 判断目录是否存在,如果不存在,则创建
    if [ ! -d $backdir ];then
        mkdir $backdir
    else
        echo $backdir exist!
    fi
    # 当前系统时间
    dateTime=`date +%Y%m%d`
    # oracle数据库连接信息
    oracleSid="$backIP/$sid"
    # 如果用户为多个用户时
    userArray=(${user//,/ })
    echo $userArray
    for ele in ${userArray[@]}
    do
        oracleOwn=$ele
        own=$(echo $oracleOwn | awk -F '/' '{print $1}')
        # 备份时生成的数据文件的信息
        exportDataBack=$dateTime.$own.dmp
        # 完整的备份文件路径
        filePath=$backdir/$exportDataBack
        # 备份oracle数据库的脚本语言
        exp $oracleOwn@$oracleSid file=$filePath rows=y grants=y compress=y
        # 此时会将数据库备份文件打包到执行脚本的目录下
        cd $backdir
        # 压缩数据库备份文件
        tar -zcvf $dateTime.$own.tar.gz $exportDataBack
        # 获取当前服务器中的数据文件的大小
        # 直接截取ls命令中所显示的文件大小
        size=$(ls -al ./ | grep $dateTime.$own.tar.gz | awk -F ' ' '{print $5}')
        # 将压缩文件大小保存到标志文件sizeFlag中
        echo $size > sizeFlag.$own
        # 获取标识文件中所存储的压缩文件大小
        keyValue=$(cat sizeFlag.$own)
        # 使用scp命令发送到远程服务器中的指定目录
        scp $dateTime.$own.tar.gz $remoteUserName@$remoteIP:$remotePath
        # 比较远程服务器的文件大小和标志文件中的文件大小是否一致
        # 获取远程服务器中的压缩文件大小
        ssh $remoteUserName@$remoteIP -tt << EOF
        echo $(ls -al $remotePath | grep $dateTime.$own.tar.gz | awk -F ' ' '{print $5}')
        scp $remotePath/remoteSize.$own $backUserName@$backIP:$backdir
        rm $remotePath/remoteSize.$own
        exit
    EOF
        remoteSize=$(cat remoteSize.$own)
        if [ $keyValue == $remoteSize.$own ];then
            echo "finished"
            rm -rf $backdir
        else
            echo "failed"
        fi
    done
    

    配置文件

    BackIP=192.168.21.100
    SID=orcl
    Port=1521
    User=xiaoer/xiaoer
    BackUser=yankee/yankee
    RemoteIP=192.168.21.101
    RemoteUser=yankee/yankee
    
    展开全文
  • 相信为数不少的系统管理员每天都在做着同一样的工作——对数据进行备份。一旦哪一天疏忽了, 而这一天系统又恰恰发生了故障,...本文结合实践 经验,谈一谈UNIX环境下Oracle数据库的自动备份,以起到抛砖引玉的作用。
  • 这里模拟的异地运行环境为一主一备两套Sun Solaris系统,所采用的备份方法为Oracle数据库提供的标准备份:export。  相关命令  文中主要用到三个命令,这里先单独介绍一下:  export:将数据库中数据备份成...
  • 基于C_S架构的Oracle数据库异地备份与恢复的研究.pdf
  • 日常运维工作中有很多要做数据库备份的工作,除rman备份外最常用的就数数据泵的导出了,下面就把我自己脚本做一个分析 提示:以下是本篇文章正文内容,下面案例可供参考 一、expdp备份脚本详解 vi /home/oracle/dmp...


    前言

    日常运维工作中有很多要做数据库备份的工作,除rman备份外最常用的就数数据泵的导出了,下面就把我自己脚本做一个分析


    提示:以下是本篇文章正文内容,下面案例可供参考

    一、expdp备份脚本详解

    vi /home/oracle/dmp_bak.sh
    
    #!/bin/sh
    # Oracle 设置环境变量
    ORACLE_BASE=/oracle; export ORACLE_BASE
    ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1;  export ORACLE_HOME
    ORACLE_SID=cxldb1; export ORACLE_SID 
    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$ORACLE_BASE/scripts:$PATH
    #在库中创建逻辑目录
    #SQL>CREATE DIRECTORY dump_backup_dir as '/data2/oracle/backup';
    #SQL>grant read,write on directory dump_backup_dir to public; 
    #设置相应文件位置变量与名称
    ##dmp文件的导出目录
    DATA_DIR=/data2/oracle/backup
    ##dmp文件的导出名称
    DMP_FILE=bak_expdp_$(date +%Y%m%d).dmp
    ##log文件的导出名称
    LOG_FILE=bak_expdp_$(date +%Y%m%d).log
    ##压缩文件名称(如数据库已有compression参数可不进行压缩,据实际情况)
    FILE_NAME=bak_expdp_$(date +%Y%m%d)
    #expdp导出数据库dmp文件(以下参数供参考)
    expdp system/*****@192.168.10.111:1521/orcl schemas=username directory=dump_backup_dir DUMPFILE=$DMP_FILE logfile=$LOG_FILE compression=all parallel=3;
    #切到dmp备份文件目录,将dmp与log文件进行打包,并生成$FILE_NAME.tar.gz文件
    cd $DATA_DIR
    tar czvf $FILE_NAME.tar.gz $DMP_FILE $LOG_FILE
    
    #备份文件实现异地传输:注意修改密码,本测试机密码为p@ssw0rd
    expect -c "
      spawn scp /data2/oracle/backup/$FILE_NAME.tar.gz root@192.168.10.222:/data2/oracle/backup
      expect {
        \"*assword\" {set timeout 300; send \"p@ssw0rd\r\";}
        \"yes/no\" {send \"yes\r\"; exp_continue;}
      }
      expect eof"
    #删除超过7天的备份文件
    find $DATA_DIR -mtime +7 -name "bak_expdp_*"  -exec rm -f {} \;
    # That's all
    

    二、设置计划任务

    [oracle@tdcxl ~]# chmod u+x dmp_bak.sh
    [oracle@tdcxl ~]# crontab -l
    00  12  *  *  *  /home/oracle/dmp_bak.sh > /home/oracle/dmp_bak.log 2>&1
    
    展开全文
  • 正在看的ORACLE教程是:数据库Oracle数据的异地的自动备份 在大型商业应用中 数据的异地容灾备份十分重要 也必不可少 笔者根据自己的实践经验 设计了一套简洁地实现异地数据自动备份的方法 可供数据库管理人员参考 ...

    数据库Oracle数据的异地的自动备份以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    485836f21ea3dd659918be8ec1a39484.png正在看的ORACLE教程是:数据库Oracle数据的异地的自动备份 在大型商业应用中 数据的异地容灾备份十分重要 也必不可少 笔者根据自己的实践经验 设计了一套简洁地实现异地数据自动备份的方法 可供数据库管理人员参考 文中所有的程序都经过测试 运行良好 这里模拟的异地运行环境为一主一备两套Sun Solaris系统 所采用的备份方法为Oracle数据库提供的标准备份 export

    相关命令

    文中主要用到三个命令 这里先单独介绍一下:

    export: 将数据库中数据备份成一个二进制系统文件 它有三种模式: 用户模式 表模式 整个数据库模式 还可分为三种备份类型 完全型 积累型 增量型 本文以整个数据库模式下的完全型为例说明 export使用格式为

    exp userid file

    其中 userid的用法为username/userpassword 即Oracle中的用户名/口令 userid必须为exp的第一个参数 file指备份文件所放位置及名称

    ftp: 一般情况下可通过交互方式实现两台主机间的数据传输 即需要手工输入目标主机的IP地址 用户名 口令等 但是当用户使用ftp命令时 系统将会先在该用户的注册目录中寻rc文件 并首先执行该文件 这样 我们可以通过编写一rc的文件来达到自动备份的目的 要注意该文件必须命名rc 且必须存放在启动ftp命令主机上的用户注册目录里 ftp常用选项

    i 进行多文件传送时关闭交互提示

    n 在连接之后不进行自动登录

    本文使用 i 选项 以关闭交互提示

    crontab: cron是一个永久进程 它由/etc/rc local启动执行 cron检查/var/spool/cron/crontabs/目录中的文件 找到所要执行的任务和执行任务的时间 并自动完成 该目录中文件由crontab命令建立 用户所建立的crontab文件存于/var/spool/cron/crontabs中 其文件名与用户名一致 本文使用crontab的用户为Oracle 所建立的文件名也为Oracle

    cron使用者的权限记载在下列两个文件中: /usr/var/adm/cron/cron deny和/usr/var/adm/cron/cron allow 前面的文件中所列的用户不允许使用crontab命令 后一文件中所列的用户允许使用crontab命令 crontab命令的常用格式为

    crontab l 显示用户的crontab文件的内容

    crontab r 从crontabs目录中删除用户的crontab文件

    crontab e 编辑用户的crontab文件

    crontab文件每行中有 个字段 前 个为时间设定段 第 个为所要执行的命令 时间段分别为 minutes hours day of month month day of week 字段之间用空格或Tab分开 字段如果为 * 表示该字段在所有可能的取值范围内取值; 如果一个字段是由连字符隔开的两个数字 表明命令可以在两个数字之间的范围内执行

    备份数据库

    设定数据库的拥有者为Oracle 用户名为mistest 其口令为test 新建备份目录为/export/home/oracle/backup 建立一个命名为testbackup的备份文件 文件内容如下

    ORACLE HOME=/export/home/oracle/ ;export ORACLE HOME

    ORACLE SID=ora ;export ORACLE SID

    rm /export/home/oracle/backup/*

    rq=丶date + %m%d 丶

    /export/home/oracle/ /bin/exp mistest/test file=/export/home/oracle

    /backup/exp$rq dmp log=/exoport/home/oracle/backup/exp$rq log

    说明 前两句对Oracle数据库初始化 第 条语句清空备份目录 第 条语句建立一个取当前日期的变量 以便在最后一条语句的备份文件名里含有当前日期信息

    [NextPage]

    异地传输

    在备份主机里建立一个备份目录 /data/oradata/newbackup 在本地主机Oracle用户的注册目录/export/home/oracle里建立一rc文件 设定好备份主机的IP地址 备份主机上的用户为oraclebk 口令为rc文件内容为

    machine x x x x

    login oraclebk

    password testbk

    macdef init

    bin

    lcd /export/home/oracle/backup

    cd /data/oradata/backup

    mput *

    bye

    说明: 前 条语句完成在备份主机上的登录 第4条语句定义一个名为init的宏 第5条语句表示以二进制传输 第6条语句表示进入本地工作目录 第7条语句表示进入备份主机目录 第8条语句完成将本地主机/export/home/oracle/backup目录下的所有文件传输至备份主机/data/oradata/backup目录下 最后一条语句退出ftp会话进程

    rc文件编写完成后 用命令 chmod

    rc 使该文件只能被该用户所访问

    自动执行

    我们以oracle用户登录本地主机 用 crontab -e 编写crontab文件用以启动自动备份进程 oracle文件内容如下

    * * * /export/home/oracle/testbackup

    * * * ftp i x x x x

    说明 第 条语句指定每天自动在 点 分执行对数据库的备份 第 条语句指定每天自动在 点半启动ftp 将备份文件传输到备份主机(备份主机为符合语句中指定IP地址的主机)

    Oracle文件只能在Oracle用户名下用 crontab -e 命令来编辑 编辑完成后 可以在用 crontab-l 命令来查看crontab文件内容 同时在/var/spool/cron/crontabs目录下查看是否增加了一个Oracle文件

    至此 本地主机可以每天定时备份数据库 并定时把备份数据传到备份主机 这样 较好地实现了Oracle数据异地自动备份 本地主机如果有什么故障 数据有了可靠备份 同时 在一定程度上也减轻了系统管理人员烦琐 重复的备份工作

    上一页 lishixinzhi/Article/program/Oracle/201405/30857

    分页:123

    展开全文
  • 来源:网络/责编:编程入门 作者:不详相关命令文中主要用到三个命令,这里先单独介绍一下:export: 将数据库中数据备份成一个二进制系统文件,它有三种模式: 用户模式、表模式、整个数据库模式。还可分为三种备份...
  • Oracle数据库备份与恢复

    千次阅读 2021-01-04 20:17:23
    Oracle数据库备份与恢复一、脱机备份与恢复1.脱机备份获取数据文件列表获取控制文件列表获取联机重做日志文件列表备份测试2.脱机恢复二、联机备份与恢复1.将数据库转换为归档模式2.联机备份3.联机恢复三、不完全恢复...
  • 第四章:Oracle 异地WINDOWS备份操作

    千次阅读 2022-03-23 16:22:11
    Oracle异地WINDOWS备份操作 (例子为备份esb与dw实例下用户近3天数据) 一、脚本内容及注解(备份服务器需安装oracle客户端) set YYYYmmdd=%date:~0,4%%date:~5,2%%date:~8,2% --定义时间格式 md D:\app\data\esb...
  • Oracle数据库异地自动备份的实现.pdf
  • Oracle数据库异地自动备份.pdf
  • 数据库异地备份方案,详细的介绍了手动rman备份脚本,并测试恢复成功。有详细的脚本过程。
  • 如何对Oracle数据库进行冷备份呢?如果是冷备份异地恢复有需要做哪些设置呢?本文我们主要介绍这一方面的内容,接下来我们开始接介绍。  一、冷备份  以oracle10g为例。  coldbak脚本: –connect ...
  • 在主服务器上编写脚本 vim /home/backup/oracledata/oraclebk.sh # /usr/bin #路径名,指定备份的路径 FILEPATH=/home/backup/oracledata #根据指定日期格式,定义备份数据库文件名 FILENAME=`date +"%Y%m%d_%H%M...
  • 教案Oracle数据库异地自动备份.pdf
  • 趁着数据库还能连上,进行异地备份 方法一: 借助plsql plsql-Tools-Export User Objects 发现,虽然可以导出用户的对象,但是,对于表,只有表的create命令,没有表的内容 plsql-Tools-Export tables 可以...
  • 企业Oracle数据库自动异地备份.pdf
  • 是这样的,2018年6月,上一次比较频繁听到勒索病毒差不多是去年这个时候,那时候我是... 特别是有一个系统的数据库服务器和应用服务器和备份服务器是同一台,结果一出事,迷之尴尬。  嗯,另外有一点,被感染的几...
  • 文章目录 前言 一、主要技术点 二、流程步骤 1.编写数据库脚本引入库 2.... 3.scp"免密”拷贝 ...随着项目的上线数据量的增加,数据的安全性越来越重要。...1.编写数据库备份脚本 databackup.sh...
  • Oracle数据库实现自动异地备份.pdf
  • Oracle数据库异地自动备份方法

    千次阅读 2010-01-08 17:07:00
    在大型商业应用中,数据的异地容灾备份...这里模拟的异地运行环境为一主一备两套Sun Solaris系统,所采用的备份方法为Oracle数据库提供的标准备份:export。 相关命令 文中主要用到三个命令,这里先单独介绍一下: expor

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,184
精华内容 1,673
关键字:

oracle数据库异地备份