Bagikan melalui


Memulihkan database SQL Server dalam kontainer Linux

Berlaku untuk: SQL Server - Linux

Tutorial ini menunjukkan cara memindahkan dan memulihkan file cadangan SQL Server ke dalam gambar kontainer Linux SQL Server 2017 (14.x) yang berjalan di Docker.

Tutorial ini menunjukkan cara memindahkan dan memulihkan file cadangan SQL Server ke dalam gambar kontainer Linux SQL Server 2019 (15.x) yang berjalan di Docker.

Tutorial ini menunjukkan cara memindahkan dan memulihkan file cadangan SQL Server ke dalam gambar kontainer Linux SQL Server 2022 (16.x) yang berjalan di Docker.

  • Tarik dan jalankan gambar kontainer Linux SQL Server terbaru.
  • Salin file database Wide World Importers ke dalam kontainer.
  • Pulihkan database dalam kontainer.
  • Jalankan pernyataan Transact-SQL untuk melihat dan mengubah database.
  • Cadangkan database yang dimodifikasi.

Prasyarat

Opsi penyebaran

Bagian ini menyediakan opsi penyebaran untuk lingkungan Anda.

sqlcmd saat ini tidak mendukung MSSQL_PID parameter saat membuat kontainer. Jika Anda menggunakan instruksi sqlcmd dalam tutorial ini, Anda membuat kontainer dengan edisi Pengembang SQL Server. Gunakan instruksi antarmuka baris perintah (CLI) untuk membuat kontainer menggunakan lisensi pilihan Anda. Untuk informasi selengkapnya, lihat Menyebarkan dan menyambungkan ke kontainer SQL Server Linux.

Tarik dan jalankan gambar kontainer

  1. Buka terminal bash di Linux.

  2. Tarik gambar kontainer Linux SQL Server 2017 (14.x) dari Microsoft Container Registry.

    sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
    
  3. Untuk menjalankan gambar kontainer dengan Docker, Anda dapat menggunakan perintah berikut:

    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:2017-latest
    

    Perintah ini membuat kontainer SQL Server 2017 (14.x) dengan edisi Pengembang (default). Port 1433 SQL Server diekspos pada host sebagai port 1401. Parameter opsional -v sql1data:/var/opt/mssql membuat kontainer volume data bernama sql1data. Ini digunakan untuk mempertahankan data yang dibuat oleh SQL Server.

    Penting

    Contoh ini menggunakan kontainer volume data dalam Docker. Untuk informasi selengkapnya, lihat Mengonfigurasi gambar kontainer SQL Server di Docker.

  4. Untuk melihat kontainer Anda, gunakan docker ps perintah .

    sudo docker ps -a
    
  5. STATUS Jika kolom memperlihatkan status Up, maka SQL Server berjalan dalam kontainer dan mendengarkan pada port yang ditentukan dalam PORTS kolom. STATUS Jika kolom untuk kontainer SQL Server Anda memperlihatkan Exited, lihat Memecahkan Masalah kontainer 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. Buka terminal bash di Linux.

  2. Tarik gambar kontainer Linux SQL Server 2019 (15.x) dari Microsoft Container Registry.

    sudo docker pull mcr.microsoft.com/mssql/server:2019-latest
    
  3. Untuk menjalankan gambar kontainer dengan Docker, Anda dapat menggunakan perintah berikut:

    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
    

    Perintah ini membuat kontainer SQL Server 2019 (15.x) dengan edisi Pengembang (default). Port 1433 SQL Server diekspos pada host sebagai port 1401. Parameter opsional -v sql1data:/var/opt/mssql membuat kontainer volume data bernama sql1data. Ini digunakan untuk mempertahankan data yang dibuat oleh SQL Server.

    Penting

    Contoh ini menggunakan kontainer volume data dalam Docker. Untuk informasi selengkapnya, lihat Mengonfigurasi gambar kontainer SQL Server di Docker.

  4. Untuk melihat kontainer Anda, gunakan docker ps perintah .

    sudo docker ps -a
    
  5. STATUS Jika kolom memperlihatkan status Up, maka SQL Server berjalan dalam kontainer dan mendengarkan pada port yang ditentukan dalam PORTS kolom. STATUS Jika kolom untuk kontainer SQL Server Anda memperlihatkan Exited, lihat Memecahkan Masalah kontainer 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. Buka terminal bash di Linux.

  2. Tarik gambar kontainer Linux SQL Server 2022 (16.x) dari Microsoft Container Registry.

    sudo docker pull mcr.microsoft.com/mssql/server:2022-latest
    
  3. Untuk menjalankan gambar kontainer dengan Docker, Anda dapat menggunakan perintah berikut:

    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:2022-latest
    

    Perintah ini membuat kontainer SQL Server 2022 (16.x) dengan edisi Pengembang (default). Port 1433 SQL Server diekspos pada host sebagai port 1401. Parameter opsional -v sql1data:/var/opt/mssql membuat kontainer volume data bernama sql1data. Ini digunakan untuk mempertahankan data yang dibuat oleh SQL Server.

    Penting

    Contoh ini menggunakan kontainer volume data dalam Docker. Untuk informasi selengkapnya, lihat Mengonfigurasi gambar kontainer SQL Server di Docker.

  4. Untuk melihat kontainer Anda, gunakan docker ps perintah .

    sudo docker ps -a
    
  5. STATUS Jika kolom memperlihatkan status Up, maka SQL Server berjalan dalam kontainer dan mendengarkan pada port yang ditentukan dalam PORTS kolom. STATUS Jika kolom untuk kontainer SQL Server Anda memperlihatkan Exited, lihat Memecahkan Masalah kontainer 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
    

Mengubah kata sandi SA

Akun SA adalah administrator sistem pada instans SQL Server yang dibuat selama penyiapan. Setelah Anda membuat kontainer SQL Server, MSSQL_SA_PASSWORD variabel lingkungan yang Anda tentukan dapat ditemukan dengan menjalankan echo $MSSQL_SA_PASSWORD dalam kontainer. Untuk tujuan keamanan, ubah kata sandi SA Anda:

  1. Pilih kata sandi yang kuat untuk digunakan bagi pengguna SA.

  2. Gunakan docker exec untuk menjalankan utilitas sqlcmd untuk mengubah kata sandi melalui pernyataan Transact-SQL. Ganti <YourStrong!Passw0rd> dan <YourNewStrong!Passw0rd> dengan nilai kata sandi Anda sendiri:

    Penting

    Variabel SA_PASSWORD lingkungan tidak digunakan lagi. Gunakan MSSQL_SA_PASSWORD sebagai gantinya.

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U SA -P '<YourStrong!Passw0rd>' \
       -Q 'ALTER LOGIN SA WITH PASSWORD="<YourNewStrong!Passw0rd>"'
    
    docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd `
       -S localhost -U SA -P "<YourStrong!Passw0rd>" `
       -Q "ALTER LOGIN SA WITH PASSWORD='<YourNewStrong!Passw0rd>'"
    

Menyalin file cadangan ke dalam kontainer

Tutorial ini menggunakan database sampel Wide World Importers untuk Microsoft SQL. Gunakan langkah-langkah berikut untuk mengunduh dan menyalin file cadangan database Wide World Importers ke dalam kontainer SQL Server Anda.

  1. Pertama, gunakan docker exec untuk membuat folder cadangan. Perintah berikut membuat /var/opt/mssql/backup direktori di dalam kontainer SQL Server.

    sudo docker exec -it sql1 mkdir /var/opt/mssql/backup
    
  2. Selanjutnya, unduh file WideWorldImporters-Full.bak ke komputer host Anda. Perintah berikut menavigasi ke direktori beranda/pengguna dan mengunduh file cadangan sebagai 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. Gunakan docker cp untuk menyalin file cadangan ke dalam kontainer di /var/opt/mssql/backup direktori.

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

Memulihkan database

File cadangan sekarang terletak di dalam kontainer. Sebelum memulihkan cadangan, penting untuk mengetahui nama file logis dan jenis file di dalam cadangan. Perintah Transact-SQL berikut memeriksa cadangan dan melakukan pemulihan menggunakan sqlcmd dalam kontainer.

Tip

Tutorial ini menggunakan sqlcmd di dalam kontainer, karena kontainer dilengkapi dengan alat ini yang telah diinstal sebelumnya. Namun, Anda juga dapat menjalankan pernyataan Transact-SQL dengan alat klien lain di luar kontainer, seperti ekstensi SQL Server untuk Visual Studio Code atau Menggunakan SQL Server Management Studio di Windows untuk mengelola SQL Server di Linux. Untuk menyambungkan, gunakan port host yang dipetakan ke port 1433 dalam kontainer. Dalam contoh ini, yang ada localhost,1401 di komputer host dan Host_IP_Address,1401 dari jarak jauh.

  1. Jalankan sqlcmd di dalam kontainer untuk mencantumkan nama dan jalur file logis di dalam cadangan. Ini dilakukan dengan RESTORE FILELISTONLY pernyataan Transact-SQL.

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

    Anda akan melihat output yang mirip dengan yang berikut:

    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 Panggil perintah untuk memulihkan database di dalam kontainer. Tentukan jalur baru untuk setiap file di langkah sebelumnya.

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U SA -P '<YourNewStrong!Passw0rd>' \
       -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"'
    

    Anda akan melihat output yang mirip dengan yang berikut:

    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).
    

Memverifikasi database yang dipulihkan

Jalankan kueri berikut untuk menampilkan daftar nama database di kontainer Anda:

sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
   -S localhost -U SA -P '<YourNewStrong!Passw0rd>' \
   -Q 'SELECT Name FROM sys.Databases'

Anda akan melihat WideWorldImporters dalam daftar database.

Membuat perubahan

Ikuti langkah-langkah ini untuk membuat perubahan dalam database.

  1. Jalankan kueri untuk menampilkan 10 item teratas dalam Warehouse.StockItems tabel.

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U SA -P '<YourNewStrong!Passw0rd>' \
       -Q 'SELECT TOP 10 StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems ORDER BY StockItemID'
    

    Anda akan melihat daftar pengidentifikasi dan nama item:

    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. Perbarui deskripsi item pertama dengan pernyataan berikut UPDATE :

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U SA -P '<YourNewStrong!Passw0rd>' \
       -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'
    

    Anda akan melihat output yang mirip dengan yang berikut:

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

Membuat cadangan baru

Setelah memulihkan database ke dalam kontainer, Anda mungkin juga ingin membuat cadangan database secara teratur di dalam kontainer yang sedang berjalan. Langkah-langkahnya mengikuti pola yang mirip dengan langkah sebelumnya tetapi sebaliknya.

  1. BACKUP DATABASE Gunakan perintah Transact-SQL untuk membuat cadangan database dalam kontainer. Tutorial ini membuat file cadangan baru, wwi_2.bak, di direktori yang dibuat /var/opt/mssql/backup sebelumnya.

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U SA -P '<YourNewStrong!Passw0rd>' \
       -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"
    

    Anda akan melihat output yang mirip dengan hal berikut:

    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. Selanjutnya, salin file cadangan dari kontainer dan ke komputer host Anda.

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

Menggunakan data yang dipertahankan

Selain mengambil cadangan database untuk melindungi data Anda, Anda juga dapat menggunakan kontainer volume data. Awal tutorial ini membuat sql1 kontainer dengan -v sql1data:/var/opt/mssql parameter . Kontainer sql1data volume data mempertahankan /var/opt/mssql data bahkan setelah kontainer dihapus. Langkah-langkah berikut menghapus sql1 kontainer sepenuhnya lalu membuat kontainer baru, sql2, dengan data yang bertahan.

  1. sql1 Hentikan kontainer.

    sudo docker stop sql1
    
  2. Hapus kontainer. Ini tidak menghapus kontainer volume data yang dibuat sql1data sebelumnya dan data yang bertahan di dalamnya.

    sudo docker rm sql1
    
  3. Buat kontainer baru, sql2, dan gunakan sql1data kembali kontainer volume data.

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' \
       --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \
       -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
    
  4. Database Wide World Importers sekarang berada di kontainer baru. Jalankan kueri untuk memverifikasi perubahan sebelumnya yang Anda buat.

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

    Catatan

    Kata sandi SA bukan kata sandi yang Anda tentukan untuk sql2 kontainer, MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>. Semua data SQL Server dipulihkan dari sql1, termasuk kata sandi yang diubah dari sebelumnya dalam tutorial. Akibatnya, beberapa opsi seperti ini diabaikan karena memulihkan data di /var/opt/mssql. Untuk alasan ini, kata sandi seperti yang ditunjukkan <YourNewStrong!Passw0rd> di sini.

  1. sql1 Hentikan kontainer.

    sudo docker stop sql1
    
  2. Hapus kontainer. Ini tidak menghapus kontainer volume data yang dibuat sql1data sebelumnya dan data yang bertahan di dalamnya.

    sudo docker rm sql1
    
  3. Buat kontainer baru, sql2, dan gunakan sql1data kembali kontainer volume data.

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' \
       --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \
       -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
    
  4. Database Wide World Importers sekarang berada di kontainer baru. Jalankan kueri untuk memverifikasi perubahan sebelumnya yang Anda buat.

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

    Catatan

    Kata sandi SA bukan kata sandi yang Anda tentukan untuk sql2 kontainer, MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>. Semua data SQL Server dipulihkan dari sql1, termasuk kata sandi yang diubah dari sebelumnya dalam tutorial. Akibatnya, beberapa opsi seperti ini diabaikan karena memulihkan data di /var/opt/mssql. Untuk alasan ini, kata sandi seperti yang ditunjukkan <YourNewStrong!Passw0rd> di sini.

  1. sql1 Hentikan kontainer.

    sudo docker stop sql1
    
  2. Hapus kontainer. Ini tidak menghapus kontainer volume data yang dibuat sql1data sebelumnya dan data yang bertahan di dalamnya.

    sudo docker rm sql1
    
  3. Buat kontainer baru, sql2, dan gunakan sql1data kembali kontainer volume data.

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>' \
       --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \
       -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latest
    
  4. Database Wide World Importers sekarang berada di kontainer baru. Jalankan kueri untuk memverifikasi perubahan sebelumnya yang Anda buat.

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

    Catatan

    Kata sandi SA bukan kata sandi yang Anda tentukan untuk sql2 kontainer, MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>. Semua data SQL Server dipulihkan dari sql1, termasuk kata sandi yang diubah dari sebelumnya dalam tutorial. Akibatnya, beberapa opsi seperti ini diabaikan karena memulihkan data di /var/opt/mssql. Untuk alasan ini, kata sandi seperti yang ditunjukkan <YourNewStrong!Passw0rd> di sini.

Langkah selanjutnya

Dalam tutorial ini, Anda mempelajari cara mencadangkan database di Windows dan memindahkannya ke server Linux yang menjalankan SQL Server 2017 (14.x) dalam kontainer. Anda mempelajari cara untuk:

Dalam tutorial ini, Anda mempelajari cara mencadangkan database di Windows dan memindahkannya ke server Linux yang menjalankan SQL Server 2019 (15.x) dalam kontainer. Anda mempelajari cara untuk:

Dalam tutorial ini, Anda mempelajari cara mencadangkan database di Windows dan memindahkannya ke server Linux yang menjalankan SQL Server 2022 (16.x) dalam kontainer. Anda mempelajari cara untuk:

  • Buat gambar kontainer SQL Server Linux.
  • Salin cadangan database SQL Server ke dalam kontainer.
  • Jalankan pernyataan Transact-SQL dengan sqlcmd.
  • Membuat dan mengekstrak file cadangan dari kontainer.
  • Gunakan kontainer volume data untuk mempertahankan data produksi SQL Server.

Selanjutnya, tinjau konfigurasi kontainer lain dan skenario pemecahan masalah:

Berkontribusi pada dokumentasi SQL

Tahukah Anda bahwa Anda dapat mengedit konten SQL sendiri? Jika Anda melakukannya, Anda tidak hanya membantu meningkatkan dokumentasi kami, tetapi Anda juga dikreditkan sebagai kontributor ke halaman.

Untuk informasi selengkapnya, lihat Cara berkontribusi pada dokumentasi SQL Server