Enportal/5.5/admin/enPortal installation/backup and recovery: Difference between revisions

imported>Jason.nicholls
m (1 revision)
imported>Jason.nicholls
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:enPortal 5.5]]
[[Category:enPortal 5.5]]
{{DISPLAYTITLE:enPortal Backup & Recovery}}
{{DISPLAYTITLE:enPortal Backup & Recovery}}
==Overview==
A typical enPortal deployment will consist of:
A typical enPortal deployment will consist of:


Line 6: Line 7:
# custom assets on the file system such as configuration files.
# custom assets on the file system such as configuration files.
# external supporting pieces required for operation but not strictly part of enPortal.
# external supporting pieces required for operation but not strictly part of enPortal.
<br>


enPortal provides a configurable export system which will automatically capture all system configuration (1) and much of the custom assets (2). If custom assets are not captured then the export configuration can be modified to include them which would be considered a deployment best practice. Exporting the external supporting pieces (3) is beyond the scope of the product itself but should be considered from an overall perspective.
enPortal provides a configurable export system which will automatically capture all system configuration (1) and much of the custom assets (2). If custom assets are not captured then the export configuration can be modified to include them which would be considered a deployment best practice. Exporting the external supporting pieces (3) is beyond the scope of the product itself but should be considered from an overall perspective.
<br>
 
The reasons for performing backups are:
The reasons for performing backups are:


Line 16: Line 16:
* use a backup when upgrading enPortal itself.
* use a backup when upgrading enPortal itself.
* provide a way for Edge to further investigate support issues - a backup archive may be requested.
* provide a way for Edge to further investigate support issues - a backup archive may be requested.
<br>




Line 22: Line 21:


To create backups, hover your mouse over the '''Advanced''' tab and select the ''Backup'' option.
To create backups, hover your mouse over the '''Advanced''' tab and select the ''Backup'' option.
<br>
 
[[File:Enp5_4AdvMenu.PNG|center|1400px|Backup page]]
[[File:enportal-5.5-backup.png|frame|Advanced -> Backup]]
<br>
 


The Backup page allows the user to create new backups, and download or delete existing backups on the server file system.
The Backup page allows the user to create new backups, and download or delete existing backups on the server file system.
Line 31: Line 30:


=== Backup Options ===
=== Backup Options ===
<br>
{|class="wikitable"
{|class="wikitable" border="1" style="background-color:#eeeeee;"
! Backup Type
! Backup Type
! Description
! Description
Line 45: Line 43:
| This is a special purpose backup that will export most server configuration and all enPortal configuration.
| This is a special purpose backup that will export most server configuration and all enPortal configuration.
|}
|}
*''Backup AppBoard'' Option
*''Backup AppBoard'' Option
The ''Backup AppBoard'' option backs up only AppBoard components, specifically:    Stacks, Data Collections, and Data Sources. Everything else including server configuration, users, domains, roles, stack assignment, managed variables, and all enPortal specific custom export properties are '''not backed up'''.
The ''Backup AppBoard'' option backs up only AppBoard components, specifically:    Stacks, Data Collections, and Data Sources. Everything else including server configuration, users, domains, roles, stack assignment, managed variables, and all enPortal specific custom export properties are '''not backed up'''.
Line 54: Line 51:
*''Backup Portal'' Option
*''Backup Portal'' Option
Use the ''Backup Portal'' option to export all enPortal configuration in addition to most of the server configuration.
Use the ''Backup Portal'' option to export all enPortal configuration in addition to most of the server configuration.


=== Customizing the Export ===
=== Customizing the Export ===
Recommended best practice is to ensure that backups include all required files for a functioning system. In many cases this is handled automatically by placing custom files within the supplied ''custom'' directories. Some files fall outside this pattern however and to handle these it's necessary to customize the export file set by creating a <tt>custom.properties</tt> file and placing it into the <tt>[INSTALL_HOME]/server/webapps/enportal/WEB-INF/config/</tt> directory.
Recommended best practice is to ensure that backups include all required files for a functioning system. In many cases this is handled automatically by placing custom files within the supplied ''custom'' directories. Some files fall outside this pattern however and to handle these it's necessary to customize the export file set by creating a <tt>custom.properties</tt> file and placing it into the <tt>[INSTALL_HOME]/server/webapps/enportal/WEB-INF/config/</tt> directory.


This file can be used for various overrides so it may exist for other purposes already. The key part is to define an <tt>export.custom.other</tt> property with the list of files to be exported, so for example:
This file can be used for various overrides so it may exist for other purposes already. The key part is to define an <tt>export.custom.other</tt> property with a list of rules defining the files to export. This is a semi-colon (<tt>;</tt>) separated list, with the backslash character (<tt>\</tt>) used to split the list over multiple lines to improve readability. For example:


<pre>
<pre>
# below is a list of additional files to export on a full backup
# below is a list of additional files to export on a full backup
export.custom.other=${webapp.webinf}/lib/mysql-connector-java-5.1.19.jar;\
export.custom.other=${webapp.webinf}/lib/mysql-connector-java-5.1.34.jar;\
                    ${webapp.webinf}/lib/jtds-1.2.4.jar;\
                     ${webapp.xmlroot}/appboard/config/iconregistry/custom_icons.csv;\
                     ${webapp.xmlroot}/appboard/config/iconregistry/custom_icons.csv;\
                     ${webapp.home}/visualizer/assets/images/custom_banner_logo.png;
                     ${webapp.home}/visualizer/assets/images/custom_banner_logo.png;\
                    ${webapp.webinf}/test_dir;\
                    ${webapp.webinf}/image_dir,,,.*\.png
</pre>
 
In this example a DB driver, a icon registry file, a custom graphic, and the <tt>test_dir</tt> are specific paths to be exported. The last example specifies a path and file expression so that only files ending with <tt>.png</tt> are included.
 
The format for each export rule is noted below. The initial <tt>Path</tt> is not a regular expression and must match exactly a single file or directory. <tt>PathExpression</tt> and <tt>FileExpression</tt> are ''regular expressions'', not wildcards. The use of the <tt>exclude</tt> keyword is optional and implies the preceding expression should be excluded.
 
<pre>
<Path>,<PathExpression>,exclude,<FileExpression>,exclude,<FileExpression>,exclude,...
</pre>
</pre>


In this example two DB driver files, a icon registry file, and a custom graphic will be included in the export.


To verify the export contains the files, perform a backup and simply unzip the file to inspect (or rename to <tt>.zip</tt>).
After making changes to the set of excludes perform a backup and verify the resulting (.jar) archive contains the desired set of files. The archive can be uncompressed using unzip, depending on the unzip tool it may need to be renamed to end with <tt>.zip</tt>.


=== Unattended Backups ===
=== Unattended Backups ===
The backup mechanism is only accessible via the web interface.  
The backup mechanism is only accessible via the web interface.  
To perform an unattended backup, create a custom script to authenticate and call the following URL to generate the backup (example below calls the ''Backup All'' option):
To perform an unattended backup, create a custom script to authenticate and call the following URL to generate the backup (example below calls the ''Backup All'' option):
Line 82: Line 84:


== Loading Backups (archives) ==
== Loading Backups (archives) ==
Loading backup archives is completed on the command line and the enPortal server must be shutdown beforehand.  
Loading backup archives is completed on the command line and the enPortal server must be shutdown beforehand.  
Before proceeding with loading a backup, please be aware that this process is disruptive and will replace the existing configuration. For example, loading a ''Backup All'' archive will replace all existing enPortal and AppBoard content and configuration settings.
Before proceeding with loading a backup, please be aware that this process is disruptive and will replace the existing configuration. For example, loading a ''Backup All'' archive will replace all existing enPortal and AppBoard content and configuration settings.
{{Warning|Loading archives created from a newer version of enPortal onto an older version of enPortal is '''not supported'''. While it may be ''possible'' to load the archive it may lead to unknown configuration issues.}}


To load an archive:
To load an archive:
Line 91: Line 96:
# in a terminal, change into the <tt>[INSTALL_HOME]/server/bin</tt> directory
# in a terminal, change into the <tt>[INSTALL_HOME]/server/bin</tt> directory
# run: <tt>portal ''<Load_Type>'' -jar ''<backup_archive.jar>''</tt>
# run: <tt>portal ''<Load_Type>'' -jar ''<backup_archive.jar>''</tt>
# (Linux / UNIX) re-run <tt>post_install.sh</tt>
# (Linux / UNIX) re-run <tt>post_install.sh</tt><br>This is required to ensure correct system configuration and file ownership, permissions, and any included scripts are set executable as jar archives do not store this information.
# start enPortal
# start enPortal
<br>


The applicable Load Types are defined below:
The applicable Load Types are defined below:


{|class="wikitable" border="1" style="background-color:#eeeeee;"
{|class="wikitable"
!Load Type
!Load Type
!Description
!Description
Line 121: Line 125:


== Troubleshooting ==
== Troubleshooting ==
<br>
{|class="wikitable"
{|class="wikitable" border="1" style="background-color:#eeeeee;"
!Issue
!Issue
!Possible Causes
!Possible Causes

Latest revision as of 09:14, 7 April 2015


Overview

A typical enPortal deployment will consist of:

  1. application configuration: users, domains, provisioning information, etc.
  2. custom assets on the file system such as configuration files.
  3. external supporting pieces required for operation but not strictly part of enPortal.

enPortal provides a configurable export system which will automatically capture all system configuration (1) and much of the custom assets (2). If custom assets are not captured then the export configuration can be modified to include them which would be considered a deployment best practice. Exporting the external supporting pieces (3) is beyond the scope of the product itself but should be considered from an overall perspective.

The reasons for performing backups are:

  • adhere to backup maintenance good practices.
  • provide a mechanism to migrate configuration from one environment to another (for example from development, to staging, to production).
  • use a backup when upgrading enPortal itself.
  • provide a way for Edge to further investigate support issues - a backup archive may be requested.


Creating Backups

To create backups, hover your mouse over the Advanced tab and select the Backup option.

Advanced -> Backup


The Backup page allows the user to create new backups, and download or delete existing backups on the server file system.

Select the Create button to create a new backup. Multiple backup options will be presented.

Backup Options

Backup Type Description
Backup All This will backup everything and is typically the form of backup required even if only using AppBoard features. [recommended]
Backup AppBoard This is a special purpose backup that will only export AppBoard content - see below for further information.
Backup Portal This is a special purpose backup that will export most server configuration and all enPortal configuration.
  • Backup AppBoard Option

The Backup AppBoard option backs up only AppBoard components, specifically: Stacks, Data Collections, and Data Sources. Everything else including server configuration, users, domains, roles, stack assignment, managed variables, and all enPortal specific custom export properties are not backed up.

  • Backup All Option

Use the Backup All option for full system backups.

  • Backup Portal Option

Use the Backup Portal option to export all enPortal configuration in addition to most of the server configuration.

Customizing the Export

Recommended best practice is to ensure that backups include all required files for a functioning system. In many cases this is handled automatically by placing custom files within the supplied custom directories. Some files fall outside this pattern however and to handle these it's necessary to customize the export file set by creating a custom.properties file and placing it into the [INSTALL_HOME]/server/webapps/enportal/WEB-INF/config/ directory.

This file can be used for various overrides so it may exist for other purposes already. The key part is to define an export.custom.other property with a list of rules defining the files to export. This is a semi-colon (;) separated list, with the backslash character (\) used to split the list over multiple lines to improve readability. For example:

# below is a list of additional files to export on a full backup
export.custom.other=${webapp.webinf}/lib/mysql-connector-java-5.1.34.jar;\
                    ${webapp.xmlroot}/appboard/config/iconregistry/custom_icons.csv;\
                    ${webapp.home}/visualizer/assets/images/custom_banner_logo.png;\
                    ${webapp.webinf}/test_dir;\
                    ${webapp.webinf}/image_dir,,,.*\.png

In this example a DB driver, a icon registry file, a custom graphic, and the test_dir are specific paths to be exported. The last example specifies a path and file expression so that only files ending with .png are included.

The format for each export rule is noted below. The initial Path is not a regular expression and must match exactly a single file or directory. PathExpression and FileExpression are regular expressions, not wildcards. The use of the exclude keyword is optional and implies the preceding expression should be excluded.

<Path>,<PathExpression>,exclude,<FileExpression>,exclude,<FileExpression>,exclude,...


After making changes to the set of excludes perform a backup and verify the resulting (.jar) archive contains the desired set of files. The archive can be uncompressed using unzip, depending on the unzip tool it may need to be renamed to end with .zip.

Unattended Backups

The backup mechanism is only accessible via the web interface. To perform an unattended backup, create a custom script to authenticate and call the following URL to generate the backup (example below calls the Backup All option):

/enportal/servlet/pd/vdir/home/role/portalAdministration/Menu/Admin/Advanced/Backup?requestType=execute&Submit=true

Loading Backups (archives)

Loading backup archives is completed on the command line and the enPortal server must be shutdown beforehand. Before proceeding with loading a backup, please be aware that this process is disruptive and will replace the existing configuration. For example, loading a Backup All archive will replace all existing enPortal and AppBoard content and configuration settings.


Template-warning.png
Loading archives created from a newer version of enPortal onto an older version of enPortal is not supported. While it may be possible to load the archive it may lead to unknown configuration issues.


To load an archive:

  1. shutdown enPortal
  2. in a terminal, change into the [INSTALL_HOME]/server/bin directory
  3. run: portal <Load_Type> -jar <backup_archive.jar>
  4. (Linux / UNIX) re-run post_install.sh
    This is required to ensure correct system configuration and file ownership, permissions, and any included scripts are set executable as jar archives do not store this information.
  5. start enPortal

The applicable Load Types are defined below:

Load Type Description
Restore This command will load an archive effectively creating a "mirror" of the original install. If this is on a different host then the license key and runtime configuration may need to be updated. Alternatively use the Apply command.
Apply This command is intended when moving an archive from one host to another, but it will not preserve the license file, SSL configuration, or other runtime configuration (setenv-custom.sh). The host where the Apply is run will need to have its own configuration already set up otherwise enPortal will not start (i.e. no license).
Template-note.png
Regardless of a Restore or Apply, on Linux / UNIX platforms it is recommended to re-run post_install.sh. See Linux / UNIX Installation - Restoring an Archive for more information.


In addition, a special procedure is required to load an AppBoard only backup onto an existing server without losing other configuration, i.e. this is not necessary for a clean AppBoard installation. Instead of a Restore or Apply command, the FilesImport command should be used. This will overlay the files onto the file system without resetting the configuration database. All AppBoard content will be replaced however. The following steps are also required to ensure data sources are loaded correctly:

  1. Shutdown AppBoard.
  2. In a terminal change into the [INSTALL_HOME]\server\bin\ directory.
  3. Enter the command: portal FilesImport -jar <appboard-only-archive.jar>
  4. Change into the [INSTALL_HOME]\server\webapps\enportal\WEB-INF\xmlroot\appboard\ directory.
  5. Rename load-restore.txt.disabled to load-restore.txt.
  6. Start AppBoard.

Troubleshooting

Issue Possible Causes
When restoring an archive, you receive the following message in the console:
System must be shutdown prior to resetting the database.
  • enPortal is still running. Make sure enPortal is shut down prior to running the restore command.
  • The system was improperly shut down and there is a lock file in the H2 folder (/server/webapps/enportal/WEB-INF/h2/).Delete the lock file (persist.lock.db) and run the restore command again.