Errore eseguendo una query (Procedura sp_OACreate)

mercoledì 22 marzo 2006 - 22.02

escaflowne Profilo | Junior Member

Salve a tutti,
vi propongo questo errore che mi da il sql server express lanciando una query che dovrebbe, di fatto, fare un backup del db.
Msg 15501, Level 16, State 1, Procedure sp_OACreate, Line 1
This module has been marked OFF. Turn on 'Ole Automation Procedures' in order to be able to access the module.

Tutte le procedure sp_OAxxxxx danno questo errore. Ho provato a cercare su internet come markare su ON i moduli (come indicato dall'errore) ma non ho trovato davvero nulla.

Sapreste dirmi come fare?

Visto che ci siamo vi chiedo anche un'altra cosa: c'è qualche controindicazione se opero in questo modo:
1. faccio lo shrink del db e del file di log
2. faccio il backup del db

E' necessario fare anche il backup del log?

Grazie a tutti

lbenaglia Profilo | Guru

>vi propongo questo errore che mi da il sql server express lanciando
>una query che dovrebbe, di fatto, fare un backup del db.

Ciao escaflowne,

le stored procedures sp_OA* costituiscono un discutibile metodo per istanziari classi COM e sftuttarne i relativi metodi all'interno di script T-SQL.
Per quale motivo utilizzi una tecnica deprecata quando puoi ricorrere ad un banalissimo BACKUP DATABASE per effettuare il backup completo del tuo db?
http://msdn.microsoft.com/library/en-us/tsqlref/ts_ba-bz_35ww.asp

>Visto che ci siamo vi chiedo anche un'altra cosa: c'è qualche
>controindicazione se opero in questo modo:
>1. faccio lo shrink del db e del file di log
>2. faccio il backup del db

Quando effettui il backup del database andrai a copiase *solo* i dati effettivamente presenti nei tuoi data files (.mdf e .ndf) ed una parte del transaction log (.ldf) necessaria per consentire in fase di ripristino uno stato consistente del db.
Se ad esempio il tuo .mdf ha 20MB di spazio allocato ma non occupato da dati, non verrà inserito nel file di backup.

Ti sconsiglio di effettuare lo shrink del database o del transaction log (a meno che per non curanza le sue dimensioni siano cresciute in modo considerevole) perché questa operazione oltre a frammentare fisicamente i files nel caso in cui vengano nuovamente espansi, frammentano PESANTEMENTE gli indici eventualmente definiti sulle colonne, causando un degrado di performance se non deframmentati a dovere.

>E' necessario fare anche il backup del log?
Dipende dalla politica di backup che vuoi implementare.
I Books Online descrivono minuziosamente le varie possibilità di backup offerte da SQL Server:

"Backup/Restore Architecture"
http://msdn.microsoft.com/library/en-us/architec/8_ar_aa_9iw5.asp

"Backing Up and Restoring Databases"
http://msdn.microsoft.com/library/en-us/adminsql/ad_bkprst_9zcj.asp

Eventualmente se sei costretto a compattare il transaction log, leggi questo tip:
http://www.dotnethell.it/tips/ShrinkTLOGSql2000.aspx

>Grazie a tutti
Prego.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

escaflowne Profilo | Junior Member

Prima di tutto ti ringrazio per la risposta dettagliata

>>vi propongo questo errore che mi da il sql server express lanciando
>>una query che dovrebbe, di fatto, fare un backup del db.
>
>Ciao escaflowne,
>
>le stored procedures sp_OA* costituiscono un discutibile metodo
>per istanziari classi COM e sftuttarne i relativi metodi all'interno
>di script T-SQL.
>Per quale motivo utilizzi una tecnica deprecata quando puoi ricorrere
>ad un banalissimo BACKUP DATABASE per effettuare il backup completo
>del tuo db?
>http://msdn.microsoft.com/library/en-us/tsqlref/ts_ba-bz_35ww.asp
>
Dato che uso sql server express (che non ha un agent incluso) avevo trovato uno script tsql per schedulare un backup. Purtroppo mi da questo errore quindi cambio strategia, avevo pensato a due metodi ma uno, stranamente, non è percorribile.
Ho creato uno script di backup con le opzioni desiderate (direttamente dal sql server managment studio express ctp) e pensavo di metterlo nello schedule di windows (lanciandolo con sqlcmd). Il problema è che lanciando da riga di comando sqlcmd (con qualunque script) mi si pianta! (proprio come errore dell'applicazione).
Allora ho creato uno script wsh che fa il backup del db
Più che altro volevo capire come mai di questi errori

>>Visto che ci siamo vi chiedo anche un'altra cosa: c'è qualche
>>controindicazione se opero in questo modo:
>>1. faccio lo shrink del db e del file di log
>>2. faccio il backup del db
>
>Quando effettui il backup del database andrai a copiase *solo*
>i dati effettivamente presenti nei tuoi data files (.mdf e .ndf)
>ed una parte del transaction log (.ldf) necessaria per consentire
>in fase di ripristino uno stato consistente del db.
>Se ad esempio il tuo .mdf ha 20MB di spazio allocato ma non occupato
>da dati, non verrà inserito nel file di backup.
>
qui tutto chiaro

>Ti sconsiglio di effettuare lo shrink del database o del transaction
>log (a meno che per non curanza le sue dimensioni siano cresciute
>in modo considerevole) perché questa operazione oltre a frammentare
>fisicamente i files nel caso in cui vengano nuovamente espansi,
>frammentano PESANTEMENTE gli indici eventualmente definiti sulle
>colonne, causando un degrado di performance se non deframmentati
>a dovere.
>
ok, informazioni molto interessante, a limite potrei impostare uno shrink in funzione della dimensione dei due file mdf e ldf

>>E' necessario fare anche il backup del log?
>Dipende dalla politica di backup che vuoi implementare.
>I Books Online descrivono minuziosamente le varie possibilità
>di backup offerte da SQL Server:
>
>"Backup/Restore Architecture"
>http://msdn.microsoft.com/library/en-us/architec/8_ar_aa_9iw5.asp
>
>"Backing Up and Restoring Databases"
>http://msdn.microsoft.com/library/en-us/adminsql/ad_bkprst_9zcj.asp
>
>Eventualmente se sei costretto a compattare il transaction log,
>leggi questo tip:
>http://www.dotnethell.it/tips/ShrinkTLOGSql2000.aspx
>
>>Grazie a tutti
>Prego.
>
>Ciao!
>
leggerò con attenzione. Grazie
>--
>Lorenzo Benaglia
>Microsoft MVP - SQL Server
>http://blogs.dotnethell.it/lorenzo/
>http://italy.mvps.org

totti240282 Profilo | Guru

scusate l'ignoranza......

ma faccio lo shrink del db e del file di log ,cosa è lo shrink ???
C'è solo un capitano !!!!!!

escaflowne Profilo | Junior Member

>scusate l'ignoranza......
>
>ma faccio lo shrink del db e del file di log ,cosa è lo shrink
>???
>C'è solo un capitano !!!!!!

lo shrink altro non è che compattare il database e/o il file log per recuperare dello spazio inutilmente occupato.

lbenaglia Profilo | Guru

>Dato che uso sql server express (che non ha un agent incluso)
>avevo trovato uno script tsql per schedulare un backup. Purtroppo
>mi da questo errore quindi cambio strategia, avevo pensato a
>due metodi ma uno, stranamente, non è percorribile.
>Ho creato uno script di backup con le opzioni desiderate (direttamente
>dal sql server managment studio express ctp) e pensavo di metterlo
>nello schedule di windows (lanciandolo con sqlcmd). Il problema
>è che lanciando da riga di comando sqlcmd (con qualunque script)
>mi si pianta! (proprio come errore dell'applicazione).
>Allora ho creato uno script wsh che fa il backup del db
>Più che altro volevo capire come mai di questi errori

Ciao escaflowne,

lo scheduling di un task in windows che esegue i backup tramite sqlcmd è probabilmente il metodo migliore per sopperire alla mancanza del SQL Server Agent in SQL Server 2005 Express.
Il fatto che ti si pianti invece non è normale. Che errore ricevi? Hai strani messaggi di warning/errore nell'Event Viewer?

>leggerò con attenzione. Grazie
Prego.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

escaflowne Profilo | Junior Member

>Ciao escaflowne,
>
>lo scheduling di un task in windows che esegue i backup tramite
>sqlcmd è probabilmente il metodo migliore per sopperire alla
>mancanza del SQL Server Agent in SQL Server 2005 Express.
>Il fatto che ti si pianti invece non è normale. Che errore ricevi?
>Hai strani messaggi di warning/errore nell'Event Viewer?
>

no no, si pianta proprio il cmd di windows con la segnalazione di errore da inviare alla Microsoft!
E questo sempre e solo con sqlcmd

>>leggerò con attenzione. Grazie
>Prego.
>
>Ciao!
>
>--
>Lorenzo Benaglia
>Microsoft MVP - SQL Server
>http://blogs.dotnethell.it/lorenzo/
>http://italy.mvps.org

lbenaglia Profilo | Guru

>no no, si pianta proprio il cmd di windows con la segnalazione
>di errore da inviare alla Microsoft!
>E questo sempre e solo con sqlcmd

Ma non hai nessun errore nell'Event Log?

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

escaflowne Profilo | Junior Member


>Ma non hai nessun errore nell'Event Log?
>
>--
>Lorenzo Benaglia
>Microsoft MVP - SQL Server
>http://blogs.dotnethell.it/lorenzo/
>http://italy.mvps.org

hai ragione, mi ero dimenticato di guardarci. Stasera (torno a lavorare sul pc incriminato) ci guardo e ti posto il problema
Grazie

escaflowne Profilo | Junior Member

rieccomi qui, dunque l'errore che mi da sqlcmd (piantando il cmd di windows) è sempre lo stesso (indipendentemente dallo script):

Applicazione che ha provocato l'errore sqlcmd.exe, versione 2000.90.1116.0, modulo che ha provocato l'errore sqlcmd.exe, versione 2000.90.1116.0, indirizzo errore 0x00009afa.

nell'elenco delle applicazioni, prima di questo errore (quando accendo il pc e, immagino, si inizializza il tutto) ho, fra le varie informazioni dell'event viewer due errori:

FallBack certificate initialization failed with error code: 13.

The SQL Network Interface library was unable to register SPN. Error: 0x54b.

Hai qualche suggerimento?
Grazie

lbenaglia Profilo | Guru

>Applicazione che ha provocato l'errore sqlcmd.exe, versione 2000.90.1116.0,
>modulo che ha provocato l'errore sqlcmd.exe, versione 2000.90.1116.0,
>indirizzo errore 0x00009afa.

Ciao escaflowne,

mi risulta che la versione 2000.90.1116.0 sia la CTP di Aprile 2005 quindi una versione preliminare di SQL Server 2005:
http://www.aspfaq.com/sql2005/show.asp?id=20

Ti suggerisco di disinstallarla insieme alla beta del framework .NET 2.0 e di installare la recentissima CTP di marzo 2006 che puoi scaricare dal seguente link:

SQL Server 2005 Service Pack 1 Express Editions and Tools - Community Technology Preview (CTP) March 2006
http://www.microsoft.com/downloads/details.aspx?FamilyID=57856cdd-da9b-4ad0-9a8a-f193ae8410ad&DisplayLang=en

SQL Server 2005 Books Online SP1 - Community Technology Preview (CTP) March 2006
http://www.microsoft.com/downloads/details.aspx?FamilyID=19db0b42-a5b2-456f-9c5c-f295cdd58d7a&DisplayLang=en

Microsoft .NET Framework Version 2.0 Redistributable Package (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en

>Grazie
Prego.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

escaflowne Profilo | Junior Member

grazie, farò in questo modo.
Secondo te cosa devo temere, per la mia applicazione, disinstallando il ctp di marzo (e il framework) e reinstallando la versione aggiornata?

lbenaglia Profilo | Guru

>Secondo te cosa devo temere, per la mia applicazione, disinstallando
>il ctp di marzo (e il framework) e reinstallando la versione
>aggiornata?

Devi disinstallate la CTP di Aprile 2005 ed installare quella di Marzo 2006.
Prima di effettuare questa operazione fai un backup dei tuoi db utilizzando il comando BACKUP DATABASE; una volta installata la nuova versione provvedi a ripristinare i backup tramite il comando RESTORE:

"BACKUP (Transact-SQL)"
http://msdn2.microsoft.com/en-us/library/ms186865.aspx

"RESTORE (Transact-SQL)"
http://msdn2.microsoft.com/en-us/library/ms186858.aspx

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

escaflowne Profilo | Junior Member

Si, farò il backup (anche se ne ho già fatti tanti, uno in più non guasta )
Comunque mi preoccupo poco del db dato che, essendo in fase di sviluppo, mi interessa solo preservare la struttura del db e non i dati contenuti (per sicurezza mi stampo il diagramma del db e nel caso andasse tutto storto lo ricreo)

Piuttosto mi chiedevo se dovevo nuovamente sbattermi con la configurazione dato che, per far accettare la connessione del sql manager ho dovuto smanettare troppo (per i miei gusti)

lbenaglia Profilo | Guru

>Piuttosto mi chiedevo se dovevo nuovamente sbattermi con la configurazione
>dato che, per far accettare la connessione del sql manager ho
>dovuto smanettare troppo (per i miei gusti)

Vedi tu se preferisci sviluppare con un software preliminare oppure installare una versione più stabile.
I Books Online ti spiegano tutto quello che c'è da conoscere evitando inutili "smanettamenti", certo, per imparare occorre leggerli...

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

escaflowne Profilo | Junior Member

Frecciatina

Di solito leggo tanta documentazione prima di fare qualcosa, questa volta sono andato più alla leggera (e, per l'appunto, figurati se non capitava qualcosa).
Sicuramente mi preparerò al meglio

Versione più stabile dici, il fatto è che, dato che sviluppo per hobby e non per guadagnarmi il pane, ho preferito buttarmi sulla versione free di sql server (la express appunto). Versione più stabile vorrebbe dire acquistare sql server standard o professional (tra l'altro ho visto che in effetti non costa molto la standard, mi sembra sui 350 euro).

lbenaglia Profilo | Guru

>Frecciatina

Dici?

>Versione più stabile dici, il fatto è che, dato che sviluppo
>per hobby e non per guadagnarmi il pane, ho preferito buttarmi
>sulla versione free di sql server (la express appunto). Versione
>più stabile vorrebbe dire acquistare sql server standard o professional
>(tra l'altro ho visto che in effetti non costa molto la standard,
>mi sembra sui 350 euro).

Versione più stabile significa più aggiornata.
La stabilità non c'entra niente con le edizioni di SQL Server, il DBEngine della Express è identico a livello di codice con quello dei fratelli maggiori, cambiano solo le configurazioni a livello di RAM massima, dimensione massima del database, ecc.

Quindi se fossi in te scaricherei la CTP di Marzo 2006 di SQL Server 2005 Express Edition, che incorpora molti degli aggiornamenti che verranno rilasciati prossimamente con il Service Pack 1.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

escaflowne Profilo | Junior Member

bene, sto già stampando la documentazione per disinstallare sql express e per installarlo come si deve.
Questo fine settimana mi metto all'opera!

escaflowne Profilo | Junior Member


>Versione più stabile significa più aggiornata.
>La stabilità non c'entra niente con le edizioni di SQL Server,
>il DBEngine della Express è identico a livello di codice con
>quello dei fratelli maggiori, cambiano solo le configurazioni
>a livello di RAM massima, dimensione massima del database, ecc.
>
>Quindi se fossi in te scaricherei la CTP di Marzo 2006 di SQL
>Server 2005 Express Edition, che incorpora molti degli aggiornamenti
>che verranno rilasciati prossimamente con il Service Pack 1.
>
>Ciao!
>
>--

Eccomi qui. Ho disinstallato tutto e reinstallato il framework, sql express advance, bol ecc.
Bene, tutto è andato liscissimo, tranquillo, funziona tutto al primo colpo.
Il restore del db è andato alla perfezione e lanciando da cmd un qualsiasi comando sqlcmd non si pianta più.
Che dire, grazie per le dritte, adesso provo a schedulare il backup e continuo a chiedere al forum delucidazioni

Ah, ovviamente ho passato un bel pomeriggio a studiare la documentazione su come fare tutte queste cose
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5