Announcement

Collapse
No announcement yet.

Migrazione da Mysql a ORacle

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    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
    Andrea Dalle Vacche
    website:http://www.smartmarmot.com/
    e-mail:
    Author of:Mastering Zabbix Book - second edition
    Zabbix Network Monitoring Essentials

    #2
    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

    Comment


      #3
      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.
      Andrea Dalle Vacche
      website:http://www.smartmarmot.com/
      e-mail:
      Author of:Mastering Zabbix Book - second edition
      Zabbix Network Monitoring Essentials

      Comment


        #4
        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?

        Comment


          #5
          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
          Andrea Dalle Vacche
          website:http://www.smartmarmot.com/
          e-mail:
          Author of:Mastering Zabbix Book - second edition
          Zabbix Network Monitoring Essentials

          Comment


            #6
            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';
            Andrea Dalle Vacche
            website:http://www.smartmarmot.com/
            e-mail:
            Author of:Mastering Zabbix Book - second edition
            Zabbix Network Monitoring Essentials

            Comment

            Working...
            X