Använd OSQL vid flera SQL Server installationer samt databaser
Förord
En gång i tiden hade jag som uppgift att hantera över 70 databaser på fler än ett dussintal Servers utan tillgång till något av de kostsamma tredjepartens verktyg som finns till för sådana saker, och jag blev ofta tillfrågad om hur jag klarade att hantera så många databaser. Det här är en kort artikel som visar hur använder OSQL kommandolinjeverktyget till SQL Server, för att exekvera upprepade uppgifter mot ett antal databaser, eller till att hantera många Servers. Kommandolinjeverktyget OSQL låter dig exekvera Transact-SQL uttryck, systemprocedurer, samt scriptfiler mot flertalet Servers och databaser genom att använda ODBC anslutningar till samma Servers och databaser. OSQL verktygets syntax låter dig specificera vilken Server, databas, login, lösenord, input fil, output fil samt formateringsfunktioner där du vill köra ditt SQL Script. Du kan lätt utföra upprepade SQL uppgifter med en eller ett par musklick genom att skapa en liten BAT-fil som innehåller all information om de Servers och databaser där du hanterar och skapar SQL Scripts.Innehåll
»»
»
»
Hantera flera SQL Server installationer och databaser med OSQL
av Randy Dyess
OSQL Syntax
OSQL
[-?] |
[-L] |
[
{
{-U login_id [-P password]}
| -E
}
[-S server_name[\instance_name]] [-H wksta_name] [-d db_name]
[-l time_out] [-t time_out] [-h headers]
[-s col_separator] [-w column_width] [-a packet_size]
[-e] [-I] [-D data_source_name]
[-c cmd_end] [-q "query"] [-Q "query"]
[-n] [-m error_level] [-r {0 | 1}]
[-i input_file] [-o output_file] [-p]
[-b] [-u] [-R] [-O]
]
OSQL parametrar
Sätt allt tillsamman
Användandet av OSQL kan göras hur funktionerbart som du själv vill, men jag tycker det räcker med att skapa två enkla filer som låter mig utföra de flesta uppgifter jag snabbt måste utföra mot ett flertal databaser.Det första du måste göra är att skapa en din/dina batchfil(er), baserat på den databasgruppering som du vill köra dina SQL-satser mot. Du kan, genom att använda en enkel texteditor, skapa en fil med dina parametrar för att sedan spara den som en .bat-fil. Du kan skapa denna batch-fil till att använda en textfil som inputfil, vilket gör att du slipper ändra alla parametrar varje gång du ska köra batch-processen. I följande exempel kan du se ett utdrag på det jag kan göra:
OSQL -Usa -Ppassword -Sserver1 -dDatabase1 -n
-iC:\OSQL_SCRIPTS\SQL_SCRIPTS\sqlscript.sql
-oC:\OSQL_SCRIPTS\OUTPUT\OSQLoutput_db1.txt
OSQL -Usa -Ppassword -Sserver2 -dDatabase2 -n
-iC:\OSQL_SCRIPTS\SQL_SCRIPTS\sqlscript.sql
-oC:\OSQL_SCRIPTS\OUTPUT\OSQLoutput_db2.txt
Vanligtvis skapar, och testar jag SQL-scriptet i Query Analyzer innan jag sparar scriptet som sqlscript.sql (egentligen har jag flera filer med olika namn till olika grupper av databaser).
När du sen exekverar .bat-filen så öppnar den OSQL, ansluter till var och en av de definierade Servrarna, exekverar ett USE uttryck för den definierade databasen samt exekverar det SQL-kommando som finns i SQL-scriptet och skapar en separat output-file till varje anslutning. Det kräver en del träning för att kunna formatera outputen till något läsbart, men jag använder oftast OSQL till att finna de data som jag vill komma åt för att sedan köra SQL-satsen i Query Analyzer. Efter det blir det lättare för mig att formatera mina data snabbt och enkelt.
0 Kommentarer