Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    Copiare una sola tabella da un db SQL SERVER 2000 ad un altro db SQL SERVER 2008 RS

    Ciao a tutti, devo farela la copia di una tabella da un Database SQL SERVER 2000 ad un altro Database posto su un server SQL SERVER 2008 RS.

    Spulciando in internet sui vari forum consigliavano di utilizzare il generatore di script di Man Studio, solo che durante il wizard di generazione di tale script mi viene chiesto di scegliere un'opzione per la generazione dello script e io non riesco a trovare una voce che faccia al caso mio.

    Chiedo quindi consiglio ai più esperti del forum quale essa sia e soprattutto che tipo di opzione utilizzare in un secondo momento per ripristinare la tabella così "backuppata" nel nuovo database?

    Tenete presente che a me interesserebbe spostare la tabella in un nuovo database posto su un server diverso da quello dove si trova il database originario.

  2. #2
    Ciao Ferie,
    sono alle prime armi anche io con SQL Server.. io lo uso con access se ti crei le tabelle su entrambi i sistemi e poi te le colleghi in access tramite ODBC riesci con delle semplici query di access a spostare i dati da un punto a un altro..

    Per farlo direttamente da SQL Studio lascio agli esperti..

  3. #3
    A parte il fatto che non ho la possibilità di usare Access, a me servirebbero le query in quanto poi dovrò creare un programma che faccia questo tipo di aggiornamento una volta al giorno.

  4. #4
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Originariamente inviato da Ferie
    devo farela la copia di una tabella da un Database SQL SERVER 2000
    ad un altro Database posto su un server SQL SERVER 2008 RS.

    ... mi viene chiesto di scegliere un'opzione per la generazione
    dello script e io non riesco a trovare una voce che faccia al caso mio.

    Tenete presente che a me interesserebbe spostare la tabella
    in un nuovo database posto su un server diverso da
    quello dove si trova il database originario.

    Cosa devi spostare?
    __ Solo la struttura
    __ Solo i dati
    __ Struttura e dati


    Quale è la opzione che ti manca ?


    I 2 server sono sulla stessa rete ?


    __________________________________________________ ____________


    Se devi trasferire la struttura devi farti uno script
    nel SqlServer2000 e eseguirlo nel SqlServer2008

    ( penso che i sistemi sono ancora compatibili
    ma non ho piu Sql2000 per testarlo)

    Provalo prima su un Server2008 di Test,

    eventualmente se non sei sicuro passaci lo script
    ( se non contiene roba sensibile )


    __________________________________________________ _____________


    Se invece devi trasferire e aggiornare solo dati allora
    ti basta una query se i 2 DB sono sulla stessa rete


    __________________________________________________ _____________



    Facci sapere

  5. #5
    Dunque, spiego meglio la situazione.

    Ci sono due server, uno vecchio (SQL SERVER 2000) che però è ancora in uso e lo sarà ancora per qualche tempo, uno più nuovo (SQL SERVER 2008 RS) ove sono stati portati tutti i database (che sono suddivisi per anni) di quello vecchio.
    Un programma già in esecuzione creato da me in PHP esegue giornalmente i backup di tutti i database del corrente anno, li sposta sul nuovo server e ne fa il restore... Eccetto uno.

    Uno di questi database, il più grosso in assoluto del corrente anno, è strutturato in modo che i caricamenti giornalieri che avvengono su di esso, vengano eseguiti in maniera divisa.
    Mi spiego meglio: per alcuni tipi di caricamenti vengono utilizzare direttamente le tabelle che si trovano sul nuovo server, per altri tipi caricamenti viene utilizza ancora una tabella sul vecchio server (lo so che è astruso però la situazione è questa finchè non entrerà in funzione completamente e definitivamente il nuovo server).
    Ora, della tabella che si trova sul vecchio server, si vuole creare una sorta di backup (o di sincronizzazione, chiamatela come volete), si vorrebbe cioè che, una volta al giorno (o se il processo è lento anche una volta ogni 2/3 giorni), questa si sincronizzasse con quella presente sul nuovo server.

    E' quindi impossibile far fare il backup dell'intero database sia da una parte sia dall'altra perchè verrebbero a perdersi milioni di record necessari.
    Per dovere di completezza, la tabella in questione contiene qualche centinaio di milione di record. Il database pesa, al momento, circa 9 GB (a fine anno dovrebbe arrivare attorno a 40 GB).

    Questa la situazione, se avete qualche soluzione ben venga...

  6. #6
    i due server sono sulla stessa rete?

  7. #7
    Originariamente inviato da Ferie
    ...
    Ora, della tabella che si trova sul vecchio server, si vuole creare una sorta di backup (o di sincronizzazione, chiamatela come volete), si vorrebbe cioè che, una volta al giorno (o se il processo è lento anche una volta ogni 2/3 giorni), questa si sincronizzasse con quella presente sul nuovo server.
    ....
    Questa la situazione, se avete qualche soluzione ben venga...
    Ciao,

    <EDIT>
    ho dimenticato la soluzione più semplice se i due db si vedono;
    dal sqlserver 2008 R2 fai un linked server al 2000
    e ti crei un sinonimo della tabella del 2000
    che potrai quindi usare nel 2000 R2
    <FINE EDIT>

    mi sembra un lavoro che può svolgere il SSIS
    http://msdn.microsoft.com/it-it/sqlserver/cc511477

    Fossi in te, proverei a creare il pacchetto SSIS sul sqlserver 2008R2
    in modo da allineare la sua tabelle con quelle del vecchio del server
    (non ricordo bene ma cerca MERGE) .

    Certo che se i due server non si vedono , allora la cosa si complica
    perchè dovresti
    - esportarti i dati della tabella del vecchio server su un file di testo (BCP/SqlBulkcopy sono molto veloce in questo)
    -copiarti il file di testo in un posto accessibile dal nuovo server
    - ricrearti la tabella del vecchio server su quello nuovo ed allineare i dati con un pacchetto SSIS

    Altra soluzione potrebbe essere una replica
    http://msdn.microsoft.com/it-it/library/cc185086.aspx
    che, anche se a prima vista può sembrare allettante, potrebbe
    trasformarsi in un bagno si sangue, per cui studiatela bene
    prima di intraprendere questa eventuale strada.

    HTH

  8. #8
    Originariamente inviato da sspintux
    Ciao,
    ...
    ...ho dimenticato la soluzione più semplice se i due db si vedono;

    dal sqlserver 2008 R2 fai un linked server al 2000
    e ti crei un sinonimo della tabella del 2000
    che potrai quindi usare nel 2000 R2

  9. #9
    Ok, grazie a tutti per i consigli.

    Mi sono studiato il SSIS, e in particolare la funzione "esporta dati" da una parte all'altra che tra l'altro è la cosa più semplice e veloce che ho trovato e soprattutto funzionante.

    La mia richiesta ora è non è possibile automatizzare questo processo?
    Con "automatizzare" intendo far in modo di poter schedulare tale operazione affinchè avvenga ogni giorno lavorativo.

  10. #10
    Originariamente inviato da sspintux
    Ciao,ho dimenticato la soluzione più semplice se i due db si vedono; dal sqlserver 2008 R2 fai un linked server al 2000 e ti crei un sinonimo della tabella del 2000 che potrai quindi usare nel 2000 R2
    Non riesco a capire nè a trovare l'opzione per poter utilizzare il "linked server" che da quello che ho capito dovrebbe solo far si che i database risultino come unico però senza effettivamente copiare alcun dato nè da una parte nè dall'altra: questo a me non serve. Serve poter avere la copia dei dati per poter avere una sorta di backup di questa tabella.

    Originariamente inviato da sspintux
    Fossi in te, proverei a creare il pacchetto SSIS sul sqlserver 2008R2
    in modo da allineare la sua tabelle con quelle del vecchio del server
    (non ricordo bene ma cerca MERGE) .
    Per quanto riguarda SSIS le istruzioni di creazioni dei vari package sono in C o in VB, e la mia domanda ora è: c'è una qualche guida che mi aiuti a crearli in PHP?

    E poi ho comunque un problema: il vecchio server vede e comunica con il nuovo, MA il nuovo non risponde al vecchio pur accettando le sue connessioni ed operazioni.

    Utilizzando il wizard che utilizza SSIS per creare il package della funzione "esporta dati" da una parte all'altra mi sembra al momento la soluzione ottimale, ma il problema è che utilizzo una versione di Man Studio che non consente il salvataggio del package.
    Ho provato a salvarlo direttamente sul server che supporta SQL 2008 RS, con la sua versione di Man Studio, ho ottenuto un file .dtsx che sembra "una sorta di xml" con un sacco di tag che aprono e chiudono opzioni e impostazioni alcune delle quali immesse durante la procedura di wizard. Da quello che posso capire però, non riesco a trovare un comando che esegua effettivamente la tanto fantomatica copia dei dati e della tabella...

    E' mai possibile che non si riesca a schedulare l'operazione di esportazione della tabella affinchè avvenga ogni giorno lavorativo, senza dover ricorrere per forza ai package e quindi a C o a VB?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.