SelectEtoile : Base de connaissance SGBD

Posts Tagged 'size'

Astuces: Backup IQ

Commande Backup:

BACKUP DATABASE
backup-option… ]
TO archive_devicearchive-option... ]
… [ WITH COMMENT string ]

Taille d'un fichier de backup.

En utilisant l'archive-option "SIZE", il est possible de définir la taille d'un fichier de sauvegarde IQ (en ko) :

BACKUP DATABASE '/sybase/IQ/IQ_Catalog/Super_base.db'

TO  '/sybase/backup/Super_base_08-12-2010.bkiq' SIZE 41943040

Avec cette commande on obtient n fichier correspondant à la taille de la base divisé par 40 (go)

Sauvegarder sur plusieurs files system ou bandes

 Il suffit de spécifier plusieurs archive_device avec le paramètre TO:

BACKUP DATABASE '/sybase/IQ/IQ_Catalog/Super_base.db'

TO '/sybase/backup-1/Super_base-STRIPE-1_08-12-2010.bkiq'

TO  '/sybase/backup-2/Super_base-STRIPE-2_08-12-2010.bkiq'

Il est possible également de préciser pour chaque stripe une taille de fichier de sauvegarde:

BACKUP DATABASE '/sybase/IQ/IQ_Catalog/Super_base.db'

TO '/sybase/backup-1/Super_base-STRIPE-1_08-12-2010.bkiq' SIZE 41943040

TO  '/sybase/backup-2/Super_base-STRIPE-2_08-12-2010.bkiq' SIZE 41943040

Note:

La restauration d'une sauvegarde sur plusieurs volumes se fait tout simplement:

RESTORE DATABASE '/sybase/IQ/IQ_Catalog/Super_base.db'

FROM '/sybase/backup-1/Super_base-STRIPE-1_08-12-2010.bkiq'

FROM  '/sybase/backup-2/Super_base-STRIPE-2_08-12-2010.bkiq'

 

 

Espace utilisé par les bases sous SQLServer

use master
go

CREATE TABLE #DBInfo
( ServerName VARCHAR(100),  
DatabaseName VARCHAR(100),  
FileSizeMB INT,  
LogicalFileName sysname,  
PhysicalFileName NVARCHAR(520),  
Status sysname,  
Updateability sysname,  
RecoveryMode sysname,
GrowthMode VARCHAR(20),
Collation sysname,
SpaceUsedMB INT,  
FreeSpaceMB INT,  
FreeSpacePct VARCHAR(7),  
FreeSpacePages INT,  
PollDate datetime)  

DECLARE @command VARCHAR(5000)  

SELECT @command = 'Use [' + '?' + '] SELECT  
@@servername as ServerName,  
' + '''' + '?' + '''' + ' AS DatabaseName,  
CAST(sysfiles.size/128.0 AS int) AS FileSize,  
sysfiles.name AS LogicalFileName, sysfiles.filename AS PhysicalFileName,  
CONVERT(sysname,DatabasePropertyEx(''?'',''Status'')) AS Status,  
CONVERT(sysname,DatabasePropertyEx(''?'',''Updateability'')) AS Updateability,  
CONVERT(sysname,DatabasePropertyEx(''?'',''Recovery'')) AS RecoveryMode,
GrowthMode =
  CASE Growth
   WHEN ''0'' then ''DISABLED''
   ELSE ''ENABLED''
  END,
CONVERT(sysname,DatabasePropertyEx(''?'',''Collation'')) AS Collation,
CAST(FILEPROPERTY(sysfiles.name, ' + '''' +  
       'SpaceUsed' + '''' + ' )/128.0 AS int) AS SpaceUsedMB,  
CAST(sysfiles.size/128.0 - CAST(FILEPROPERTY(sysfiles.name, ' + '''' +  
       'SpaceUsed' + '''' + ' ) AS int)/128.0 AS int) AS FreeSpaceMB,  
CAST(100 * (CAST (((sysfiles.size/128.0 -CAST(FILEPROPERTY(sysfiles.name,  
' + '''' + 'SpaceUsed' + '''' + ' ) AS int)/128.0)/(sysfiles.size/128.0))  
AS decimal(4,2))) AS varchar(8)) + ' + '''' + '%' + '''' + ' AS FreeSpacePct,  
GETDATE() as PollDate FROM dbo.sysfiles'
 
INSERT INTO #DBInfo  
   (ServerName,  
   DatabaseName,  
   FileSizeMB,  
   LogicalFileName,  
   PhysicalFileName,  
   Status,  
   Updateability,  
   RecoveryMode,
   GrowthMode,
   Collation,  
   SpaceUsedMB,
   FreeSpaceMB,  
   FreeSpacePct,  
   PollDate)  

EXEC sp_MSForEachDB @command  

SELECT  
   ServerName,  
   DatabaseName,  
   FileSizeMB,  
   LogicalFileName,  
   PhysicalFileName,  
   Status,  
   Updateability,  
   RecoveryMode,
   GrowthMode,
   Collation,
   SpaceUsedMB,
   FreeSpaceMB,  
   FreeSpacePct,  
   PollDate  
FROM #DBInfo
ORDER BY  
   ServerName,  
   DatabaseName  
GO

DROP TABLE #DBInfo  
GO