এসকিউএল সার্ভার 2008 এক্সপ্রেস - "সেরা" ব্যাকআপ সমাধান?


20

এসকিউএল সার্ভার ২০০ এক্সপ্রেস ব্যবহার করার সময় আপনি কোন ব্যাকআপ সমাধানগুলি প্রস্তাব করবেন ? আমি এসকিউএল সার্ভারে বেশ নতুন, তবে আমি যখন মাইএসকিউএল ব্যাকগ্রাউন্ড থেকে আসছি তখন আমি অন্য কম্পিউটারে প্রতিলিপি স্থাপন করার কথা ভেবেছিলাম এবং কেবলমাত্র সেই সার্ভারের এক্সকপি ব্যাকআপ নেব ।

তবে দুর্ভাগ্যক্রমে এক্সপ্রেস সংস্করণে প্রতিলিপিটি পাওয়া যায় না।

সাইটটি ভারীভাবে অ্যাক্সেস করা হয়েছে, সুতরাং কোনও বিলম্ব এবং ডাউনটাইম থাকতে হবে না। আমিও দিনে দু'বার বা কিছু ব্যাকআপ করার কথা ভাবছি।

আপনি কি সুপারিশ করতেন? আমি ব্যবহার করতে পারি এমন একাধিক কম্পিউটার রয়েছে, তবে আমি জানি না যে আমি এক্সপ্রেস সংস্করণটি ব্যবহার করছি সেহেতু এটি আমাকে সহায়তা করে কিনা।


উইন্ডোজ সার্ভার ব্যাকআপ ব্যবহারের জন্য সমস্যা আছে কিনা তা কি কেউ জানেন?
জেমস

উত্তর:


30

এসকিউএল সার্ভার এক্সপ্রেস 2008 ডাটাবেস ব্যাকআপ সমর্থন করে। এটি অনুপস্থিত এসকিউএল এজেন্ট, যা ব্যাকআপগুলি নির্ধারণ করতে এবং একটি ব্যাকআপ কার্য তৈরির জন্য রক্ষণাবেক্ষণ পরিকল্পনার উইজার্ডটি দেয়।

আপনি দুটি ভিন্ন উপায়ে ডাটাবেস ব্যাকআপ করতে পারেন:

  1. মাইক্রোসফ্ট এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও এক্সপ্রেস ব্যবহার করুন যার "কার্যাদি" এর অধীনে প্রতিটি ডাটাবেসের ডান ক্লিক মেনুতে ব্যাকআপ বিকল্প রয়েছে।
  2. আপনার ব্যাকআপ স্ক্রিপ্টটি ম্যানুয়ালি লিখতে টি-এসকিউএল ব্যবহার করুন। টি-এসকিউএল ব্যাকআপ কমান্ডের জন্য এমএসডিএন ডকুমেন্টেশন পড়ুন ।
    সিনট্যাক্স এর মতো কিছু:BACKUP DATABASE MyDatabase TO DISK='C:\MyDatabase.bak';

আপনি যদি আপনার ব্যাকআপ কাজের সময়সূচী করতে চান তবে আপনাকে একটি টি-এসকিউএল স্ক্রিপ্ট লিখতে হবে এবং তারপরে আপনার আগ্রহী প্রতিটি সময়সূচীতে স্ক্রিপ্টটি চালানোর জন্য এসকিউএলসিএমডি কল করতে উইন্ডোজ টাস্ক শিডিউল ব্যবহার করতে হবে:

 sqlcmd -s server_name\sqlexpress -i C:\SqlJobs\backup.sql -o C:\Logs\output.txt

1
ব্যাকআপ সিনট্যাক্সটি এরকম কিছু দেখায়: ব্যাকআপ ডেটাবেস মাইডাটাবেস টু ডিস্ক = 'সি: \ মাইডাটাবেস.বাক';
মার্টিন মার্কনকিনি

এই তথ্য বলছি জন্য ধন্যবাদ, আমি এটি চেষ্টা করে যাচ্ছি।
অ্যালেক্সন

T-sql স্ক্রিপ্টটি ব্যবহার করার সময়, নিশ্চিত করুন যে আপনার ডিবি নামগুলিতে ফাঁকা স্থান নেই।
রেডকনাইট

+1 আরও একটি বিট তথ্য: -S ".\SomeInstance"আপনি যদি sqlcmd থেকে লগইন ত্রুটি পেয়ে থাকেন তবে উদাহরণের নাম উল্লেখ করতে ভুলবেন না ।
Tomalak

এটি সহায়ক হবে, আমাদের বাকিরা একই উত্তরটির সন্ধানে এই প্রশ্নে আসছেন, যদি আপনি এসকিউএল অন্তর্ভুক্ত করেন তবে আপনি ব্যাকআপ চালানোর জন্য ব্যবহার করেন।
ইয়ান বয়ড

6

আমি এসকিউএলব্যাকআপএন্ডএফটিপি ব্যবহার করি - দুর্দান্ত এবং সাধারণ পণ্য।


sqlbackupandftp সর্বোত্তম .. আপনি যদি ফিরে চান + কমপ্রেস + স্বয়ংক্রিয় মুছুন (নির্দিষ্ট দিন পরে)
সুরজ জেইন

হ্যাঁ আমিও এটি ব্যবহার করি। ভাল কাজ করে.
অ্যালান বি

5

আমি ব্যবহারের নিজেকে, ইনস্টল হিসাবে দ্বারা পোস্টে metioned জন্য ব্যাকআপ স্ক্রিপ্ট লিখেছিলেন ছিল splattne :

----- Version: 2.0 - 2009-12-12 - SQL 2000 Compatible
----- Pham Kim Ngan (jbngan@gmail.com)
----- Usage:
-- Copy 7za.exe (http://www.7-zip.org/download.html - Command Line Version) to @CFG_BACKUP_PATH
-- Modify @CFG_BACKUP_PATH = <Backup Store Path> - no long filename/directory please
-- Modify @CFG_DAYS_DELETE = Days to keep backups
-- Enable 'xp_cmdshell' (SQL 2005/EXPRESS or higher)

----- Configuration Variables
DECLARE @CFG_BACKUP_PATH NVARCHAR(256)
DECLARE @CFG_DAYS_DELETE INT

SET @CFG_BACKUP_PATH = 'C:\DatabaseBackup'
SET @CFG_DAYS_DELETE = 30

DECLARE @Today DATETIME
DECLARE @TodayName CHAR(8)
SET @Today = GETDATE()
SET @TodayName = CONVERT(CHAR(8), @Today, 112)

DECLARE @id INT
DECLARE @name VARCHAR(50)
DECLARE @path VARCHAR(256)
DECLARE @cmd VARCHAR(256)

----- Create Temporarity Directory
DECLARE @TempDir VARCHAR(256)
SET @TempDir = @CFG_BACKUP_PATH + '\' + CONVERT(VARCHAR(256), NEWID())
SET @cmd = 'md ' + @TempDir
EXEC xp_cmdshell @cmd, no_output

----- List of current databases, only 'ONLINE' databases to be backup
DECLARE @dbList TABLE
    (
      dbno INT IDENTITY,
      dbname NVARCHAR(256)
    )

INSERT  INTO @dbList ( dbname )
        SELECT  name
        FROM    master.dbo.sysdatabases
        WHERE   ( name NOT IN ( 'tempdb' ) )
                AND DATABASEPROPERTYEX(name, 'Status') = 'ONLINE'


------ Starting backup, one by one
SELECT  @id = dbno,
        @name = dbname
FROM    @dbList
WHERE   dbno = 1
WHILE @@ROWCOUNT = 1
    BEGIN
        PRINT N'++ Backup: ' + @name
        SET @path = @TempDir + '\' + @name + '.bak'

        BACKUP DATABASE @name TO DISK = @path

        SELECT  @id = dbno,
                @name = dbname
        FROM    @dbList
        WHERE   dbno = @id + 1
    END

PRINT N'++ Compressing: ' + @TempDir

----- Delete output file if existed
SET @cmd = 'del /f /q ' + @CFG_BACKUP_PATH + '\' + @TodayName + '.ZIP'
EXEC xp_cmdshell @cmd, no_output

DECLARE @Count INT
DECLARE @StartTime DATETIME
SET @StartTime = GETDATE()
----- Compress, -mx1 = Set Compression Ratio to 1 (very low)
SET @cmd = @CFG_BACKUP_PATH + '\7za.exe a -bd -y -tzip -mx1 '
SET @cmd = @cmd + @CFG_BACKUP_PATH + '\' + @TodayName + '.ZIP ' + @TempDir + '\*.bak"'
EXEC xp_cmdshell @cmd, no_output

SET @Count = DATEDIFF(second, @StartTime, GETDATE())
PRINT N'++ Compression Time: ' + CONVERT(VARCHAR, @Count) + ' seconds'
SET @Count = DATEDIFF(second, @Today, GETDATE())
PRINT N'++ Total Execution Time: ' + CONVERT(VARCHAR, @Count) + ' seconds'

---- Delete temporarity directory
SET @cmd = 'rd /s /q ' + @TempDir
EXEC xp_cmdshell @cmd, no_output

---- Delete previous backup versions
DECLARE @OlderDateName CHAR(8)
SET @OlderDateName = CONVERT(CHAR(8), @Today - @CFG_DAYS_DELETE, 112)

----- List all .ZIP files
CREATE TABLE #delList
    (
      subdirectory VARCHAR(256),
      depth INT,
      [file] BIT
    )
INSERT  INTO #delList
        EXEC xp_dirtree @CFG_BACKUP_PATH, 1, 1
DELETE  #delList
WHERE   RIGHT(subdirectory, 4) <> '.ZIP'

SELECT  @Count = COUNT(1)
FROM    #delList
PRINT N'++ Number of Backups: ' + CONVERT(NVARCHAR, @Count)

SELECT TOP 1
        @name = subdirectory
FROM    #delList
WHERE   LEN(subdirectory) = 12
        AND RIGHT(subdirectory, 4) = '.ZIP'
        AND REPLACE(subdirectory, '.ZIP', '') < @OlderDateName

WHILE ( @@ROWCOUNT = 1 ) 
    BEGIN
        PRINT N'++ Delete Older Backup: ' + @name
        SET @cmd = 'del /f /q ' + @CFG_BACKUP_PATH + '\' + @name
        EXEC xp_cmdshell @cmd, no_output

        DELETE  #delList
        WHERE   subdirectory = @name

        SELECT TOP 1
                @name = subdirectory
        FROM    #delList
        WHERE   LEN(subdirectory) = 12
                AND RIGHT(subdirectory, 4) = '.ZIP'
                AND REPLACE(subdirectory, '.ZIP', '') < @OlderDateName
    END

DROP TABLE #delList

PRINT N'++ Done.'
PRINT ''
PRINT ''
PRINT ''

2

আমি এক্সপ্রেসমেট ব্যবহার করি এবং এটি নির্ধারিত টাস্ক হিসাবে দুর্দান্ত কাজ করে। আপনি যে ধরণের কাজ করছেন তার জন্য উপযুক্ত পরামিতিগুলি পাস করুন।

উত্স কোডটিও সেখানে রয়েছে। আমরা ব্যর্থতার সাথে অ্যাপ্লিকেশন ইভেন্ট লগটিতে একটি এন্ট্রি যুক্ত করতে এটি সামান্য পরিবর্তন করেছি।


1

আন্ডারথফোল্ডের পোস্টের ভিত্তিতে আমি কিছু গুগলিং করেছি এবং এক্সপ্রেসমেট সম্পর্কিত বিশদটি পেয়েছি। আমি এটি আগে দেখিনি, তাই এটি খুঁজে পেয়ে আমি খুব সন্তুষ্ট।

এফওয়াইআই, ওয়েব পৃষ্ঠাটি হ'ল, http://expressmaint.codeplex.com/

তারপরে আমি এই ব্যাচ ফাইলটি তৈরি করতে আমি যে উদাহরণটি পেয়েছি তার একটি ব্যবহার করেছি যা আমি প্রতিদিন রাতারাতি চালানোর জন্য নির্ধারিত করেছি।

c:\expressmaint\expressmaint -S (local)\SQLExpress -D ALL_USER -T DB -R E:\backups\sqlexpress\backupreports -RU WEEKS -RV 1 -B E:\backups\sqlexpress -BU DAYS -BV 4 -V -C

এটি একটি ব্যাকআপ নেয়, প্রতিটি ব্যাকআপ ( -BU) চার দিনের জন্য রাখে , তাই দুর্নীতি হলে আপনি একটি ইতিহাস পান। লগগুলি ( -RU) এক সপ্তাহের জন্য রাখা হয়।

আমি এটি কয়েক সপ্তাহের জন্য ব্যবহার করছি, তবে আমি এটির সাথে খুব খুশি হয়েছি, কারণ এটি একটি হাতছাড়া পদ্ধতির। স্থানীয়ভাবে আমি ব্যাকআপগুলি দ্বিতীয় ডিস্কে রাখি, তারপরে আমি অ্যামাজন ইসি 2 ক্লাউড স্টোরেজে অফসাইট ব্যাকআপ করতে জঙ্গলডিস্ক ব্যবহার করি


এক্সপ্রেসিমেন্টের সমস্যা হ'ল এটি এসকিউএল সার্ভার 2008 আর 2 সমর্থন করে না। এটি ২০০৮ এর সাথে কাজ করবে এবং আপনি ২০০৮ ইনস্টল করলে এবং ২০০৮ আর ২-তে আপগ্রেড করলে এটি কাজ করবে, তবে এটি ২০০৮ আর ২ এর নতুন ইনস্টলটিতে ডাটাবেসগুলি খুঁজে পাবে না। এটি একটি প্যাচ জমা সহ একটি পরিচিত বাগ রয়েছে তবে প্যাচটি দিয়ে এক্সিকিউটেবল আপডেট করা হয়নি।
জেমস

1

আপনি ডিবিএসএভ ব্যবহার করতে পারেন । এমএস এসকিউএল সার্ভারটি ব্যাকআপ এবং পুনরুদ্ধার করার জন্য এটি দুর্দান্ত ফ্রিওয়্যার সরঞ্জাম। এটি সেটআপ এবং ব্যবহার করা খুব সহজ।


0

আমি একটি ব্যাচের ফাইল ব্যবহার করে কয়েক ঘন্টা পরে এসকিউএল সার্ভার এক্সপ্রেস ডাটাবেস ব্যাকআপ করতে একটি উইন্ডোজ শিডিউল কাজ ব্যবহার করছি। ঠিকঠাক কাজ মনে হচ্ছে।


আপনার ব্যাচ ফাইল কীভাবে একটি ডাটাবেসকে ব্যাক আপ করে তাও উল্লেখ করা উচিত ।
ইয়ান বয়ড

0

আমি এসকিউএল সার্ভারবুস্টার পরীক্ষা করে দেখতাম: http://www.sqlserverbooster.com

দেখে মনে হচ্ছে এটির একটি দুর্দান্ত বৈশিষ্ট্য সেট রয়েছে এবং এটি নিখরচায়। অ্যাজুরে / এস 3 / হিমবাহের সমর্থনটিও দুর্দান্ত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.