Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Schedulazione script - copia database
lunedì 28 giugno 2010 - 11.24
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
mauri1961
Profilo
| Senior Member
218
messaggi | Data Invio:
lun 28 giu 2010 - 11:24
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
166
messaggi | Data Invio:
lun 28 giu 2010 - 13:40
>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
218
messaggi | Data Invio:
lun 28 giu 2010 - 13:43
grazie, provo e ti faccio sapere.
Maurizio.
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
lun 28 giu 2010 - 14:58
>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
Torna su
Stanze Forum
Elenco Threads
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 !