[MySQL] Tabella piena

Discussione in 'MySQL' iniziata da Giulo77, 18 Ottobre 2018.

  1. Giulo77

    Giulo77 Nuovo Utente

    Registrato:
    15 Marzo 2018
    Messaggi:
    22
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Ciao a tutti,
    utilizzo phpmyadmin devserver e nel mio database ho creato una tabella innoDB dove sono andato a caricare 2.900 documenti di vario tipo in binario. Erroneamente ho lanciato l'esecuzione due volte però ho scoperto questo problema che tra pochi anni di utilizzo mi si ripresenterà di sicuro.
    L'esecuzione è terminata dandomi l'errore "full table". Effettivamente dovevo caricare 2,1GB e se vado a vedere nella directory del mio database il file documenti.ibd è di 4GB.
    Entrare con PHPMyAdmin non se ne parlava perchè mi dava subito errore di connessione quindi manualmente ho cancellato la tabella ed alcuni file e mi ha permesso di rientrare rifacendo poi creazione tabella e import dati.

    Premetto che non ho esperienza con mysql, ho sempre usato db2 o oracle a livello lavorativo e non sistemistico, però penso sia qualcosa relativo alle table space. Non ho però trovato nulla a livello di configurazione che mi dica se usa una table space unica e di quanto o se ne crea automaticamente una di default per ogni tabella creata.

    Oltretutto se entro in phpmyadmin per interrogare il db ho sempre un messaggio di errore che mi dice che la configurazione dello storage non è completa. Dice anche di andare nella scheda 'operazioni' del db per configurarlo da li ma mi dice poi che è disabilitata ed il link 'scopri la ragione' mi rimanda ad un elenco di voci $cfg dove in quelle in rosso non compaiono voci relative allo storage ed in ogni caso non sono voci modificabili.

    Qualche suggerimento?

    A breve dovrei fare una migrazione di un db di 500GB la cui tabella documenti di sicuro peserà cirva 200GB, quindi infattibile con l'attuale configurazione!
     
  2. Giulo77

    Giulo77 Nuovo Utente

    Registrato:
    15 Marzo 2018
    Messaggi:
    22
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Provo a farla più semplice...diciamo di accontentarmi di mysql a 32bit e che il limite della tablespace globale sia di 4GB mi chiedo:
    come faccio a sapere come si chiama? lo chiedo perchè se non ho capito male devo fare un'ALTER per aggiungere tanti file quanto spazio ho bisogno.

    P.S. Dopo aver creato una tabella esiste qualche comando per indirizzarla su una tablespace particolare? Oppure anche ricreandola come posso dirgli di usare una determinata tablespace con ad esempio 4 file diversi?
     
  3. LinuxOhYeah

    LinuxOhYeah Utente Attivo

    Registrato:
    26 Novembre 2016
    Messaggi:
    188
    Mi Piace Ricevuti:
    7
    Punteggio:
    18
    database enorme! comunque prova a vedere sulla documentazione ufficiale dove parla proprio di configurazione dello storage
    https://docs.phpmyadmin.net/en/latest/setup.html?highlight=storage#linked-tables
    li trovi anche tutta la documentazione per la versione che hai
    Se è 'non completa' comunque penso funzionerà comunque ma ci saranno alcune funzionalità extra che non sono configurate / disattivate
     
  4. Giulo77

    Giulo77 Nuovo Utente

    Registrato:
    15 Marzo 2018
    Messaggi:
    22
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Il problema non è tanto il messaggio della configurazione non completa oppure di funzionalità sullo storage a cui non posso accedere (Comunque limitazione a livello grafico perchè da command line si può fare tutto comunque), ma il fatto che non posso andare oltre i 4 GB a livello di database.
    Cioè è configurato per utilizzare una sola tablespace condivisa per tutti le tabelle. Posso comunque associarne una nuova alla mia tabella documenti ma come data file posso solo mettrne uno quindi sempre a 4BG rimango.

    MyIsAm --> Non posso creare tablespace
    InnoDB --> Creo tablespace e l'associo alla mia tabella ma non supporta ALTER TABLESPACE quindi non posso aggiongere altri DATAFILE

    Mi chiedo ma quando esisteva solo la versione a 32bit mysql si poteva usare solo con dei database di piccole dimensioni?
    Altra domanda che mi sorge spontanea: se esiste un comando per aggiungere datafile a un datatable qual è la situazione per cui è possibile farlo?
     
  5. LinuxOhYeah

    LinuxOhYeah Utente Attivo

    Registrato:
    26 Novembre 2016
    Messaggi:
    188
    Mi Piace Ricevuti:
    7
    Punteggio:
    18
    Mi sembra ci sia tutto nella documentazione mysql come https://dev.mysql.com/doc/refman/8.0/en/full-table.html
    Il limite dei 4GB se non erro era solo per chi utilizza win 32-bit con fat32.
    Con InnoDB la dimensione massima dipende dal InnoDB Page Size che con 4KB -> 16TB, 8KB -> 32TB, 16KB -> 64TB, 32KB-> 128TB e con 64KB -> 256TB

    Mi sembra di aver letto sulla documentazione che c'era un default a 4GB ma adesso non ricordo, scusa.

    da https://dev.mysql.com/doc/refman/8.0/en/alter-tablespace.html
     
  6. Giulo77

    Giulo77 Nuovo Utente

    Registrato:
    15 Marzo 2018
    Messaggi:
    22
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Sto utilizzando la versione 5.7 e se non ho capito male c'è proprio un bug che limita le tabelle 4GB e probabilmente deve avere qualche altro problema. Si vede che i pacchetti "gratuiti" di easyphp devserver non sono il massimo, acquisterò l'accesso completo per avere le ultime versioni.

    Per ora ho risolto creando solo la tabella dei documenti con motore MyISAM.

    Prossimamente metterò tutto a 64bit

    Dalle mie reminiscenze di oracle volevo creare una tablespace dedicata e quando era InnoDB mi dice che il comando ALTER non è supportato (Penso sempre ad un altro limite di questa versione)
     
  7. LinuxOhYeah

    LinuxOhYeah Utente Attivo

    Registrato:
    26 Novembre 2016
    Messaggi:
    188
    Mi Piace Ricevuti:
    7
    Punteggio:
    18
    quindi win. se hai 32-bit più di 4GB non ci puoi proprio andare per via del sistema operativo
     
  8. Giulo77

    Giulo77 Nuovo Utente

    Registrato:
    15 Marzo 2018
    Messaggi:
    22
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Si win ma è a 64bit, solo mysql è a 32bit...infatti, come dicevo, ho risolto mettendo da InnoDB a MyISAM. Anche questo evidenzia il fatto che è un probabile bug della mia versione di mysql
     
  9. Giulo77

    Giulo77 Nuovo Utente

    Registrato:
    15 Marzo 2018
    Messaggi:
    22
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Messo versione a 64bit problema risolto
     
  10. marino51

    marino51 Utente Attivo

    Registrato:
    28 Febbraio 2013
    Messaggi:
    2.518
    Mi Piace Ricevuti:
    123
    Punteggio:
    63
    Occupazione:
    free lance
    Località:
    Lombardia
    consentimi una riflessione,

    é sicuro gestire database così estesi, pieni di "documenti" ?

    di sicuro fare un backup di un db da 500 gb a me fa venire le convulsioni,
    se dovessi pensare ad un ripristino, do le dimissioni e cambio mestiere

    esiste il file system che é un ottimo db per i "documenti" mentre si potrebbero memorizzare nel vero db solo le referenze

    esistono validi strumenti per il backup dei "documenti" memorizzati nel file system che cercano di evitare operazioni inutili riducendo tempi e dati trasferiti

    ma non volevo disturbarti con i miei pensieri in libertà
     
Sto caricando...

Condividi questa Pagina