Come posso utilizzare una connessione al database diversa per la configurazione del pacchetto?

StackOverflow https://stackoverflow.com/questions/38766

  •  09-06-2019
  •  | 
  •  

Domanda

Ho un pacchetto SSIS che imposta alcuni dati variabili da una tabella di configurazione del pacchetto SQL Server.(Selezionando l'opzione "Specifica direttamente le impostazioni di configurazione")

Funziona bene quando utilizzo la connessione al database che ho specificato durante lo sviluppo del pacchetto.Tuttavia, quando lo eseguo su un server (64 bit) nell'ambiente di test (come lavoro dell'agente o eseguendo direttamente il pacchetto) e specifico la nuova stringa di connessione nei gestori connessioni, il pacchetto legge comunque le impostazioni dal server DB che ho specificato in fase di sviluppo.

Tutte le altre connessioni occupano le stringhe di connessione corrette, sembra solo che sia la configurazione del pacchetto a leggere dal posto sbagliato.

Qualche idea o sto facendo qualcosa di veramente sbagliato?

È stato utile?

Soluzione

L'unico modo in cui sono riuscito a farlo è stato utilizzare le variabili di ambiente di Windows.Puoi specificare elementi come stringhe di connessione e preferenze utente nelle variabili di ambiente e quindi raccogliere tali variabili di ambiente dall'attività SSIS.

Altri suggerimenti

Preferisco utilizzare gli alias del server nella configurazione del client SQL.In questo modo, quando decidi di indirizzare il pacchetto a un altro SQL Server è semplice come modificare l'alias in modo che punti al nuovo server, senza modifiche necessarie nel pacchetto SSIS.Quando sposti il ​​pacchetto su un server live, devi aggiungere gli alias e funziona.

Ciò aiuta anche quando si dispone di una convenzione di denominazione davvero dolorosa per i server, l'alias può essere un nome più descrittivo rispetto al nome effettivo della macchina.

In realtà non ho capito completamente la tua domanda, ma memorizzo le mie impostazioni di connessione in un file di configurazione, solitamente uno per ogni ambiente come sviluppo, produzione, ecc.I pacchetti leggono le impostazioni di connessione dai file di configurazione quando vengono eseguiti.

Quando crei un processo per chiamare il pacchetto SSIS e configuri il passaggio, è presente un'area a schede.La scheda predefinita è dove imposti il ​​nome del pacchetto e la scheda successiva è dove puoi impostare il file di configurazione.Avere un file di configurazione per ciascun pacchetto e modificarlo per il server (dev, test, prod).Il file di configurazione può essere inserito direttamente sui server dev, test e prod e quindi puntare a essi durante l'impostazione del lavoro.

Se stai utilizzando la configurazione del pacchetto SQL Server, tutte le proprietà dei pacchetti proverranno dalla tabella SQL Server: verificalo

La sicurezza SSIS così com'è è terribile.Nessuno sarà in grado di supportare le cose quando sono fuori ufficio.Il lavoro non legge mai dal file di configurazione... mi arrendo.Funziona solo quando modifico la stringa nella scheda Origini dati.Tuttavia la password viene persa se si accede al lavoro una seconda volta.Design terribile, assolutamente orribile.Penseresti che quando specifichi un file xml nella fase di lavoro, leggerebbe la stringa di connessione da lì definita, ma non lo fa.Funziona davvero per qualcun altro?

Vai alle proprietà del pacchetto e imposta la distribuzione su True.Questo dovrebbe funzionare per quello che hai fatto.

Avevo la stessa domanda e ho ottenuto la stessa risposta, vale a direnon è possibile modificare la stringa di connessione utilizzata per le configurazioni del pacchetto ospitate in SQL Server, a meno che non si specifichi che la stringa di connessione di SQL Server deve trovarsi in una variabile di ambiente.

Questo purtroppo non funziona nella mia configurazione di sviluppo, dove due ambienti sono ospitati sulla stessa macchina.Alla fine ho seguito l'approccio di Scott Coleman come spiegato in dettaglio SQL Server centrale [Iscrizione gratuita e un buon sito].Il trucco sta nel creare una visualizzazione per archiviare le impostazioni di configurazione su un server centrale e quindi utilizzare la macchina che si connette ad esso per determinare quale ambiente è attivo.

Ho utilizzato questo approccio, ma ho utilizzato anche la connessione dell'utente all'ambiente per prendere una decisione, poiché le mie configurazioni di test e sviluppo vengono eseguite sulla stessa istanza SSIS, ma con nomi utente diversi.Scott suggerisce nei commenti che il nome dell'applicazione dovrebbe essere impostato, ma questo non può essere modificato nella fase di lavoro di esecuzione del pacchetto, quindi non era un'opzione.

Un altro avvertimento che ho riscontrato è che dovevo aggiungere trigger "Invece di" alla mia visualizzazione per eseguire inserimenti, aggiornamenti ed eliminazioni per le variabili di configurazione.

Vogliamo mantenere le configurazioni dei nostri pacchetti in una tabella del database, sappiamo che viene eseguito il backup con gli altri nostri dati e sappiamo dove trovarli.Solo una preferenza.

Ho scoperto che per farlo funzionare posso utilizzare una configurazione di variabile di ambiente per impostare la stringa di connessione del gestore connessione da cui sto leggendo la configurazione del mio pacchetto.(Anche se ho dovuto riavviare l'agente SQL Server prima che potesse trovare la nuova variabile di ambiente.Non è l'ideale quando lo distribuisco in produzione)

Sembra che quando esegui un pacchetto SSIS come passaggio in un'attività pianificata, funzioni in questo ordine:

  • Carica ciascuna configurazione del pacchetto nell'ordine in cui appare nell'Organizzatore delle configurazioni del pacchetto
  • Impostare le stringhe di connessione dalla scheda Origini dati nelle proprietà della fase di lavoro del lavoro pianificato
  • Avvia l'esecuzione di package.

Mi sarei aspettato che i primi 2 fossero al contrario in modo da poter impostare l'origine dati per la configurazione del mio pacchetto dal lavoro pianificato.È lì che mi aspetterei che altre persone lo cerchino durante la manutenzione del pacchetto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top