এসকিউএল সার্ভার স্যান্ডবক্স


9

আমি আমাদের রিপোর্ট বিকাশকারীদের তাদের কাজের জন্য একটি স্যান্ডবক্স সেটআপ করার চেষ্টা করছি My আমার বর্তমান পরিকল্পনাটি প্রতি সন্ধ্যায় ডাটাবেসটি "রিসেট" করার জন্য তবে কীভাবে কীভাবে করবেন সে সম্পর্কে আমি নিশ্চিত নই। রিসেট দ্বারা আমি যা বোঝাতে চাই তা হ'ল আমি সার্ভারে একটি ডেটাবেস বাদে সমস্ত ব্যবহারকারীর টেবিল, ভিউ, সঞ্চিত প্রক্রিয়া ইত্যাদির মূলত ড্রপ করতে চাই। আমি মনে করি যে অন্য একটি বিকল্প হ'ল ডেটাবেসটিও ড্রপ এবং পুনরায় তৈরি করা হবে তবে আমি নিশ্চিত যে এর অর্থ হ'ল উপযুক্ত এডি গ্রুপ / লোকদের মধ্যেও পুনরায় অ্যাক্সেস পুনরুদ্ধার করা।

আমি সত্যিই জানি না এটি করার সবচেয়ে ভাল উপায় কী হবে তাই আমি আশা করছি আপনারা কেউ কেউ কিছু ভাল ধারণা / পরামর্শ সরবরাহ করতে সক্ষম হবেন। ধন্যবাদ।

স্পষ্টতার জন্য, আমরা আমাদের ডাটাবেস: মূলত এটি করতে চাই: http://try.discourse.org/t/this-site-is-a-sandbox-it-is-reset-every-day/57 । কেবল পার্থক্য হ'ল আমরা প্রতিদিন আমাদের ব্যবহারকারীদের পুনরায় তৈরি করতে চাই না।

সংস্করণ: এসকিউএল সার্ভার ২০০৮
সংস্করণ: বিকাশকারী এবং এন্টারপ্রাইজ

উত্তর:


8

অন্য ধারণাটি হ'ল কেবল একটি রাতের কাজ সেট আপ করা যা একটি অনুলিপি ব্যাকআপ করে এবং এটি ডেভ সার্ভারে পুনরুদ্ধার করে (বা একই সার্ভারে, যদি আপনার কেবলমাত্র একটি থাকে তবে এটি দুর্দান্ত ধারণা নাও হতে পারে)। এ সম্পর্কে দুর্দান্ত বিষয়টি হ'ল পুনরুদ্ধারটি যে কোনও সার্ভারে (বা একাধিক সার্ভার) যেতে পারে এবং প্রাথমিক ডাটাবেসের যে কোনও ক্রিয়াকলাপ থেকে পুরোপুরি ডিকপল করা যেতে পারে।

সার্ভারে 1:

BACKUP DATABASE db TO DISK = '\\someshare\file.bak' 
  WITH COPY_ONLY, INIT, COMPRESSION;

সার্ভার 2 এ:

RESTORE DATABASE db_dev FROM DISK = '\\someshare\file.bak'
  WITH REPLACE, RECOVERY;

MOVEসার্ভারগুলির মধ্যে ডিস্কের বিন্যাস পৃথক হলে (অথবা আপনি যদি একই সার্ভারে অনুলিপিটি রেখেছেন) আপনার কমান্ডগুলিও যুক্ত করতে হবে ।

RESTORE DATABASE db_dev FROM DISK = '\\someshare\file.bak'
  WITH REPLACE, RECOVERY,
  MOVE 'data_file_name' TO 'D:\somepath\somefile.mdf',
  MOVE 'log_file_name'  TO 'E:\somepath\somefile.ldf';

আপনি যদি একই সার্ভারে পুনরুদ্ধার করেন তবে ব্যবহারকারীদের সাথে আপনার কোনও সমস্যা হওয়া উচিত নয়। আপনি যদি অন্য কোনও সার্ভারে পুনরুদ্ধার করেন তবে আপনার ব্যবহারকারীরা উপস্থিত থাকবেন কিন্তু সার্ভার-স্তরের লগইনগুলি নাও থাকতে পারে। এটি ঠিক করার জন্য স্ক্রিপ্টগুলি রয়েছে এবং এসকিউএল সার্ভার ২০১২-এ একটি নতুন বৈশিষ্ট্য রয়েছে (এতে ডাটাবেস রয়েছে ) যা সম্পূর্ণরূপে সমস্যাটি দূর করে।


আমাদের কাছে ডেভ / প্রোড রয়েছে তবে ডেভই একমাত্র সার্ভার যেখানে এটি ঘটবে। প্রোড কেবল প্রোড-রেডি প্রক্রিয়াগুলির জন্য।
Kittoes0124

এটিই আমি সমাধানটি বেছে নেব, কেবল দয়া করে মনে রাখবেন যে বেশিরভাগ ক্ষেত্রে আপনি কেবল উত্পাদনকে পরিবেশ পরিবেশে অনুলিপি করতে চান না। দয়া করে জায়গায় একটি পরিমাপ (স্ক্রিপ্ট?) রাখুন, যা উদাহরণস্বরূপ, ব্যবহারকারীদের ইমেল ঠিকানা, যোগাযোগের বিশদ ইত্যাদি মুছে ফেলবে বা অস্পষ্ট করবে You
জিরোভিজিবল

5

যেহেতু আপনার এন্টারপ্রাইজ সংস্করণ ইঞ্জিনের সাথে উদাহরণ রয়েছে তাই আমি ডাটাবেস স্ন্যাপশট ব্যবহার করব ।

এটি আপনাকে পুরো ডাটাবেসটি পুনরুদ্ধার না করেই, দিনের বেলা যে কোনও পরিবর্তন দ্রুত এবং সহজেই ফিরে আনতে দেবে।

মনে রাখবেন যে বিকাশকারীরা যদি বড় ডেটা লোড করার পরিকল্পনা করে থাকেন (তারা না বলে মনে হচ্ছে?), তবে এটি উপযুক্ত নাও হতে পারে।


যদি তারা বড় ডেটা লোড করে তবে এটি উপযুক্ত হবে না কেন? আমাদের সম্ভবত লোড করুন .... এখন থেকে 100 কলামের 8 মিলিয়ন সারি (যদিও তারা "হওয়া উচিত নয়) তবে আমরা তাদের এগুলি করা থেকে বিরত রাখতে চাই না। আমাদের সত্যিকারের যত্নের বিষয় হ'ল দিনের শেষে সমস্ত কিছু কমে যায়।
Kittoes0124

2
@ কিট্টোস কারণ উত্স ডেটা পরিবর্তিত হলে একটি স্ন্যাপশট বজায় রাখতে হয়। উত্সটি পরিবর্তিত হলে এটি উত্স থেকে বিদ্যমান পৃষ্ঠাগুলি টানতে হবে, যাতে এটি "আগে" দেখুনটি বজায় রাখে। উত্সের ডেটা পরিবর্তিত হওয়া অবধি এটি করা হয় না (স্ন্যাপশট একটি বিচ্ছিন্ন ফাইল ব্যবহার করে যা ডেল্টাস বাদে খালি)। এই রক্ষণাবেক্ষণটি বেশ ব্যয়বহুল হয়ে উঠতে পারে। দেখুন কিভাবে ডাটাবেসের কাজ স্ন্যাপশট
অ্যারন বারট্র্যান্ড

@ অ্যারনবার্ট্র্যান্ড ঠিক আছে, সুতরাং যদি কোনও দিনের মধ্যে ডাটাবেসটি 8 গিগাবাইটে বেড়ে যায় তবে স্ন্যাপশটটি পুনরুদ্ধার করা হলে সমস্ত নতুন ডেটা সরিয়ে ফেলা হবে তবে ডাটাবেসটি এখনও 8 জিবি আকারের হবে? নাকি আমি ভুল বুঝাবুঝি করছি?
Kittoes0124

@ কিটস একটি স্ন্যাপশট কেবল পঠনযোগ্য, সুতরাং আপনি কেবল উত্স ডাটাবেসে নতুন ডেটা লোড করতে সক্ষম হবেন। দিনের বেলা আপনি যদি 8 জিবি যোগ করেন তবে এটি স্ন্যাপশটে দৃশ্যমান হবে না । যখন আপনি স্ন্যাপশটটি রিভার্ট / ড্রপ করেন, উত্স ডাটাবেসে এখনও সেই 8GB ডেটা থাকবে এবং সেই অনুযায়ী আকার হবে। আপনি যদি অন্য কোনও স্ন্যাপশট নেন তবে নতুন ডেটা দৃশ্যমান হবে visible আপনি দিনের বেলা 8 জিবি সরিয়ে ফেললে এটি স্ন্যাপশটে যুক্ত হবে ।
অ্যারন বারট্র্যান্ড

1
@ কিট্টোস যদি আপনি বোঝাতে চান যে স্ন্যাপশটটি নেওয়া হয়েছিল সেই সময়ে ফিরে গিয়ে 8 জিবি ডেটা লোডটি পূর্বাবস্থায় ফিরিয়ে আনতে চান, হ্যাঁ এটি আপনার ডেটা ফাইলগুলি সেটির আকারে ফিরিয়ে আনবে (আপনি আসলে ফাইলগুলি আরও ছোট রাখতে চান কিনা আগামীকাল আপনি আবার 8 জিবি লোড করার সময় আপনি আরও অটোগ্রো করতে পারেন অন্য সমস্যা issue তবে আমি সেই দৃশ্যের স্পষ্টভাবে পরীক্ষা করিনি। এবং যে নিবন্ধটি আমি উল্লেখ করেছি, এটি অগত্যা বোকা নয়, কারণ এটি অন্তর্নিহিত স্টোরেজের নির্ভরযোগ্যতার উপরও জড়িত। ব্যাকআপ হ'ল এটি করার একটি নিরাপদ উপায়।
অ্যারন বারট্র্যান্ড

0

এটি আপনাকে সহায়তা করে কিনা তা দেখতে আমার কয়েক সেন্ট যুক্ত করুন:

আমার সংস্থায় আমাদের একই অবস্থা রয়েছে যে প্রতি রাতে বিকাশকারীরা দিনের বেলা যে ডাটাবেসগুলি ব্যবহার করে যাচ্ছেন তা রিফ্রেশ করতে চান। এর অর্থ হ'ল আমাদের কাছে ডেটাবেসগুলির একটি সেট রয়েছে যা দেব স্পর্শ করে না - এবং ডেটাবেসগুলির আরও একটি সেট বলতে যা সঠিক কপি এ তবে তারা তাদের জিনিসগুলি করে তবে প্রতি রাতে সতেজতা পেতে চায় - আসুন বি বলতে দিন । এটি 1 একক সার্ভার উদাহরণে ঘটে।

আমি যা বাস্তবায়ন করেছি তা অর্জনের জন্য একটি ন্যাশনাল রিস্টোর প্রক্রিয়া। নীচে এটি কীভাবে কাজ করে:

ডাটাবেসগুলির তালিকা সহ একটি ড্রাইভার টেবিল তৈরি করুন যা প্রতি সন্ধ্যায় পুনরুদ্ধার করা প্রয়োজন (যেমন আপনি উল্লেখ করেছেন)।

সারণী: নাইটলিস্টেস্টোর (অরিজিনালডিবি, রিস্টোরডিবি, ব্যাকআপলোকেশন, সক্ষম_ওয়াইএন, ফলাফল, পাস)

তারপরে আপনি কিছু টিএসকিউএল লিখতে পারেন যা উপরের টেবিল থেকে ডাটাবেসের তালিকার মধ্য দিয়ে লুপ হয়ে যাবে এবং তারপরে পুনরুদ্ধারগুলি সম্পাদন করবে এবং ফলাফলগুলিতে কোনও সাফল্য বা ব্যর্থতা লগ করবে এবং কিছুটা 1 = পাস বা 0 = ব্যর্থ হবে। সক্ষম করা_ওয়াইএন নির্ধারণ করবে যে সেই ডাটাবেসটি পুনরুদ্ধার করা দরকার কিনা।

ভবিষ্যতে যদি আরও ডেটাবেস যুক্ত করা হয় তবে আপনাকে কেবল সারণীতে থাকা inোকাতে হবে এবং সক্ষম_ওয়াইএন বিটটি ওয়াই (সক্ষম) তে সেট করতে হবে।

এই পদ্ধতিটি আরও নমনীয় এবং পরিচালনাযোগ্য হবে।

যদি আপনি যে এসকিউএল লিখতে চান তবে (আমি নিশ্চিত, আপনি এটি লিখতে সক্ষম হবেন :-)), কেবল আমাকে পিং করুন বা একটি মন্তব্য যুক্ত করুন এবং আমি এটি ভাগ করব will

আছে HTH

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