Мне нужен скрипт bash для expdp и impdp в oracle - PullRequest
0 голосов
/ 22 января 2019

Мне нужно создать 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
...