Linux/Unix shell 自动导入Oracle数据库

使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以

使用shell脚本实现对oracle数据库的监控与管理将大大简化dba的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,,awr report的自动邮件等。本文给出linux 下使用 shell 脚本来实现自动导入oracle数据库。

Linux Shell以及导入导出的相关参考:

Linux/Unix shell 脚本中调用SQL,RMAN脚本

Linux/Unix shell sql 之间传递变量

Linux Unix shell 调用 PL/SQL

1、Linux/Unix shell 自动导入Oracle数据库脚本

# +————————————————+
# |  Import database by schema                    |
# |  file_name: impdp.sh                          |
# |  Parameter: Oracle_SID                        |
# |  Usage:                                      |
# |        ./impdb.sh ${ORACLE_SID}              |
# |  Author : Robinson                            |
# |  Blog  :   |
# +————————————————+
#
#!/bin/bash
# ——————–
# Define variable
# ——————–

if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi

# ————————–
#  Check SID
# ————————–
if [ -z “${1}” ];then
    echo “Usage: “
    echo ”      `basename $0` ORACLE_SID”
    exit 1
fi

ORACLE_SID=$1;                export ORACLE_SID
DT=`date +%Y%m%d`;            export DT
SRC_ORA_SID=SY5221A            export SRC_ORA_SID
TIMESTAMP=`date +%Y%m%d_%H%M`
LOG_DIR=/u02/database/${ORACLE_SID}/BNR/dump
LOG_FILE=$LOG_DIR/impdb_${ORACLE_SID}_${TIMESTAMP}.log
DUMP_DIR=/u02/database/${ORACLE_SID}/BNR/dump
TAR_FILE=EXP_${SRC_ORA_SID}_${DT}.tar.gz
DUMP_FILE=EXP_${SRC_ORA_SID}_${DT}.dmp
DUMP_LOG=IMP_${ORACLE_SID}_${DT}.log
LAST_EXP_DUMP_LOG=${DUMP_DIR}/EXP_${SRC_ORA_SID}_${DT}.log
RETENTION=1

# ————————————————————————
#  Check the target database status, if not available send mail and exit
# ————————————————————————

db_stat=`ps -ef | grep pmon_$ORACLE_SID | grep -v grep| cut -f3 -d_`
if [ -z “${db_stat}” ]; then
    MAIL_SUB=” $ORACLE_SID is not available on `hostname` before try to import data  !!!”
#    $MAIL_DIR/sendEmail -u $MAIL_SUB -f $MAIL_FM -t $MAIL_LIST -m $MAIL_SUB
    echo ${MAIL_SUB} |mail -s ” $ORACLE_SID is not available on `hostname` !!!” dba@trade.com
    exit 1
fi

# —————————————————
#  Unzip the dump file
# —————————————————

if [ -s “${DUMP_DIR}/$TAR_FILE” ] ; then
    cd ${DUMP_DIR}
    tar -xvf ${TAR_FILE}
else
  MAIL_SUB=”No dumpfile was found for ${ORACLE_SID} before import.”
    echo “No dumpfile was found for ${ORACLE_SID} before import.”|mail -s $MAIL_SUB dba@trade.com
    exit 1
fi

# —————————————————————————–
#  Check dumpfile and export log file are correct, if no send mail and exit
# —————————————————————————–

date >${LOG_FILE}
echo “The hostname is :`hostname`”>>$LOG_FILE
echo “The source database is :${SRC_ORA_SID}” >>${LOG_FILE}
echo “The target database is :${ORACLE_SID}”>>$LOG_FILE
echo ” ” >>${LOG_FILE}

flag=`cat ${LAST_EXP_DUMP_LOG} | grep -i “successfully completed”`
if  [ -n “${flag}” ] && [ -s “${DUMP_DIR}/${DUMP_FILE}” ] ; then
    echo -e “The dumpfile exists and can be imported to ${ORACLE_SID} “>>${LOG_FILE}
else
    echo “The dumpfile does not exist or exist with errors on `hostname` before try to import data !!!” >>${LOG_FILE}
    mail -s “The dumpfile does not exists or exist with errors for ${ORACLE_SID}” dba@trade.com     exit 1
fi

# ——————————————————————————————
#  Remove all objects for specific schema before import data, if error send mail and exit
# ——————————————————————————————

echo -e “Prepare plsql script to remove all objects for specific schema….” >>$LOG_FILE

echo “
DECLARE
  VERIFICATION VARCHAR2(200);

BEGIN
  VERIFICATION := ‘BO_ADMIN’;

  BO_ADMIN.GO_UTIL_DROP_SCHEMA_OBJECTS ( VERIFICATION );
  COMMIT;
END;
/
exit “>/tmp/remove_obj.sql

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1901348.html

(0)
上一篇 2025年2月22日 14:50:28
下一篇 2025年2月22日 14:50:42

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Oracle数据库在Linux AS4升级

    任务:Oracle10.2.0.2升级到Oracle10.2.0.3系统:LinuxAS4Oracle版本:10.2.0.2Oracle:一个INSTANCE,300G左右数据,单机 不才第一次做升级居然是为一个银行生产库,压力大,工作烦,…

    数据库 2025年2月23日
    100
  • Oracle数据库自增字段的设置

    新建一个sequence,定义好起始值,增值大小,最大值即可。一般自增用到从1开始自增为1的居多。假定新建的sequence名字为: MY_SE 首先: 新建一个sequence,定义好起始值,,增值大小,最大值即可。一般自增用到从1开始自…

    数据库 2025年2月22日
    100
  • Oracle数据迁移方案

    以下所说方法,不考虑数据的增量更新、不考虑数据的实时同步、不考虑数据的逻辑转换。如果有这些需求,建议使用第三方ETL工具或使 数据迁移通俗的说就是将数据从一个地方转移到另一个地方。主要使用场景有:根据正式系统搭建测试环境、从内网复制到外网、…

    数据库 2025年2月22日
    100
  • Oracle数据库用户创建规范

    在Oracle数据库中,每一个用户一般都有自己的数据表空间、临时表空间和索引表空间等数据存储空间,而且你不能随意写到其他的表空 在oracle数据库中,每一个用户一般都有自己的数据表空间、临时表空间和索引表空间等数据存储空间,而且你不能随意…

    数据库 2025年2月22日
    100
  • Linux/Unix shell 自动 FTP 备份档案

    使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以 使用shell脚本实现对oracle数据库的监控与管理将大大简化dba的工作负担,如常见的对实例的监控,…

    数据库 2025年2月22日
    100
  • Linux/Unix shell sql 之间传递变量

    灵活结合Linux/Unix Shell 与SQL 之间的变量传输,极大程度的提高了DBA的工作效率,本文针对Linux/Unix shell sql 之间传递变量给 灵活结合linux/unix shell 与sql 之间的变量传输,,极…

    数据库 2025年2月22日
    200
  • Linux Unix shell 调用 PL/SQL

    Linux/Unix 下除了调用SQL之外,调用PL/SQL也是DBA经常碰到的情形,下面主要通过一些示例给出如何在shell下面来调用pl/sql。 linux/unix 下除了调用sql之外,调用pl/sql也是dba经常碰到的情形,下…

    数据库 2025年2月22日
    200
  • Linux/Unix shell 自动导出Oracle数据库

    使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以 使用shell脚本实现对oracle数据库的监控与管理将大大简化dba的工作负担,如常见的对实例的监控,…

    数据库 2025年2月22日
    200
  • Oracle数据仓库部署注意事项(OLAP)

    最近Oracle数据库升级到11G之后,出现一些问题,慢慢的开始发现一些需要总结的东西,每次心里都在想:下次,我自己搭建数据仓库的 最近oracle数据库升级到11g之后,出现一些问题,慢慢的开始发现一些需要总结的东西,每次心里都在想:下次…

    数据库 2025年2月22日
    200
  • Oracle数据库级drop redolog并不危险

    有些DBA害怕在生产库上做REDO LOG的删除操作,因为担心把状态为ACTIVE和ACITVE的redolog group给删除造成数据库事故。如果在Unix 有些dba害怕在生产库上做redo log的删除操作,因为担心把状态为acti…

    数据库 2025年2月22日
    200

发表回复

登录后才能评论