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]
----
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/glassfish7/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]
----
sj02# asadmin --host sr04 import-sync-bundle --node sj02 --instance ymli2 
/export/glassfish7/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)]


