SAS Federation Server Database

Overview

The SAS Federation Server database is a transactional database, or system catalog (SYSCAT) that contains configuration metadata. Configuration metadata includes the list of created data services, DSNs, privileges, and other information generated as a result of configuring SAS Federation Server. This information is stored in a database because the metadata must be in a consistent state, which requires the use of ACID transactions (atomicity, consistency, isolation and durability).
The system catalog contains information about the configuration of SAS Federation Server. This information is returned to the user through queries against the database using information views.

Working with the SAS Federation Server Database

Creation of the System Tables

The SAS Federation Server database, also referred to as the system catalog, is created when SAS Federation Server is initially invoked. Upon invocation, a set of system tables is created to hold various objects that are created as the server is configured. For example, when a data service is created, the system tables are updated to hold the definition of the new data service. Each time a change is made to the server configuration, the system tables in the database are modified. The database can be backed up at any time to capture and preserve a particular server configuration. The default location of SYSCAT.tdb is /install/cfgsas1/config/Lev1/FederationServer/var. The name and location SYSCAT.tdb are contained in the dfs_entities.dtd configuration file.

Changing the Database Location

The following configurations require updates in the event that the location of SYSCAT.tdb changes:
dfs_entities.dtd
<!ENTITY cfg.TRANPATH "c:\temp">
Change the cfg.TRANPATH entity to point to the new location of SYSCAT.tdb. This configuration change updates dfs_serv_common.xml.
<!ENTITY cfg.FIREBIRD_LOCK "&cfg.TRANPATH;">
Change the value for cfg.FIREBIRD_LOCK entity to point to the new location of SYSCAT.tdb. This configuration change updates the location of the database lock files for both the SQL_LOG and SYSCAT transactional databases in dfs_log_SQL_Logging.xml. When updating the FIREBIRD_LOCK environment variable, use an absolute path only.
dfs_log.xml
<!ENTITY DFS_DBAPPENDER_DB "&cfg.TRANPATH;/&cfg.sqllog;"> ]>
Change the value of the DFS_DBAPPENDER_DB entity to point to the new location. This update changes the location of the SQL_LOG transactional database.

Database Backup and Restore

About dfsutil

It is recommended that you back up the Federation Server databases periodically, especially the system catalog, SYSCAT.tdb. Use dfsutil to back up and restore the system catalog. See Utilities for SAS Federation Server for additional information about dfsutil, and for backup and restore procedures.

High Availability

High availability is a failure response mechanism is to eliminate single points of failure in SAS Federation Server. A single point of failure is any component that would cause a service interruption should it become unavailable. The goal of high availability is to ensure redundancy for the components that are required for the proper function of SAS Federation Server which includes the system catalog.
While the database utilities do not allow for high availability of the SAS Federation Server database, there are methods that can serve as a way to maintain uptime of SAS Federation Server.
Database Recovery
If the system fails as a result of database corruption, you can restore the database from the last backup. However, this scenario can result in lost data as a result of the corruption. The amount of lost data depends on the extent of the corruption. Restoring from backup can also be a time-consuming process.
Log Shipping
Send a backup copy of the db to a readily-available server.
Open Source Solutions
use HAProxy.
Last updated: March 6, 2018