Skip to main content

Guide: restoring an OutSystems Platform from backups

OutSystems

Guide: restoring an OutSystems Platform from backups

This article applies to:All versions of OutSystems Platform

 This procedure applies only to On-Premise Infrastructures

As good practice for any IT system, it is advisable that customers running OutSystems in an on-premises installation keep backups of their systems, and regularly practice the restore of such backups in a way that allows confirmation that the backups are working as expected.

Other knowledge base articles discuss best practices of what needs to be backed up in the context of a Disaster Recovery strategy. That is not the goal of this article. 

Assuming having the proper backups, doing a proper restore of them is key to a healthy system. Restoring a running OutSystems platform from a backup is a simple task, assuming the proper steps are followed.

This guide describes how to get an OutSystems environment running again from a set of backups. It assumes the reader is familiar with the architecture of the OutSystems platform; the following articles may offer some of the relevant context:

 

Restore an OutSystems environment from backups

Using this guide

This guide is a generic description of how to restore an environment from backups.

Considering the multiple options available and the need for flawless execution, this guide should not be used for execution of a restore operation.

Instead, customers are advised to create their individual step-by-step procedure, based on this guide, adding specific IT resource and people/role names, and test it regularly to ensure it works correctly when needed. 

 

Scenarios

There are multiple scenarios of backup that can be considered in OutSystems. In this guide, two of those scenarios are considered:

  1. Backups are made of the OutSystems database(s); no backups of the front-ends;
  2. Backups of the OutSystems database(s) and front-ends are made.

Both scenarios lead to the same end-goal of recovering the prior status of the environment; the main difference is the time it takes for the restore operation to be performed.

In both of these scenarios, an important consideration must be taken: any data not present in the backup will not be recovered. For example: if a production system fails at 2PM and the latest available backup is from 1PM, recovering data that was written to the database after 1PM is not considered in this procedure. Such recovery depends on the actual applications and must be designed by the customer.

 

Scenario A: Backups are made of the OutSystems database(s); no backups of the front-ends

In this scenario, the only backups available are of the database(s) that contain the OutSystems Platform and the additional database catalogs/schemas (if any). Restore of a backup in this scenario consists of stopping the environment, replacing the database with the backup, confirming correct OutSystems platform installation and republishing a solution with all the running applications.

What to backup?

For this scenario, backups must exist of the following:

Database engine What to backup
SQL Server
Oracle

As part of this procedure, the session database model is recreated from scratch.

 

How to restore?

Restoring the environment involves the following steps:

  1. Stop all activity in the environment to be restored;
  2. Restore the database (using the database engine technology);
  3. Confirm the correct installation of the platform;
  4. Republish an all-content solution;
  5. Smoke-test the application
  6. Restore service to end-users

 

1. Stop all activity in the environment to be restored

The following steps are needed to stop all activity in the environment.

  Activity Where
1

Explicit downtime of the environment for external users

This can be achieved in multiple ways, all external to the platform (e.g. unavailability page in load balancer). If no mechanism available, users will receive explicit errors when accessing the applications.

Network level / load balancing / reverse proxy
2

Stop the OutSystems Services

Open the Services console of the Administrative Tools and stop the following OutSystems Services:

  • OutSystems Scheduler;
  • OutSystems SMS Connector;
  • OutSystems Deployment; 
  • OutSystems Deployment Controller;
  • OutSystems Log.

Still in the administrative Tools, disable start of the following services:

  • OutSystems Scheduler;
  • OutSystems SMS Connector.
All front-ends
3

Stop IIS

Open a command prompt window and stop the IIS using the following command:

iisreset /stop 
All front-ends

 

2. Restore the database (using the database engine technology)

This task uses the mechanisms for database restore (typically database backup/restore operations in Microsoft SQL Server; or using Oracle Data Pump in Oracle databases). We recommend reading the sections on database backup and restore from this related article. Make sure you are making backups of the whole database objects (including the model and security contexts/permissions) and not just the data stored in the model.

Also, when restoring, restore on top of the existing objects using the appropriate database commands. A DBA must be involved in this task for it to work correctly.

If you are using Multiple Database Catalogs and Schemas, restore them in the same fashion.

 

3. Confirm the correct installation of the platform

This section focuses on scenarios in which you’ll have to reconfigure an existing OutSystems Platform installation to use the newly restored database on a single-node server (server with both the Deployment Controller and Front-End services). 

  Activity Where

1

Configure the Platform Database

Run the Configuration Tool and in the Database tab confirm the following properties are correct:

  • The properties of the database server;
  • For each login account, press the ‘Test Connection’ link. The connection to the database should be successful, otherwise review the credentials you have just entered above.

Press the ‘Create/Update Database’ button. A message indicating "no changes required" should pop up.

Don’t close the configuration tool yet. 

Deployment Controller server

2

Configure the Platform Session Database

In the Session tab of the Configuration Tool proceed as follows:

  • Confirm the hostname of the database server;
  • Confirm the catalog/schema to a new ASPState model (or an existing one);
  • Confirm the Session User username and password to new values or existing ones;
  • Press the ‘Configure Session Database’ button. If you’re using an existing session database, all sessions in that database will be lost.

Finally, press the ‘Apply and Exit’ button of the Configuration Tool to apply all changes and exit.

Deployment Controller server
3

If you made any changes to the configuration in steps 1 and 2, repeat those changes in all front-ends.

If you did not make any changes, in each front-end start the Configuration Tool and exit with 'Apply and Exit'.

All other front-ends

4

Upload the environment license (if needed)

Launch Service Center, log in as an admin user.
In the Administration section of Service Center, open the Licensing page, and request a new license for this environment. Upon receiving the license, upload it in the Licensing page.

Service Center in any front-end

5

In Service Center, confirm the server to the desired mode (Development or Production)

Launch Service Center, log in as an admin user.
Go to the Administration tab, open the ‘Environment Configuration’ page, and select the ‘Development’ or ‘Production’ mode. You may have to set the Default DNS Name of the environment, if not already set.

Service Center in any front-end

6

Multiple Database Schemas

In case your applications are being deployed in multiple catalogs, you need to change Service Center configurations to start using the cloned catalogs.

In Service Center, go to ‘Administration’, and click ‘Database Catalogs’. For each catalog listed, change its configurations. 

Service Center in any front-end

 

4. Republish an all-content solution;

  Activity Where

1

Republish the entire Factory

Use the instructions in this article.

 

 

5. Smoke-test the application

Smoke test the main use cases of the application. This may require accessing locally in a front-end or any other type of network configuration to allow access to a set of users without giving access to the whole user base.

 

6. Restore service to end-users

  Activity Where

1

Start the Remaining OutSystems Services

Re-enable and start the remaining OutSystems Services:

  • OutSystems Scheduler Service;
  • OutSystems SMS Connector Service.
All front-ends
2

End explicit downtime of the environment for external users

Revert what was done to bring explicit downtime for external users

Network level / load balancing / reverse proxy

 

Scenario B: Backups of the OutSystems database(s) and front-ends are made

In this scenario, backups are available of the database(s) that contain the OutSystems Platform, the additional database catalogs/schemas (if any) and of the front-ends. For simplicity of the guide it is assumed that a full backup of the front-ends is made (e.g. an image of a virtual machine).

Restore of a backup in this scenario consists of stopping the environment, replacing the database with the backup, restoring the images of the front-ends and confirming correct OutSystems platform installation. The main difference is that republishing of the solution is not needed in this scenario - assuming the backups of front-ends and database were made in the same time instant (or, more specifically, that the running code at the time of backup is exactly the same that was running when the database backup was made). 

What to backup?

For this scenario, from a database perspective, backups must exist of the following:

Database engine What to backup
SQL Server
Oracle

As part of this procedure, the session database model is recreated from scratch.

From a front-end perspective, it is assumed that images are made of all the front-ends and that their restoration leaves each front-end with the exact hardware and software specification as before (e.g. registration in Windows Domains, hostnames, MAC addresses of all network adapters, etc.).

How to restore?

Restoring the environment involves the following steps:

  1. Stop all activity in the environment to be restored;
  2. Restore the database (using the database engine technology);
  3. Restore the front-ends (using the virtualization technology)
  4. Confirm the correct installation of the platform;
  5. Smoke-test the application
  6. Restore service to end-users

 

1. Stop all activity in the environment to be restored

The following steps are needed to stop all activity in the environment.

  Activity Where
1

Explicit downtime of the environment for external users

This can be achieved in multiple ways, all external to the platform (e.g. unavailability page in load balancer). If no mechanism available, users will receive explicit errors when accessing the applications.

Network level / load balancing / reverse proxy
2

Stop the OutSystems Services

Open the Services console of the Administrative Tools and stop the following OutSystems Services:

  • OutSystems Scheduler;
  • OutSystems SMS Connector;
  • OutSystems Deployment; 
  • OutSystems Deployment Controller;
  • OutSystems Log.

Still in the administrative Tools, disable start of the following services:

  • OutSystems Scheduler;
  • OutSystems SMS Connector.
All front-ends
3

Stop IIS

Open a command prompt window and stop the IIS using the following command:

iisreset /stop 
All front-ends

 

2. Restore the database (using the database engine technology)

This task uses the mechanisms for database restore (typically database backup/restore operations in Microsoft SQL Server; or using Oracle Data Pump in Oracle databases). We recommend reading the sections on database backup and restore from this related article. Make sure you are making backups of the whole database objects (including the model and security contexts/permissions) and not just the data stored in the model.

Also, when restoring, restore on top of the existing objects using the appropriate database commands. A DBA must be involved in this task for it to work correctly.

If you are using Multiple Database Catalogs and Schemas, restore them in the same fashion.

 

3. Restore the front-ends (using the virtualization technology).

This task uses the mechanisms from the virtualization technology to restore each front-end from the backups. 

It is assumed that images are made of all the front-ends and that their restoration leaves each front-end with the exact hardware and software specification as before (e.g. registration in Windows Domains, hostnames, MAC addresses of all network adapters, etc.). If this is not the case, adjust whatever settings needed so they match the previous values.

 

4. Confirm the correct installation of the platform

This section focuses on scenarios in which you’ll have to reconfigure an existing OutSystems Platform installation to use the newly restored database on a single-node server (server with both the Deployment Controller and Front-End services). 

  Activity Where

1

Configure the Platform Database

Run the Configuration Tool and in the Database tab confirm the following properties are correct:

  • The properties of the database server;
  • For each login account, press the ‘Test Connection’ link. The connection to the database should be successful, otherwise review the credentials you have just entered above.

Press the ‘Create/Update Database’ button. A message indicating "no changes required" should pop up.

Don’t close the configuration tool yet. 

Deployment Controller server

2

Configure the Platform Session Database

In the Session tab of the Configuration Tool proceed as follows:

  • Confirm the hostname of the database server;
  • Confirm the catalog/schema to a new ASPState model (or an existing one);
  • Confirm the Session User username and password to new values or existing ones;
  • Press the ‘Configure Session Database’ button. If you’re using an existing session database, all sessions in that database will be lost.

Finally, press the ‘Apply and Exit’ button of the Configuration Tool to apply all changes and exit.

Deployment Controller server
3

If you made any changes to the configuration in steps 1 and 2, repeat those changes in all front-ends.

If you did not make any changes, in each front-end start the Configuration Tool and exit with 'Apply and Exit'.

All other front-ends

4

Upload the environment license (if needed)

Launch Service Center, log in as an admin user.
In the Administration section of Service Center, open the Licensing page, and request a new license for this environment. Upon receiving the license, upload it in the Licensing page.

Service Center in any front-end

5

In Service Center, confirm the server to the desired mode (Development or Production)

Launch Service Center, log in as an admin user.
Go to the Administration tab, open the ‘Environment Configuration’ page, and select the ‘Development’ or ‘Production’ mode. You may have to set the Default DNS Name of the environment, if not already set.

Service Center in any front-end

6

Multiple Database Schemas

In case your applications are being deployed in multiple catalogs, you need to change Service Center configurations to start using the cloned catalogs.

In Service Center, go to ‘Administration’, and click ‘Database Catalogs’. For each catalog listed, change its configurations. 

Service Center in any front-end

 

5. Smoke-test the application

Smoke test the main use cases of the application. This may require accessing locally in a front-end or any other type of network configuration to allow access to a set of users without giving access to the whole user base.

 

6. Restore service to end-users

  Activity Where

1

Start the Remaining OutSystems Services

Re-enable and start the remaining OutSystems Services:

  • OutSystems Scheduler Service;
  • OutSystems SMS Connector Service.
All front-ends
2

End explicit downtime of the environment for external users

Revert what was done to bring explicit downtime for external users

Network level / load balancing / reverse proxy
  • Was this article helpful?