قرار دادن بکاپ دیتابیس های SQL سرور روی درایو map
سلام،
من نیاز دارم یک نسخه از بکاپهایی که ایجاد میشود علاوه بر هارد لوکال سرور، روی یک درایوی که از سرور دیگری روی این سرور map شده، نیز قرار بگیرد، که در حالت عادی هنگام ایجاد sub_plan بکاپ درایو map را پیدا نمی کنه، توی سایت msdn یک راه پیدا کردم ولی راستش نمیدونم چطوری و توی چه محیطی باید اجراش بکنم:
EXEC xp_cmdshell 'net use <drivename> <share name>'
12 پاسخ
من یه اسکریپت دارم که تو SQL اونو اجرا میکنم و در محل نصب SQL برام بک آپ میگیره بعد اونو به صورت دستی از طریق شبکه کپی میکنم تو NAS
الان مشکلم اینه که باید به تک تک سرورهام ریموت دسکتاپ بزنم و SQL رو باز کنم و اسکریپت رو Open کنم و بعد فایل های بک آپ رو با نرم افزار FTP بفرستم روی NAS
حالا اگر خودم نباشم یا یادم بره یا درست اینکارو انجام ندم یا هر ... دیگه ای به مشکل میخورم
اگر امکانش باشه میخوام این کار به صورت روزانه خودش انجام بشه
اسکریت رو دارم
اما بلد نیستم چیکار باید انجام بدم
ممنون میشم راهنماییم کنید
با تشکر
دوستان کسی نظر و راهنمایی در این خصوص نداره ؟
میشه بیشتر راهنمایی کنید ؟
سلام.
دوست عزیز اولا به هیچ وجه استفاده از XP_CmdShell توصیح نمیشه.
به شدت سرور رو تحت آسیب قرار میدهید.
دوم اینکه به راحتی میتونید تحت شبکه Backup بگیرید.
میتونید دوتا Job ایجاد کنید.یکی روی Local بگیره یکی روی شبکه .
برای شبکه کافیه سرویس Agent و SQL Server به Folder مورد نظر که Share شده دسترسی کامل داشته باشند.
وقتی دارید به صورت Visual تنظیمات Backup رو انجام میدید در لیست درایوها اون فولدر Share رو نمیاره.
یا میتونید یک Backup Device تعریف کنید و از اون استفاده کنید که براحتی در قسمت Backup گیری میتونید اونو مشاهده کنید.
یا اینکه همون مسیر UNC یا به عبارتی ShareFolder\\ رو در قسمت to disk دستور Backup وارد کنید.
این دستور بالایی برای این هست که مسیر Share شما به صورت Map Drive قرار بگیره که بتونید در لیست درایوها اونو ببینید.
در اینجا نحوه تعریف Backup Device آمده است.
موفق باشید
جناب آقای صادقیان میشه شما در مورد نحوه راه اندازی و ساخت Backup Device راهنمایی بفرمائید و آموزش بدین
xp_cmdshell در SQL به طور پیش فرض غیر فعاله و باید با دستورات زیر اونو فعال کنید:
-- To allow advanced options to be changed. EXEC sp_configure 'show advanced options', 1 GO -- To update the currently configured value for advanced options. RECONFIGURE GO -- To enable the feature. EXEC sp_configure 'xp_cmdshell', 1 GO -- To update the currently configured value for this feature. RECONFIGURE GO
توضیحات دستورها هم هستش
بعد باید با دستور زیر درایوت رو مپ کنی:
EXEC XP_CMDSHELL 'net use H: \\machinename\sharename'
در صورتی که برای وارد شدن به درایوت نیاز به یوزر پس داشته باشی از دستور زیر استفاده کن:
EXEC XP_CMDSHELL 'net use H: \\machinename\sharename/user:domain\username "password"'
بعد هم با این دستور میتونی بکاپ بگیری
BACKUP DATABASE DBNAME TO DISK='H: \\machinename\sharename\DB.bak' WITH INIT
واسه این هم که هربار مجبور نشی خودت دستورات رو اجرا کنی ، دستور مربوط به بکاپ رو Job کن
سلام دوستان
من وقتی این دستور رو میزنم
EXEC XP_CMDSHELL 'net use H: \\machinename\sharename/user:domain\username "password"'
بهم خطای The network path was not found. میده
دستور رو به این شکل وارد میکنم
EXEC XP_CMDSHELL 'net use H: \\FileServer\ShareArch/user:fileserver\administrator "123456"'
پوشه مورد نظر (ShareArch) رو بر روی سرور دیگه share کردم با دسترسی read/write
حتی آدرس سرور دیگه رو با آی پی هم زدم بازم همون خطا رو دارم
نمیدونم مشکل از کجاس
روی سرور SQL راحت با آی پی و نام سرور میتونم پوشه رو ببینم
سپاسگزار خواهم بود در این زمینه راهنمایی بفرمائید
سلام
آقای صادقیان میشه بگید چرا xp_cmdShell سرور رو تحت آسیب قرار میده؟
مشکلی که دارم این هست میخوام یک بکاپ ماهیانه روی سرور در دامین دیگه بگذارم.
در نتیجه در قسمت logon سرویس agent یوزر رو قبول نمیکنه حتی اگر نام دامنه دیگه رو قبلش بگذارم!
و مجبورم از xp_cmdshell استفاده کنم
فکر میکنم شما باید ابتدا این اسکریپتی که دوستمون زحمت کشیدن اینجا قرار دادن، رو با اندکی تغییر،به صورت جداگانه روی SQL Serverهایی که مدنظرتون هستش اجرا کنید، تا به این طریق مسیر NAS رو اول بشناسونید به SQL.
بعد هم اگه ممکنه اسکریپتی که بهش اشاره کردین رو اینجا قرار بدین تا ببینیم چطوری میشه زمان و محل بکاپگیری موردنظر شما رو بهش داد.
دوستان من دقیقا طبق این آموزش جلو میرم ولی پیغام خطا بهم میده . کسی هست بتونه کمکم کنه ؟
پیغام خطاشو عکس گرفتم ملاحظه بکنید
منظور شما از راهنمایی چیه؟
سلام،
آقای king اسکریپت شما کاملا مشکل رو حل کرد،تشکر، اما مشکلی که برای ما پیش آمده این است که نمیدانیم چه اتفاقی میافتد که جند روز یکبار باید اسکریپت را دوباره اجرا کنیم تا مسیر map drive از حافظه SQL پاک نشود! در غیر اینصورت اصلا مسیر را پیدا نکرده و خطای زیر را میدهد:
":\.. failed with the following error: "Cannot open backup device 'Y
راهی داره به نظرتون؟