Red Hat Training

A Red Hat training course is available for Red Hat Satellite

13.8.7. Migrating from an External Oracle Database to an External PostgreSQL Database

The requirements to migrate from an External Oracle Database to an External PostgreSQL database:
  • A complete installation of Red Hat Satellite server (satellite.example.com) using an External Oracle Database (oracledb.example.com).
  • A system hosting a running instance of PostgreSQL (postgresql.example.com), See Section 4.3.1.1, “PostgreSQL Database Requirements” for configuration details.

Procedure 13.8. Migrating to an External Database from Oracle Database

  1. Shut down all services on the Red Hat Satellite server:
    [root@satellite ~]# rhn-satellite stop
    
  2. Make sure your External Oracle Database is still running.
  3. Remove the rhn-upgrade if it exists on your server:
    [root@satellite ~]# yum remove rhn-upgrade
    
  4. Update the External Oracle Database to the latest schema version:
    [root@satellite ~]# yum update satellite-schema
    [root@satellite ~]# spacewalk-schema-upgrade
    
    This ensures that your database version matches the latest version for the External Database.
  5. Create a directory to hold your database snapshot.
    [root@satellite ~]# mkdir ~/dbbackup
    [root@satellite ~]# cd ~/dbbackup
    
  6. Export the database using spacewalk-dump-schema:
    [root@satellite dbbackup]# spacewalk-dump-schema --to=postgresql > migrate-to-postgresql.sql
    
  7. Stop the External Oracle Database. It is no longer required.
  8. Exchange the Oracle drivers and configuration scripts with the PostgreSQL drivers and configuration scripts on the Satellite server:
    [root@satellite dbbackup]# yum remove -y spacewalk-oracle
    [root@satellite dbbackup]# yum install -y spacewalk-postgresql
    [root@satellite dbbackup]# yum remove -y spacewalk-java-oracle spacewalk-backend-sql-oracle
    
  9. Use spacewalk-setup to populate the External Database:
    [root@satellite dbbackup]# spacewalk-setup --db-only --external-postgresql
    
    The script asks for your database details so Satellite can connect and populate the database. Enter your External PostgreSQL Database details:
    ** Database: Setting up database connection for PostgreSQL backend.
    Hostname (leave empty for local)? postgresql.example.com
    Port [5432]?
    Database? myextdb
    Username? root
    Password?
    
  10. When the script completes database population, restore the database schema
    [root@satellite dbbackup]# spacewalk-sql -i < migrate-to-postgresql.sql
    
  11. Start Red Hat Satellite.
    [root@satellite ~]# rhn-satellite start
    
The database is now migrated from an External Oracle Database to an External PostgreSQL Database.