Monday, 13 October 2014
Export data pump - schema export
#########################
# Create the ORACLE user
#########################
check values of
SHOW PARAMETER os_authent_prefix
export ORACLE_OWNER=${LOGNAME}
sqlplus /nolog<<END
connect / as sysdba
set pages 100 lines 220
create user ops\$$ORACLE_OWNER identified externally
default tablespace USERS
temporary tablespace TEMP
profile admin
/
connect / as sysdba
grant create table to ops\$$ORACLE_OWNER;
GRANT UNLIMITED TABLESPACE TO ops\$$ORACLE_OWNER ;
GRANT DATAPUMP_EXP_FULL_DATABASE TO ops\$$ORACLE_OWNER ;
grant EXP_FULL_DATABASE to ops\$$ORACLE_OWNER ;
grant IMP_FULL_DATABASE to ops\$$ORACLE_OWNER ;
GRANT DATAPUMP_IMP_FULL_DATABASE TO ops\$$ORACLE_OWNER ;
ALTER USER ops\$$ORACLE_OWNER DEFAULT ROLE ALL ;
GRANT FLASHBACK ANY TABLE TO EXP_FULL_DATABASE ;
-- GRANT READ ON DIRECTORY EXPDP TO IMP_FULL_DATABASE;
-- GRANT WRITE ON DIRECTORY EXPDP TO IMP_FULL_DATABASE;
GRANT READ ON DIRECTORY EXPDP TO ops\$$ORACLE_OWNER;
GRANT WRITE ON DIRECTORY EXPDP TO ops\$$ORACLE_OWNER;
END
# If os_authent_prefix is null
export ORACLE_OWNER=${LOGNAME}
sqlplus /nolog<<END
connect / as sysdba
set pages 100 lines 220
create user $ORACLE_OWNER identified externally
default tablespace USERS
temporary tablespace TEMP
profile admin
/
connect / as sysdba
alter user ORACLE quota unlimited on USERS;
grant create table to $ORACLE_OWNER;
-- GRANT UNLIMITED TABLESPACE TO $ORACLE_OWNER ;
GRANT DATAPUMP_EXP_FULL_DATABASE TO $ORACLE_OWNER ;
GRANT DATAPUMP_IMP_FULL_DATABASE TO $ORACLE_OWNER ;
grant EXP_FULL_DATABASE to $ORACLE_OWNER ;
grant IMP_FULL_DATABASE to $ORACLE_OWNER ;
ALTER USER $ORACLE_OWNER DEFAULT ROLE ALL ;
GRANT FLASHBACK ANY TABLE TO EXP_FULL_DATABASE ;
grant EXECUTE ON DBMS_DATAPUMP to $ORACLE_OWNER;
END
#########################
# Generate the export script
#########################
# Flashback Time value should look like this
FLASHBACK_TIME=\"TO_TIMESTAMP\(\'21-05-2013 17:00:59\',\'DD-MM-YYYY HH24:MI:SS\'\)\" \
for i in 1
do
echo "Enter schema: "
read SCHEMA
PWD=`pwd`
DPAREX=`sqlplus -s /nolog<<END
connect / as sysdba
set pages 100 lines 220 heading off feedback off
select DIRECTORY_NAME
from dba_directories
where DIRECTORY_PATH like '${PWD}%'
/
END`
echo -e "The datapump directory is called: = \t${DPARE}\n\n"
if [ -z ${DPAREX} ]
then echo -e "Incorrect directory - change\n\tABORTING!!!"
else
echo "Correct directory"
DPARE=`echo ${DPAREX}`
export DPARE
echo ${DPARE}
export ORACLE_OWNER=${LOGNAME}
# DT=`date '+%Y%d%m%H%M'`
DT=`date '+%Y%m%d_%H%M'`
# FBDT=`date "+\\"TO_TIMESTAMP\(\'%d/%m/%Y %H:%M:%S\',\'DD-MM-YYYY HH24:MI:SS\'\)\\""`
FBDT=`date "+\\"TO_TIMESTAMP\(\'%d/%m/%Y %H:%M:%S\',\'DD-MM-YYYY HH24:MI:SS\'\)"`
#
# Test Script
#
echo "nohup expdp \"/\" schemas=${SCHEMA} \\
directory=${DPARE} \\
dumpfile=expdp${SCHEMA}_${DT}_%U.dmp \\
logfile=expdp${SCHEMA}_${DT}.log \\
JOB_NAME=EXP_${SCHEMA}_${DT} \\
COMPRESSION=ALL \\
FILESIZE=500M \\
CLUSTER=N \\ <<-- remove if directory is on a shared filesystem
FLASHBACK_TIME="\\"${FBDT}"\\"\" \\
PARALLEL=15 &"
#
fi
done
Labels:
Datapump
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment