আপনি কীভাবে আপনার ওরাকল ডাটাবেস পরিবর্তনগুলি সংস্করণ করবেন?


32

টেবিলের সংজ্ঞা পরিবর্তন, নতুন অবজেক্টস, প্যাকেজ পরিবর্তন ইত্যাদিসহ অন্যান্য লোকেরা ডাটাবেসে পরিবর্তিত পরিবর্তনগুলি ট্র্যাক রাখতে কী কী পদ্ধতি ব্যবহার করছে তা জানতে আগ্রহী আমি কি বাহ্যিক সংস্করণ নিয়ন্ত্রণ ব্যবস্থা সহ ফ্ল্যাট ফাইল ব্যবহার করি? ট্রিগারসমূহ? অন্যান্য সফটওয়্যার?


1
এটি সত্যিই ডিবিএস্ট্যাকেক্সেঞ্জার.কম / সেকশনস / ২/২ এর সাথে সমান - আপনি সেখান থেকে এর জন্য কিছু অ-ওরাকল-নির্দিষ্ট ধারণা পেতে পারেন!
গৌরব

@ গৌরব আমি এটি দেখেছি, তবে আমি কিছু ওরাকেলের নির্দিষ্ট উত্তর চাইছিলাম।
লেইফ রিফেল

আপনি যা চেয়েছিলেন তা নয় তবে সম্পর্কিত: সংস্করণ ভিত্তিক পুনঃনির্ধারণ
জ্যাক ডগলাস

উত্তর:


22

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

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


1
আমার কর্মক্ষেত্রের এখানে উল্লিখিত ব্যক্তির অনুরূপ কর্মপ্রবাহ রয়েছে
সত্যজিৎ ভাট

10

আমি এই বিষয়টি সম্পর্কে অনেক চিন্তাভাবনা করেছি এবং পড়েছি। এটি কনফিগারেশন নিয়ন্ত্রণ এবং পরিচালনা কৌশল পরিবর্তন করার একটি বিস্তৃত বিষয়। এই বিষয়ে সিএমএমআইয়ের একটি ডোমেন রয়েছে। এমনকি সিএমএমআই 3-5-এর স্বীকৃতি অর্জনকারী সংস্থাগুলিতেও তারা কখনও কখনও তাদের ডাটাবেসগুলিকে নিয়ন্ত্রণ করে না।

এই প্রশ্নের উত্তর দেওয়া উচিত প্রতিবন্ধকতাগুলি মাথায় রেখে ।

  1. আপনার একজন রক্ষক রয়েছে এবং প্রতিটি ডিডিএল এই রক্ষক দ্বারা সম্পাদিত হয়।
  2. অন্যান্য লোকদের ডিডিএল বিবৃতি কার্যকর করার ক্ষমতা রয়েছে।
  3. পরিবর্তনগুলি কী হয়েছে তা কেবল আপনাকে লগ করতে হবে তবে আপনাকে বিস্তৃত পার্থক্যের তুলনা করার দরকার নেই।
  4. আপনার ডাটাবেস ডিজাইনটি বাহ্যিক সরঞ্জামের মাধ্যমে করা হয় তারপর ডাটাবেজে প্রকাশিত হয়। এই বাহ্যিক সরঞ্জামটি এমনকি সোর্স নিয়ন্ত্রণে ডিডিএল স্ক্রিপ্ট হতে পারে। তবে মূল বিষয় হ'ল এটি আপনার সোর্স নিয়ন্ত্রণ করে এটি ডাটাবেসে প্রকাশ করুন।
  5. আপনার তাত্ক্ষণিক পরিবর্তনগুলি জানতে হবে না তবে সময়ে সময়ে: যেমন প্রতি ঘন্টা, প্রতিদিন।
  6. আপনার একটি সংজ্ঞায়িত সার্ভার কাঠামো রয়েছে: বিকাশ, পরীক্ষা, উত্পাদন। এবং একটি ভাল পরীক্ষার কৌশল।

উত্তর 1

  • যদি 1, 4,6 সত্য হয় তবে আপনি একটি বাহ্যিক উত্স নিয়ন্ত্রণ ব্যবহার করতে পারেন। উদাহরণ স্বরূপ
    • এমবারকাডেরোর একটি ডাটাবেস পরিবর্তন পরিচালনার সরঞ্জাম রয়েছে ( http://www.embarcadero.com/products/db- بدل-manager-xe )। যা একটি ডাটাবেস (ওরাকল) বিপরীত ইঞ্জিনিয়ার এবং এটিকে তাদের উত্স নিয়ন্ত্রণে রাখার ক্ষমতা রাখে। তারপরে যে কোনও সংখ্যক বিকাশকারী, ডিবিএ এই স্কিমাতে পৌঁছাতে এবং এতে পরিবর্তন করতে পারে।
    • ওরাকল এসকিউএল ডিজাইনার এই পদ্ধতির অনুরূপ।
    • আপনাকে উত্স নিয়ন্ত্রণে টেবিল স্ক্রিপ্টগুলি তৈরি করা (এসএনএন, মুরুরিয়াল ইত্যাদি) এবং সেগুলি একই জিনিস বজায় রাখা।
    • http://www.liquibase.org উপরের স্বয়ংক্রিয় পদ্ধতি।
    • আমি কোড জেনারেটর লিখেছিলাম যা ডাল (ডেটা অ্যাক্সেস স্তর), ডিডিএল (সারণী তৈরি করুন) বিবৃতি উত্পন্ন করে। আমরা তাদের উত্স নিয়ন্ত্রণ এবং সেখানে রক্ষণাবেক্ষণ করা। আমি মনে করি তরলবাইসের মতো নিবেদিত সমাধান আরও ভাল কাজ করতে পারে।

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

অসুবিধাগুলি হ'ল যদি আপনি কোনও কারণে উত্পাদন বা টেস্ট সার্ভারগুলিতে পরিবর্তন করেন, দ্রুত ত্রুটি ফিক্স, প্রাথমিক কী পরিবর্তন ইত্যাদি You যেহেতু আসলে ডেভলপমেন্ট সার্ভার হ'ল আপনার প্রকৃত সত্য। অন্য উপায় না।

এটি একটি খুব বিকাশমুখী দৃষ্টিভঙ্গি। তবে আপনি যখন প্রথম কোনও নতুন মডিউল বিকাশ করবেন তখন এটি বেশ ভাল কাজ করে।

উত্তর 2 - যদি 1 এবং 6 সত্য হয়:

উত্তর 1 এর অনুরূপ পন্থা একটি ডেভলপমেন্ট সার্ভার বজায় রাখা। প্রত্যেকে এটি ব্যবহার করে এটি পরিবর্তন করে। সময় আপডেট করার সময় আসে না। আপনি একটি ডাটাবেস তুলনা সরঞ্জাম ব্যবহার করুন। এগুলি স্ক্রিপ্ট হিসাবে পান, উত্স নিয়ন্ত্রণে রাখুন।

- Red Gate Schema Compare supports Oracle
- Embercadero has similar tool
- https://github.com/carbonfive/db-migration
- http://www.sumsoftsolutions.com/svco/ (I have not used this product but I believe it belongs to this category.)
- Rails Active Migration (http://www.oracle.com/technetwork/articles/kern-rails-migrations-100756.html)

উত্তর 1 এবং উত্তর 2 এর মধ্যে পার্থক্য হল, উত্তর 1 এ আপনি পুরো ডাটাবেসের জন্য ডিডিএল স্টেটমেন্ট সংগ্রহ করেন এবং আপনি সেগুলি সঞ্চয় করেন। উত্তর 2 এ আপনাকে পরিবর্তনের প্রতিটি সংস্করণ সংরক্ষণ করতে হবে।

  1. শুরু
  2. V1 থেকে
  3. থেকে V2
  4. V3
  5. ...

আপনি যদি কোনও টেবিলে একটি কলাম রাখেন এবং পরে এটি সরিয়ে ফেলার সিদ্ধান্ত নেন। আপনি স্ক্রিপ্টগুলি এটিকে উত্তর 2 এ দেখান যখন উত্তর 1 এ আপনি কেবল সর্বশেষ সংস্করণটি দেখতে পাবেন। এবং পার্থক্যগুলি দেখতে আপনার ভি 2 এবং ভি 1 এর তুলনা করতে হবে। ব্যক্তিগতভাবে আমি উত্তরটি আরও ভাল পছন্দ করি যেহেতু আমি সহজেই শুরু এবং ভি 3, ভি 1 এবং ভি 3 এর তুলনা করতে পারি। উত্তর 2 এ, আমাকে সমস্ত পরিবর্তন সন্ধান করা উচিত। উত্স নিয়ন্ত্রণে উত্তরের 2 স্ক্রিপ্টে একটি বিশাল ব্যাং, জটিল স্ক্রিপ্ট থাকে s তথ্য খুঁজে পাওয়া শক্ত।

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

উত্তর 4 যদি আপনার 3 এবং 5 থাকে তবে নোট করুন যে এই পরিস্থিতিতে আপনার বাধা 6 নেই, এটি: আপনার কাছে বিকাশ, পরীক্ষা, পণ্য সার্ভার নেই vers শুধুমাত্র প্রোডাকশন সার্ভার। পরিবর্তনের পরিবর্তে ট্রিগার ট্রিগার। আপনি বাহ্যিক সরঞ্জাম ব্যবহার করে উত্স নিয়ন্ত্রণে পরিবর্তনগুলি আবিষ্কার করতে এবং ডিডিএল স্ক্রিপ্টগুলি সংরক্ষণ করে।

এই সরঞ্জামগুলির মধ্যে কে পরিবর্তনগুলি করেছে তা রেকর্ড করার ক্ষমতা থাকলে এটি কার্যকর হবে। নোট করুন যে এই সমাধানটিতে আপনি অতিরিক্ত ডিডিএল আলগা করে যা অন্তরগুলিতে করা হয়।



4

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


4

আমরা আমাদের 11 জি ডাটাবেসের জন্য স্কিমা সংস্করণ নিয়ন্ত্রণ ব্যবহার করেছি, তবে 11.2.2 এ সফ্টওয়্যারটিতে কিছু সমস্যা আছে had আমরা যদি এখনও সেই সমস্যার মধ্য দিয়ে কাজ করে যাচ্ছি না তবে এটি একটি দুর্দান্ত পণ্য হবে great


2

আমরা ওরাকল এসকিউএল ডিজাইনারের সাথে কাজ করতাম, যা (আমার ধারণা) এখন এসকিউএল বিকাশকারী ডেটা মডেলারের সাথে প্রতিস্থাপন করা হয়েছে। http://www.oracle.com/technetwork/developer-tools/datamodeler/overview/index.html

এটি বেশ সুন্দর ছিল, বিশেষ করে। কলামগুলির জন্য ওমগুলি সেট করার ক্ষমতা এবং সাধারণ কলামগুলি তৈরি করতে প্রচুর সময় সাশ্রয় করার ক্ষমতা (এমটাইম, সিটিটাইম ইত্যাদি)।




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