Skip to content

Commit 20639a3

Browse files
Merge pull request #1181 from oracle-devrel/witold-swierzy-db-base-service-scaling-implemented
added support for scaling up/down db base service
2 parents 6cbd99c + f2d2d0c commit 20639a3

File tree

1 file changed

+183
-15
lines changed
  • data-platform/core-converged-db/ocictl/script/files/sh

1 file changed

+183
-15
lines changed

data-platform/core-converged-db/ocictl/script/files/sh/ocictl.sh

Lines changed: 183 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,20 @@ usage () {
55
printf "ocictl.sh adb list\n"
66
printf " start <service_name>\n"
77
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"
811
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"
1122
printf " compute list\n"
1223
printf " start <service_name>\n"
1324
printf " stop <service_name>\n"
@@ -97,6 +108,58 @@ stop_db () {
97108
done
98109
}
99110

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+
100163
list_db_systems () {
101164
if [ $# -eq 0 ];
102165
then
@@ -112,11 +175,19 @@ list_db_systems () {
112175
if [ "$DB_LIFECYCLE_STATE" != "TERMINATED" ];
113176
then
114177
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"`
115183
DB_HOME_ID=`python3 $OCICTL_HOME/python/get_value.py "$DB_SYSTEM" "db-home-id"`
116184
DB_HOME=`oci db db-home get --db-home-id "$DB_HOME_ID"`
117185
DB_VERSION=`python3 $OCICTL_HOME/python/get_value.py "$DB_HOME" "db-version"`
118186
printf "db system:\n %s:%s\n" $DB_NAME $id
119187
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
120191
DB_SYSTEM_ID=`python3 $OCICTL_HOME/python/get_value.py "$DB_SYSTEM" "db-system-id"`
121192
DB_NODE_LIST=`oci db node list --compartment-id $OCI_CID --db-system-id $DB_SYSTEM_ID`
122193
NODE_IDS=`python3 $OCICTL_HOME/python/get_lov.py "$DB_NODE_LIST" "id"`
@@ -161,6 +232,24 @@ stop_adb_instance () {
161232
oci db autonomous-database stop --autonomous-database-id "$ADB_ID"
162233
}
163234

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+
164253
list_bucket () {
165254
BUCKETS=`oci os bucket list --compartment-id $OCI_CID`
166255
python3 $OCICTL_HOME/python/get_lov.py "$BUCKETS" "name"
@@ -199,7 +288,7 @@ groupstart () {
199288
exit
200289
;;
201290
esac
202-
done < $OCICTL_CONFIG/$1.group
291+
done < $OCICTL_CONFIG/$1.oci.grp
203292
}
204293

205294
groupstop () {
@@ -215,7 +304,7 @@ groupstop () {
215304
exit
216305
;;
217306
esac
218-
done < $OCICTL_CONFIG/$1.group
307+
done < $OCICTL_CONFIG/$1.oci.grp
219308
}
220309

221310
groupstatus() {
@@ -231,11 +320,11 @@ groupstatus() {
231320
exit
232321
;;
233322
esac
234-
done < $OCICTL_CONFIG/$1.group
323+
done < $OCICTL_CONFIG/$1.oci.grp
235324
}
236325

237326
grouplist() {
238-
for file in $OCICTL_CONFIG/*.group;
327+
for file in $OCICTL_CONFIG/*.oci.grp;
239328
do
240329
printf "%s\n" `basename $file|cut -d'.' -f1`
241330
while read srv type; do
@@ -306,30 +395,109 @@ case ${1} in
306395
fi
307396
list_adb_instances
308397
;;
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+
;;
309419
* ) usage
310420
;;
311421
esac
312422
;;
313423
"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 ];
317428
then
318429
usage
319430
exit 0
320431
fi
321-
start_db $3
432+
scale_cpu $3 $4
322433
;;
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 ];
324457
then
325458
usage
326459
exit 0
327460
fi
328-
stop_db $3
329-
;;
330-
* ) usage
461+
clone_pdb $3 $4 $5 $6 $7
331462
;;
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 ;;
333501
"compute" ) case ${2} in
334502
"start" ) if [ $# -ne 3 ];
335503
then

0 commit comments

Comments
 (0)