Skip to content

CYBERTEC Migrator πŸ—„πŸ”€πŸ—„

License

Notifications You must be signed in to change notification settings

cybertec-postgresql/cybertec_migrator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

68 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CYBERTEC Migrator

Streamlined Oracle to PostgreSQL migration


Getting Started β€’ Running the Migrator β€’ Contact

CYBERTEC Migrator is a streamlined and user-friendly tool that helps you to organize and efficiently migrate multiple Oracle databases to PostgreSQL. In addition to migrating your data professionally and securely with minimum effort, CYBERTEC Migrator allows you to visually monitor and track the whole process at any time.

Do you want to know if the Migrator can migrate your Oracle database to PostgreSQL? Then get the Migrator Trial Edition, a free version of the CYBERTEC Migrator, follow the offline instructions provided in Getting Started section, and try it out.

πŸ’‘ The Trial Edition of the CYBERTEC Migrator is exclusively intended for private or testing purposes, unless explicit authorization is obtained.

The blog article Meet the CYBERTEC Migrator provides a good introduction on how to migrate Oracle's HR demo schema to PostgreSQL. Alternatively, you may want to watch the complementary CYBERTEC Migrator YouTube playlist.


CYBERTEC Migrator v3 Demonstration
Product Demo


For detailed information see the list of supported migration features for Oracle.

Table of Contents

  1. What's New
  2. Getting Started
  3. Running the Migrator
  4. Getting Help
  5. Contact
  6. License

What's New

For older releases see Release Notes.

v3.19.2 - 2024-05-27

Resolved Bugs

  • Code editors occasionally loosing changes when saving
  • Dependency searchbar closing randomly

Regressions

  • Replacing code using the Search/Replace tab does not update the code in the editor without refreshing

v3.19.1 - 2024-05-21

Resolved Bugs

  • Format overly long migration effort estimates on the migration list
  • Certificate could not be obtained: no SSL error reported when using SSL for the PostgreSQL connection

v3.19.0 - 2024-05-07

  • Migration List:
    • Display migration status in list
    • Wrap long connection strings

  • Structure stage:
    • Detect Index Organized Tables and automatically exclude their overflow tables
  • Data stage:
    • Show total bytes and bytes per seconds for a finished transfer
    • Indicate whether a child process died from a signal, such as from the out-of-memory killer
    • Gracefully handle INT signals to hasten abort request
  • Migration Settings:
    • Changed data progress interval unit from milliseconds to seconds
    • Migration passwords are now encrypted within the database

Resolved Bugs

  • Code editors occasionally loose changes while typing
  • Renaming a table column does not display the new name in the constraint tab
  • PostgreSQL reserved identifiers are not read if the amount of CPU cores can not be retrieved
  • Replacing trigger code using the Search tab does not update the code in the editor without refreshing
  • ORA-01652: unable to grow temp segment in tablespace TEMP by 1MB during operation when reading indexes from some Oracle databases
  • Enabling the diff mode on a view-editor causes a page crash
  • DEFAULT is not allowed in this context when migrating list partitions with a non-uppercase default statement

Getting Started

Requirements

CYBERTEC Migrator is distributed as a set of container images that are managed with the help of Docker Compose.

Migrator Installation

The CYBERTEC Migrator images can be obtained via two channels

πŸ’‘ The Migrator Trial Edition is only available as an offline installation package.

It is exclusively intended for private or testing purposes, unless explicit authorization is obtained.

Online installation

You need an account on the Docker Hub container image registry.

Please get in touch with us if your account has not been granted access to the respective images. Make sure you are logged in the Docker Hub registry with the correct user.

cat ~/password.txt | docker login --username <username> --password-stdin
  1. Clone this git repository
  2. Change working directory to the previously cloned repository
  3. Generate default configuration with the respective edition
  4. Download and load container images
  5. Generate a self-signed TLS/SSL certificate or install a certificate (see FAQ for more details)
  6. Start the Migrator
➜ git clone https://github.com/cybertec-postgresql/cybertec_migrator
➜ cd cybertec_migrator
➜ ./migrator configure professional
[OK] Generated environment file
[INFO] Run './migrator install' to complete setup
➜ ./migrator install
[INFO] Pulling images for professional:v3.19.0
Pulling core_db ... done
Pulling core    ... done
Pulling web_gui ... done
[OK] Pulled professional:v3.19.0
[INFO] Upgraded to professional:v3.19.0
[WARN] Could not find TLS/SSL certificate
[INFO] Run './migrator configure --tls self-signed-cert' to generate a self-signed TLS/SSL certificate
➜ ./migrator configure --tls self-signed-cert
[INFO] Generating self-signed TLS/SSL certificate
Creating cybertec_migrator_web_gui_run ... done
Generating a RSA private key
.+++++
........................+++++
writing new private key to '/etc/nginx/certs/nginx.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:AT
State or Province Name (full name) [Some-State]:Lower Austria
Locality Name (eg, city) []:WΓΆllersdorf
Organization Name (eg, company) [Internet Widgits Pty Ltd]:CYBERTEC PostgreSQL International GmbH
Organizational Unit Name (eg, section) []:CYBERTEC Solutions
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:invalid@cybertec.at
Creating cybertec_migrator_web_gui_run ... done
[OK] Generated self-signed TLS/SSL certificate
[INFO] Run './migrator up' to switch to new version
[WARN] Switching will abort running migrations
➜ ./migrator up
Recreating cybertec_migrator_core_db_1 ... done
Recreating cybertec_migrator_core_1    ... done
Recreating cybertec_migrator_web_gui_1 ... done
[OK] Started on 'https://localhost'

Offline installation

Get your Migrator offline installation package. You can get the Migrator Trial Edition here for free.
For the Professional or Enterprise Edition get in touch with us to request download credentials.

  1. Extract the provided archive file
  2. Change working directory to newly created directory
  3. Generate default configuration with the respective edition
  4. Import container images from archive
  5. Generate a self-signed TLS/SSL certificate or install a certificate (see FAQ for more details)
  6. Start the Migrator
➜ tar xf cybertec_migrator-trial-v3.19.0.tar.gz
➜ cd cybertec_migrator
➜ ./migrator configure trial
[OK] Generated environment file
[INFO] Run './migrator install --archive <archive_file>' to complete setup
➜ ./migrator install --archive ../cybertec_migrator-trial-v3.19.0.tar.gz                                                                                                                                                                                                                                                           ξ‚² βœ” ξ‚· at 15:37:52 ο€— 
[INFO] Reading meta-information from archive file '../cybertec_migrator-trial-v3.19.0.tar.gz'
[INFO] Upgrading to trial:v3.19.0
[INFO] Extracting archive file '../cybertec_migrator-trial-v3.19.0.tar.gz'
[INFO] Loading container images
Loaded image: cybertecpostgresql/cybertec_migrator-trial-core:v3.19.0
Loaded image: cybertecpostgresql/cybertec_migrator-trial-web_gui:v3.19.0
Loaded image: postgres:13-alpine
[INFO] Container images loaded
[INFO] Archived container images
[INFO] Upgraded to trial:v3.19.0
[WARN] Could not find TLS/SSL certificate
[INFO] Run './migrator configure --tls self-signed-cert' to generate a self-signed TLS/SSL certificate
➜ ./migrator configure --tls self-signed-cert
[INFO] Generating self-signed TLS/SSL certificate
Creating cybertec_migrator_web_gui_run ... done
Generating a RSA private key
.+++++
........................+++++
writing new private key to '/etc/nginx/certs/nginx.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:AT
State or Province Name (full name) [Some-State]:Lower Austria
Locality Name (eg, city) []:WΓΆllersdorf
Organization Name (eg, company) [Internet Widgits Pty Ltd]:CYBERTEC PostgreSQL International GmbH
Organizational Unit Name (eg, section) []:CYBERTEC Solutions
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:invalid@cybertec.at
Creating cybertec_migrator_web_gui_run ... done
[OK] Generated self-signed TLS/SSL certificate
[INFO] Run './migrator up' to switch to new version
[WARN] Switching will abort running migrations
➜ ./migrator up
Recreating cybertec_migrator_core_db_1 ... done
Recreating cybertec_migrator_core_1    ... done
Recreating cybertec_migrator_web_gui_1 ... done
[OK] Started on 'https://localhost'

Running the Migrator

Use your web browser to access the Migrator on the URL shown in the terminal with migrator up. In our example it would be https://localhost.

The configuration provided with this repository starts the CYBERTEC Migrator on the standard HTTPS port. The EXTERNAL_HTTP_PORT variable in the .env file (generated by ./migrator configure) controls the choice of port on which the Migrator is served.

If you don't have access to an Oracle or PostgreSQL database to test the Migrator, use our Migrator demo database environment.

Upgrades

⚠️ Running migrations will be interrupted by applying upgrades

Attention
If you upgrade from a Migrator version previous of 3.11.0 you have to create the TLS/SSL certificate after upgrading to the new version, before restarting the new Migrator.

./migrator update
./migrator upgrade
# Don't forget the create or install a TLS/SSL certificate
./migrator configure --tls self-signed-cert
./migrator up
  • Online upgrade

    1. Update release information
    2. Upgrade to newest version
    3. Apply upgrade

    ./migrator update
    ./migrator upgrade
    ./migrator up
  • Offline upgrade

    πŸ’‘ Installation archives also serve for upgrading the Migrator
    1. Update release information
    2. Upgrade to version bundled in archive
    3. Apply upgrade

    ./migrator update --archive cybertec_migrator-edition-vX.Y.Z.tar.gz
    ./migrator upgrade --archive cybertec_migrator-edition-vX.Y.Z.tar.gz
    ./migrator up

Automatic Code Transpilation

The CYBERTEC Migrator is able to parse, analyze and transpile certain PL/SQL constructs to PL/pgSQL automatically. For more information, see Transpiler Features.

Getting Help

If you have a questions maybe you want to check the Migrator FAQ. If you can't find the answer there you may have more luck in one of the existing questions.

Raising an issue is encouraged. We have templates to report bugs, requesting a new feature or for general questions.

Customers of the paid Migrator license may use the Migrator Service Desk.

Contact

License

The content of this repository is under the MIT License in case you have to adapt the deployment to your needs. The CYBERTEC Migrator delivered in the container images uses a proprietary license with an EULA.