আমি কীভাবে ভুল ডাটাবেসটি ভুল করে সংশোধন করার ঝুঁকি হ্রাস করতে পারি?


12

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

আমার পরিস্থিতি এর মতো: আমার এসএসএমএসের একটি উদাহরণ রয়েছে যা আমি আমাদের ডেভ / স্টেজিং সার্ভার এবং আমাদের প্রোডাকশন সার্ভারের সাথে সংযোগ করতে ব্যবহার করি। আমাকে দেবের একগুচ্ছ ডেটা মুছতে হয়েছিল তাই আমি বুঝতে পেরেছিলাম যে আমার উত্পাদনের সাথে আমার সংযোগটি বন্ধ করা উচিত, তবে আমি যে ক্যোয়ারী উইন্ডোটি ব্যবহার করছিলাম তাতে আমি মনোযোগ দিই নি। (ভাগ্যক্রমে আমাদের কয়েক ঘন্টা পুরানো ব্যাকআপ ছিল))

আমি উত্পাদনের ডেটা নষ্টকারী প্রথম ব্যক্তি নই এবং আমি নিশ্চিত যে আমি শেষ নই। সুতরাং আমি চেকলিস্ট, সেরা অনুশীলন ইত্যাদির সন্ধান করছি যা আপনাকে ভুল ডাটাবেসে কোয়েরি কার্যকর করার ঝুঁকি হ্রাস করতে সহায়তা করে। এর আগেও কি আপনার সাথে এমনটি ঘটেছিল এবং কীভাবে আপনি এড়াতে চেষ্টা করার জন্য আপনার ওয়ার্কফ্লোটি মানিয়ে নিয়েছেন?


4
আপনি কি করছেন সেদিকে মনোযোগ দিন
সোয়াশেক

আমার এসকিউএল সরঞ্জাম (এসএসএমএস নয়) আমাকে "পঠনযোগ্য মোড" চালু করার অনুমতি দেয় যা সম্ভাব্যভাবে ডেটাবেস পরিবর্তন করতে পারে এমন কোনও বিবৃতি প্রত্যাখ্যান করে।
a_horse_with_no_name

পর্যাপ্ত ঘুম এবং অনুশীলন পান, আরও মনোযোগ দিন।

উত্তর:


11

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

এটার মত

বা এসএসএমএস সরঞ্জামগুলির জন্য এটি পছন্দ করুন (একটি দুর্দান্ত সংযোজন, এবং রঙটি উপরে নির্মিত অবস্থায় আরও ভাল দেখতে পাই বরং বিল্ট ইন অন্তর্নিহিতের মতো নীচে) অথবা এটা


2
+1 এটি আমি করি। উত্পাদনের জন্য লাল, পরীক্ষার পরিবেশের জন্য হলুদ এবং আমার স্থানীয় বিকাশের ডেটাবেসের জন্য সবুজ ব্যবহার করুন। পুরানো ট্র্যাফিক লাইট রূপক এখানে ভাল কাজ করে।
চিতাবাঘ স্কিনপিলবক্সহ্যাট

6

আপনি যারা জিজ্ঞাসা উপর নির্ভর করে, একটু বেশি কাজ করতে হবে, কিন্তু আমি সবসময় জন্য বিবৃতি নিচে ব্যবহারের অভ্যাস পেয়েছিলাম সব উৎপাদন বা প্রাক উৎপাদন ক্যোয়ারী উইন্ডোজ, এবং সকলের জন্য UPDATE, DELETEএবং INSERTসব পরিবেশে বিবৃতি।

BEGIN TRAN
-- END OF QUERY WINDOWS
ROLLBACK TRAN
PRINT 'Transaction rolled back.'

যদি আমি এটি দেখতে পাই তবে আমি অবিলম্বে জানতে পারি, "ওফস, সেই ক্যোয়ারী উইন্ডোটি এখনও সংযুক্ত ছিল" বা "ওহ ক্রপ, আমি অটো কিছু করেছি যা আমার উচিত ছিল না" - এবং হ্যাঁ, আপনি অবজেক্ট এক্সপ্লোরারটিতে ডাটাবেসটি বন্ধ করতে পারেন, তবে একটি কোয়েরি উইন্ডোটি এখনও সংযুক্ত হতে পারে। আমার মনে, সমস্ত উত্পাদন প্রশ্নগুলি হাইলাইট করা উচিত এবং এর সাথে চালানো উচিত BEGIN TRAN; সবকিছুর উপর একটি দুর্ঘটনাজনক এফ 5, সমস্ত কিছু পিছনে রোল করা উচিত, নয় COMMIT। এটি যা করে তা ব্যবহারকারীকে তার কর্ম সম্পর্কে সচেতন হতে বাধ্য করে; আপনার খাওয়া প্রতিটি খাবারের ছবি তোলার মতোই ওজন হ্রাস করতে সহায়তা করবে কারণ আপনার অবশ্যই থামানো উচিত এবং আপনি কী করছেন সে সম্পর্কে ভাবেন।

এটি করতে বেশি সময় লাগে না? হ্যাঁ. এটি 100% ত্রুটি বন্ধ করে দেয়? হ্যাঁ, কারণ কখনই কোনও অঙ্গীকার করা হয় না, যদি না আমি ম্যানুয়ালি জোর করে বলি COMMIT, পোস্টটি পোস্ট করি, যা প্রকৃতিই আমাকে তা বিবেচনা করতে বাধ্য করে COMMIT


4
আমিও এই অনুশীলন সম্পর্কে প্রচার করি (এবং এটি এসএসএমএস সরঞ্জাম প্যাকের আরেকটি বৈশিষ্ট্য - যা আপনাকে নতুন ক্যোয়ারী টেমপ্লেটটি কাস্টমাইজ করার অনুমতি দেয়), তবে আপনাকে বিপরীত দৃশ্যের বিষয়ে সতর্ক থাকতে হবে - আপনি বিগইন ট্রান এবং ক্যোয়ারিকে হাইলাইট করেছেন, তবে চালনাটি ভুলে যান কমিট বা রোলব্যাক, তারপরে আপনি দুপুরের খাবারের জন্য, উইকএন্ডে বা 6 মাসের সাব্ব্যাটিকাল থেকে বিল্ডিং ছেড়ে যাওয়ার সাথে সাথে শিসটি বাজান।
অ্যারন বার্ট্র্যান্ড

6

উত্পাদন পরিবর্তনের জন্য একটি দ্বিতীয় ব্যবহারকারীর অ্যাকাউন্ট তৈরি করুন এবং আপনার অ্যাকাউন্টে বর্তমানে অ্যাক্সেস প্রত্যাহার করুন। আপনি যখন উত্পাদন স্টাফ করতে চান আপনি দ্বিতীয় ব্যবহারকারী হিসাবে এসএমএস চালাতে পারেন।

সম্পাদনা: এটি কেবলমাত্র ডোমেন লগইনের ক্ষেত্রেই উপকারী হবে। আপনার যদি দুটি পৃথক ডোমেন অ্যাকাউন্ট থাকে তবে আপনাকে ডিএইভি এবং পিআরডি এর জন্য এসএসএমএসের পৃথক দৃষ্টান্ত রাখতে বাধ্য হবে। আপনি যদি ডোমেন অ্যাকাউন্টগুলি ব্যবহার না করে থাকেন তবে এই পরামর্শটি আপনাকে সত্যিই বেশি সাহায্য করবে না।

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

এখানেও একটি ভাল সাদা কাগজ যা মনের মধ্যে এসেছিল: http : //download.mic Microsoft.com/download/D/2/D/D2D931E9-B6B5-4E3B-B0AF-22C749F9BB7E/SQL_Server_Separation_of_Duties_Witeite_s_jul2011.docx

এটি আপনার দৈনিক লগইন অ্যাকাউন্টকে পূর্ণ এসএ অ্যাক্সেস না দেওয়ার মতো বিষয়গুলি নিয়ে আলোচনা করে।


আপনি বলতে চাচ্ছেন যে কোনও একক একক এসএসএমএস উদাহরণ থেকে একাধিক সার্ভারের অ্যাক্সেস অক্ষম করবে? বা আমি কি মিস করেছি?
অ্যান্ড্রি এম

আমরা ইতিমধ্যে বিভিন্ন ব্যবহারকারীর অ্যাকাউন্ট ব্যবহার করছি, আমি কীভাবে এটি সাহায্য করে তা সত্যি দেখছি না।
Stijn

1
আমি মনে করি এটি কেবলমাত্র যদি আপনি ডোমেন অ্যাকাউন্টগুলি ব্যবহার করেন তবে প্রয়োগ হয়। যদি তা হয় বা আপনার ডিইভি এবং পিআরডি সংযোগের জন্য এসএসএমএস থাকে তবে আপনাকে একটি পৃথক উদাহরণ ব্যবহার করতে বাধ্য করবে। হতে পারে আমি একটি এসএসএমএস অ্যাড-ইন লিখেছি যা এই দৃশ্যের সাথে সহায়তা করে, সম্ভবত আপনি যখনই আপনার উত্পাদন সংযোগে কোড চালানোর চেষ্টা করবেন তখন একটি সতর্কতা পপ করবেন ...
মার্ক উইলকিনসন

ওফ, মন্তব্যে সমস্ত টাইপের জন্য দুঃখিত। ভোর সকালে মোবাইল ফোনের মাধ্যমে প্রতিক্রিয়া ... তবে আপনি ধারণা পাবেন get :)
মার্ক উইলকিনসন

হ্যাঁ আমি আপনার উত্তরের সারাংশ পেয়েছি :) সম্ভবত আপনি নিজের মন্তব্যে নিজের উত্তরটি ব্যবহার করতে পারেন?
স্টিঞ্জ

4

আমার অ্যাড-ইনটি দেখুন: এসএসএমএস বুস্ট। এটি আপনার প্রয়োজন ঠিক আছে। আমি এসএসএমএস স্ট্যাটাস-বার রঙিন বৈশিষ্ট্যটি উন্নত করেছি যাতে এটি আপনার বর্তমান ডাটাবেসটিকে ট্র্যাক করে এবং এর রঙ পরিবর্তন করে। অতিরিক্ত হিসাবে আপনি "গুরুত্বপূর্ণ ডিবি সতর্কতা" ভাসমান সরঞ্জামদণ্ড যোগ করতে পারেন:

এখানে চিত্র বর্ণনা লিখুন

এই বৈশিষ্ট্য সম্পর্কে এখানে আরও পড়ুন: http://www.ssmsboost.com/F Features / ssms-add-in-preferred-connitions


2

আমার একটি কাজের মধ্যে আমরা এই উদ্দেশ্যে একটি সরঞ্জাম বিকাশ করেছি।

আপনি যদি পিআরডি-তে কোনও বিবৃতি চালাতে চান, এটি আপনাকে লিখতে বাধ্য করেছিল:

run_sql servername PROD <file_with_sqlstatements>.sql

এটি একটি লগফাইলে ফলাফলগুলি লিখতে পারে এবং আমাদের পরিচালনা ডাটাবেসে একটি লগের মধ্যে কার্যকরকরণ সংযোজন করে। উদাহরণস্বরূপ এটি খুব কার্যকর হয়েছিল যখন আমরা নির্দিষ্ট টেবিলে পরিবর্তন করার জন্য সর্বশেষ ব্যক্তি কে তা নির্ধারণ করতে চেয়েছিলাম।

এসএসএমএসে, আপনি যখন সার্ভারগুলি নিবন্ধভুক্ত করেছেন, আপনি কোনও সংযোগে একটি নির্দিষ্ট রঙ প্রয়োগ করতে পারেন, যাতে উদাহরণস্বরূপ সমস্ত পিআরডি-সংযোগগুলির নীচে একটি লাল রঙ থাকে। তবে সম্ভব হলে প্রোডাকশন সার্ভারে জিইউআই-সরঞ্জামগুলি ব্যবহার করা এড়ানো ভাল।


আমি কেবল আমার মেশিনে এসএসএমএস চালাচ্ছি, সংযোগের স্ট্রিংয়ের রঙ সম্পর্কে দুর্দান্ত পরামর্শ t
Stijn

3
@ স্টিজন নোট করুন যে অন্তর্নির্মিত রঙ বৈশিষ্ট্যটি সমস্ত পরিস্থিতিতে কাজ করে না - আপনি কীভাবে ক্যোয়ারি উইন্ডোটি খুলেন তার উপর নির্ভর করে। এটি অনেক বেশি নির্ভরযোগ্য (তবে এসএসএমএস 2012+ এ বিনামূল্যে নয়) হ'ল এসএসএমএস সরঞ্জাম প্যাক । ম্লাদেন সবেমাত্র একটি 2014-সামঞ্জস্যপূর্ণ সংস্করণ প্রকাশ করেছে।
অ্যারন বার্ট্র্যান্ড

অ্যারন টুলটি খুব আকর্ষণীয় দেখায়, আমি পরীক্ষার সংস্করণটি একবার দেখে নেব, ধন্যবাদ!
Stijn

4
আরেকটি, বিকল্প রঙিন সমাধানটি এসকিউএল প্রম্পটে যা নিখরচায় নয়, এটি একটি সুন্দর নিফটি পিস piece এটি কেবল নীচে যা এসএসএমএস করে তার চেয়ে উপরের ট্যাবগুলিকে রঙ করে।
মার্ক সিংকিনসন

1

আরও দুটি টিপস, যেহেতু আমি এখানে ইতিমধ্যে কিছু দেখতে পাচ্ছি না:

  1. আমার ওয়ার্কফ্লোতে আমি প্রায়শই একক উইন্ডোতে একাধিক বিবৃতি দিয়ে কাজ করি এবং আমি পাঠ্য-পরে-চালানো প্রবাহ নির্বাচন করতে বেশ ব্যবহার করি। তবে কোনও পাঠ্য নির্বাচন না করা এবং ফলস্বরূপ উইন্ডোতে সমস্ত বিবৃতি কার্যকর করার সময় আমি দুর্ঘটনাক্রমে F5 চাপতে ভয় পাই। সুতরাং প্রতিবারই যখন আমি একটি নতুন উইন্ডো খুলি তখনই টাইপ করা শুরু করি যা কিছু আবর্জনা এসকিউএল সংকলন করতে অস্বীকার করবে। এটি কার্যকরভাবে পুরো ব্যাচকে নির্বাহযোগ্য করে তোলে না। (সতর্কতা! আপনি যদি একাধিক ব্যাচ পৃথক পৃথকভাবে ব্যবহার করেন GOতবে প্রতি ব্যাচে আবর্জনা আবশ্যক)

  2. প্রোডাকশন সার্ভারে ডেটা পরিবর্তন করার সময় (বা যখনই আমাকে চরম যত্নের প্রয়োজন হয়) - অন্তর্নিহিত লেনদেনগুলি খুব দরকারী (আপনি হয় SET IMPLICIT_TRANSACTIONS ONবা এসএসএমএসে একটি বিকল্প পরিবর্তন করেন যাতে বিকল্পটি প্রতিটি নতুন উইন্ডোর জন্য কার্যকর হয়)। এইভাবে প্রতিটি বিবৃতি যা লেনদেন নয় - একটি নতুন লেনদেন শুরু করে। আমি কেবলমাত্র প্রতিশ্রুতি দিই যদি আমি যা ইচ্ছা করি তখনই আমি দুবার তা নিশ্চিত করেছিলাম।


0

পৃথক উইন্ডোজ ব্যবহারকারীকে ব্যবহার করার চেষ্টা করুন, যিনি একমাত্র প্রডাকশন ডাটাবেস কনফিগার করেছেন। এই ব্যবহারকারীর পুরো রঙের থিমটি লাল রঙে সেট করুন। দ্রুত ব্যবহারকারী স্যুইচিংয়ের সাথে এটি কোনও সমস্যা হওয়া উচিত নয়।

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

অন্য একটি বিকল্প (একই ধারণা) একটি ভিন্ন থিম সহ একটি দূরবর্তী ডেস্কটপ বা ভার্চুল মেশিন ব্যবহার করছে।


0

এফ 5 টিপে যখন ক্যোয়ারী উইন্ডোতে সমস্ত কিছু কার্যকর করা রোধ করার আরেকটি সহজ সরল উপায় হ'ল / * এবং * দিয়ে সমস্ত বিষয়বস্তু ঘিরে ফেলা হবে এবং এভাবে পুরো বিষয়টি একটি মন্তব্য করা।

আপনি এখনও চাইছেন যে বিবৃতিগুলি তাদের কাছে হাইলাইট করে এবং সাধারণ পদ্ধতিতে F5 টিপে টিপতে পারেন, যদিও তারা একটি মন্তব্যে আবদ্ধ রয়েছে।

দ্রষ্টব্য: আপনি যদি এই পদ্ধতিটি চয়ন করেন তবে আপনি সিনট্যাক্স হাইলাইটিং বা স্বয়ংক্রিয়-সম্পূর্ণ থেকে উপকৃত হতে পারবেন না, তবে আপনি যদি সেই বৈশিষ্ট্যগুলি এত বেশি ব্যবহার না করেন তবে এটির ক্ষতি হওয়া 100% অসম্ভব তা নিশ্চিত করার জন্য তাদের ত্যাগ স্বার্থক হতে পারে ensure দুর্ঘটনাজনক F5 সহ ডাটাবেস।

সম্পাদনা করুন: আপনি কোয়েরি উইন্ডোর মধ্যে কোথাও / * * / ব্যবহার করতে পারবেন না, অন্যথায় আপনি অবিচ্ছিন্নভাবে পরবর্তী কোডটি অসুবিধে করবেন। পরিবর্তে - স্বরলিপি সঙ্গে আটকা প্রয়োজন।


-1

মূল প্রশ্নে স্বশেকের মন্তব্যের সাথে একমত, কীভাবে কার্যকর করা হবে ...

@@ সার্ভারনেম + '\' + @@ সার্ভিসনেম নির্বাচন করুন

... কোনও ডিএমএল চালানোর আগে, বা আপনি কোনও সংস্থার সাথে সংযুক্ত রয়েছেন তা দেখতে বা এমনকি কোনও লেনদেনে সমস্ত ডিএমএল চালানোর জন্য স্ট্যাটাস বারের দিকে তাকাতে যাতে আপনি বুঝতে পেরেছেন যে আপনি কোনও ভুল করেছেন? এখানে প্রচুর দুর্দান্ত পরামর্শ দেওয়া হয়েছে তবে মূলত, যখন এটি সম্ভাব্য ধ্বংসাত্মক ডিএমএলের কথা আসে তখন জিমিক্স কেবল আপনাকে এ পর্যন্তই পেয়ে যাবে। আমি সবসময় চেক, ডাবল চেক এবং আবার চেক। এবং যদি আমি অল্প পরিমাণে ডেটা নিয়ে কাজ করি তবে আমি ডিএমএলের আগে একটি নতুন টেবিলের মধ্যেও নির্বাচন করতে পারি, আমার ডিএমএল চালিত করি, জিনিসগুলি সঠিকভাবে কাজ করেছে তা নিশ্চিত করার জন্য কিছু তুলনা করুন, তারপরে "ব্যাকআপ" টেবিলটি ফেলে দিন। কাজ বেশি চালাক, শক্ত নয়।

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