Map/Mount edilmiş share’e backup almak(Cannot open backup device ”. Operating system error 3(The system cannot find the path specified.).) Hatasının çözümü
Uzak bir sunucuda bir share tanımladınız ve bu share’e sql server servis hesabını yetkilendiremiyorsunuz. Sadece share’e bağlanmak için elinizde bir kullanıcı bilgisi var. Bu şekilde backup alabilmek için öncelikle o share’i sql server’un bulunduğu sunucuya map etmeniz gerekiyor. “Paylaşım Tanımlamak ve Tanımladığımız Paylaşımı SQL Server’ın olduğu sunucuya Map Etmek” isimli makalemde bu işlemin nasıl yapıldığını bulabilirsiniz. Map işlemi tamamlandıktan sonra map ettiğimiz ve drive haline gelen share’e aşağıdaki şekilde backup almak istediğimizde aşağıdaki şekilde bir hata alırız.
Bu hatayı almamak için uzak share’de tanımlı olan kullanıcı bilgilerini aşağıdaki script yardımıyla sql server sunucusuna tanıtabiliriz.
EXEC XP_CMDSHELL ‘NET USE myMappedDriveLetter: “myShare” /user:myUser myUsersPassword’
myMappedDriveLetter yazan yere biz Z ismini verdiğimiz için Z yazıyoruz.
myShare yazan yere \\ ShareSunucusu\Shareİsmi gibi bir ifade girmemiz gerekiyor. Tabi Burada ShareSunucusu yerine sizin tanımladığınız sunucu ismi ve Shareİsmi yerine de sizin tanımladığınız share ismini girmeniz gerekiyor.
myUser kısmına share üzerinde yetkili kullanıcı ismini girmeniz gerekiyor.
myUserPassword kısmına da share üzerinde yetkili kullanıcının şifresini girmeniz gerekiyor.
Bu script’i belirttiğim parametrelerle çalıştırdıktan sonra artık backup alabileceksiniz.
Aşağıda ki örnekten faydalanabilirsiniz:
EXEC XP_CMDSHELL 'NET USE Z: "\\185.657.15.12\sharedfolder" /user:MSSQLUser P@SsWoRd!'
NOT: Yukarıdaki script’i çalıştırdığınızda bazen aşağıdaki hatayı alıyor. Bu hatayı almaması için yukarıdaki örnekte gördüğünüz MSSQLUser kullanıcısının başına paylaşımın tanımlı olduğu sunucu ve \ yazmalısınız. Örneğin;
Hata:System error 1312 has occurred. A specified logon session does not exist
EXEC XP_CMDSHELL 'NET USE Z: "\\185.657.15.12\sharedfolder" /user:185.657.15.12\MSSQLUser P@SsWoRd!'
Daha sonra bu mapped drive’ı kaldırmak isterseniz aşağıdaki şekilde kaldırabilirsiniz. Aşağıdaki script bütün mapped drive’ları kaldırıyor. * yerine Z: koyarsak sadece Z drive’ını kaldırmış oluruz.
'NET USE * /delete /y'