Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:Linux üzerinde SQL Server
Bu öğreticide, BIR SQL Server yedekleme dosyasının Docker üzerinde çalışan bir SQL Server 2017 (14.x) Linux kapsayıcı görüntüsüne nasıl taşınıp geri yükleneceği gösterilmektedir.
Bu öğreticide, SQL Server yedekleme dosyasının Docker üzerinde çalışan bir SQL Server 2019 (15.x) Linux kapsayıcı görüntüsüne nasıl taşınıp geri yükleneceği gösterilmektedir.
Bu öğreticide, SQL Server yedekleme dosyasının Docker üzerinde çalışan bir SQL Server 2022 (16.x) Linux kapsayıcı görüntüsüne nasıl taşınıp geri yükleneceği gösterilmektedir.
Bu öğreticide, SQL Server yedekleme dosyasının Docker üzerinde çalışan bir SQL Server 2025 (17.x) Linux kapsayıcı görüntüsüne nasıl taşınıp geri yükleneceği gösterilmektedir.
- En son SQL Server Linux kapsayıcı görüntüsünü çekin ve çalıştırın.
- Wide World Importers veritabanı dosyasını kapsayıcıya kopyalayın.
- Kapsayıcıdaki veritabanını geri yükleyin.
- Veritabanını görüntülemek ve değiştirmek için Transact-SQL deyimlerini çalıştırın.
- Değiştirilen veritabanını yedekleyin.
Önkoşullar
- Docker veya Podman gibi bir kapsayıcı çalışma zamanı yüklü olmalı
- En son sqlcmd yükle
- Linux üzerinde SQL Server için Sistem gereksinimleri
Dağıtım seçenekleri
Bu bölümde ortamınız için dağıtım seçenekleri sağlanır.
sqlcmd şu anda kapsayıcı oluştururken MSSQL_PID parametresini desteklemez. Bu öğreticide sqlcmd yönergelerini kullanırsanız, SQL Server'ın Developer sürümüyle bir kapsayıcı oluşturursunuz. Seçtiğiniz lisansı kullanarak kapsayıcı oluşturmak için komut satırı arabirimi (CLI) yönergelerini kullanın. Daha fazla bilgi için bkz. SQL Server Linux kapsayıcılarını dağıtma ve bağlama.
Kapsayıcı görüntüsünü indirme ve çalıştırma
Linux üzerinde bir bash terminali açın.
Microsoft Container Registry'den SQL Server 2017 (14.x) Linux kapsayıcı görüntüsünü çekin.
sudo docker pull mcr.microsoft.com/mssql/server:2017-latestKapsayıcı görüntüsünü Docker ile çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
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-latestDikkat
Parolanız, SQL Server varsayılanparola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın.
Bu komut, Developer sürümü (varsayılan) ile bir SQL Server 2017 (14.x) kapsayıcısı oluşturur. SQL Server bağlantı noktası
1433, ana bilgisayarda1401bağlantı noktası olarak gösterilir. İsteğe bağlı-v sql1data:/var/opt/mssqlparametresi,sql1dataadlı bir veri birimi kapsayıcısı oluşturur. Bu, SQL Server tarafından oluşturulan verileri kalıcı hale getirmek için kullanılır.Önemli
Bu örnekte Docker içinde bir veri birimi kapsayıcısı kullanılır. Daha fazla bilgi için bkz. Docker üzerinde SQL Server kapsayıcı görüntülerini yapılandırma.
Kapsayıcılarınızı görüntülemek için
docker pskomutunu kullanın.sudo docker ps -aSTATUSsütunundaUpdurumu gösteriliyorsa, SQL Server kapsayıcıda çalışır vePORTSsütununda belirtilen bağlantı noktasını dinler. SQL Server kapsayıcınızınSTATUSsütunuExitedgösteriyorsa bkz. SQL Server Docker kapsayıcılarının sorunlarını giderme.
$ 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
Linux üzerinde bir bash terminali açın.
Microsoft Container Registry'den SQL Server 2019 (15.x) Linux kapsayıcı görüntüsünü çekin.
sudo docker pull mcr.microsoft.com/mssql/server:2019-latestKapsayıcı görüntüsünü Docker ile çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
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-latestDikkat
Parolanız, SQL Server varsayılanparola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın.
Bu komut, Developer sürümü (varsayılan) ile bir SQL Server 2019 (15.x) kapsayıcısı oluşturur. SQL Server bağlantı noktası
1433, ana bilgisayarda1401bağlantı noktası olarak gösterilir. İsteğe bağlı-v sql1data:/var/opt/mssqlparametresi,sql1dataadlı bir veri birimi kapsayıcısı oluşturur. Bu, SQL Server tarafından oluşturulan verileri kalıcı hale getirmek için kullanılır.Önemli
Bu örnekte Docker içinde bir veri birimi kapsayıcısı kullanılır. Daha fazla bilgi için bkz. Docker üzerinde SQL Server kapsayıcı görüntülerini yapılandırma.
Kapsayıcılarınızı görüntülemek için
docker pskomutunu kullanın.sudo docker ps -aSTATUSsütunundaUpdurumu gösteriliyorsa, SQL Server kapsayıcıda çalışır vePORTSsütununda belirtilen bağlantı noktasını dinler. SQL Server kapsayıcınızınSTATUSsütunuExitedgösteriyorsa bkz. SQL Server Docker kapsayıcılarının sorunlarını giderme.$ 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
Linux üzerinde bir bash terminali açın.
MICROSOFT Container Registry'den SQL Server 2022 (16.x) Linux kapsayıcı görüntüsünü çekin.
sudo docker pull mcr.microsoft.com/mssql/server:2022-latestKapsayıcı görüntüsünü Docker ile çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
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-latestDikkat
Parolanız, SQL Server varsayılanparola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın.
Bu komut, Developer sürümü (varsayılan) ile bir SQL Server 2022 (16.x) kapsayıcısı oluşturur. SQL Server bağlantı noktası
1433, ana bilgisayarda1401bağlantı noktası olarak gösterilir. İsteğe bağlı-v sql1data:/var/opt/mssqlparametresi,sql1dataadlı bir veri birimi kapsayıcısı oluşturur. Bu, SQL Server tarafından oluşturulan verileri kalıcı hale getirmek için kullanılır.Önemli
Bu örnekte Docker içinde bir veri birimi kapsayıcısı kullanılır. Daha fazla bilgi için bkz. Docker üzerinde SQL Server kapsayıcı görüntülerini yapılandırma.
Kapsayıcılarınızı görüntülemek için
docker pskomutunu kullanın.sudo docker ps -aSTATUSsütunundaUpdurumu gösteriliyorsa, SQL Server kapsayıcıda çalışır vePORTSsütununda belirtilen bağlantı noktasını dinler. SQL Server kapsayıcınızınSTATUSsütunuExitedgösteriyorsa bkz. SQL Server Docker kapsayıcılarının sorunlarını giderme.$ 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
Linux üzerinde bir bash terminali açın.
MICROSOFT Container Registry'den SQL Server 2025 (17.x) Linux kapsayıcı görüntüsünü çekin.
sudo docker pull mcr.microsoft.com/mssql/server:2025-latestKapsayıcı görüntüsünü Docker ile çalıştırmak için aşağıdaki komutu kullanabilirsiniz:
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:2025-latestDikkat
Parolanız, SQL Server varsayılanparola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın.
Bu komut, Developer sürümü (varsayılan) ile bir SQL Server 2025 (17.x) kapsayıcısı oluşturur. SQL Server bağlantı noktası
1433, ana bilgisayarda1401bağlantı noktası olarak gösterilir. İsteğe bağlı-v sql1data:/var/opt/mssqlparametresi,sql1dataadlı bir veri birimi kapsayıcısı oluşturur. Bu, SQL Server tarafından oluşturulan verileri kalıcı hale getirmek için kullanılır.Önemli
Bu örnekte Docker içinde bir veri birimi kapsayıcısı kullanılır. Daha fazla bilgi için bkz. Docker üzerinde SQL Server kapsayıcı görüntülerini yapılandırma.
Kapsayıcılarınızı görüntülemek için
docker pskomutunu kullanın.sudo docker ps -aSTATUSsütunundaUpdurumu gösteriliyorsa, SQL Server kapsayıcıda çalışır vePORTSsütununda belirtilen bağlantı noktasını dinler. SQL Server kapsayıcınızınSTATUSsütunuExitedgösteriyorsa bkz. SQL Server Docker kapsayıcılarının sorunlarını giderme.$ 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
Sistem yöneticisi (SA) parolasını değiştirme
sa hesabı, kurulum sırasında oluşturulan SQL Server örneğinde bir sistem yöneticisidir. SQL Server kapsayıcınızı oluşturduktan sonra, belirttiğiniz MSSQL_SA_PASSWORD ortam değişkeni kapsayıcıda echo $MSSQL_SA_PASSWORD çalıştırılarak bulunabilir. Güvenlik amacıyla sa parolanızı değiştirin:
sahesabı için kullanılacak güçlü bir parola seçin. Parolanız, SQL Server varsayılanparola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın.parolayı bir Transact-SQL deyimi aracılığıyla değiştirmek üzere
docker execyardımcı programını çalıştırmak için kullanın.<old-password>ve<new-password>kendi parola değerlerinizle değiştirin:Önemli
SA_PASSWORDortam değişkeni kullanım dışıdır. Bunun yerineMSSQL_SA_PASSWORDkullanın.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>'"
Kapsayıcıya yedekleme dosyası kopyalama
Bu öğreticide Microsoft SQL içinWide World Importers örnek veritabanları kullanılır. Wide World Importers veritabanı yedekleme dosyasını indirmek ve SQL Server kapsayıcınıza kopyalamak için aşağıdaki adımları kullanın.
İlk olarak, yedekleme klasörü oluşturmak için
docker execkullanın. Aşağıdaki komut, SQL Server kapsayıcısının içinde bir/var/opt/mssql/backupdizini oluşturur.sudo docker exec -it sql1 mkdir /var/opt/mssql/backupArdından, WideWorldImporters-Full.bak dosyasını konak makinenize indirin. Aşağıdaki komutlar giriş/kullanıcı dizinine gider ve yedekleme dosyasını
wwi.bakolarak indirir.cd ~ curl -L -o wwi.bak 'https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Full.bak'yedekleme dosyasını
docker cpdizinindeki kapsayıcıya kopyalamak için/var/opt/mssql/backupkullanın.sudo docker cp wwi.bak sql1:/var/opt/mssql/backup
Veritabanını geri yükleme
Yedekleme dosyası artık kapsayıcının içinde bulunur. Yedeklemeyi geri yüklemeden önce, yedeklemenin içindeki mantıksal dosya adlarını ve dosya türlerini bilmek önemlidir. Aşağıdaki Transact-SQL komutları yedeklemeyi inceler ve kapsayıcıdaki sqlcmd kullanarak geri yüklemeyi gerçekleştirir.
Bahşiş
Bu öğreticide kapsayıcının içinde sqlcmd kullanılır çünkü kapsayıcı bu araç önceden yüklenmiş olarak gelir. Ancak, Visual Studio Code için sql server uzantısı gibi kapsayıcı dışındaki diğer istemci araçlarıyla Transact-SQL deyimleri de çalıştırabilir veya Linuxüzerinde SQL Server'ı yönetmek için Windows'ta SQL Server Management Studio kullanma . Bağlanmak için kapsayıcıda 1433 numaralı bağlantı noktasına eşlenen ana bilgisayar bağlantı noktasını kullanın. Bu örnekte, konak ve bağlantı noktası, konak makinesinde localhost,1401'dir ve uzaktaki Host_IP_Address,1401'dir.
Yedeklemenin içindeki mantıksal dosya adlarını ve yollarını listelemek için kapsayıcının içinde sqlcmd çalıştırın. Bu işlem
RESTORE FILELISTONLYTransact-SQL deyimiyle yapılır.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-2Sonuçlar aşağıdaki çıkışa benzer görünmelidir:
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_1Kapsayıcı içindeki veritabanını geri yüklemek için
RESTORE DATABASEkomutunu çağırın. Önceki adımda dosyaların her biri için yeni yollar belirtin.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"'Sonuçlar aşağıdaki çıkışa benzer görünmelidir:
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).
Geri yüklenen veritabanını doğrulama
Kapsayıcınızdaki veritabanı adlarının listesini görüntülemek için aşağıdaki sorguyu çalıştırın:
sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \
-S localhost -U sa -P '<new-password>' \
-Q 'SELECT name FROM sys.databases'
Veritabanları listesinde WideWorldImporters görmeniz gerekir.
Değişiklik yapma
Veritabanında değişiklik yapmak için bu adımları izleyin.
Warehouse.StockItemstablosundaki ilk 10 öğeyi görüntülemek için bir sorgu çalıştırın.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'Öğe tanımlayıcılarının ve adlarının listesini görmeniz gerekir:
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İlk öğenin açıklamasını aşağıdaki
UPDATEdeyimiyle güncelleştirin: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'Aşağıdaki metne benzer bir çıkış görmeniz gerekir:
(1 rows affected) StockItemID StockItemName ----------- ------------------------------------ 1 USB missile launcher (Dark Green)
Yeni yedekleme oluşturma
Veritabanınızı bir kapsayıcıya geri yükledikten sonra, çalışan kapsayıcı içinde düzenli olarak veritabanı yedeklemeleri de oluşturmak isteyebilirsiniz. Adımlar, önceki adımlara benzer ancak tersten bir desen izler.
kapsayıcısında veritabanı yedeklemesi oluşturmak için
BACKUP DATABASETransact-SQL komutunu kullanın. Bu öğretici, daha önce oluşturulanwwi_2.bakdizininde/var/opt/mssql/backupyeni bir yedekleme dosyası oluşturur.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"Sonuçlar aşağıdaki çıkışa benzer görünmelidir:
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).Ardından, yedekleme dosyasını kapsayıcının dışına ve konak makinenize kopyalayın.
cd ~ sudo docker cp sql1:/var/opt/mssql/backup/wwi_2.bak wwi_2.bak ls -l wwi*
Kalıcı verileri kullanma
Verilerinizi korumak için veritabanı yedekleri almanın yanı sıra, veri birimi kapsayıcılarını da kullanabilirsiniz. Bu öğreticinin başlangıcı, sql1 parametresiyle -v sql1data:/var/opt/mssql kapsayıcısını oluşturdu.
sql1data veri birimi kapsayıcısı, kapsayıcı kaldırıldıktan sonra bile /var/opt/mssql verilerini kalıcı hale döndürür. Aşağıdaki adımlar sql1 kapsayıcısını tamamen kaldırır ve kalıcı verilerle sql2yeni bir kapsayıcı oluşturur.
sql1kapsayıcısını durdurun.sudo docker stop sql1Kapsayıcıyı kaldırın. Bu işlem, daha önce oluşturulan
sql1dataveri birimi kapsayıcısını ve içindeki kalıcı verileri silmez.sudo docker rm sql1sql2yeni bir kapsayıcı oluşturun vesql1dataveri birimi kapsayıcısını yeniden kullanabilirsiniz.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-latestWide World Importers veritabanı artık yeni kapsayıcıdadır. Yaptığınız önceki değişikliği doğrulamak için bir sorgu çalıştırın.
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'saparolası,sql2kapsayıcısı için belirttiğinizMSSQL_SA_PASSWORD=<password>parolası değildir. Eğitimin daha önceki bir bölümünde değiştirilen parola da dahil olmak üzere, tüm SQL Server verilerisql1'dan geri yüklendi. Sonuç olarak, /var/opt/mssql içindeki verilerin geri yüklenmesinden dolayı, bunun gibi bazı seçenekler yoksayılır. Bu nedenle, parola burada gösterildiği gibi<new-password>.
sql1kapsayıcısını durdurun.sudo docker stop sql1Kapsayıcıyı kaldırın. Bu işlem, daha önce oluşturulan
sql1dataveri birimi kapsayıcısını ve içindeki kalıcı verileri silmez.sudo docker rm sql1sql2yeni bir kapsayıcı oluşturun vesql1dataveri birimi kapsayıcısını yeniden kullanabilirsiniz.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-latestWide World Importers veritabanı artık yeni kapsayıcıdadır. Yaptığınız önceki değişikliği doğrulamak için bir sorgu çalıştırın.
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'saparolası,sql2kapsayıcısı için belirttiğinizMSSQL_SA_PASSWORD=<password>parolası değildir. Eğitimin daha önceki bir bölümünde değiştirilen parola da dahil olmak üzere, tüm SQL Server verilerisql1'dan geri yüklendi. Sonuç olarak, /var/opt/mssql içindeki verilerin geri yüklenmesinden dolayı, bunun gibi bazı seçenekler yoksayılır. Bu nedenle, parola burada gösterildiği gibi<new-password>.
sql1kapsayıcısını durdurun.sudo docker stop sql1Kapsayıcıyı kaldırın. Bu işlem, daha önce oluşturulan
sql1dataveri birimi kapsayıcısını ve içindeki kalıcı verileri silmez.sudo docker rm sql1sql2yeni bir kapsayıcı oluşturun vesql1dataveri birimi kapsayıcısını yeniden kullanabilirsiniz.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-latestWide World Importers veritabanı artık yeni kapsayıcıdadır. Yaptığınız önceki değişikliği doğrulamak için bir sorgu çalıştırın.
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'saparolası,sql2kapsayıcısı için belirttiğinizMSSQL_SA_PASSWORD=<password>parolası değildir. Eğitimin daha önceki bir bölümünde değiştirilen parola da dahil olmak üzere, tüm SQL Server verilerisql1'dan geri yüklendi. Aslında,/var/opt/mssqliçindeki veriler geri yükleniyorsa, bunun gibi bazı seçenekler yoksayılır. Bu nedenle, parola burada gösterildiği gibi<new-password>.
sql1kapsayıcısını durdurun.sudo docker stop sql1Kapsayıcıyı kaldırın. Bu işlem, daha önce oluşturulan
sql1dataveri birimi kapsayıcısını ve içindeki kalıcı verileri silmez.sudo docker rm sql1sql2yeni bir kapsayıcı oluşturun vesql1dataveri birimi kapsayıcısını yeniden kullanabilirsiniz.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:2025-latestWide World Importers veritabanı artık yeni kapsayıcıdadır. Yaptığınız önceki değişikliği doğrulamak için bir sorgu çalıştırın.
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'saparolası,sql2kapsayıcısı için belirttiğinizMSSQL_SA_PASSWORD=<password>parolası değildir. Eğitimin daha önceki bir bölümünde değiştirilen parola da dahil olmak üzere, tüm SQL Server verilerisql1'dan geri yüklendi. Aslında,/var/opt/mssqliçindeki veriler geri yükleniyorsa, bunun gibi bazı seçenekler yoksayılır. Bu nedenle, parola burada gösterildiği gibi<new-password>.
Dikkat
Parolanız, SQL Server varsayılanparola ilkesine uygun olmalıdır. Varsayılan olarak, parola en az sekiz karakter uzunluğunda olmalı ve şu dört kümeden üçünün karakterlerini içermelidir: büyük harfler, küçük harfler, 10 tabanındaki basamaklar ve simgeler. Parolalar en çok 128 karakter uzunluğunda olabilir. Mümkün olduğunca uzun ve karmaşık parolalar kullanın.
Sonraki adım
Bu öğreticide, Windows'da bir veritabanını yedeklemeyi ve bir kapsayıcıda SQL Server 2017 (14.x) çalıştıran bir Linux sunucusuna taşımayı öğrendiniz. Nasıl yapılacağını öğrendinsiniz:
Bu öğreticide, Windows'ta bir veritabanını yedeklemeyi ve bir kapsayıcıda SQL Server 2019 (15.x) çalıştıran bir Linux sunucusuna taşımayı öğrendiniz. Nasıl yapılacağını öğrendinsiniz:
Bu öğreticide, Windows'da bir veritabanını yedeklemeyi ve bir kapsayıcıda SQL Server 2022 (16.x) çalıştıran bir Linux sunucusuna taşımayı öğrendiniz. Nasıl yapılacağını öğrendinsiniz:
Bu öğreticide, Windows'ta bir veritabanını yedeklemeyi ve bir kapsayıcıda SQL Server 2025 (17.x) çalıştıran bir Linux sunucusuna taşımayı öğrendiniz. Nasıl yapılacağını öğrendinsiniz:
- SQL Server Linux kapsayıcı görüntüleri oluşturun.
- SQL Server veritabanı yedeklemelerini bir kapsayıcıya kopyalayın.
- Transact-SQL deyimlerini sqlcmdile çalıştırın.
- Bir kapsayıcıdan yedek dosyaları oluşturun ve çıkarın.
- SQL Server üretim verilerini kalıcı hale getirmek için veri birimi kapsayıcılarını kullanın.
Ardından diğer kapsayıcı yapılandırmasını ve sorun giderme senaryolarını gözden geçirin:
SQL belgelerine katkıda bulunma
SQL içeriğini kendiniz düzenleyebildiğinizi biliyor muydunuz? Bunu yaparsanız, belgelerimizin geliştirilmesine yardımcı olmakla kalmaz, aynı zamanda sayfaya katkıda bulunan olarak da kabul edilirsiniz.
Daha fazla bilgi için Bkz. Microsoft Learn belgelerini düzenleme.