কীভাবে প্রতিদিন চালানোর জন্য বর্গ কোয়ের জন্য একটি কাজের সময় নির্ধারণ করবেন?


121

নূন্যতম প্রয়োজনীয় কনফিগারেশন সেটিংস সহ, এসকিউএল সার্ভার এজেন্ট কাজ ব্যবহার করে কীভাবে প্রতিদিন একটি এসকিউএল কোয়েরি চালাতে হয় তা আমার জানতে হবে।


আপনি এসকিউএল সার্ভারের কোন সংস্করণ ব্যবহার করছেন?
ফাবের

1
: এখানে দ্রুতগামী সংস্করণ জন্য সমাধান stackoverflow.com/a/7201189/259881
HasanG

উত্তর:


164
  1. এসকিউএল সার্ভার এজেন্ট নোড প্রসারিত করুন এবং এসকিউএল সার্ভার এজেন্টে জবস নোডটিতে ডান ক্লিক করুন এবং নির্বাচন করুন 'New Job'

  2. ইন 'New Job'উইন্ডো চাকরি দেওয়ার নামে এবং এর একটি বর্ণনা লিখুন 'General'ট্যাব।

  3. 'Steps'উইন্ডোর বাম দিকে নির্বাচন করুন এবং 'New'নীচে ক্লিক করুন ।

  4. ইন 'Steps'উইন্ডো একটি পদক্ষেপ নাম লিখুন এবং ডাটাবেস আপনি ক্যোয়ারী বিরুদ্ধে চালাতে চান তা নির্বাচন করুন।

  5. আপনি যে টি-এসকিউএল কমান্ডটি কমান্ড উইন্ডোতে চালাতে চান তাতে আটকান এবং ক্লিক করুন 'OK'

  6. 'Schedule'নিউ জব উইন্ডোর বামে মেনুতে ক্লিক করুন এবং সময়সূচী তথ্য প্রবেশ করুন (যেমন প্রতিদিন এবং একটি সময়)।

  7. ক্লিক করুন 'OK'- এবং এটি হওয়া উচিত।

(আপনি অবশ্যই যুক্ত করতে পারেন এমন অন্যান্য বিকল্পগুলি অবশ্যই রয়েছে - তবে আমি বলব যে চাকরি সেট আপ এবং সময় নির্ধারণের জন্য আপনার সর্বনিম্ন ন্যূনতমতম প্রয়োজন)


এসকিএল সার্ভার এক্সপ্রেসে কীভাবে এটি করবেন? এজেন্ট কি এসকিএল সার্ভারের সাথে উন্নত পরিষেবাগুলির সাথে প্রকাশ করবে? '
বিলাল ফজলানী

6
এটি আপনি বলছেন না যে আপনি কে লগ ইন করেছেন তার উপর নির্ভর করে আপনি এসকিউএল সার্ভার এজেন্ট নোডটি একেবারেই দেখতে পাবেন না ... সবাই সা হিসাবে লগইন করে না। আরও (বরং শুকিয়ে) তথ্য এখানে .. msdn.microsoft.com/en-us/library/ms188283.aspx
Fetchez লা vache

যদি এসকিউএল সার্ভার এজেন্ট নোডটি "এজেন্ট এক্সপিএস অক্ষম" লেবেলটির সাহায্যে প্রসারিত না হয় তবে এই কোডটি চালান sp_configure 'উন্নত বিকল্পগুলি দেখান', 1; যান পুনরুদ্ধার; এসপিও-কনফিগার 'এজেন্ট এক্সপি', 1; গো পুনরায় কনফিগার গো ব্যাখ্যা এই লিঙ্কে বয়সী: msdn.microsoft.com/en-us/library/ms178127.aspx
ব্যারি Guvenkaya

4
স্ক্রিপ্টিং বিএটি, সিএমডি,
পাওয়ারশেল

115

আমি গৃহীত উত্তরের পদক্ষেপগুলির একটি অ্যানিমেটেড জিআইএফ তৈরি করেছি। এটি এমএসএসকিউএল সার্ভার ২০১২ এর

এসকিউএল কাজের সময়সূচী


8
একটি জিআইএফ - কত সৃজনশীল! :)
জেক

9
এটি স্ট্যাকওভারফ্লোতে সর্বাধিক উত্সাহিত উত্তর হওয়া উচিত!
গৌতম আনুশ

1
সা'র সাথে লগইন করা দরকার? আমি সা-এর সাথে লগইন করছি না এবং আমি এসকিএল সার্ভার এজেন্ট দেখতে পাইনি। আমি মনে করি এটি দেখার যথেষ্ট অধিকার আমার নেই।
আল্পার

1
মেনু ট্রিতে এসকিউএল সার্ভার এজেন্ট অঞ্চলটি দেখতে, আপনি এমএসডিবি ডাটাবেসে সঠিক অনুমতির প্রয়োজন হিসাবে ব্যবহারকারী হিসাবে লগ ইন করেছেন (এমএসডিবি একটি অন্তর্নির্মিত ডাটাবেস যা এসএসএমএস অনুমতিগুলির মতো জিনিসগুলির জন্য ব্যবহার করে)। মূল ট্রি এক্সপ্লোরার থেকে সুরক্ষা> লগইনস> আপনার ব্যবহারকারীর নাম> রাইট ক্লিক করুন> বৈশিষ্ট্য> ব্যবহারকারী ম্যাপিংস> এমএসডিবি> চেক করুন তারপরে SQLAgentOperatorRole
S.Mason

18

টি-স্কোলে এটি করার জন্য, আপনি প্রতিদিনের কাজের সময় নির্ধারণের জন্য নিম্নলিখিত সিস্টেম সঞ্চিত পদ্ধতি ব্যবহার করতে পারেন। এই উদাহরণটি প্রতিদিন 1:00 am সময়সূচী। পৃথক সঞ্চিত প্রক্রিয়াগুলির বাক্য গঠন এবং পরামিতিগুলির বৈধ পরিসীমা সম্পর্কিত বিশদগুলির জন্য Microsoft সহায়তা দেখুন।

DECLARE @job_name NVARCHAR(128), @description NVARCHAR(512), @owner_login_name NVARCHAR(128), @database_name NVARCHAR(128);

SET @job_name = N'Some Title';
SET @description = N'Periodically do something';
SET @owner_login_name = N'login';
SET @database_name = N'Database_Name';

-- Delete job if it already exists:
IF EXISTS(SELECT job_id FROM msdb.dbo.sysjobs WHERE (name = @job_name))
BEGIN
    EXEC msdb.dbo.sp_delete_job
        @job_name = @job_name;
END

-- Create the job:
EXEC  msdb.dbo.sp_add_job
    @job_name=@job_name, 
    @enabled=1, 
    @notify_level_eventlog=0, 
    @notify_level_email=2, 
    @notify_level_netsend=2, 
    @notify_level_page=2, 
    @delete_level=0, 
    @description=@description, 
    @category_name=N'[Uncategorized (Local)]', 
    @owner_login_name=@owner_login_name;

-- Add server:
EXEC msdb.dbo.sp_add_jobserver @job_name=@job_name;

-- Add step to execute SQL:
EXEC msdb.dbo.sp_add_jobstep
    @job_name=@job_name,
    @step_name=N'Execute SQL', 
    @step_id=1, 
    @cmdexec_success_code=0, 
    @on_success_action=1, 
    @on_fail_action=2, 
    @retry_attempts=0, 
    @retry_interval=0, 
    @os_run_priority=0, 
    @subsystem=N'TSQL', 
    @command=N'EXEC my_stored_procedure; -- OR ANY SQL STATEMENT', 
    @database_name=@database_name, 
    @flags=0;

-- Update job to set start step:
EXEC msdb.dbo.sp_update_job
    @job_name=@job_name, 
    @enabled=1, 
    @start_step_id=1, 
    @notify_level_eventlog=0, 
    @notify_level_email=2, 
    @notify_level_netsend=2, 
    @notify_level_page=2, 
    @delete_level=0, 
    @description=@description, 
    @category_name=N'[Uncategorized (Local)]', 
    @owner_login_name=@owner_login_name, 
    @notify_email_operator_name=N'', 
    @notify_netsend_operator_name=N'', 
    @notify_page_operator_name=N'';

-- Schedule job:
EXEC msdb.dbo.sp_add_jobschedule
    @job_name=@job_name,
    @name=N'Daily',
    @enabled=1,
    @freq_type=4,
    @freq_interval=1, 
    @freq_subday_type=1, 
    @freq_subday_interval=0, 
    @freq_relative_interval=0, 
    @freq_recurrence_factor=1, 
    @active_start_date=20170101, --YYYYMMDD
    @active_end_date=99991231, --YYYYMMDD (this represents no end date)
    @active_start_time=010000, --HHMMSS
    @active_end_time=235959; --HHMMSS

2
অসাধারণ. ঠিক আমার যা দরকার আপনাকে ধন্যবাদ :)
এজে।

9

টি-এসকিউএল ব্যবহার করা: আমার কাজ সঞ্চিত প্রক্রিয়া চালাচ্ছে। আপনি @commandআপনার স্কয়ার চালাতে সহজ পরিবর্তন করতে পারেন ।

EXEC msdb.dbo.sp_add_job  
   @job_name = N'MakeDailyJob',   
   @enabled = 1,   
   @description = N'Procedure execution every day' ; 

 EXEC msdb.dbo.sp_add_jobstep  
    @job_name = N'MakeDailyJob',   
    @step_name = N'Run Procedure',   
    @subsystem = N'TSQL',   
    @command = 'exec BackupFromConfig';

 EXEC msdb.dbo.sp_add_schedule  
    @schedule_name = N'Everyday schedule',   
    @freq_type = 4,  -- daily start
    @freq_interval = 1,
    @active_start_time = '230000' ;   -- start time 23:00:00

 EXEC msdb.dbo.sp_attach_schedule  
   @job_name = N'MakeDailyJob',  
   @schedule_name = N'Everyday schedule' ;

 EXEC msdb.dbo.sp_add_jobserver  
   @job_name = N'MakeDailyJob',  
   @server_name = @@servername ;

-1

এখানে একটি নমুনা কোড রয়েছে:

Exec sp_add_schedule
    @schedule_name = N'SchedulName' 
    @freq_type = 1
    @active_start_time = 08300

21
আপনার উত্তরে আপনার কোডের ব্যাখ্যা যুক্ত করা একটি ভাল ধারণা (এমনকি এটি আপনার কাছে প্রকাশ্য হলেও)।
নাথান হিউজেস

এই উত্তরে যথেষ্ট ব্যাখ্যা নেই। পর্যাপ্ত ব্যাখ্যা ব্যতীত পাঠকরা এই উত্তরটি বুঝতে পারবেন না।
জিনো শাজি

-2

আপনি যদি দৈনিক ব্যাকআপ চান // সিতে নিম্নলিখিত স্কেল স্ক্রিপ্ট স্টোরটি ব্যবহার করুন: \ ব্যবহারকারীগণ \ প্রশাসক \ ডেস্কটপ \ ডিবিএস স্ক্রিপ্ট \ DBBackUpSQL.sql

DECLARE @pathName NVARCHAR(512),
 @databaseName NVARCHAR(512) SET @databaseName = 'Databasename' SET @pathName = 'C:\DBBackup\DBData\DBBackUp' + Convert(varchar(8), GETDATE(), 112) + '_' + Replace((Convert(varchar(8), GETDATE(), 108)),':','-')+ '.bak' BACKUP DATABASE @databaseName TO DISK = @pathName WITH NOFORMAT, 
INIT, 
NAME = N'', 
SKIP, 
NOREWIND, 
NOUNLOAD, 
STATS = 10 
GO

টাস্ক শিডিয়ুলারটি খুলুন

টাস্ক তৈরি Triggersকরুন > ট্যাব নির্বাচন করুন নির্বাচন করুন New

বাটন নির্বাচন করুন দৈনিক রেডিও বোতাম

Okবাটন ক্লিক করুন

তারপরে ক্লিক Actionকরুন নতুন নির্বাচন করুন।

প্রোগ্রাম / স্ক্রিপ্টের পাঠ্য বাক্সে বোতাম পুটেন "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE"-S অ্যাডমিন-পিসি -i "C:\Users\admin\Desktop\DBScript\DBBackUpSQL.sql"(আপনার ফাইলের পাথের সাথে ম্যাচটি নিশ্চিত করুন এবং ডাবল উদ্ধৃত পথটি শুরু-> অনুসন্ধান বাক্সে রাখুন এবং যদি এটি খুঁজে পায় তবে এটি ক্লিক করুন এবং ব্যাকআপটি সেখানে আছে কিনা তা দেখুন )

- উপরের পাথটি 100 টি 90 লিখিতভাবে প্ররোচিত হতে পারে "C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" -S ADMIN-PC -i "C:\Users\admin\Desktop\DBScript\DBBackUpSQL.sql"

তারপরে ওকে বাটনে ক্লিক করুন

স্ক্রিপ্ট সময় অনুসারে কার্যকর হবে যা আপনি প্রতিদিনের ভিত্তিতে ট্রিগার ট্যাবে নির্বাচন করেন

উপভোগ কর.............

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