上一篇写了有关“利用exp自动逻辑导出脚本”的文章,但光有导出,没有导入,岂不麻烦,于是写了自动导入脚本,:)实际上是半自动.
脚本名:vmdbimport.ksh
说明:生成导入时要运行的脚本,但不自动运行.可根据需要对“要运行的导入脚本”进行适当的裁减。
#!/bin/ksh
# ++
if [ $# -ne 2 ]
then
echo "+=========================================================================================="
echo "| Usage: $0 <导出的备份目录> <目录数据库的NetService名>"
echo "+=========================================================================================="
exit 1
fi
# ++
THISDAY=$(date +%Y%m%d)
BASEDIR='/backup/vmdb/db'
ORACLE_HOME='/oracle/product/9ir2'
IMP_RELATE_DIR=${BASEDIR}/$1
TARGET_NETSERVICENAME=$2
TARGET_PASSFILE=$BASEDIR/vmdbimppasswd.map
TARGET_EXECUTER="$BASEDIR/vmdbimpexecuter_$THISDAY.ksh"
echo "++"
echo "info:"
echo "info:"
if [ ! -d $IMP_RELATE_DIR ]
then
echo "warn: import directory $IMP_RELATE_DIR not exist . "
exit 1
fi
if [ ! -f $TARGET_PASSFILE ]
then
echo "warn: import database username/password map file $TARGET_PASSFILE not exist . "
exit 1
fi
echo "info: start time = $(date +'%b %e %T') . "
echo "info: import directory=$IMP_RELATE_DIR files to database $TARGET_NETSERVICENAME ."
echo "info: generator import par file from directory ${IMP_RELATE_DIR} start."
touch $TARGET_EXECUTER
echo '#!/usr/bin/ksh' >> $TARGET_EXECUTER
echo 'echo "start time = $(date) ."' >> $TARGET_EXECUTER
find $IMP_RELATE_DIR -name "*.par" -type f -print | while read oline
do
DIRNAME_OLINE=$(dirname $oline)
BASENAME_OLINE=$(basename $oline)
USERNAME=`echo $BASENAME_OLINE | cut -d. -f1`
PASSWORD=`grep $USERNAME $TARGET_PASSFILE | cut -d: -f2`
TABLENAME=`echo $BASENAME_OLINE | cut -d. -f2`
TARGET_IMPFILE=$DIRNAME_OLINE/$USERNAME.$TABLENAME.imp.par
touch $TARGET_IMPFILE
echo "log=$DIRNAME_OLINE/$USERNAME.$TABLENAME.imp.log" >> $TARGET_IMPFILE
echo "file=$DIRNAME_OLINE/$USERNAME.$TABLENAME.dmp" >> $TARGET_IMPFILE
echo "userid=$USERNAME/$PASSWORD@$TARGET_NETSERVICENAME" >> $TARGET_IMPFILE
echo "buffer=4096" >> $TARGET_IMPFILE
echo "tables=($TABLENAME)" >> $TARGET_IMPFILE
echo "ignore=y" >> $TARGET_IMPFILE
echo "grants=n" >> $TARGET_IMPFILE
echo "commit=y" >> $TARGET_IMPFILE
echo "$ORACLE_HOME/bin/imp parfile=$TARGET_IMPFILE" >> $TARGET_EXECUTER
done
echo 'echo "start time = $(date) ."' >> $TARGET_EXECUTER
chown oracle:dba $TARGET_EXECUTER
chmod ug+x $TARGET_EXECUTER
echo "info: end time = $(date +'%b %e %T') . "
exit 0
文件:vmdbimppasswd.map
注:用户名密码对应文件
manage:manage
test:test
分享到:
相关推荐
根据给定的文件信息,我们可以深入探讨Oracle逻辑导出脚本的关键知识点,这些知识点主要集中在Oracle数据库的逻辑备份过程、Shell脚本编程以及系统管理方面。 ### Oracle逻辑导出脚本概览 #### 标题解析:Oracle...
### Oracle定时导出脚本详解 #### 一、Oracle定时导出脚本基本结构与功能说明 在Linux环境下,为了实现Oracle数据库的自动化备份管理,通常会借助于shell脚本来完成定时导出任务。以下是一个典型的Oracle定时导出...
自动导出ORACLE表,并自动创建每日的文件夹,然后将压缩后的导出文件移入当日的文件夹中。
这个查询结果可以被脚本利用,作为exp或expdp命令的一部分。 6. **处理结果**:`result.txt`文件可能是导出过程的日志或结果报告,包含了导出的表信息。通过分析这个文件,可以确认是否成功导出了空表。 7. **...
总结来说,这个场景涉及到了Linux下的shell脚本编写,主要是使用`exp`命令导出Oracle数据库中的数据,并通过Java程序来调用这个脚本。这在日常的运维工作中非常常见,通过这种方式可以实现自动化数据备份,提高工作...
### Oracle自动导出脚本(Windows环境下):文件名自动添加日期与时间 #### 背景介绍 在日常的企业数据库管理中,Oracle数据库作为重要的数据存储系统之一,其备份工作至关重要。为了确保数据安全及方便后期恢复...
根据给定文件的信息,我们可以提炼出以下关于数据库导入导出脚本的相关知识点: ### 一、数据库导入导出概述 数据库导入导出是数据库管理中常见的操作之一,主要用于备份数据、迁移数据或恢复数据等场景。Oracle ...
10. **脚本自动化**:通过编写shell脚本或使用Oracle SQL Developer等工具,可以自动化整个导入导出流程,节省时间和资源。 总结来说,“oracle_exp_imp”压缩包提供的脚本是实现Oracle数据库导入导出的实用工具,...
本文将深入探讨如何使用Oracle的`exp`命令来创建数据库备份脚本,并结合计划任务实现自动备份。 `exp`是Oracle Data Pump Export工具的旧版命令,用于将数据库对象(如表、索引、存储过程等)的数据和元数据导出到...
linux下oracle数据库exp导出,并自动ftp上传到ftp server的sh脚本
### MySQL 数据导入与导出详解 #### 一、MySQL 数据导出 MySQL 提供了多种方式来导出数据,其中最常用的就是 `mysqldump` 命令。通过这个命令,用户可以灵活地导出整个数据库或者指定的表。 ##### 1. 导出整个...
本文将围绕“Oracle自动备份脚本”这一主题,深入探讨如何利用脚本实现Oracle数据库的自动备份,确保数据的安全与可恢复性。 ### Oracle自动备份脚本的重要性 在日常运营中,数据的丢失或损坏可能对企业造成不可...
在使用Oracle11g数据库时,用户可能会遇到在使用exp导出工具导出数据时无法导出空表的问题。空表是指那些没有数据行的表,这在Oracle数据库中比较常见。Oracle11g为提高性能和节省空间,默认情况下对空表不分配...
Oracle数据库是企业级广泛使用的数据库管理系统,其数据导入导出功能是日常运维中不可或缺的部分。在Oracle环境中,数据导入导出通常涉及到多个工具和技术,包括SQL*Loader、Data Pump(expdp/impdp)、以及一些第三...
以下是一个具体的示例,展示如何使用`exp`和`imp`工具进行表的导出导入操作: 假设有一个名为`hr`的用户,其下有两张表`employees`和`departments`。 #### 5.1 导出数据 ```sql exp hr/hr@orcl file=hr_data.dmp ...
然而,Oracle11g在设计时默认对空表不分配segment,因此在使用exp导出数据库时,空表不会被包含在导出文件中。这对于完整备份和恢复所有表的场景来说,可能是一个问题。下面,我们将详细讨论如何处理这个问题,以及...
Oracle数据导入导出是数据库管理中的重要操作,用于在不同环境之间转移数据,备份或恢复数据,以及在系统升级或迁移时保持数据完整性。Oracle提供了一对工具,即IMP(Import)和EXP(Export),来执行这些任务。下面...
### Oracle导出脚本文件的方法 #### 概述 在Oracle数据库管理中,为了便于数据迁移、备份或恢复等操作,导出脚本文件成为一项非常实用的功能。本文将详细介绍如何使用Oracle的导出工具(`exp`)来创建`.dmp`文件,...
"使用PLSQL导入导出oracle数据" PL/SQL 是 Oracle 数据库管理系统中的一个过程语言,能够实现数据的导入和导出。下面我们将详细介绍使用 PL/SQL 导入导出 Oracle 数据的几种方式。 Oracle 导出方式 使用 Oracle ...