-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsqlrun-rc.sh
More file actions
executable file
·95 lines (68 loc) · 1.87 KB
/
sqlrun-rc.sh
File metadata and controls
executable file
·95 lines (68 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/usr/bin/env bash
# convert to lower case
typeset -l rcMode=$1
typeset -l traceLevel=$2
set -u
[[ -z $rcMode ]] && {
echo
echo include 'force' or 'manual' on the command line
echo "eg: $0 [trace|no-trace]"
echo
exit 1
}
# another method to convert to lower case
#rcMode=${rcMode@L}
declare traceArgs
case $rcMode in
trace)
[[ -z "$traceLevel" ]] && { echo "please set trace level. eg $0 trace 8"; exit 1;}
traceArgs=" --trace --trace-level $traceLevel ";;
no-trace)
traceLevel=0
traceArgs='';;
*) echo
echo "arguments are [trace|no-trace] - case is unimportant"
echo
exit 1;;
esac
db='lestrade/orcl.jks.com'
username='jkstill'
password='grok'
# annotate the tables appropriately
unset SQLPATH ORACLE_PATH
sqlplus -L /nolog <<-EOF
connect $username/$password@$db
@@result-cache-dental-config/${rcMode}.sql
exit
EOF
timestamp=$(date +%Y%m%d%H%M%S)
traceDir=trace/${rcMode}-${traceLevel}-${timestamp}
rcLogDir=rclog
rcLogFile=$rcLogDir/xact-count-${rcMode}-${traceLevel}-${timestamp}.log
traceFileID="RC-$traceLevel-$timestamp"
[[ -n $traceArgs ]] && { traceArgs="$traceArgs --tracefile-id $traceFileID"; }
[[ $rcMode == 'trace' ]] && { mkdir -p $traceDir; }
mkdir -p $rcLogDir
./sqlrun.pl \
--exe-mode sequential \
--connect-mode flood \
--tx-behavior commit \
--max-sessions 20 \
--exe-delay 0 \
--db "$db" \
--username $username \
--password "$password" \
--runtime 1200 \
--xact-tally \
--xact-tally-file $rcLogFile \
--pause-at-exit \
--sqldir $(pwd)/SQL $traceArgs
# cheating a bit as I know where the trace file are on the server
# lestrade.jks.com:/opt/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_24103_RC-20230703142522.trc
[[ -n $traceArgs ]] && {
scp -p oracle@lestrade.jks.com:/opt/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_*_${traceFileID}.trc $traceDir
echo Trace files are in $traceDir/
echo
}
echo RC Log is $rcLogFile
echo