@@ -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+
100163list_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+
164253list_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
205294groupstop () {
@@ -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
221310groupstatus () {
@@ -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
237326grouplist () {
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