Archiwum miesiąca: grudzień 2015

Migracja bazy z MySQL/MariaDB na Oracle

Pozornie proste zadanie okazało się być wyjątkowo upierdliwe.

  1. Instrukcja ze strony Oracle (z wykorzystaniem SQL Developera) wywołała u mnie myśli samobójcze
  2. Wykorzystanie mysqldump’a z opcją ” –compatible=oracle” wygenerowało plik, którego ani nie udało mi się zaczytać do Oracle 11g ani z powrotem do MariaDB

Musiałem ratować się inaczej…

Z pomocą w takich sytuacjach przychodzi RazorSQL. Narzędzie (niestety płatne), ale na szczęście z 30-to dniową wersją ewaluacyjną. RazorSQL potrafi przenieść dane bezpośrednio między różnymi systemami zarządzania bazą danych.
Testowałem tę opcję z MariaDB w wersji 5.5 i Oracle w wersji 11g XE.

Ważna uwaga. Przy przenoszeniu 'ciut większej’ bazy, RazorSQL będzie zgłaszał błąd przekroczenia Heap Size Java.
Należy wtedy zedytować plik uruchamiający: razorsql.sh, a dokładniej parametr -Xmx. W przykładzie poniżej ograniczamy ilość dostępnej dla RazoraSQL pamięci do 6GB. Standardowo to tylko kilkaset MB.
razorsql.sh po poprawce:

#!/bin/sh
CWD=$(dirname "$0")
CMD="$CWD/razorsql.jar"
$CWD/jre/bin/java -Xms64M -Xmx6G -client -jar ${CMD}
RC=$?
if [ ${RC} != 0 ]; then
echo "Error returned code found. Retrying . . ."
$CWD/jre/bin/java -Xms64M -Xmx640M -client -jar ${CMD}
RC2=$?
if [ ${RC2} != 0 ]; then
echo "Trying local JRE . . ."
java -Xms64M -Xmx640M -client -jar ${CMD}
fi
fi