type=page
status=published
title=delete-local-instance
next=delete-managed-executor-service.html
prev=delete-lifecycle-module.html
~~~~~~

= delete-local-instance

[[delete-local-instance-1]][[GSRFM00096]][[delete-local-instance]]

== delete-local-instance

Deletes a {productName} instance on the machine where the subcommand is run

[[sthref842]]

=== Synopsis

[source]
----
asadmin [asadmin-options] delete-local-instance [--help]
[--nodedir node-dir] [--node node-name]
[instance-name]
----

[[sthref843]]

=== Description

The `delete-local-instance` subcommand deletes a {productName}
instance on the machine where the subcommand is run. This subcommand
does not require the Distributed Component Object Model (DCOM) remote
protocol or secure shell (SSH) to be configured. You must run this
command from the machine where the instance resides.

The subcommand can delete any {productName} instance, regardless of
how the instance was created. For example, this subcommand can delete an
instance that was created by using the
link:create-instance.html#create-instance-1[`create-instance`(1)]
subcommand.

The instance that is being deleted must not be running. Otherwise, an
error occurs.

The subcommand deletes an instance by performing the following actions:

* Removing the instance from the configuration of the domain
  administration server (DAS)
* Deleting the instance's files from file system

If the instance that is being deleted is the only instance that is using
the node directory, that directory is also removed.

If a standalone instance is deleted, the instance's standalone
configuration is also deleted. A standalone instance refers to a
configuration that is named instance-name`-config` to which no other
clusters or unclustered instances refer.

The `delete-local-instance` subcommand does not contact the DAS to
determine the node on which the instance resides. To determine the node
on which the instance resides, the subcommand searches the directory
that contains the node directories. If multiple node directories exist,
the node must be specified as an option of the subcommand.

If no operand is specified and only one instance resides on the
specified node, the subcommand deletes the instance. If no operand is
specified and multiple instances reside on the node, an error occurs.

This subcommand is supported in remote mode only.

[[sthref844]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--nodedir`::
  Specifies the directory that contains the instance's node directory.
  The instance's files are stored in the instance's node directory. The
  default is as-install``/nodes``.
`--node`::
  Specifies the node on which the instance resides. This option may be
  omitted only if the directory that the `--nodedir` option specifies
  contains only one node directory. Otherwise, this option is required.

[[sthref845]]

=== Operands

instance-name::
  The name of the instance to delete. This operand may be omitted if
  only one instance resides on the specified node. Otherwise, this
  operand is required.

[[sthref846]]

=== Examples

[[GSRFM565]][[sthref847]]

==== Example 1   Deleting an Instance

This example deletes the instance `pmdsainst`.

[source]
----
asadmin> delete-local-instance pmdsainst

Command delete-local-instance executed successfully.
----

[[sthref848]]

=== Exit Status

0::
  command executed successfully
1::
  error in executing the command

[[sthref849]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-instance.html#create-instance-1[`create-instance`(1)],
link:create-local-instance.html#create-local-instance-1[`create-local-instance`(1)],
link:delete-instance.html#delete-instance-1[`delete-instance`(1)],
link:start-instance.html#start-instance-1[`start-instance`(1)],
link:start-local-instance.html#start-local-instance-1[`start-local-instance`(1)],
link:stop-instance.html#stop-instance-1[`stop-instance`(1)],
link:stop-local-instance.html#stop-local-instance-1[`stop-local-instance`(1)]


