@@ -5,9 +5,20 @@ usage () {
5
5
printf " ocictl.sh adb list\n"
6
6
printf " start <service_name>\n"
7
7
printf " stop <service_name>\n"
8
+ printf " clone <source_name> <target_name> <admin_password>\n"
9
+ printf " delete <service_name>\n"
10
+ printf " wallet <service_name> <password>\n"
8
11
printf " db list\n"
9
- printf " start <service-name>\n"
10
- printf " stop <service-name>\n"
12
+ printf " start <service-name>\n"
13
+ printf " stop <service-name>\n"
14
+ printf " cpu-scale <service-name> <#oCPU>\n"
15
+ # printf " storage-scale <service-name> <#GB>\n"
16
+ printf " listpdb <service-name>\n"
17
+ printf " createpdb <service-name> <pdb-name> <pdb-admin-password> <tde-wallet-password>\n"
18
+ printf " deletepdb <service_name> <pdbname>\n"
19
+ printf " clonepdb <service_name> <source_pdb_name> <target_pdb_name> <pdb-admin-password> <tde-wallet-password>\n"
20
+ printf " startpdb <service_name> <pdb_name>\n"
21
+ printf " stoppdb <service_name> <pdb_name>\n"
11
22
printf " compute list\n"
12
23
printf " start <service_name>\n"
13
24
printf " stop <service_name>\n"
@@ -97,6 +108,58 @@ stop_db () {
97
108
done
98
109
}
99
110
111
+ scale_cpu () {
112
+ DB_SYSTEM=` oci db database list --compartment-id $OCI_CID --display-name $1 `
113
+ DB_ID=` python3 $OCICTL_HOME /python/get_lov.py " $DB_SYSTEM " " id" `
114
+ DB_SYSTEM=` oci db database get --database-id " $DB_ID " `
115
+ DB_SYSTEM_ID=` python3 $OCICTL_HOME /python/get_value.py " $DB_SYSTEM " " db-system-id" `
116
+ oci db system update --db-system-id $DB_SYSTEM_ID --cpu-core-count $2
117
+ }
118
+
119
+ scale_storage () {
120
+ DB_SYSTEM=` oci db database list --compartment-id $OCI_CID --display-name $1 ` DB_ID=` python3 $OCICTL_HOME /python/get_lov.py " $DB_SYSTEM " " id" ` DB_SYSTEM=` oci db database get --database-id " $DB_ID " ` DB_SYSTEM_ID=` python3 $OCICTL_HOME /python/get_value.py " $DB_SYSTEM " " db-system-id" ` oci db system update --db-system-id $DB_SYSTEM_ID --data-storage-size-in-gbs $2
121
+ }
122
+
123
+ list_pdb () {
124
+ DB_SYSTEM=` oci db database list --compartment-id $OCI_CID --display-name $1 `
125
+ DB_ID=` python3 $OCICTL_HOME /python/get_lov.py " $DB_SYSTEM " " id" `
126
+ oci db pluggable-database list --database-id " $DB_ID " | python3 $OCICTL_HOME /python/pdb_list.py
127
+ }
128
+
129
+ start_pdb () {
130
+ DB_SYSTEM=` oci db database list --compartment-id $OCI_CID --display-name $1 `
131
+ DB_ID=` python3 $OCICTL_HOME /python/get_lov.py " $DB_SYSTEM " " id" `
132
+ PDB_ID=` oci db pluggable-database list --database-id " $DB_ID " | python3 $OCICTL_HOME /python/pdb_list2.py " $2 " | cut -d" :" -f2`
133
+ oci db pluggable-database start --pluggable-database-id " $PDB_ID "
134
+ }
135
+
136
+ stop_pdb () {
137
+ DB_SYSTEM=` oci db database list --compartment-id $OCI_CID --display-name $1 `
138
+ DB_ID=` python3 $OCICTL_HOME /python/get_lov.py " $DB_SYSTEM " " id" `
139
+ PDB_ID=` oci db pluggable-database list --database-id " $DB_ID " | python3 $OCICTL_HOME /python/pdb_list2.py " $2 " | cut -d" :" -f2`
140
+ oci db pluggable-database stop --pluggable-database-id " $PDB_ID "
141
+ }
142
+
143
+ create_pdb () {
144
+ DB_SYSTEM=` oci db database list --compartment-id $OCI_CID --display-name $1 `
145
+ DB_ID=` python3 $OCICTL_HOME /python/get_lov.py " $DB_SYSTEM " " id" `
146
+ oci db pluggable-database create --container-database-id " $DB_ID " --pdb-name " $2 " --pdb-admin-password " $3 " --tde-wallet-password " $4 "
147
+ }
148
+
149
+ clone_pdb () {
150
+ DB_SYSTEM=` oci db database list --compartment-id $OCI_CID --display-name $1 `
151
+ DB_ID=` python3 $OCICTL_HOME /python/get_lov.py " $DB_SYSTEM " " id" `
152
+ PDB_ID=` oci db pluggable-database list --database-id " $DB_ID " | python3 $OCICTL_HOME /python/pdb_list2.py " $2 " | cut -d" :" -f2`
153
+ oci db pluggable-database local-clone --pluggable-database-id " $PDB_ID " --cloned-pdb-name " $3 " --pdb-admin-password " $4 " --target-tde-wallet-password " $5 "
154
+ }
155
+
156
+ delete_pdb () {
157
+ DB_SYSTEM=` oci db database list --compartment-id $OCI_CID --display-name $1 `
158
+ DB_ID=` python3 $OCICTL_HOME /python/get_lov.py " $DB_SYSTEM " " id" `
159
+ PDB_ID=` oci db pluggable-database list --database-id " $DB_ID " | python3 $OCICTL_HOME /python/pdb_list2.py " $2 " | cut -d" :" -f2`
160
+ oci db pluggable-database delete --pluggable-database-id " $PDB_ID "
161
+ }
162
+
100
163
list_db_systems () {
101
164
if [ $# -eq 0 ];
102
165
then
@@ -112,11 +175,19 @@ list_db_systems () {
112
175
if [ " $DB_LIFECYCLE_STATE " != " TERMINATED" ];
113
176
then
114
177
DB_NAME=` python3 $OCICTL_HOME /python/get_value.py " $DB_SYSTEM " " db-name" `
178
+ DB_SYSTEM_ID=` python3 $OCICTL_HOME /python/get_value.py " $DB_SYSTEM " " db-system-id" `
179
+ DB_SYSTEM_2=` oci db system get --db-system-id " $DB_SYSTEM_ID " `
180
+ DB_CPUS=` python3 $OCICTL_HOME /python/get_value.py " $DB_SYSTEM_2 " " cpu-core-count" `
181
+ DB_GBS=` python3 $OCICTL_HOME /python/get_value.py " $DB_SYSTEM_2 " " data-storage-size-in-gbs" `
182
+ DB_USED_GBS=` python3 $OCICTL_HOME /python/get_value.py " $DB_SYSTEM_2 " " data-storage-percentage" `
115
183
DB_HOME_ID=` python3 $OCICTL_HOME /python/get_value.py " $DB_SYSTEM " " db-home-id" `
116
184
DB_HOME=` oci db db-home get --db-home-id " $DB_HOME_ID " `
117
185
DB_VERSION=` python3 $OCICTL_HOME /python/get_value.py " $DB_HOME " " db-version" `
118
186
printf " db system:\n %s:%s\n" $DB_NAME $id
119
187
printf " db version: %s\n" $DB_VERSION
188
+ printf " #oCPUs: %s\n" $DB_CPUS
189
+ printf " Storage (GB): %s\n" $DB_GBS
190
+ printf " used (%%) : %s\n" $DB_USED_GBS
120
191
DB_SYSTEM_ID=` python3 $OCICTL_HOME /python/get_value.py " $DB_SYSTEM " " db-system-id" `
121
192
DB_NODE_LIST=` oci db node list --compartment-id $OCI_CID --db-system-id $DB_SYSTEM_ID `
122
193
NODE_IDS=` python3 $OCICTL_HOME /python/get_lov.py " $DB_NODE_LIST " " id" `
@@ -161,6 +232,24 @@ stop_adb_instance () {
161
232
oci db autonomous-database stop --autonomous-database-id " $ADB_ID "
162
233
}
163
234
235
+ clone_adb_instance () {
236
+ ADB_SYSTEM=` oci db autonomous-database list --compartment-id $OCI_CID --display-name $1 `
237
+ ADB_ID=` python3 $OCICTL_HOME /python/get_lov.py " $ADB_SYSTEM " " id" `
238
+ oci db autonomous-database create-from-clone --compartment-id " $OCI_CID " --source-id " $ADB_ID " --clone-type FULL --admin-password " $3 " --db-name " $2 " --display-name " $2 " --data-storage-size-in-tbs 1 --compute-model ECPU --compute-count 2
239
+ }
240
+
241
+ delete_adb_instance () {
242
+ ADB_SYSTEM=` oci db autonomous-database list --compartment-id $OCI_CID --display-name $1 `
243
+ ADB_ID=` python3 $OCICTL_HOME /python/get_lov.py " $ADB_SYSTEM " " id" `
244
+ oci db autonomous-database delete --autonomous-database-id " $ADB_ID "
245
+ }
246
+
247
+ download_adb_wallet () {
248
+ ADB_SYSTEM=` oci db autonomous-database list --compartment-id $OCI_CID --display-name $1 `
249
+ ADB_ID=` python3 $OCICTL_HOME /python/get_lov.py " $ADB_SYSTEM " " id" `
250
+ oci db autonomous-database generate-wallet --autonomous-database-id " $ADB_ID " --password " $2 " --file $WALLETS_HOME /wallet_$1 .zip
251
+ }
252
+
164
253
list_bucket () {
165
254
BUCKETS=` oci os bucket list --compartment-id $OCI_CID `
166
255
python3 $OCICTL_HOME /python/get_lov.py " $BUCKETS " " name"
@@ -199,7 +288,7 @@ groupstart () {
199
288
exit
200
289
;;
201
290
esac
202
- done < $OCICTL_CONFIG /$1 .group
291
+ done < $OCICTL_CONFIG /$1 .oci.grp
203
292
}
204
293
205
294
groupstop () {
@@ -215,7 +304,7 @@ groupstop () {
215
304
exit
216
305
;;
217
306
esac
218
- done < $OCICTL_CONFIG /$1 .group
307
+ done < $OCICTL_CONFIG /$1 .oci.grp
219
308
}
220
309
221
310
groupstatus () {
@@ -231,11 +320,11 @@ groupstatus() {
231
320
exit
232
321
;;
233
322
esac
234
- done < $OCICTL_CONFIG /$1 .group
323
+ done < $OCICTL_CONFIG /$1 .oci.grp
235
324
}
236
325
237
326
grouplist () {
238
- for file in $OCICTL_CONFIG /* .group ;
327
+ for file in $OCICTL_CONFIG /* .oci.grp ;
239
328
do
240
329
printf " %s\n" ` basename $file | cut -d' .' -f1`
241
330
while read srv type ; do
@@ -306,30 +395,109 @@ case ${1} in
306
395
fi
307
396
list_adb_instances
308
397
;;
398
+ " clone" ) if [ $# -ne 5 ];
399
+ then
400
+ usage
401
+ exit 0
402
+ fi
403
+ clone_adb_instance $3 $4 $5
404
+ ;;
405
+ " delete" ) if [ $# -ne 3 ];
406
+ then
407
+ usage
408
+ exit 0
409
+ fi
410
+ delete_adb_instance ${3}
411
+ ;;
412
+ " wallet" ) if [ $# -ne 4 ];
413
+ then
414
+ usage
415
+ exit 0
416
+ fi
417
+ download_adb_wallet ${3} ${4}
418
+ ;;
309
419
* ) usage
310
420
;;
311
421
esac
312
422
;;
313
423
" db" ) case ${2} in
314
- " list" ) list_db_systems
315
- ;;
316
- " start" ) if [ $# -ne 3 ];
424
+ " list" ) list_db_systems $3
425
+ ;;
426
+
427
+ " cpu-scale" ) if [ $# -ne 4 ];
317
428
then
318
429
usage
319
430
exit 0
320
431
fi
321
- start_db $3
432
+ scale_cpu $3 $4
322
433
;;
323
- " stop" ) if [ $# -ne 3 ];
434
+ " storage-scale" ) if [ $# -ne 4 ];
435
+ then
436
+ usage
437
+ exit 0
438
+ fi
439
+ scale_storage $3 $4
440
+ ;;
441
+
442
+ " listpdb" ) if [ $# -ne 3 ];
443
+ then
444
+ usage
445
+ exit 0
446
+ fi
447
+ list_pdb $3
448
+ ;;
449
+ " createpdb" ) if [ $# -ne 6 ];
450
+ then
451
+ usage
452
+ exit 0
453
+ fi
454
+ create_pdb $3 $4 $5 $6
455
+ ;;
456
+ " clonepdb" ) if [ $# -ne 7 ];
324
457
then
325
458
usage
326
459
exit 0
327
460
fi
328
- stop_db $3
329
- ;;
330
- * ) usage
461
+ clone_pdb $3 $4 $5 $6 $7
331
462
;;
332
- esac ;;
463
+ " startpdb" ) if [ $# -ne 4 ];
464
+ then
465
+ usage
466
+ exit 0
467
+ fi
468
+ start_pdb $3 $4
469
+ ;;
470
+ " stoppdb" ) if [ $# -ne 4 ];
471
+ then
472
+ usage
473
+ exit 0
474
+ fi
475
+ stop_pdb $3 $4
476
+ ;;
477
+ " deletepdb" ) if [ $# -ne 4 ];
478
+ then
479
+ usage
480
+ exit 0
481
+ fi
482
+ delete_pdb $3 $4
483
+ ;;
484
+ " start" ) if [ $# -ne 3 ];
485
+ then
486
+ usage
487
+ exit 0
488
+ fi
489
+ start_db $3
490
+ ;;
491
+ " stop" ) if [ $# -ne 3 ];
492
+ then
493
+ usage
494
+ exit 0
495
+ fi
496
+ stop_db $3
497
+ ;;
498
+ * ) usage
499
+ ;;
500
+ esac ;;
333
501
" compute" ) case ${2} in
334
502
" start" ) if [ $# -ne 3 ];
335
503
then
0 commit comments