我需要创建一个bash文件,在执行该文件时,它应该导出和导入oracle数据库。
按如下所示执行时,脚本必须检查架构在数据库中是否可用,如果是,则使用包含架构名称和随机ID的新转储文件导出单个架构。使用架构名称和随机ID创建新的表空间,索引和架构,然后重新映射表空间,索引和架构。 如果没有架构,则通过错误“模式不存在”
bashfile.sh clone (schema names separated by commas)
bashfile.sh clone test1,test2,test3
按如下所示执行时,它应清除所有克隆的架构,表空间并立即删除转储文件。
bashfile.sh clean
我从下面的脚本开始尝试,但是我无法走得更远。如何使用架构名称和随机ID创建新的表空间,索引和架构,然后重新映射表空间,索引和架构。
#!/bin/sh
if [ $1 == "clone" ] && [ $2 == "test3" ]
then
ID=$RANDOM
ORACLE_HOME=$ORACLE_BASE/product/12.1.0.2/db_1
export O_HOME
export PATH=$ORACLE_HOME/bin:$PATH
ORACLE_SID=GBDEVDB1; export ORACLE_SID
expdp SYSTEM/XXXXXXXXX schemas=test6 DIRECTORY=DUMP DUMPFILE=test7-$ID.dmp LOGFILE=test7-$ID.log
fi
if [ $1 == "clean" ]
then
rm -rf /opt/oracle/Dump/test*
fi
if [ $1 == "clone" ] && [ $2 != "test3" ]
then
echo "Please enter 'clone' for creating new db or enter 'clean' to delete db"
fi
if [ $1 != "clone" ] && [ $2 = "test3" ]
then
echo "Please enter 'clone' for creating new db or enter 'clean' to delete db"
fi
exit