163 lines
3.0 KiB
Markdown
163 lines
3.0 KiB
Markdown
![]() |
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
|