はじめに
- Docker 上で SqlServer を立ててそこにリストアする手順
環境
- macOS BigSur
前提
- Docker for Mac インストール済み
- ldf ファイルを持っている(sample_log.ldf)
- mdf ファイルを持っている(sample.mdf)
手順
SqlServerを立てる
-
コンテナー イメージをプルして実行する
sudo docker pull mcr.microsoft.com/mssql/server:2019-latest
-
コンテナー イメージの実行
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' \ --name 'sql1' -p 1401:1433 \ -v sql1data:/var/opt/mssql \ -d mcr.microsoft.com/mssql/server:2019-latest
-
docker ps -a
で起動が確認できれば OK
-
データベースを復元する
-
バックアップ ファイルをコンテナーにコピーする
- バックアップファイルが置いてあるディレクトリに移動
docker exec -it sql1 mkdir /var/opt/mssql/backup docker cp RH25_JP.mdf sql1:/var/opt/mssql/backup docker cp RH25_JP_log.ldf sql1:/var/opt/mssql/backup
-
SQL を発行する
- DBに入る
docker exec -it sql1 bash /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourStrong!Passw0rd>"
- SQL発行
1> CREATE DATABASE MyDatabase3 ON (FILENAME='/var/opt/mssql/backup/RH25_JP.mdf'),(FILENAME='/var/opt/mssql/backup/RH25_JP_log.ldf') FOR ATTACH 2> go 1>
復元した DB を確認
- DBeaver などの DB ツールで接続する
- ユーザ名:
SA
- パスワード:
<YourStrong!Passw0rd>
- address:
localhost
- port:
1401