4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SSMSを使わずにデータベースのバックアップと復元を行う

Last updated at Posted at 2019-05-28

SSMSを使ってウィザードを開き、ポチポチとしてバックアップを取ったり復元したりするのが面倒なので、クエリを書いてバックアップと復元を行う。

今回は、SQL Server 2016での動作です。

データベースをバックアップ


USE master
GO

BACKUP DATABASE データベース名
    TO DISK = 'バックアップする場所\名前.bak'
  WITH INIT
     , COMPRESSION

タイムスタンプも付けてもう少し楽に流せるようにする。

DECLARE
      @WK_NOW     datetime
	, @WK_PATH    varchar(max)
	, @WK_NAME    varchar(max)

BEGIN
    
	SET @WK_NOW  = GETDATE()
	SET @WK_NAME = 'データベース名'
	SET @WK_PATH = 'D:\BACKUP\' + @WK_NAME + '_' + CONVERT(varchar, @WK_NOW, 112) + REPLACE(CONVERT(varchar, @WK_NOW, 114), ':', '') + '.BAK' 

    BACKUP DATABASE データベース名
        TO DISK = @WK_PATH
      WITH INIT
         , COMPRESSION
    
END

論理名(LogicalName)の確認


RESTORE FILELISTONLY
FROM DISK='場所/名前.bak'
GO

データベースの復元


RESTORE DATABASE データベース名
FROM DISK = '場所\名前.bak'
WITH MOVE 'MDFの論理名' TO '場所/名前.MDF'
	,MOVE 'LDFの論理名' TO '場所/名前.LDF'

論理名(LogicalName)を間違えると


メッセージ 3234、レベル 16、状態 2、行 16
論理ファイル '△△△' はデータベース '○○○○' の一部ではありません。RESTORE FILELISTONLY を使用して、論理ファイル名を表示してください。
メッセージ 3013、レベル 16、状態 1、行 16
RESTORE DATABASE が異常終了しています。

上記のようなエラーがでます。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?