"launch-from-db-system"
***********************

* Description

* Usage

* Required Parameters

* Optional Parameters

* Global Parameters

* Example using required parameter


Description
===========

Creates a new DB system in the specified compartment and availability
domain. The Oracle Database edition that you specify applies to all
the databases on that DB system. The selected edition cannot be
changed.

An initial database is created on the DB system based on the request
parameters you provide and some default options. For detailed
information about default options, see Bare metal and virtual machine
DB system default options.

**Note:** Deprecated for Exadata Cloud Service systems. Use the new
resource model APIs instead.

For Exadata Cloud Service instances, support for this API will end on
May 15th, 2021. See Switching an Exadata DB System to the New Resource
Model and APIs for details on converting existing Exadata DB systems
to the new resource model.

Use the CreateCloudExadataInfrastructure and CreateCloudVmCluster APIs
to provision a new Exadata Cloud Service instance.


Usage
=====

   oci db system launch-from-db-system [OPTIONS]


Required Parameters
===================

--availability-domain [text]

The availability domain where the DB system is located.

--compartment-id, -c [text]

The OCID of the compartment the DB system  belongs in.

--cpu-core-count [integer]

The number of CPU cores to enable for a bare metal or Exadata DB
system or AMD VMDB Systems. The valid values depend on the specified
shape:

* BM.DenseIO1.36 - Specify a multiple of 2, from 2 to 36. -
  BM.DenseIO2.52 - Specify a multiple of 2, from 2 to 52. -
  Exadata.Base.48 - Specify a multiple of 2, from 0 to 48. -
  Exadata.Quarter1.84 - Specify a multiple of 2, from 22 to 84. -
  Exadata.Half1.168 - Specify a multiple of 4, from 44 to 168. -
  Exadata.Full1.336 - Specify a multiple of 8, from 88 to 336. -
  Exadata.Quarter2.92 - Specify a multiple of 2, from 0 to 92. -
  Exadata.Half2.184 - Specify a multiple of 4, from 0 to 184. -
  Exadata.Full2.368 - Specify a multiple of 8, from 0 to 368. -
  VM.Standard.E4.Flex - Specify any thing from 1 to 64.

This parameter is not used for INTEL virtual machine DB systems
because virtual machine DB systems have a set number of cores for each
shape. For information about the number of cores for a virtual machine
DB system shape, see Virtual Machine DB Systems

--db-home [complex type]

This is a complex type whose value must be valid JSON. The value can
be provided as a string on the command line or passed in as a file
using the file://path/to/file syntax.

The "--generate-param-json-input" option can be used to generate an
example of the JSON which must be provided. We recommend storing this
example in a file, modifying it as needed and then passing it back in
via the file:// syntax.

--hostname [text]

The hostname for the DB system. The hostname must begin with an
alphabetic character, and can contain alphanumeric characters and
hyphens (-). The maximum length of the hostname is 16 characters for
bare metal and virtual machine DB systems, and 12 characters for
Exadata DB systems.

The maximum length of the combined hostname and domain is 63
characters.

**Note:** The hostname must be unique within the subnet. If it is not
unique, the DB system will fail to provision.

--shape [text]

The shape of the DB system. The shape determines resources allocated
to the DB system. - For virtual machine shapes, the number of CPU
cores and memory - For bare metal and Exadata shapes, the number of
CPU cores, memory, and storage

To get a list of shapes, use the ListDbSystemShapes operation.

--source-db-system-id [text]

The OCID of the DB system.

--ssh-public-keys [complex type]

The public key portion of the key pair to use for SSH access to the DB
system. Multiple public keys can be provided. The length of the
combined keys cannot exceed 40,000 characters. This is a complex type
whose value must be valid JSON. The value can be provided as a string
on the command line or passed in as a file using the
file://path/to/file syntax.

The "--generate-param-json-input" option can be used to generate an
example of the JSON which must be provided. We recommend storing this
example in a file, modifying it as needed and then passing it back in
via the file:// syntax.

--subnet-id [text]

The OCID of the subnet the DB system is associated with.

**Subnet Restrictions:** - For bare metal DB systems and for single
node virtual machine DB systems, do not use a subnet that overlaps
with 192.168.16.16/28. - For Exadata and virtual machine 2-node RAC DB
systems, do not use a subnet that overlaps with 192.168.128.0/20.

These subnets are used by the Oracle Clusterware private interconnect
on the database instance. Specifying an overlapping subnet will cause
the private interconnect to malfunction. This restriction applies to
both the client subnet and the backup subnet.


Optional Parameters
===================

--backup-network-nsg-ids [complex type]

A list of the OCIDs of the network security groups (NSGs) that the
backup network of this DB system belongs to. Setting this to an empty
array after the list is created removes the resource from all NSGs.
For more information about NSGs, see Security Rules. Applicable only
to Exadata systems. This is a complex type whose value must be valid
JSON. The value can be provided as a string on the command line or
passed in as a file using the file://path/to/file syntax.

The "--generate-param-json-input" option can be used to generate an
example of the JSON which must be provided. We recommend storing this
example in a file, modifying it as needed and then passing it back in
via the file:// syntax.

--backup-subnet-id [text]

The OCID of the backup network subnet the DB system is associated
with. Applicable only to Exadata DB systems.

**Subnet Restrictions:** See the subnet restrictions information for
**subnetId**.

--cluster-name [text]

The cluster name for Exadata and 2-node RAC virtual machine DB
systems. The cluster name must begin with an alphabetic character, and
may contain hyphens (-). Underscores (_) are not permitted. The
cluster name can be no longer than 11 characters and is not case
sensitive.

--data-storage-percentage [integer]

The percentage assigned to DATA storage (user data and database
files). The remaining percentage is assigned to RECO storage (database
redo logs, archive logs, and recovery manager backups). Specify 80 or
40. The default is 80 percent assigned to DATA storage. Not applicable
for virtual machine DB systems.

--db-system-options [complex type]

This is a complex type whose value must be valid JSON. The value can
be provided as a string on the command line or passed in as a file
using the file://path/to/file syntax.

The "--generate-param-json-input" option can be used to generate an
example of the JSON which must be provided. We recommend storing this
example in a file, modifying it as needed and then passing it back in
via the file:// syntax.

--defined-tags [complex type]

Defined tags for this resource. Each key is predefined and scoped to a
namespace. For more information, see Resource Tags. This is a complex
type whose value must be valid JSON. The value can be provided as a
string on the command line or passed in as a file using the
file://path/to/file syntax.

The "--generate-param-json-input" option can be used to generate an
example of the JSON which must be provided. We recommend storing this
example in a file, modifying it as needed and then passing it back in
via the file:// syntax.

--display-name [text]

The user-friendly name for the DB system. The name does not have to be
unique.

--domain [text]

A domain name used for the DB system. If the Oracle-provided Internet
and VCN Resolver is enabled for the specified subnet, the domain name
for the subnet is used (do not provide one). Otherwise, provide a
valid DNS domain name. Hyphens (-) are not permitted.

--fault-domains [complex type]

A Fault Domain is a grouping of hardware and infrastructure within an
availability domain. Fault Domains let you distribute your instances
so that they are not on the same physical hardware within a single
availability domain. A hardware failure or maintenance that affects
one Fault Domain does not affect DB systems in other Fault Domains.

If you do not specify the Fault Domain, the system selects one for
you. To change the Fault Domain for a DB system, terminate it and
launch a new DB system in the preferred Fault Domain.

If the node count is greater than 1, you can specify which Fault
Domains these nodes will be distributed into. The system assigns your
nodes automatically to the Fault Domains you specify so that no Fault
Domain contains more than one node.

To get a list of Fault Domains, use the ListFaultDomains operation in
the Identity and Access Management Service API.

Example:

   FAULT-DOMAIN-1

This is a complex type whose value must be valid JSON. The value can
be provided as a string on the command line or passed in as a file
using the file://path/to/file syntax.

The "--generate-param-json-input" option can be used to generate an
example of the JSON which must be provided. We recommend storing this
example in a file, modifying it as needed and then passing it back in
via the file:// syntax.

--freeform-tags [complex type]

Free-form tags for this resource. Each tag is a simple key-value pair
with no predefined name, type, or namespace. For more information, see
Resource Tags.

Example:

   {"Department": "Finance"}

This is a complex type whose value must be valid JSON. The value can
be provided as a string on the command line or passed in as a file
using the file://path/to/file syntax.

The "--generate-param-json-input" option can be used to generate an
example of the JSON which must be provided. We recommend storing this
example in a file, modifying it as needed and then passing it back in
via the file:// syntax.

--from-json [text]

Provide input to this command as a JSON document from a file using the
file://path-to/file syntax.

The "--generate-full-command-json-input" option can be used to
generate a sample json file to be used with this command option. The
key names are pre-populated and match the command option names
(converted to camelCase format, e.g. compartment-id –> compartmentId),
while the values of the keys need to be populated by the user before
using the sample file as an input to this command. For any command
option that accepts multiple values, the value of the key can be a
JSON array.

Options can still be provided on the command line. If an option exists
in both the JSON document and the command line then the command line
specified value will be used.

For examples on usage of this option, please see our “using CLI with
advanced JSON options” link: https://docs.cloud.oracle.com/iaas/Conte
nt/API/SDKDocs/cliusing.htm#AdvancedJSONOptions

--initial-data-storage-size-in-gb [integer]

Size (in GB) of the initial data volume that will be created and
attached to a virtual machine DB system. You can scale up storage
after provisioning, as needed. Note that the total storage size
attached will be more than the amount you specify to allow for
REDO/RECO space and software volume.

--is-diagnostics-events-enabled [boolean]

Enables customer to receive Events service notifications for guest VM
issues

--is-health-monitoring-enabled [boolean]

Enables Oracle to receive diagnostic data and share it with its
operations and support personnel

--is-incident-logs-enabled [boolean]

Enables Oracle to receive Events service notifications for guest VM
issues, collect incident logs and traces

--kms-key-id [text]

The OCID of the key container that is used as the master encryption
key in database transparent data encryption (TDE) operations.

--kms-key-version-id [text]

The OCID of the key container version that is used in database
transparent data encryption (TDE) operations KMS Key can have multiple
key versions. If none is specified, the current key version (latest)
of the Key Id is used for the operation. Autonomous Database
Serverless does not use key versions, hence is not applicable for
Autonomous Database Serverless instances.

--license-model [text]

The Oracle license model that applies to all the databases on the DB
system. The default is LICENSE_INCLUDED.

Accepted values are:

   BRING_YOUR_OWN_LICENSE, LICENSE_INCLUDED

--max-wait-seconds [integer]

The maximum time to wait for the resource to reach the lifecycle state
defined by "--wait-for-state". Defaults to 1200 seconds.

--node-count [integer]

The number of nodes to launch for a 2-node RAC virtual machine DB
system. Specify either 1 or 2.

--nsg-ids [complex type]

The list of OCIDs for the network security groups (NSGs) to which this
resource belongs. Setting this to an empty list removes all resources
from all NSGs. For more information about NSGs, see Security Rules.
**NsgIds restrictions:** - A network security group (NSG) is optional
for Autonomous Databases with private access. The nsgIds list can be
empty. This is a complex type whose value must be valid JSON. The
value can be provided as a string on the command line or passed in as
a file using the file://path/to/file syntax.

The "--generate-param-json-input" option can be used to generate an
example of the JSON which must be provided. We recommend storing this
example in a file, modifying it as needed and then passing it back in
via the file:// syntax.

--private-ip [text]

A private IP address of your choice. Must be an available IP address
within the subnet’s CIDR. If you don’t specify a value, Oracle
automatically assigns a private IP address from the subnet.

--sparse-diskgroup [boolean]

If true, Sparse Diskgroup is configured for Exadata dbsystem. If
False, Sparse diskgroup is not configured.

--storage-performance [text]

The block storage volume performance level. Valid values are
*BALANCED* and *HIGH_PERFORMANCE*. See Block Volume Performance for
more information.

Accepted values are:

   BALANCED, HIGH_PERFORMANCE

--time-zone [text]

The time zone to use for the DB system. For details, see DB System
Time Zones.

--wait-for-state [text]

This operation creates, modifies or deletes a resource that has a
defined lifecycle state. Specify this option to perform the action and
then wait until the resource reaches a given lifecycle state. Multiple
states can be specified, returning on the first state. For example, "
--wait-for-state" SUCCEEDED "--wait-for-state" FAILED would return on
whichever lifecycle state is reached first. If timeout is reached, a
return code of 2 is returned. For any other error, a return code of 1
is returned.

Accepted values are:

   AVAILABLE, FAILED, MAINTENANCE_IN_PROGRESS, MIGRATED, NEEDS_ATTENTION, PROVISIONING, TERMINATED, TERMINATING, UPDATING, UPGRADING

--wait-interval-seconds [integer]

Check every "--wait-interval-seconds" to see whether the resource has
reached the lifecycle state defined by "--wait-for-state". Defaults to
30 seconds.


Global Parameters
=================

Use "oci --help" for help on global parameters.

"--auth-purpose", "--auth", "--cert-bundle", "--cli-auto-prompt", "--
cli-rc-file", "--config-file", "--connection-timeout", "--debug", "--
defaults-file", "--endpoint", "--generate-full-command-json-input", "
--generate-param-json-input", "--help", "--latest-version", "--max-
retries", "--no-retry", "--opc-client-request-id", "--opc-request-id",
"--output", "--profile", "--proxy", "--query", "--raw-output", "--
read-timeout", "--realm-specific-endpoint", "--region", "--release-
info", "--request-id", "--version", "-?", "-d", "-h", "-i", "-v"


Example using required parameter
================================

Copy and paste the following example into a JSON file, replacing the
example parameters with your own.

       oci db system launch-from-db-system --generate-param-json-input db-home > db-home.json
       oci db system launch-from-db-system --generate-param-json-input ssh-public-keys > ssh-public-keys.json

Copy the following CLI commands into a file named example.sh. Run the
command by typing “bash example.sh” and replacing the example
parameters with your own.

Please note this sample will only work in the POSIX-compliant bash-
like shell. You need to set up the OCI configuration and appropriate
security policies before trying the examples.

       export db_system_id=<substitute-value-of-db_system_id> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/db-home/create.html#cmdoption-db-system-id
       export availability_domain=<substitute-value-of-availability_domain> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/system/launch-from-db-system.html#cmdoption-availability-domain
       export compartment_id=<substitute-value-of-compartment_id> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/system/launch-from-db-system.html#cmdoption-compartment-id
       export cpu_core_count=<substitute-value-of-cpu_core_count> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/system/launch-from-db-system.html#cmdoption-cpu-core-count
       export hostname=<substitute-value-of-hostname> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/system/launch-from-db-system.html#cmdoption-hostname
       export shape=<substitute-value-of-shape> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/system/launch-from-db-system.html#cmdoption-shape
       export source_db_system_id=<substitute-value-of-source_db_system_id> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/system/launch-from-db-system.html#cmdoption-source-db-system-id
       export subnet_id=<substitute-value-of-subnet_id> # https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/latest/oci_cli_docs/cmdref/db/system/launch-from-db-system.html#cmdoption-subnet-id

       db_home_id=$(oci db db-home create --db-system-id $db_system_id --query data.id --raw-output)

       oci db system launch-from-db-system --availability-domain $availability_domain --compartment-id $compartment_id --cpu-core-count $cpu_core_count --db-home file://db-home.json --hostname $hostname --shape $shape --source-db-system-id $source_db_system_id --ssh-public-keys file://ssh-public-keys.json --subnet-id $subnet_id
