Google Website Translator Gadget

Mostrando entradas con la etiqueta BAT. Mostrar todas las entradas
Mostrando entradas con la etiqueta BAT. Mostrar todas las entradas

viernes, 20 de diciembre de 2013

Aturar serveis SQLServer amb Scripts per fer BackUp a xarxa.

Aturar serveis SQLServer

En molts casos les aplicacions petites no tenen previst cap mena de sistema de BackUp i cal improvisar algun. Vet aquí uns passos que poden ser útils per a aquesta feina, segons a quin nivell vulguis arribar:



  1. Aturar serveis SQLServer manualment + còpia
  2. Aturar serveis des de script sense forçar el Administrador
  3. Fer la còpia a xarxa

Aturar serveis SQLServer + còpia

A priori aquesta es una part força simple i facil de realitzar. Normalment es pot aturar un servei amb la instrucció net stop servei
Opció (Windows 7)
Interactiu (si ets administrador)
Ho pots fer directment amb l'opció Administrar i el botó d'aturar el servei

Batch Interactiu(Malgrat ser administrador)
Per a fer-ho amb línia de comandes, cal executar forçar l'execució com administrador (Run As- Executa'l com a Adminsitrador)
NET STOP MSSQL$SQLEXPRESS
NET STOP SQLWriter

Ja pots fer la còpia de les carpetes de dades

Aturar serveis des de script sense forçar el Administrador

Per a fer-ho, cal un truc, un accés directe indicant que cal executar-ho com a Administrador.
Pas
Crear un batch amb les instruccionsNET STOP MSSQL$SQLEXPRESS
NET STOP SQLWriter
Crear accés directe i modificar-lo per marcar el flag d'Administrador


Fer la còpia a xarxa

Quan un script s'executa en el context del Administrador, no hi han les connexions a la xarxa que té el usuari normal.
Com aconseguir fer la còpia a la xraxa, doncs?
L'única manera que he trobat es partir-ho en 2 pasos que executarà el usuari:
Pas
Afegir al batch d'aturada de SQLServer els passos de còpia localset v_origen=C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data
set v_desti=C:\TEMP\MSSQL\Data
ROBOCOPY "%V_ORIGEN%" "%v_desti%" /S /TEE /NC /NS /NJH /NJS /NP /XX /XJ /R:0
Crear accés directe i modificar-lo per marcar el flag d'AdministradorVist en el pas anterior.
Crear un 2on Batch que faci la còpia a xarxa. En aquest no cal permisos d'Administradorset v_origen=C:\TEMP\MSSQL\Data
set v_desti=Y:\BackUp\SQLDATA
ROBOCOPY "%V_ORIGEN%" "%v_desti%" /S /TEE /NC /NS /NJH /NJS /NP /XX /XJ /R:0






martes, 9 de abril de 2013

MS-DOS Batch: Assignar valor per defecte a SET /P

http://www.microsoft.com - cmd.exe
El popular BAT continua existint, malgrat l'aparició del nou PowerShell i el volum de scripts existents es inacabable.


Entre altres "innovacions" existeix la opció de demanar paràmetres de manera interactiva amb la instrucció SET /P.

Com podem assignar paràmetres per defecte en un BAT?

Si fem una mica de "goggling" la majoria de entrades et remeten a "choice.exe" però que passa si NO POTS UTILITZAR CHOICE.EXE?

Una opció utilitzar els IF ... GOTO per a decidir quina opció es la correcte per defecte. Veiem un exemple:

@echo off
echo.
SET /P v_Grups=List groups [Y(Default)/N]   :
echo.
if "%v_Grups%"=="" GOTO ASIGNAR_DEF1
GOTO EXECUTAR
:ASIGNAR_DEF1
SET v_Grups=Y
:EXECUTAR
program.exe %v_Grups%


Espero que us faci servei!!!