SQWareProduction:oracle:bin:sqwora SchemaRefreshExpdp.ksh
Contents
Presentation
Script $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh :
Refresh one or more schemas by expdp/impdp
Actions:
- Makes export of distant schema by ssh
- Retrieve dump file by scp
- Drop all objetcs of refreshed schema
- Makes import
The script can also:
- change of unix users target/source
- send email report of refresh
- run shell script before load
- run shell script after load
- keep a table list (save/restore)
Online help
The online help is available for most scripts with the -h option.
Ex: $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -h
Content of this assistance :
Sourcing sqwora_Global.lib v2024.07 SQWareProduction for Oracle (dbSQWare) ... Usage: sqwora_SchemaRefreshExpdp.ksh [-h] -I <instance> -IS <instance> -US <hostname> -O <owner> [+ options] DESCRIPTION sqwora_SchemaRefreshExpdp.ksh refresh schema(s) by expdp/impdp SUPPORT Oracle supported versions: 10gR2 <= v <= 21c PARAMETERS -I instance : Target instance to reload schema(s). -IS instance : Instance source of the export. -US hostname : Source hostname. -O owner(s) : Owner(s) of schema(s) to reload. OPTIONS -h : Display the full usage. -s : Display samples of usage. -P Nb threads : Number of threads in parallel (by default 2). -F filename : File with list of tables to keep (save/restore). -TU owner(s) : To user, target schema(s) to reload. -RD directory : Directory to copy dump file on local host (by default /$(echo ${HOME}|cut -d/ -f2)/backup/${ORACLE_SID}/expdp). -RDS directory : Directory to write dump file on distant host (by default /$(echo ~$lvsqw_UserUnixSource|cut -d/ -f2)/backup/${lvsqw_InstanceSource}/expdp). -Pdb pdb_name : pdb_name for multitenant (target instance). -PdbS pdb_name : pdb_name for multitenant (source instance). -OptExp option : Option to add to the expdp command. -OptImp option : Option to add to the impdp command. -FRT code : Force return code value on error. -UUS username : Source unix user(by default, same as target). -NoConsistent : Remove 'flashback_time=systimestamp' option. -LockKill : Lock users accounts and kill sessions (target schema(s) to reload). -Before scriptname : Script to execute before reload and before drop of objects. -After scriptname : Script to execute after reload. -AddMail email : Email address to add at 'pmexpdba@gmail.com'. -SendReport : Send execution log report. -NoMail : Deactivate sendmail on error to pmexpdba@gmail.com (by default, send on error). -Locale locale : Force Locale for help display (fr,en). -Exec : Execute the reload (by default, display generated commands).
Error management
Errors passing arguments
This type of message is generated:
Lack instance parameter, Usage: sqwora_SchemaRefreshExpdp.ksh [-h] -I <instance> -IS <instance> -US <hostname> -O <owner> [+ options] For full help : sqwora_SchemaRefreshExpdp.ksh -h
If you are connecting through a terminal, no mail will be sent and you will have more this kind of message:
Not sending mail because you are in connected mode !!! Lack instance parameter
If you are not connected to a terminal, the error message appears and is sent by mail to the address contained in the variable $gvsqw_GlobalMail (See help customize this variable). The subject line will always start by "$gvsqw_MailMsg_oracle : " (See help customize this variable).
Execution errors
Whether you are or not connected to a terminal, the error message appears and an email containing a summary of treatment errors is sent to the address contained in the variable $gvsqw_Mail_oracle (See help customize this variable). The subject line will always start by "$gvsqw_MailMsg_oracle : " (See help customize this variable).
Usage examples
Sourcing sqwora_Global.lib v2024.07 SQWareProduction for Oracle (dbSQWare) ... #Standard help for script sqwora_SchemaRefreshExpdp.ksh: $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -h #Display online help for this script $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -Locale en -h #Display online help for this script with forcing of the 'en' locale (by default locale managed by $gvsqw_Locale) $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -s #Display usage examples for this script $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> #Generate commands but don't execute them ! $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -Exec #Refresh one or more schemas <OwnerList> by expdp/impdp $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O OLDSCH -TU NEWSCH -Exec #Import schema OLDSCH, to refresh target schema NEWSCH $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -F <FileName> -Exec #Set the file <FileName> with list of tables to keep (save/restore) $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -RD <DirName> -Exec #Local directory <DirName> to get or put $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -RDS <DirName> -Exec #Directory <DirName> to write dump file on distant host $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -UUS 'dba_42'-Exec #Source unix user here 'dba_42' (by default, same as target) $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -Pdb <pdb_name> -Exec #Specify pugable database TARGET name <pdb_name> for multitenant environnements $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -PdbS <pdb_name> -Exec #Specify pugable database SOURCE name <pdb_name> for multitenant environnements $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -NoConsistent -Exec #Remove 'flashback_time=systimestamp' option (set by default) $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -LockKill -Exec #Lock users accounts and kill sessions (target schema(s) to reload) $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -Before <script> -Exec #Script to execute before reload and before drop of objects $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -After $Home/scripts/XXX.ksh -Exec #Execute script $Home/scripts/XXX.ksh after reload $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -P <NumericValue> -Exec #Run sqwora_SchemaRefreshExpdp.ksh script with a parallel degree of '<NumericValue>' #Use by default the variable gvsqw_NbThreadXXX in $gvsqw_OraBin/../etc/sqwora_GlobalVar.cfg #You can change this default on all your environnement if you set this variable #in configuration file $gvsqw_OraBin/../etc_cust/sqwora_GlobalVar.cfg $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -OptExp <options> -Exec #Add the option(s) <options> to the expdp job $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -OptImp <options-Exec #Add the option(s) <options> to the impdp job $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -AddMail 'mymail1@mydomaine.com,mymail2@mydomaine.com' -Exec #Add the mail list to the default address managed by the variable gvsqw_GlobalMail $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -SendReport -Exec #Send the log by email at the end of the treatment even if there is no error $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -NoMail -Exec #Disables sending an email on error to $gvsqw_GlobalMail (by default, send on error) $gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I $ORACLE_SID -IS <SourceInstance> -US <SourceHost> -O <OwnerList> -FRT <NumericValue> -Exec #Force return code to '<NumericValue>' on error (if no error, "exit 0!") #You can also force return code of this script on all your #environnement if you set the variable: $gvsqw_ForcedReturnCodeScript_sqwora_SchemaRefreshExpdp=<NumericValue> #in configuration file $gvsqw_OraBin/../etc_cust/sqwora_GlobalVar.cfg