ZABBIX Forums

ZABBIX Forums (http://www.zabbix.com/forum/index.php)
-   In lingua italiana (http://www.zabbix.com/forum/forumdisplay.php?f=24)
-   -   Migrazione da Mysql a ORacle (http://www.zabbix.com/forum/showthread.php?t=21715)

dalle 21-04-2011 13:37

Migrazione da Mysql a ORacle
 
Visto che piuttosto complicato spiego brevemente come ho fatto
allora come prima cosa il DB va creato con
NLS_LANGUAGE=AMERICAN
NLS_TERRITORY=AMERICA
NLS_CHARACTERSET=WE8MSWIN1252
NLS_NCHAR_CHARACTERSET=UTF8

poi si crea un utente dedicato sul database con il relativo tablespace

CREATE USER ZABBIX
IDENTIFIED BY PASSWORD
DEFAULT TABLESPACE TBS_ZABBIX
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;
-- 2 Roles for ZABBIX
GRANT CONNECT TO ZABBIX;
GRANT RESOURCE TO ZABBIX;
ALTER USER ZABBIX DEFAULT ROLE ALL;
GRANT UNLIMITED TABLESPACE TO ZABBIX;
-- 1 Tablespace Quota for ZABBIX
ALTER USER ZABBIX QUOTA UNLIMITED ON TBS_ZABBIX;


poi si prosegue con l'eseguzione dello script
zabbix-1.8.5\create\schema\oracle.sql

a questo punto ho utilizzato
sqldeveloper di oracle che ha un interessante funzione per migrare i dati da MySQL a oracle, lo si lasci lavorare.
Poi necessario (nel mio caso la distribuzione REDHAT EL 5.5):
oracle-instantclient11.2-basic-11.2.0.2.0.x86_64.rpm
reperibile qua
http://www.oracle.com/technetwork/to...ft-092277.html
infine si compila il demone con
./configure --enable-server --enable-agent --enable-proxy --with-oracle --with-net-snmp --with-libcurl --with-net-snmp --with-ldap --with-openipmi
NOTA: fate attenzione al profile dell'utente
il mio contiene:
export ORACLE_BASE=/usr/local/oracle/11.2/client64
export ORACLE_HOME=$ORACLE_BASE
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=/lib/:/usr/lib:$ORACLE_BASE/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin

infine va installato:
php-oci8-5.3.6-3.el5.remi.x86_64.rpm
(reperito dal repository di centos)
e installato con il --nodeps (perch logicamente non trova i pacchetti che gli servono ma sono analoghi a quelli redhat solamente header differente)

si verifica che il driver oracle oci8.so sia caricato dal php
nel caso redhat deve essere presente il file
/etc/php.d/oci8.ini
contenente :
; Enable oci8 extension module
extension=oci8.so

a questo punto bisogna riconfigurare la connession alla base dati dell'interfaccia grafica, lanciare il demone e il gioco fatto

NOTA:
vista la mole di dati e i tempi di migrazione molto lunghi io ho modificato l'housekeepr per lasciare solo 3 mesi di storico (necessari per le SLA)

spero vi sia utile
Ciao

GArmao 22-04-2011 11:12

facci sapere la differenza in performance! immagino tu monitorassi lo stato di zabbix col db mysql e ora col db oracle, sono curioso di sapere quanta differenza c' in termini di velocit e carico del server, io per ora rimango su MySQL ma non detto che prima o poi non si pensi di passare a Oracle o Postgre

dalle 22-04-2011 16:01

ti posso garantire che la migrazione non indolore ma decisamente complessa, sicuramente partendo direttamente su Oracle molto meglio.
Purtroppo MySQL qui affaticato dal carico di lavoro (siamo a oltre 1700 hosts monitorati) e MySQL sta mostrando di aver raggiunto il suo limite. Per questo nata l'esigenza della migrazione.

capitano 22-04-2011 19:04

ho provato a migrare un db mysql su oracle Il log di zabbix_server pieno di errori del tipo:
Delay period format is wrong
a te capitato?

dalle 22-04-2011 19:06

Ciao
premetto che NON so se corretto secondo me si ma... non ho scritto io il db quindi...
:)
io ho risolto con una update sulla tabella items:
update zabbix.items set delay_flex='' where delay_flex=' ';
(in delay_flex c' lo spazio e va tolto)
questo errore lo ha introdotto SQLDeveloper....
prova se risolutivo

dalle 01-06-2011 13:34

ho notato unaltro problema i dati contenuti nella tabella httpstep nella colonna posts nel mio database sono stati valorizzati a 20.... assurdo perch in mysql erano vuoti.... quindi un altro errore inserito presumibilmente da SQLDeveloper...
si risolve con questo statement:

update httpstep set httpstep.posts='' where httpstep.posts='20';


All times are GMT +2. The time now is 10:52.