次の方法で共有


Linux コンテナーに SQL Server データベースを復元する

適用対象:SQL Server - Linux

このチュートリアルでは、Docker 上で実行している SQL Server 2017 (14.x) の Linux コンテナー イメージに SQL Server のバックアップ ファイルを移動して、復元する方法について説明します。

このチュートリアルでは、Docker 上で実行している SQL Server 2019 (15.x) の Linux コンテナー イメージに SQL Server のバックアップ ファイルを移動して、復元する方法について説明します。

このチュートリアルでは、Docker 上で実行している SQL Server 2022 (16.x) の Linux コンテナー イメージに SQL Server のバックアップ ファイルを移動して、復元する方法について説明します。

  • 最新の SQL Server Linux コンテナー イメージをプルして実行する。
  • Wide World Importers のデータベース ファイルをコンテナーにコピーする。
  • コンテナーにデータベースを復元する。
  • Transact-SQL ステートメントを実行してデータベースの表示と変更を行う。
  • 変更したデータベースをバックアップする。

前提条件

配置オプション

このセクションでは、環境のデプロイ オプションについて説明します。

sqlcmd は現在、コンテナーの作成時に MSSQL_PID パラメーターをサポートしていません。 このチュートリアルの sqlcmdの手順を使用する場合は、SQL Server の Developer エディションでコンテナーを作成します。 コマンド ライン インターフェイス (CLI) の手順を使用して、任意のライセンスを使用してコンテナーを作成します。 詳細については、「SQL Server Linux コンテナーの配置と接続」を参照してください。

コンテナー イメージをプルして実行する

  1. Linux で Bash ターミナルを開きます。

  2. Microsoft Container Registry から SQL Server 2017 (14.x) Linux コンテナー イメージをプルします。

    sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
    
  3. Docker を使ってコンテナー イメージを実行するには、次のコマンドを使います。

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
       --name 'sql1' -p 1401:1433 \
       -v sql1data:/var/opt/mssql \
       -d mcr.microsoft.com/mssql/server:2017-latest
    

    注意事項

    パスワードは SQL Server の既定のパスワード ポリシーに従う必要があります。 既定では、パスワードの長さは少なくとも 8 文字で、大文字、小文字、10 進数の数字、記号の 4 種類のうち 3 種類を含んでいる必要があります。 パスワードには最大 128 文字まで使用できます。 パスワードはできるだけ長く、複雑にします。

    このコマンドにより、Developer エディションの SQL Server 2017 (14.x) コンテナー (規定値) が作成されます。 SQL Server のポート 1433 は、ホスト上ではポート 1401 として公開されています。 省略可能な -v sql1data:/var/opt/mssql パラメーターを使うと、sql1data という名前のデータ ボリューム コンテナーが作成されます。 これは、SQL Server によって作成されたデータを永続化するために使われます。

    重要

    この例では、Docker 内のデータ ボリューム コンテナーが使用されます。 詳細については、「Docker で SQL Server コンテナーイメージを構成する」を参照してください。

  4. コンテナーを表示するには、docker ps コマンドを使います。

    sudo docker ps -a
    
  5. STATUS 列に Up の状態が表示されている場合、SQL Server はコンテナーで実行されており、 PORTS 列に指定されたポートでリッスンしています。 SQL Server コンテナーの STATUS 列に Exited と表示されている場合、「SQL Server Docker コンテナーのトラブルシューティングを行う」を参照してください。

$ sudo docker ps -a

CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
941e1bdf8e1d        mcr.microsoft.com/mssql/server/mssql-server-linux   "/bin/sh -c /opt/m..."   About an hour ago   Up About an hour    0.0.0.0:1401->1433/tcp   sql1
  1. Linux で Bash ターミナルを開きます。

  2. Microsoft Container Registry から SQL Server 2019 (15.x) Linux コンテナー イメージをプルします。

    sudo docker pull mcr.microsoft.com/mssql/server:2019-latest
    
  3. Docker を使ってコンテナー イメージを実行するには、次のコマンドを使います。

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
       --name 'sql1' -p 1401:1433 \
       -v sql1data:/var/opt/mssql \
       -d mcr.microsoft.com/mssql/server:2019-latest
    

    注意事項

    パスワードは SQL Server の既定のパスワード ポリシーに従う必要があります。 既定では、パスワードの長さは少なくとも 8 文字で、大文字、小文字、10 進数の数字、記号の 4 種類のうち 3 種類を含んでいる必要があります。 パスワードには最大 128 文字まで使用できます。 パスワードはできるだけ長く、複雑にします。

    このコマンドにより、Developer エディションの SQL Server 2019 (15.x) コンテナー (規定値) が作成されます。 SQL Server のポート 1433 は、ホスト上ではポート 1401 として公開されています。 省略可能な -v sql1data:/var/opt/mssql パラメーターを使うと、sql1data という名前のデータ ボリューム コンテナーが作成されます。 これは、SQL Server によって作成されたデータを永続化するために使われます。

    重要

    この例では、Docker 内のデータ ボリューム コンテナーが使用されます。 詳細については、「Docker で SQL Server コンテナーイメージを構成する」を参照してください。

  4. コンテナーを表示するには、docker ps コマンドを使います。

    sudo docker ps -a
    
  5. STATUS 列に Up の状態が表示されている場合、SQL Server はコンテナーで実行されており、 PORTS 列に指定されたポートでリッスンしています。 SQL Server コンテナーの STATUS 列に Exited と表示されている場合、「SQL Server Docker コンテナーのトラブルシューティングを行う」を参照してください。

    $ sudo docker ps -a
    
    CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
    941e1bdf8e1d        mcr.microsoft.com/mssql/server/mssql-server-linux   "/bin/sh -c /opt/m..."   About an hour ago   Up About an hour    0.0.0.0:1401->1433/tcp   sql1
    
  1. Linux で Bash ターミナルを開きます。

  2. Microsoft Container Registry から SQL Server 2022 (16.x) Linux コンテナー イメージをプルします。

    sudo docker pull mcr.microsoft.com/mssql/server:2022-latest
    
  3. Docker を使ってコンテナー イメージを実行するには、次のコマンドを使います。

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
       --name 'sql1' -p 1401:1433 \
       -v sql1data:/var/opt/mssql \
       -d mcr.microsoft.com/mssql/server:2022-latest
    

    注意事項

    パスワードは SQL Server の既定のパスワード ポリシーに従う必要があります。 既定では、パスワードの長さは少なくとも 8 文字で、大文字、小文字、10 進数の数字、記号の 4 種類のうち 3 種類を含んでいる必要があります。 パスワードには最大 128 文字まで使用できます。 パスワードはできるだけ長く、複雑にします。

    このコマンドにより、Developer エディションの SQL Server 2022 (16.x) コンテナー (規定値) が作成されます。 SQL Server のポート 1433 は、ホスト上ではポート 1401 として公開されています。 省略可能な -v sql1data:/var/opt/mssql パラメーターを使うと、sql1data という名前のデータ ボリューム コンテナーが作成されます。 これは、SQL Server によって作成されたデータを永続化するために使われます。

    重要

    この例では、Docker 内のデータ ボリューム コンテナーが使用されます。 詳細については、「Docker で SQL Server コンテナーイメージを構成する」を参照してください。

  4. コンテナーを表示するには、docker ps コマンドを使います。

    sudo docker ps -a
    
  5. STATUS 列に Up の状態が表示されている場合、SQL Server はコンテナーで実行されており、 PORTS 列に指定されたポートでリッスンしています。 SQL Server コンテナーの STATUS 列に Exited と表示されている場合、「SQL Server Docker コンテナーのトラブルシューティングを行う」を参照してください。

    $ sudo docker ps -a
    
    CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                    NAMES
    941e1bdf8e1d        mcr.microsoft.com/mssql/server/mssql-server-linux   "/bin/sh -c /opt/m..."   About an hour ago   Up About an hour    0.0.0.0:1401->1433/tcp   sql1
    

システム管理者 (SA) のパスワードを変更する

sa アカウントは、セットアップ時に作成される SQL Server インスタンスのシステム管理者です。 SQL Server のコンテナーを作成した後、そのコンテナーで MSSQL_SA_PASSWORD を実行すると、指定した環境変数 echo $MSSQL_SA_PASSWORD が検索できるようになります。 セキュリティのため、sa パスワードを変更してください。

  1. sa アカウントに使用する強力なパスワードを選びます。 パスワードは SQL Server の既定のパスワード ポリシーに従う必要があります。 既定では、パスワードの長さは少なくとも 8 文字で、大文字、小文字、10 進数の数字、記号の 4 種類のうち 3 種類を含んでいる必要があります。 パスワードには最大 128 文字まで使用できます。 パスワードはできるだけ長く、複雑にします。

  2. Transact-SQL ステートメントを使用してパスワードを変更するには、docker exec を使用して sqlcmd ユーティリティを実行します。 <old-password><new-password> は、実際のパスワードの値に置き換えます。

    重要

    SA_PASSWORD 環境変数は非推奨です。 代わりに MSSQL_SA_PASSWORD を使用してください

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U sa -P '<old-password>' \
       -Q 'ALTER LOGIN sa WITH PASSWORD="<new-password>"'
    
    docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd `
       -S localhost -U sa -P "<old-password>" `
       -Q "ALTER LOGIN sa WITH PASSWORD='<new-password>'"
    

バックアップ ファイルをコンテナーにコピーする

このチュートリアルでは、Microsoft SQL 用の Wide World Importers のサンプル データベースを使います。 以下の手順に従って、Wide World Importers のデータベース バックアップ ファイルをダウンロードし、お使いの SQL Server コンテナーにコピーします。

  1. まず、docker exec を使ってバックアップ フォルダーを作成します。 次のコマンドを実行すると、SQL Server コンテナー内に /var/opt/mssql/backup ディレクトリが作成されます。

    sudo docker exec -it sql1 mkdir /var/opt/mssql/backup
    
  2. 次に、ホスト コンピューターに WideWorldImporters-Full.bak ファイルをダウンロードします。 次のコマンドでは、home/user ディレクトリに移動し、バックアップ ファイルを wwi.bak としてダウンロードします。

    cd ~
    curl -L -o wwi.bak 'https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Full.bak'
    
  3. docker cp を使って、/var/opt/mssql/backup ディレクトリ内のコンテナーにバックアップ ファイルをコピーします。

    sudo docker cp wwi.bak sql1:/var/opt/mssql/backup
    

データベースを復元する

これで、コンテナー内にバックアップ ファイルが配置されました。 バックアップを復元する前に、バックアップ内の論理ファイル名とファイルの種類を把握しておくことが重要です。 以下の Transact-SQL コマンドでは、バックアップを検査し、コンテナーで sqlcmd を使って復元を実行します。

ヒント

このチュートリアルでは、コンテナー内 sqlcmd を使用します。これは、コンテナーにこのツールがプレインストールされているためです。 ただし、 Visual Studio Code の SQL Server 拡張機能 または Linux 上の SQL Server を管理するために Windows 上で SQL Server Management Studioなど、コンテナーの外部にある他のクライアント ツールを使って Transact-SQL ステートメントを実行することもできます。 接続するには、コンテナーのポート 1433 にマップされたホストのポートを使います。 この例では、ホストとポートがホストマシンでは localhost,1401 、リモートでは Host_IP_Address,1401 に設定されています。

  1. コンテナー内で sqlcmd を実行し、バックアップ内の論理ファイル名とパスを一覧表示します。 これを行うには、Transact-SQL ステートメントの RESTORE FILELISTONLY を使います。

    sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd -S localhost \
       -U sa -P '<new-password>' \
       -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/wwi.bak"' \
       | tr -s ' ' | cut -d ' ' -f 1-2
    

    結果は次の出力のようになります。

    LogicalName   PhysicalName
    ------------------------------------------
    WWI_Primary   D:\Data\WideWorldImporters.mdf
    WWI_UserData   D:\Data\WideWorldImporters_UserData.ndf
    WWI_Log   E:\Log\WideWorldImporters.ldf
    WWI_InMemory_Data_1   D:\Data\WideWorldImporters_InMemory_Data_1
    
  2. RESTORE DATABASE コマンドを呼び出し、コンテナー内でデータベースを復元します。 前の手順のファイルごとに、新しいパスを指定します。

    sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q 'RESTORE DATABASE WideWorldImporters FROM DISK = "/var/opt/mssql/backup/wwi.bak" WITH MOVE "WWI_Primary" TO "/var/opt/mssql/data/WideWorldImporters.mdf", MOVE "WWI_UserData" TO "/var/opt/mssql/data/WideWorldImporters_userdata.ndf", MOVE "WWI_Log" TO "/var/opt/mssql/data/WideWorldImporters.ldf", MOVE "WWI_InMemory_Data_1" TO "/var/opt/mssql/data/WideWorldImporters_InMemory_Data_1"'
    

    結果は次の出力のようになります。

    Processed 1464 pages for database 'WideWorldImporters', file 'WWI_Primary' on file 1.
    Processed 53096 pages for database 'WideWorldImporters', file 'WWI_UserData' on file 1.
    Processed 33 pages for database 'WideWorldImporters', file 'WWI_Log' on file 1.
    Processed 3862 pages for database 'WideWorldImporters', file 'WWI_InMemory_Data_1' on file 1.
    Converting database 'WideWorldImporters' from version 852 to the current version 869.
    Database 'WideWorldImporters' running the upgrade step from version 852 to version 853.
    Database 'WideWorldImporters' running the upgrade step from version 853 to version 854.
    Database 'WideWorldImporters' running the upgrade step from version 854 to version 855.
    Database 'WideWorldImporters' running the upgrade step from version 855 to version 856.
    Database 'WideWorldImporters' running the upgrade step from version 856 to version 857.
    Database 'WideWorldImporters' running the upgrade step from version 857 to version 858.
    Database 'WideWorldImporters' running the upgrade step from version 858 to version 859.
    Database 'WideWorldImporters' running the upgrade step from version 859 to version 860.
    Database 'WideWorldImporters' running the upgrade step from version 860 to version 861.
    Database 'WideWorldImporters' running the upgrade step from version 861 to version 862.
    Database 'WideWorldImporters' running the upgrade step from version 862 to version 863.
    Database 'WideWorldImporters' running the upgrade step from version 863 to version 864.
    Database 'WideWorldImporters' running the upgrade step from version 864 to version 865.
    Database 'WideWorldImporters' running the upgrade step from version 865 to version 866.
    Database 'WideWorldImporters' running the upgrade step from version 866 to version 867.
    Database 'WideWorldImporters' running the upgrade step from version 867 to version 868.
    Database 'WideWorldImporters' running the upgrade step from version 868 to version 869.
    RESTORE DATABASE successfully processed 58455 pages in 18.069 seconds (25.273 MB/sec).
    

復元されたデータベースを確認する

次のクエリを実行して、コンテナー内のデータベース名の一覧を表示します。

sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \
   -S localhost -U sa -P '<new-password>' \
   -Q 'SELECT name FROM sys.databases'

データベースのリストに WideWorldImporters のデータの一覧が表示されます。

変更を加える

データベースを変更するには、次の手順に従います。

  1. クエリを実行して、Warehouse.StockItems テーブルの上位 10 項目を表示します。

    sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q 'SELECT TOP 10 StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems ORDER BY StockItemID'
    

    項目の識別子と名前の一覧が表示されます。

    StockItemID StockItemName
    ----------- -----------------
              1 USB missile launcher (Green)
              2 USB rocket launcher (Gray)
              3 Office cube periscope (Black)
              4 USB food flash drive - sushi roll
              5 USB food flash drive - hamburger
              6 USB food flash drive - hot dog
              7 USB food flash drive - pizza slice
              8 USB food flash drive - dim sum 10 drive variety pack
              9 USB food flash drive - banana
             10 USB food flash drive - chocolate bar
    
  2. 次の UPDATE ステートメントを使用して、最初の項目の説明を更新します。

    sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q 'UPDATE WideWorldImporters.Warehouse.StockItems SET StockItemName="USB missile launcher (Dark Green)" WHERE StockItemID=1; SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'
    

    次のテキストのような出力が表示されます。

    (1 rows affected)
    StockItemID StockItemName
    ----------- ------------------------------------
              1 USB missile launcher (Dark Green)
    

新しいバックアップの作成

データベースをコンテナーに復元した後、実行中のコンテナー内にデータベース バックアップを定期的に作成することもできます。 その手順は以前の手順のパターンと似ていますが、向きが逆になります。

  1. Transact-SQL コマンド BACKUP DATABASE を使って、コンテナー内にデータベースのバックアップを作成します。 このチュートリアルでは、以前に作成した wwi_2.bak ディレクトリに、新しいバックアップ ファイル /var/opt/mssql/backup を作成します。

    sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q "BACKUP DATABASE [WideWorldImporters] TO DISK = N'/var/opt/mssql/backup/wwi_2.bak' WITH NOFORMAT, NOINIT, NAME = 'WideWorldImporters-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
    

    結果は次の出力のようになります。

    10 percent processed.
    20 percent processed.
    30 percent processed.
    40 percent processed.
    50 percent processed.
    60 percent processed.
    70 percent processed.
    Processed 1200 pages for database 'WideWorldImporters', file 'WWI_Primary' on file 1.
    Processed 53096 pages for database 'WideWorldImporters', file 'WWI_UserData' on file 1.
    80 percent processed.
    Processed 3865 pages for database 'WideWorldImporters', file 'WWI_InMemory_Data_1' on file 1.
    Processed 938 pages for database 'WideWorldImporters', file 'WWI_Log' on file 1.
    100 percent processed.
    BACKUP DATABASE successfully processed 59099 pages in 25.056 seconds (18.427 MB/sec).
    
  2. 次に、そのバックアップ ファイルを、コンテナーからホスト コンピューター上にコピーします。

    cd ~
    sudo docker cp sql1:/var/opt/mssql/backup/wwi_2.bak wwi_2.bak
    ls -l wwi*
    

永続化されたデータの使用

データを保護するためにデータベースのバックアップを作成するだけでなく、データ ボリューム コンテナーを使用することもできます。 このチュートリアルの冒頭では、sql1 パラメーターを指定して -v sql1data:/var/opt/mssql コンテナーを作成しました。 sql1data データ ボリューム コンテナーによって /var/opt/mssql のデータが永続化され、コンテナーが削除された後でも保持されます。 以下の手順では、sql1 コンテナーを完全に削除した後、永続化されたデータを含む新しいコンテナー sql2 を作成します。

  1. sql1 コンテナーの停止

    sudo docker stop sql1
    
  2. コンテナーを削除します。 これによって、以前に作成した sql1data データ ボリューム コンテナーと、その中に永続化されているデータが削除されることはありません。

    sudo docker rm sql1
    
  3. 新しいコンテナー sql2 を作成し、sql1data データ ボリューム コンテナーを再利用します。

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
       --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \
       -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
    
  4. これで Wide World Importers のデータベースが新しいコンテナーに追加されました。 クエリを実行して、以前に加えた変更を確認します。

    sudo docker exec -it sql2 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'
    

    sa パスワードは、sql2 コンテナー MSSQL_SA_PASSWORD=<password> に指定したパスワード ではありません。 SQL Server のデータは、チュートリアルの前半で変更したパスワードを含め、すべて sql1 から復元されました。 実際には、このような一部のオプションは、/var/opt/mssql にデータを復元することが原因で無視されます。 このため、パスワードはここに示されているように <new-password> となります。

  1. sql1 コンテナーの停止

    sudo docker stop sql1
    
  2. コンテナーを削除します。 これによって、以前に作成した sql1data データ ボリューム コンテナーと、その中に永続化されているデータが削除されることはありません。

    sudo docker rm sql1
    
  3. 新しいコンテナー sql2 を作成し、sql1data データ ボリューム コンテナーを再利用します。

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
       --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \
       -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
    
  4. これで Wide World Importers のデータベースが新しいコンテナーに追加されました。 クエリを実行して、以前に加えた変更を確認します。

    sudo docker exec -it sql2 /opt/mssql-tools18/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'
    

    sa パスワードは、sql2 コンテナー MSSQL_SA_PASSWORD=<password> に指定したパスワード ではありません。 SQL Server のデータは、チュートリアルの前半で変更したパスワードを含め、すべて sql1 から復元されました。 実際には、このような一部のオプションは、/var/opt/mssql にデータを復元することが原因で無視されます。 このため、パスワードはここに示されているように <new-password> となります。

  1. sql1 コンテナーの停止

    sudo docker stop sql1
    
  2. コンテナーを削除します。 これによって、以前に作成した sql1data データ ボリューム コンテナーと、その中に永続化されているデータが削除されることはありません。

    sudo docker rm sql1
    
  3. 新しいコンテナー sql2 を作成し、sql1data データ ボリューム コンテナーを再利用します。

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
       --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \
       -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest
    
  4. これで Wide World Importers のデータベースが新しいコンテナーに追加されました。 クエリを実行して、以前に加えた変更を確認します。

    sudo docker exec -it sql2 /opt/mssql-tools18/bin/sqlcmd \
       -S localhost -U sa -P '<new-password>' \
       -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'
    

    sa パスワードは、sql2 コンテナー MSSQL_SA_PASSWORD=<password> に指定したパスワード ではありません。 SQL Server のデータは、チュートリアルの前半で変更したパスワードを含め、すべて sql1 から復元されました。 実際には、このような一部のオプションは、/var/opt/mssql にデータを復元することが原因で無視されます。 このため、パスワードはここに示されているように <new-password> となります。

注意事項

パスワードは SQL Server の既定のパスワード ポリシーに従う必要があります。 既定では、パスワードの長さは少なくとも 8 文字で、大文字、小文字、10 進数の数字、記号の 4 種類のうち 3 種類を含んでいる必要があります。 パスワードには最大 128 文字まで使用できます。 パスワードはできるだけ長く、複雑にします。

次のステップ

このチュートリアルでは、Windows でデータベースをバックアップし、コンテナー内の SQL Server 2017 (14.x) を実行している Linux サーバーにそれを移動する方法について学習しました。 以下の方法を学習しました。

このチュートリアルでは、Windows でデータベースをバックアップし、コンテナー内の SQL Server 2019 (15.x) を実行している Linux サーバーにそれを移動する方法について学習しました。 以下の方法を学習しました。

このチュートリアルでは、Windows でデータベースをバックアップし、コンテナー内の Server 2022 (16.x) を実行している Linux サーバーにそれを移動する方法について学習しました。 以下の方法を学習しました。

  • SQL Server の Linux コンテナー イメージを作成する。
  • SQL Server データベースのバックアップをコンテナーにコピーする。
  • sqlcmd を使ってコンテナー内で Transact-SQL ステートメントを実行します。
  • コンテナーからバックアップ ファイルを作成して抽出する。
  • データ ボリューム コンテナーを使って SQL Server データを永続化する。

次に、コンテナーのその他の構成とトラブルシューティングのシナリオを確認します。

SQL ドキュメントへの投稿

SQL コンテンツを自分で編集できることはご存じですか。 これにより、ドキュメントが改善されるだけでなく、ページの共同作成者としてもクレジットされます。

詳細については、「SQL Server のドキュメントに投稿する方法」を参照してください。