type=page
status=published
title=import-sync-bundle
next=install-node.html
prev=get-health.html
~~~~~~
import-sync-bundle
==================

[[import-sync-bundle-1]][[GSRFM00142]][[import-sync-bundle]]

import-sync-bundle
------------------

imports the configuration data of a clustered instance or standalone
instance from an archive file

[[sthref1243]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] import-sync-bundle [--help]
--instance instance-name 
[--nodedir node-dir] [--node node-name]
file-name
----

[[sthref1244]]

Description

The `import-sync-bundle` subcommand imports the configuration data of a
clustered instance or standalone instance from an archive file that was
created by the
link:export-sync-bundle.html#export-sync-bundle-1[`export-sync-bundle`(1)]
subcommand.

You must run this subcommand on the host where the instance resides. To
contact the domain administration server (DAS), this subcommand requires
the name of the host where the DAS is running. If a nondefault port is
used for administration, this subcommand also requires the port number.
You must provide this information through the `--host` option and the
`--port` option of the link:asadmin.html#asadmin-1m[`asadmin`(1M)]
utility.

Importing an instance's configuration data transfers the data to a host
for an instance without the need for the instance to be able to
communicate with the DAS. Importing an instance's configuration data is
typically required for the following reasons:

* To reestablish the instance after an upgrade
* To synchronize the instance manually with the domain administration
server (DAS) when the instance cannot contact the DAS

The subcommand imports an instance's configuration data by performing
the following operations:

* Creating or updating the instance's files and directories
* Attempting to register the instance with the DAS

If the attempt to register the instance with the DAS fails, the
subcommand does not fail. Instead, the subcommand displays a warning
that the attempt failed. The warning contains the command to run to
register the instance with the DAS.

The `import-sync-bundle` subcommand does not contact the DAS to
determine the node on which the instance resides. If the node is not
specified as an option of the subcommand, the subcommand determines the
node from the DAS configuration in the archive file.

This subcommand is supported in local mode only.

[[sthref1245]]

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.
`--instance`::
  The instance for which configuration data is being imported. The
  instance must already exist in the DAS configuration. The archive file
  from which the data is being imported must contain data for the
  specified instance.
`--nodedir`::
  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`::
  The node on which the instance resides. If this option is omitted, the
  subcommand determines the node from the DAS configuration in the
  archive file.

[[sthref1246]]

Operands

file-name::
  The name of the file, including the path, that contains the archive
  file to import. This operand is required.

[[sthref1247]]

Examples

[[GSRFM624]][[sthref1248]]

Example 1   Importing Configuration Data for a Clustered Instance

This example imports the configuration for the clustered instance
`ymli2` on the node `sj02` from the archive file
`/export/glassfish3/glassfish/domains/domain1/sync/ymlcluster-sync-bundle.zip`.

The command is run on the host `sj02`, which is the host that the node
`sj02` represents. The DAS is running on the host `sr04` and uses the
default HTTP port for administration.

[source,oac_no_warn]
----
sj02# asadmin --host sr04 import-sync-bundle --node sj02 --instance ymli2 
/export/glassfish3/glassfish/domains/domain1/sync/ymlcluster-sync-bundle.zip
Command import-sync-bundle executed successfully.
----

[[sthref1249]]

Exit Status

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

[[sthref1250]]

See Also

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

link:export-sync-bundle.html#export-sync-bundle-1[`export-sync-bundle`(1)]


