Schedulazione script - copia database

lunedì 28 giugno 2010 - 11.24

mauri1961 Profilo | Senior Member

Ho due problemi:

1. Ho la necessità di aggiornare quotidianamente delle tabelle in sql server 2008 express provenienti da file .txt e .csv.
L'aggiornamento funziona regolarmente con la funzione bulk insert.
Il problema è che effettuandolo manualmente tutto funziona, ma creando con la funzione di windows di schedulazione l'automatismo non riesco a capire come farlo partire in quanto inserendo lo script di creazione mi apre sqlserver ma logicamente non parte l'execute del suddetto script.

2. questi aggiornamenti sono eseguiti su un server dedicato al database (SRV-DB01) da dove le pagine asp.net posizionate in altro server (WEB-DB01) attingono i dati per mostrarli sul web. Quanto detto al punto 1 avviene fisicamente nel server SRV-DB01 ma i dati che vanno ad aggiornare questo database devo passarli dal server che contiene il nostro gestionale a quello contenente il database sqlserver.
io avrei pensato di agire in questo modo :
a. creare un database sql server nel nostro server
b. aggiornare quotidianamente con schedulazione le tabelle in tale sede (problema punto 1)
c. copiare quotidianamente il database dal nostro server a quello presente su SRV-DB01

e possibile schedulare il tutto con windows e se si (soprattutto...) come devo fare?

grazie, Maurizio

carloalberto Profilo | Junior Member

>1. Ho la necessità di aggiornare quotidianamente delle tabelle
>in sql server 2008 express provenienti da file .txt e .csv.

devi crearti un .bat che lancia SQLCMD, nei suoi parametri oltre che user pwd di connessione al server, gli passerai anche il tuo .sql che lui diligentemente eseguirà :-)

>
>2. questi aggiornamenti sono eseguiti su un server dedicato al
>database (SRV-DB01) da dove le pagine asp.net posizionate in
.....
>e possibile schedulare il tutto con windows e se si (soprattutto...)
>come devo fare?

quello che riesci a fare a mano , lo fai anche con sqlcmd passandogli gli script che ti sei creato , per la schedulazione, puoi usare semplicemente operazioni pianificate di windows, io ho usato anche 'cobian backup' o sql agent di mssql.
se fai inserimenti massicci, ti consiglio di schedulare subito dopo un backup full , fai attenzione a calcolare bene i tempi di avvio.

>grazie, Maurizio
di nulla

mauri1961 Profilo | Senior Member

grazie, provo e ti faccio sapere.

Maurizio.

lbenaglia Profilo | Guru

>1. Ho la necessità di aggiornare quotidianamente delle tabelle
>in sql server 2008 express provenienti da file .txt e .csv.
>L'aggiornamento funziona regolarmente con la funzione bulk insert.
>Il problema è che effettuandolo manualmente tutto funziona, ma
>creando con la funzione di windows di schedulazione l'automatismo
>non riesco a capire come farlo partire in quanto inserendo lo
>script di creazione mi apre sqlserver ma logicamente non parte
>l'execute del suddetto script.

Ciao Maurizio,

In alternativa alla soluzione proposta, puoi ricorrere a bcp.exe che si basa sulle medesime API del comando T-SQL BULK INSERT ed essendo un normale eseguibile puoi richiamarlo in uno scheduled task.
http://msdn.microsoft.com/en-us/library/ms162802.aspx

>2. questi aggiornamenti sono eseguiti su un server dedicato al
>database (SRV-DB01) da dove le pagine asp.net posizionate in
>altro server (WEB-DB01) attingono i dati per mostrarli sul web.
>Quanto detto al punto 1 avviene fisicamente nel server SRV-DB01
>ma i dati che vanno ad aggiornare questo database devo passarli
>dal server che contiene il nostro gestionale a quello contenente
>il database sqlserver.
>io avrei pensato di agire in questo modo :
>a. creare un database sql server nel nostro server
>b. aggiornare quotidianamente con schedulazione le tabelle in
>tale sede (problema punto 1)
>c. copiare quotidianamente il database dal nostro server a quello
>presente su SRV-DB01
>
>e possibile schedulare il tutto con windows e se si (soprattutto...)
>come devo fare?
Ti suggerisco una seconda strada più semplice e meno invasiva.
Definisci una share sul server che contiene i files che devi importare giornalmente; sul server SRV-DB01 andrai ad implementare uno o più scheduled task che via BCP andranno a leggere i files contenuti nella share remota.

>grazie, Maurizio
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5