Categoria: SQL

MySQL/MariaDB: batch per backup di tutti i database in file separati (Windows)

15 novembre 2018 di In: Script, Sistemistico, SQL

Il seguente batch permette di effettuare il backup di tutti i database presenti in un’installazione MySQL/MariaDB, comprimerli e salvare il file compresso in una cartella a piacere con un solo comando.
Ovviamente lo script può essere migliorato, ma questa è una buona base.

REM Trova la data
set currentdate=%DATE:~-2%%DATE:~3,2%%DATE:~0,2%_%TIME:~0,2%%TIME:~3,2%
 
REM Imposta cartella bin di MySQL
set mysqldir=C:\xampp\mysql\bin\
 
REM Imposta la cartella di backup temporanea - meglio se vuota
set mysqlbkpdir=C:\xampp\mysql\bin\backup\
 
REM Utente MySQL e relativa pass
set mysqluser=root
set mysqlpass=password
 
REM Percorso dell'applicazione di compressione - se non si utilizza RAR verificare la sintassi corretta per l'applicazione
set zipexe=C:\Program Files (x86)\WinRAR\Rar.exe
 
REM Percorso del file di output compresso
set rardestfolder=C:\Users\foo\Dropbox\
 
REM Estrae la lista dei database (escludendo quelli di sistema) ed esegue il dump
%mysqldir%mysql.exe -u %mysqluser% -p%mysqlpass% -s -N -e "SHOW DATABASES" | for /F "usebackq" %%D in (`findstr /V "information_schema performance_schema"`) do %mysqldir%mysqldump -u %mysqluser% -p%mysqlpass% %%D  > %mysqlbkpdir%%%D.sql
 
REM Comprime i file SQL estratti in un unico file RAR
"%zipexe%" a -r %rardestfolder%DBBackup%currentdate%.rar %mysqlbkpdir%*.sql
 
REM Cancella i file sql temporanei
del %mysqlbkpdir%*.sql

WSUS: Riparare Database Corrotto

1 settembre 2014 di In: Sistemistico, SQL

Per connettersi al database interno di WSUS:

sqlcmd -S \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query

Per tentare un primo ripristino:

ALTER DATABASE SUSDB SET SINGLE_USER WITH NO_WAIT
DBCC CHECKDB
go

Se il primo comando non sembra risolvere provate il comando seguente.
Il comando seguente farà perdere sicuramente dei dati al database

DBCC checkdb ('SUSDB', repair_allow_data_loss)
go

Per riportare il database in multi user

ALTER DATABASE SUSDB SET MULTI_USER WITH NO_WAIT
go

MySQL: Come contare i record per ogni tabella in un database

8 gennaio 2014 di In: Sistemistico, SQL
USE [DATABASE]
SELECT TABLE_NAME, TABLE_ROWS FROM `information_schema`.`tables` WHERE `table_schema` = '[DATABASE]';

SQL Server: Come contare i record per ogni tabella in un database

27 novembre 2013 di In: Sistemistico, SQL
USE [DATABASE];
SELECT sc.name +'.'+ ta.name TableName
 ,SUM(pa.rows) RowCnt
 FROM sys.tables ta
 INNER JOIN sys.partitions pa
 ON pa.OBJECT_ID = ta.OBJECT_ID
 INNER JOIN sys.schemas sc
 ON ta.schema_id = sc.schema_id
 WHERE ta.is_ms_shipped = 0 AND pa.index_id IN (1,0)
 GROUP BY sc.name,ta.name
 ORDER BY SUM(pa.rows) DESC

SQL – Clausola WHERE

7 agosto 2013 di In: Sistemistico, SQL

La clausola where permette di impostare delle condizioni sulla selezione che si intende fare.

La sintassi è:

SELECT [campi da visualizzare] FROM [tabella su cui fare la query] WHERE [condizione];

Per tutti le dimostrazioni utilizzeremo come tabella di esempio la seguente.

Tabella: SF_personaggi 
oppure
Query: SELECT * FROM SF_personaggi; 

  id   nome      naz   eta   mossa            
   1   Chun-li   CHI    26   Lightining Kick  
   2   Ryu       JAP    30   Hadoken          
   3   Ken       USA    29   Shoryuken        
   4   Balrog    USA    26   Dash Straight    
   5   Zangief   USR    38   Double Lariat    
   6   Blanka    BRA    20   Electric Thunder 
   7   Guile     USA    34   Sonic Boom

Query: SELECT * FROM SF_personaggi WHERE id > 4; 

  id   nome      naz   eta   mossa            
   5   Zangief   USR    38   Double Lariat    
   6   Blanka    BRA    20   Electric Thunder 
   7   Guile     USA    34   Sonic Boom

Query: SELECT * FROM SF_personaggi WHERE mossa LIKE 'D%'; 

  id   nome      naz   eta   mossa            
   4   Balrog    USA    26   Dash Straight    
   5   Zangief   USR    38   Double Lariat

Query: SELECT * FROM SF_personaggi WHERE id % 2 = 1; 

  id   nome      naz   eta   mossa            
   1   Chun-li   CHI    26   Lightining Kick  
   3   Ken       USA    29   Shoryuken        
   5   Zangief   USR    38   Double Lariat    
   7   Guile     USA    34   Sonic Boom

SQL – Select

7 agosto 2013 di In: Sistemistico, SQL

Il comando SELECT permette l’interrogazione dei dati contenuti in una tabella.

La sintassi è:

SELECT [campi da visualizzare] FROM [tabella su cui fare la query];

Per tutti le dimostrazioni utilizzeremo come tabella di esempio la seguente.

Tabella: SF_personaggi 
oppure
Query: SELECT * FROM SF_personaggi; 

  id   nome      naz   eta   mossa            
   1   Chun-li   CHI    26   Lightining Kick  
   2   Ryu       JAP    30   Hadoken          
   3   Ken       USA    29   Shoryuken        
   4   Balrog    USA    26   Dash Straight    
   5   Zangief   USR    38   Double Lariat    
   6   Blanka    BRA    20   Electric Thunder 
   7   Guile     USA    34   Sonic Boom

L’asterisco nell’esempio precedente equivale a dire “tutti i campi”. Nell’esempio successivo vedremo come effettuare una proiezione (selezione dei campi da visualizzare)

Query: SELECT nome, eta FROM SF_personaggi;

 nome      eta 
 Chun-li    26 
 Ryu        30 
 Ken        29 
 Balrog     26 
 Zangief    38 
 Blanka     20 
 Guile      34