Overview
Run the Database Setup utility for Postgres (pg_setup) to establish a user account, schema, and tables for use by SharePlex.
Supported databases
All implementations of the Postgres open-source database on supported platforms
Fujitsu Enterprise Postgres Prerequisite
Fujitsu Postgres contains a customized ODBC driver designed to run with the shared libraries supplied by Fujitsu Postgres. In order to ensure the proper configuration, you must create a symbolic link to ensure that the correct libraries are found at runtime.
Issue Description
If you attempt to run the pg_setup program prior to creating the symbolic link, pg_setup will fail with the following error message:
Error: [unixODBC]invalid connection option "target_server"
To create a symbolic link
To ensure that the proper library gets loaded, first locate the path to the directory where the Fujitsu Postgres libraries are installed (for example /opt/fsepv95server64/lib). Then create a symbolic link in the SharePlex OPTDIR/lib/hooks directory pointing to the libpq.so.5 library in the Fujitsu Postgres library directory. For example:
cd /opt/splex/lib/hooks
ln –s /opt/fsepv95server64/lib/libpq.so.5
Guidelines for use
- Run the Database Setup utility on all target Postgres instances in the SharePlex replication configuration.
- Within a server cluster, run the Database Setup utility on the node to which the shared disk that contains the SharePlex variable-data directory is mounted.
- For consolidated replication, run the Database Setup utility for each variable-data directory.
- On Windows, you must supply a DSN (data source name) as the connection method.
-
On Linux, you can provide a connection string or a DSN (data source name). Note the following when deciding on the connection method on Linux:
Connection Type on Linux What to do Connection string You do not need to provide a user, password, or default database in a connection string. The connection string must have the port, server and driver defined. This is an example from EDB Postgres Plus Advanced Server; your connection string will probably be different based on your own database setup: Port=5444;server=localhost;driver=/u01/PostgresPlus/connectors/odbc/lib/edb-odbc.so;database=edb; DSN If you have a DSN defined, and you want to use it for the SharePlex connection, copy or link the ODBC files in which that DSN is defined (odbc.ini and odbcinst.ini) to the odbc subdirectory of the SharePlex variable-data directory. This prevents connection errors when the SharePlex processes connect to the database.
If you do not have a DSN defined but want to use one, you can create it in the template files provided in the odbc subdirectory.
Required privileges
Review the following requirements to ensure that the setup succeeds.
- The Database Setup utility must be run as a Postgres Administrator in order to grant SharePlex the required privileges to operate on the database and to create the SharePlex database account.
-
(Symfoware only) If the person who is running the setup utility is not a Fujitsu Enterprise Postgres owner, set the environment variable LD_LIBRARY_PATH to include the path to the lib subdirectory in the Fujitsu Enterprise Postgres installation directory. The LD_LIBRARY_PATH is set in the .bash_profile file of the Fujitsu Enterprise Postgres owner.
Example:
export LD_LIBRARY_PATH= /opt/symfoserver64/lib:$LD_LIBRARY_PATH
If you do not set this path, the following error occurs:
symbol lookup error: /opt/fsepv95client64/odbc/lib/psqlodbca.so: undefined symbol: PQconnectdbParams
- Cloud installations:
- Common restrictions on privileges in cloud-hosted database services make it difficult for the setup utility to succeed in every possible type of scenario. To ensure that the database setup succeeds, only use the setup utility for the following purposes: To do a first-time database setup with a new SharePlex user, or, to modify an existing SharePlex user that either owns the database or has access to it.
-
On Amazon RDS, you might need to grant usage/privileges on the target schema and tables to the SharePlex user, as shown in the following example:
Log in as the schema owner, then issue the following commands:
grant usage on schema schema_name to user_name;
grant all privileges on all tables in schema schema_name to user_name;
Run Database Setup for PostgreSQL
- Shut down any running SharePlex processes and sp_cop on the target system.
-
Run the pg_setup program from the bin subdirectory of the SharePlex product directory.
Important! If you installed the SharePlex instance on any port other than the default of 2100, use the -p option to specify the port number. For example, in the following command the port number is 9400.
$ /users/splex/bin> pg_setup -p9400
Table 8: Setup prompts and responses
Prompt | Response |
---|---|
(Linux) Enter the PostgreSQL DSN name or connection string [] : (Windows) Enter the PostgreSQL DSN name [] : |
Enter a DSN or a connection string if the system is Linux, or enter a DSN if the system is Windows. |
Enter the PostgreSQL Administrator name : |
Enter the name of the Postgres Administrator. This user will perform the work on the SharePlex account. |
Enter the password for the Administrator account : |
Enter the password of the Administrator. |
Enter the replication target database name: |
Enter the name of the database that you want to contain the SharePlex tables and other objects for use by SharePlex. You can enter the name of a new or existing database. |
Database name database does not exist. Would you like to create it? [y] : |
If this prompt is displayed, the specified database does not exist. Press Enter to have the setup utility create it for you. |
Would you like to create a new SharePlex user [y]: |
Press Enter to accept the default to create a new SharePlex database user account and schema of the same name in the specified database, or enter n to use an existing SharePlex account. |
Enter the name of the new SharePlex user: Enter the name of the existing SharePlex user: |
One of these prompts is displayed depending on whether you elected to create a new user or use an existing user. Enter the name of the SharePlex user.
|
Enter the password of the SharePlex user : |
Enter the password of the SharePlex user account. |
Re-enter the password for the SharePlex user : |
This prompt is only shown if you created a new user. Enter the SharePlex password again. |
A successful setup terminates with a message similar to the following:
Completed SharePlex for PostgreSQL database configuration
SharePlex User name: splex
Database name: ndb5
Target specification in SharePlex configuration: r.ndb5
Configure SharePlex to support PostgreSQL database on Azure platform
You can configure SharePlex to support the PostgreSQL database on the Azure platform using the below steps:
- Add the DSN entry in the Odbc.ini file at /etc/odbc.ini and the …/var/odbc directory.
- Copy the /etc/odbcinst.ini file to the …/var/odbc directory.
- Run the PostgreSQL setup utility.
Table 9: Setup Prompts and Responses
Prompt | Response |
---|---|
Enter the PostgreSQL DSN name or connection string [] : |
Enter the PostgreSQL DSN name or a connection string that connects to the PostgreSQL database system. Example: pslazpgdb02 |
Is DB hosted over Azure ? : |
Y |
Enter the Database hostname : |
Enter the Azure database host name. Note: PGsetup Administrator name should be in the <username> format (Don't mention hostname) Example: pslazpgdb02.postgres.database.azure.com If a user already exists for SharePlex then it should be entered in the <username@hostname> format. If a new user needs to be created for SharePlex then is should be entered in the <username> format. |
Enter the PostgreSQL Administrator name : |
Enter the name of the PostgreSQL Administrator. This user will perform the setup work on the SharePlex account and schema. Example: postgres |
Enter the password for the Administrator account: |
Enter the password of the Administrator. Note: User 'postgres@pslazpgdb02.postgres.database.azure.com' got the superuser role. |
Enter the replication target database name : |
Enter the target database name on which replication needs to be performed. Example: sp_mk |
Would you like to create a new SharePlex user? Enter the name of the existing SharePlex user: |
N (If you want to create a user, enter “y”)
Enter the name of the SharePlex user. |
Enter the password of the SharePlex user : |
Enter the password of the SharePlex user account. |
Re-enter the password for the SharePlex user : |
This prompt is only shown if you created a new user. Enter the SharePlex password again. |
A successful setup terminates with a message similar to the following:
Completed SharePlex for PostgreSQL database configuration
SharePlex User name: postgres@pslazpgdb02.postgres.database.azure.com
Database name: sp_mk
The data source identifier in the SharePlex configuration is 'r.sp_mk' –