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)]


