Appboard/2.4/admin/backup and recovery: Difference between revisions

imported>Jason.nicholls
imported>Jason.nicholls
Line 61: Line 61:
This file can be used for various overrides so may exist for other purposes already. The key part is to define a <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 may exist for other purposes already. The key part is to define a <tt>export.custom.other</tt> property with the list of files to be exported, so for example:


<code>[ini,N]
<code>
# 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.19.jar;\
                     ${webapp.webinf}/lib/jtds-1.2.4.jar
                     ${webapp.webinf}/lib/jtds-1.2.4.jar;\
                    ${webapp.home}/visualizer/assets/images/my_custom_banner_logo.png;
</code>
</code>


=== Unattended Backups ===
=== Unattended Backups ===

Revision as of 16:32, 30 September 2013


A typical AppBoard deployment will consist of:

  1. application configuration: stacks, boards, widgets, users, domains, provisioning information etc...
  2. custom assets on the filesystem such as icons, logos, and additional configuration files.
  3. external supporting pieces required for operation but not strictly part of AppBoard, such as an additional external database, scripts, etc...

AppBoard 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.

As for external supporting pieces that's beyond the scope of the product itself but should be considered from a overall perspective.


Creating Backups

Creating backups is done by navigating to the System Administration builder mode, and selecting the Backup icon.

Backup system administration page

This page allows new backups to be created as well as existing backups on the server filesystem to be downloaded or deleted.

Select the Create button to create a new backup, the following options will be presented:


Backup Type Description
Backup All (recommended) This will backup everything and is typically the form of backup required even if only using AppBoard features.
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.

Use the Backup All option for full system backups.

In addition a special procedure is required to load an AppBoard only backup onto an existing server without losing any 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 filesystem without resetting the configuration database. The following steps are also required to ensure data sources are loaded correctly:

  1. Shut down 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.

Customizing the Export

Recommended best practices is to ensure that backups include all required files for a functioning system. The way to do this is by customizing the export set of files 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 may exist for other purposes already. The key part is to define a export.custom.other property with the list of files to be exported, so for example:

  1. 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;\

                   ${webapp.webinf}/lib/jtds-1.2.4.jar;\
                   ${webapp.home}/visualizer/assets/images/my_custom_banner_logo.png;

Unattended Backups

The backup mechanism is only accessible via the web interface. In order to perform a backup unattended it is necessary to create a custom script to authenticate and call the following URL to generate the backup, in this case it would be 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 AppBoard server must be shutdown beforehand. This process is disruptive and will replace the existing configuration - be sure that is what you want to do. Specifically all enPortal and AppBoard content and configuration will be replaced (assuming a Backup All archive).

The process to load an archive:

  1. shutdown AppBoard
  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
  5. start AppBoard

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 and will preserve the existing: license file, SSL configuration, other runtime configuration (setenv-custom.sh). The host where the Apply is run will need to have this configuration already set up otherwise AppBoard will not start (i.e. no license).


Template-note.png
Regardless of a Restore or Apply, on Linux / UNIX platforms it is recommended re-run post_install.sh. See Linux / UNIX Installation - Restoring an Archive for more information.

Advanced Configuration

The set of files that are included in the backup archive is configured in the file [INSTALL_HOME]/server/webapps/enportal/WEB-INF/config/export-appboard.properties and [INSTALL_HOME]/server/webapps/enportal/WEB-INF/config/export.properties. You can customize the process by adding files to be included in the backup archive. To do so, create a file called custom.properties, and include any custom export commands.


The following is a sample customization block that could be added to custom.properties:

[xml,N]

  1. Backup custom theme

export.custom.other=${webapp.webinf}/xmlroot/appboard/config/themes.xml;\

       ${webapp.home}/visualizer/assets/images/backgrounds/bg-red_1600.png;\
       ${webapp.home}/visualizer/assets/images/my_banner.png;\
       ${webapp.home}/login_pages/edgeLight/images/logo.png;\
       ${webapp.webinf}/lib/db2jcc.jar;\
       ${webapp.webinf}/lib/db2jcc_license_cu.jar;\
       ${webapp.home}/version.jsp;\
       ${webapp.webinf}/groovy-script/TrimSiteCode.groovy;

export-appboard.data=${webapp.webinf}/data


Troubleshooting

  • Issue: When restoring an archive, you receive the following message in the console: System must be shutdown prior to resetting the database.
  • Possible Causes:
    • AppBoard is still running. Make sure AppBoard 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.