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
Belirli koşullar altında, Linux'ta tek kullanıcı modunda sql server örneğindeki master veritabanını geri yüklemeniz gerekebilir. Senaryolar arasında yeni bir örneğe geçiş veya tutarsızlıklardan kurtarma sayılabilir.
Not
Geri yükleme tamamlandıktan sonra SQL Server otomatik olarak kapatılır. Bu davranış tasarım gereğidir.
master veritabanını geri yüklemek için komut satırından -m başlangıç seçeneğini kullanarak SQL Server'ı tek kullanıcı modunda başlatmanız gerekir.
Bir SQL Server örneğini Windows'ta tek kullanıcı modunda başlatmak için bkz. SQL Server için tek kullanıcılı mod.
Önkoşullar
SQL Server'ı tek kullanıcı modunda başlatmak, yerel yönetici grubunun herhangi bir üyesinin SQL Server'a sysadmin sabit sunucu rolünün üyesi olarak bağlanmasına olanak tanır. Daha fazla bilgi için bkz. Sistem yöneticileri kilitlendiğinde SQL Server'a bağlanma.
SQL Server örneğini tek kullanıcı modunda başlattığınızda:
- Sunucuya yalnızca bir kullanıcı bağlanabilir.
-
CHECKPOINTişlemi yürütülemez. Varsayılan olarak, başlangıçta otomatik olarak çalışır.
SQL Server hizmetini durdurma
Şu anda çalışıyorsa aşağıdaki komut SQL Server örneğini durdurur:
systemctl stop mssql-server
Geçerli kullanıcıyı mssql olarak değiştir
Linux üzerinde SQL Server
mssqlkullanıcı altında çalıştığından önce bu kullanıcıya geçmeniz gerekir. Bu komutu çalıştırırkenrootparola girmeniz istenir.su mssql
SQL Server'ı tek kullanıcılı modda başlatma
-mileSQLCMDseçeneğini kullandığınızda, belirtilen bir istemci uygulamasıyla bağlantıları sınırlayabilirsiniz (SQLCMDgösterildiği gibi büyük harfle yazılmalıdır):/opt/mssql/bin/sqlservr -m"SQLCMD"Önceki örnekte,
-m"SQLCMD"bağlantıları tek bir bağlantıyla sınırlar ve bu bağlantının kendisini sqlcmd istemci programı olarak tanımlaması gerekir.masterveritabanını geri yüklemek için SQL Server'ı tek kullanıcı modunda başlatırken bu seçeneği kullanın.SQL Server başlatıldığında, birkaç log kaydı oluşturur. Çıktıda aşağıdaki satırları arayarak tek kullanıcı modunda çalıştığını onaylayabilirsiniz:
[...] 2022-05-24 04:26:27.24 Server Command Line Startup Parameters: -m "SQLCMD" [...] 2022-05-24 04:26:28.20 spid8s Warning ****************** 2022-05-24 04:26:28.21 spid8s SQL Server started in single-user mode. This an informational message only. No user action is required.
SQL Server örneğine bağlanma
SQL Server örneğine bağlanmak için sqlcmd kullanın. SQL Server'ı tek kullanıcı modunda başlatma bölümünde açıklanan adımları tamamladıktan sonra SQL Server'ın etkileşimli modunda çalıştığını görebilirsiniz. Bu nedenle, sqlcmd aşağıdaki gibi başlatmak için yeni bir terminal oturumu açmanız gerekir.
/opt/mssql-tools/bin/sqlcmd -S <ServerName> -U sa -P <password>Önceki örnekte
<ServerName>, uzaktan bağlanıyorsanız SQL Server çalıştıran konağın adıdır. Doğrudan SQL Server'ın çalıştığı konağa bağlanıyorsanız, bu parametreyi atlayabilir veyalocalhostkullanabilirsiniz.<StringPassword>, SA hesabının parolasıdır.
master veritabanını geri yükleme
sqlcmd içinde aşağıdaki komutları çalıştırın. sqlcmd, betiğin sonunda
GOolmasını bekler, bunu unutmayın.USE [master]; GO RESTORE DATABASE [master] FROM DISK = N'/var/opt/mssql/data/master.bak' WITH FILE = 1, MOVE N'master' TO N'/var/opt/mssql/data/master.mdf', MOVE N'mastlog' TO N'/var/opt/mssql/data/mastlog.ldf', NOUNLOAD, REPLACE, STATS = 5; GOÖnceki örnekte,
masterveritabanı yedekleme dosyasının yolu/var/opt/mssql/data/master.bak. Bu değeri,masterveritabanı yedekleme dosyanızın doğru yoluna değiştirmelisiniz.Geri yükleme başarılı olursa aşağıdaki örneğe benzer bir çıktı görmeniz gerekir.
Processed 456 pages for database 'master', file 'master' on file 1. Processed 5 pages for database 'master', file 'mastlog' on file 1. The master database has been successfully restored. Shutting down SQL Server. SQL Server is terminating this process.
SQL Server hizmetini yeniden başlatın
SQL Server'ı yeniden başlatmak için aşağıdaki komutu çalıştırın.
systemctl start mssql-server
Açıklamalar
bir master veritabanı yedeğini geri yüklerken, yedekleme alındıktan sonra örneğe eklenen mevcut kullanıcı veritabanları mastergeri yüklendikten sonra görünmez. Dosyalar hala depolama katmanında olmalıdır, bu nedenle bu veritabanlarını çevrimiçi hale getirmek için bu kullanıcı veritabanı dosyalarını el ile yeniden eklemeniz gerekir. Daha fazla bilgi için Veritabanı Eklemebölümüne bakın.
İlgili içerik
- Linux'ta SQL Server sorunlarını giderme
- sqlcmd aracı
- Linux 'da SQL Server hizmetlerini başlatma, durdurma ve yeniden başlatma