MyFirstBrain/Kunden/KT/Alte Daten/Kanzlei-Tews/04_SQL Restore.md
2024-06-26 12:35:11 +02:00

163 lines
3.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

SQL Restore
Montag, 12. Dezember 2011
19:42
 
\<a href=\'http://www.omniture.com\' title=\'Web Analytics\'\>\<img src=\'http://mssto.112.2o7.net/b/ss/msstoextblogsnojs/1/H.20.2\--NS/0\' height=\'1\' width=\'1\' border=\'0\' alt=\'\' /\>\</a\>
**::SET VARIABLES**
set DBNAME=NAMEOFDATABASEBEINGRESTORED
set DBDIRECTORY=C:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data
 
TITLE Restoring %DBNAME% Database
 
**::PUT DATABASE IN SINGLE USER MODE TO ALLOW RESTORE**
osql -E -d master -Q \"alter database %DBNAME% set single_user with rollback immediate\"
 
**::RESTORE DATABASE**
osql -E -d master -Q \"restore database %DBNAME% from disk=\'%\~dp0\\%DBNAME%.bak\' WITH MOVE \'%DBNAME%\_Data\' TO \'%DBDIRECTORY%\\%DBNAME%\_Data.MDF\', MOVE \'%DBNAME%\_Log\' TO \'%DBDIRECTORY%\\%DBNAME%\_Log.LDF\'\"
 
**::GRANT PERMISSION TO ASPNET USER**
osql -E -d %DBNAME% -Q \"sp_grantdbaccess \'%COMPUTERNAME%\\ASPNET\'\"
osql -E -d %DBNAME% -Q \"sp_addrolemember \'db_owner\', \'%COMPUTERNAME%\\ASPNET\'\"
 
**::RESTORE TO MULTI USER**
osql -E -d master -Q \"alter database %DBNAME% set multi_user\"
 
pause
 
Eingefügt aus \<<http://weblogs.asp.net/jgalloway/archive/2005/12/02/432088.aspx>\>
 
 
 
 
 
 
2. Möglichkeit :
> Batchdatei
>
> sqlcmd -S .\\SQLEXPRESS -i attachDB.sql -v database=\"%1\" -v root=\"%CD%\"
>
>  
>
> Eingefügt aus \<<http://blog.lavablast.com/post/2008/10/14/SQL-Server-Restore-a-bak-to-a-database-in-command-line.aspx>\>
>
>  
>
>  
>
> attachDB.sql
>
>  
>
> USE MASTER
>
> GO
>
> IF EXISTS (SELECT \* FROM sys.objects WHERE object_id = OBJECT_ID(N\'\[dbo\].\[\$(database)\]\') AND type in (N\'U\'))
>
> ALTER DATABASE \$(database) SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
>
> create table #backupInformation (LogicalName varchar(100),
>
> PhysicalName varchar(100),
>
> Type varchar(1),
>
> FileGroupName varchar(50) ,
>
> Size bigint ,
>
> MaxSize bigint,
>
> FileId int,
>
> CreateLSN int,
>
> DropLSN int,
>
> UniqueId uniqueidentifier,
>
> ReadOnlyLSN int,
>
> ReadWriteLSN int,
>
> BackupSizeInBytes int,
>
> SourceBlockSize int,
>
> FileGroupId int,
>
> LogGroupGUID uniqueidentifier,
>
> DifferentialBaseLSN bigint,
>
> DifferentialBaseGUID uniqueidentifier,
>
> IsReadOnly bit, IsPresent bit )
>
> insert into #backupInformation exec(\'restore filelistonly from disk = \'\'\$(root)\\\$(database).bak\'\'\')
>
> DECLARE \@logicalNameD varchar(255);
>
> DECLARE \@logicalNameL varchar(255);
>
> select top 1 \@logicalNameD = LogicalName from #backupInformation where Type = \'D\';
>
> select top 1 \@logicalNameL = LogicalName from #backupInformation where Type = \'L\';
>
> DROP TABLE #backupInformation
>
> RESTORE DATABASE \$(database)
>
> FROM DISK = \'\$(root)\\\$(database).bak\'
>
> WITH REPLACE,
>
> MOVE \@logicalNameD TO \'C:\\Program Files (x86)\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Data\\\$(database).mdf\',
>
> MOVE \@logicalNameL TO \'C:\\Program Files (x86)\\Microsoft SQL Server\\MSSQL.1\\MSSQL\\Data\\\$(database).ldf\'
>
> GO
>
>  
>
>  
>
>  
#nochzubearbeiten