Мне нужно создать bash-файл, когда он будет запущен, он должен экспортировать и импортировать базы данных Oracle.
При выполнении, как показано ниже, скрипт должен проверять схемы, если они доступны в БД, если да, экспортировать отдельную схему с новым файлом дампа, который включает имя схемы и случайный идентификатор. Создайте новые табличные пространства, индексы и схемы с именем схемы и произвольным идентификатором, затем переназначьте табличные пространства, индексы и схемы.
Если нет схем, то из-за ошибки «схема не существует»
bashfile.sh clone (schema names separated by commas)
bashfile.sh clone test1,test2,test3
При выполнении, как показано ниже, он должен очистить все клонированные схемы, табличные пространства и удалить файлы дампа на сегодняшний день.
bashfile.sh clean
Я попробовал приведенный ниже скрипт для начала, но я не могу идти дальше. Как создать новые табличные пространства, индексы и схемы с именем схемы и произвольным идентификатором, а затем переназначить табличные пространства, индексы и схемы.
#!/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