MW211 EXIT

devlog
MSSQL/DBを別名でリストアする方法
2019年10月01日
基本的に、通常のリストアを同じように進める。(データベースの復元を実行)

その中で、以下の二つを行う。

(1) 「全般」にて、「転送先」の「データベース」の名称を直接入力して変更する
┌──────────────────────────────────────┐
│データベースの復元                                                          │
├──────┬───────────────────────────────┤
│■全般      │ソース────────────────────────────│
│□ファイル  │  ○データベース                                              │
│□オブション│  ●デバイス                                                  │
│            │                ┌─────────────────────┐│
│            │    データベース│旧DB                                      ││
│            │                └─────────────────────┘│
│            │転送先────────────────────────────│
│            │                ┌─────────────────────┐│
│            │    データベース│新DB                                      │★
│            │                └─────────────────────┘│

(2) 「ファイル」にて、
    「すべてのファイルをフォルダーに移動する」にチェックを入れる
┌──────────────────────────────────────┐
│データベースの復元                                                          │
├──────┬───────────────────────────────┤
│□全般      │次のデータベースファイルに復元────────────────│
│■ファイル  │  ■すべてのファイルをフォルダーに移動する                    ★
│□オブション│                                ┌─────────────┐│
│            │    データファイルのフォルダー  │                          ││
│            │                                └─────────────┘│
│            │                                ┌─────────────┐│
│            │    ログファイルのフォルダー    │                          ││
│            │                                └─────────────┘│
│            │┌───────┬ファイルの┬───────┬───────┐│
│            ││論理ファイル名│      種類│元のファイル名│復元先        ││
│            │├───────┼─────┼───────┼───────┤│
│            ││旧DB          │行データ  │…旧DB.mdf    │…新DB.mdf    ││
│            │├───────┼─────┼───────┼───────┤│
│            ││旧DB_log      │ログ      │…旧DB_log.ldf│…新DB_log.ldf││
│            │└───────┴─────┴───────┴───────┘│
この時点では物理ファイル(復元先)は新DBになるが、論理ファイル名は旧DBのまま。

(3) リストアを実行後、以下SQL文を実行し論理ファイル名を変更する
┌──────────────────────────────────────┐
│ALTER DATABASE [新DB] MODIFY FILE (NAME = 旧DB, NEWNAME = 新DB);            │
│ALTER DATABASE [新DB] MODIFY FILE (NAME = 旧DB_log, NEWNAME = 新DB_log);    │
└──────────────────────────────────────┘

これで完璧。
分類:MSSQL