কম্পিউটার টিউটোরিয়াল

IBM DB2 ডাটাবেস অ্যাডমিনিস্ট্রেশন শিখুন: সেরা অনুশীলন এবং প্রয়োজনীয় বিষয়াবলী

IBM DB2 হল IBM দ্বারা ডেভেলপ এবং মালিকানা অধিকারযুক্ত একটি রিলেশনাল ডাটাবেস। DB2 ডাটাবেস একাধিক প্ল্যাটফর্মের জন্য উপলব্ধ যার মধ্যে লিনাক্স, ইউনিক্স, এবং উইন্ডোজ (LUW) অন্তর্ভুক্ত। DB2 ডাটাবেস সফ্টওয়্যার হিসেবে একাধিক মডেল বা এডিশনে উপলব্ধ।

DB2 এর একটি এডিশন যাকে Community Edition বলা হয়, ডেভেলপারদের জন্য আজীবন ফ্রি উপলব্ধ, অন্যান্য এডিশন হলো Standard এবং Enterprise Edition যেগুলো লাইসেন্স প্রয়োজন। এই ব্লগে আমি IBM DB2 ডাটাবেস অ্যাডমিনিস্ট্রেশন সংক্রান্ত কিছু টাস্ক শেয়ার করছি। আশা করি ডাটাবেস মেইনটেইন করার নিয়মিত কার্যক্রমে এটি আপনার জন্য উপকারী হবে।

  1. লাইসেন্স ডিটেইল খুঁজে বের করা
  2. DB2 সার্ভার, ইন্সট্যান্স, ডাটাবেস সম্পর্ক
  3. DB2 অপারেটিং সিস্টেম গ্রুপ
  4. ডাটাবেস প্যারামিটার কনফিগারেশন i) গ্লোবাল লেভেল ii) ইন্সট্যান্স লেভেল iii) ডাটাবেস লেভেল
  5. DB2 ইনস্টলেশন, ক্লায়েন্ট, ইন্সট্যান্স, ডাটাবেস তৈরি, পরিবর্তন, মডিফাই, ড্রপ
  6. ডিফল্ট টেবলস্পেস, টেবলস্পেস তৈরি, টেবলস্পেস লিস্ট
  7. লিসেনার কনফিগারেশন
  8. আর্কাইভ কনফিগারেশন

১) লাইসেন্স ডিটেইল খুঁজে বের করা: আপনার প্রোডাক্ট লাইসেন্স ডিটেইল চেক করতে নিচের কমান্ডগুলো ব্যবহার করুন।

$>db2licm -l
Product name: "DB2 Community Edition"
License type: "Community"
Expiry date: "Permanent"
Product identifier: "db2dec"
Version information: "11.5"
Max amount of memory (GB): "16"
Max number of cores: "4"
Features: IBM DB2 Performance Management Offering: "Not licensed"

২) DB2 সার্ভার, ইন্সট্যান্স, ডাটাবেস সম্পর্ক (Non-partitioned)

নিচের ফিগার ১ দেখুন, ফিগার ১-এ চিত্রিত থাকা মতে, একটি Db2 Server হল একটি ডাটাবেস বাইনারি ইনস্টলেশন ডিরেক্টরি, যাকে DB2COPYn মতো নাম দিয়ে ডিফাইন করা যায়। এই সার্ভার আপগ্রেড, মাইগ্রেট এবং একই সার্ভারে একাধিক ডাটাবেস এবং ইন্সট্যান্সের জন্য ইউনিক পরিবেশ পৃথক করতে ব্যবহার করা যায়। আপনি একটি সিঙ্গেল সার্ভারে একাধিক DB সার্ভার ইনস্টলেশন তৈরি করতে পারেন। DB2 সার্ভার ক্লাস্টারের একাধিক নোডেও পার্টিশন হিসেবে একই লোকেশনে ইনস্টল করা যায়। DB2 সার্ভার কনফিগারেশন ফাইলে প্যারামিটার ব্যবহার করে মেইনটেইন করা যায় (গ্লোবাল CFG হিসেবে চিত্রিত)। DBA একই সেট প্যারামিটার ব্যবহার করে সকল ডাটাবেস এবং ইন্সট্যান্স ম্যানেজ করার জন্য একাধিক DB2 ইন্সট্যান্স টিউন/অটোমেট করার পলিসি তৈরি করতে পারেন। DB2 ইন্সট্যান্স পার্টস ভাগ করা যায় যাতে প্রসেস, থ্রেড, এবং মেমরি এরিয়ার সেট থাকে, একাধিক ডাটাবেস মেইনটেইন এবং কানেক্ট করার জন্য। একটি ইন্সট্যান্স কনফিগারেশন ফাইল দিয়ে কনফিগার করা যায় (DBM CFG হিসেবে চিত্রিত), এবং রিসোর্স এলোকেশনের জন্য পলিসি তৈরি করা যায়। অ্যাপ্লিকেশন প্রয়োজন অনুযায়ী কানেকশনের জন্য পোর্ট ডিফাইন করা যায়। DB2 ডাটাবেস একাধিক লজিক্যাল স্টোরেজ গ্রুপ, টেবলস্পেস, টেবলস্পেসের অবজেক্ট, ট্রানজ্যাকশন লগ (TX LOGS হিসেবে চিত্রিত), এবং বাফার পুলের সেট। নিচের ডায়াগ্রাম Db2 সার্ভার, এর ইন্সট্যান্স এবং সংশ্লিষ্ট ডাটাবেসের মধ্যে সম্পর্ক চিত্রিত করে।

Figure1: DB2 সার্ভার, ইন্সট্যান্স, ডাটাবেস সম্পর্ক এবং কন্টেন্ট চিত্রিত ডায়াগ্রাম

৩) DB2 অপারেটিং সিস্টেম গ্রুপ

উইন্ডোজে, ডিফল্ট ইন্সট্যান্স নাম DB2, এবং লিনাক্সে DB2INST1। প্রতিটি ইন্সট্যান্স কানেকশনের জন্য ইউনিক পোর্টের সাথে কনফিগার করা যায়। একই সার্ভারে একাধিক ইন্সট্যান্স থাকতে পারে। DB2 ইনস্টলেশন ৪ টাইপের OS গ্রুপের সাথে কনফিগার করা যায় ডেটার সেফটি এবং সিকিউরিটির জন্য ইউজেজ রিলেটেড রোলের জন্য, SYSADM হিসেবে ডাটাবেস অ্যাডমিনিস্ট্রেটর সকল প্রিভিলেজ সহ, SYSMON গ্রুপ ডাটাবেস ম্যানেজার ইন্সট্যান্সের একাধিক ডাটাবেস অ্যাডমিনিস্টার করার জন্য, এবং DBADM নির্দিষ্ট ডাটাবেসের জন্য টপ লেভেল গ্রান্ট।

  • SYSADM
  • SYSCTRL
  • SYSMAINT
  • SYSMON
  • DBADM

৪) ডাটাবেস প্যারামিটার কনফিগারেশন

ফিগার ১ অনুযায়ী, আপনি IBM DB2 কনফিগার করতে পারেন ৩ লেভেলে, টপ লেভেল যাকে DB2 সার্ভার কনফিগারেশন বলা হয়, ২য় লেভেল Database Manager কনফিগারেশন, এবং ৩য় লেভেল ডাটাবেস লেভেল কনফিগারেশন।

i) গ্লোবাল প্যারামিটার জন্য:

সেটিংস দেখতে: db2set -all

সব পরিবর্তনযোগ্য প্যারামিটার লিস্ট করতে: db2set -lr

সেটিংস আপডেট করতে: db2set parameter=newvalue

উদাহরণ: db2set db2comm=tcpip

একবার পরিবর্তন করলে সকল ইন্সট্যান্স রিস্টার্ট করতে হবে db2stop এবং db2start দিয়ে।

ii) ইন্সট্যান্স লেভেল:

সেটিংস দেখতে: db2 get dbm cfg

সেটিংস আপডেট করতে: db2 update dbm cfg using parameter_name new-value উদাহরণ: db2 update dbm cfg using NUM_DB 5

iii) ডাটাবেস লেভেল:

সেটিংস দেখতে: db2 get db cfg for database-name

সেটিংস আপডেট করতে: db2 update db cfg for database-name using parameter new-value

উদাহরণ: db2 update db cfg for sample using AUTO_REORG ON

৫) DB2 ইনস্টলেশন, ইন্সট্যান্স, ডাটাবেস তৈরি, পরিবর্তন, মডিফাই, ড্রপ

একটি DB2 সার্ভার মূলত একটি Db2 কপি বোঝায় যেটি এক বা একাধিক Db2 ডাটাবেস প্রোডাক্ট ইনস্টলেশন নির্দেশ করে একই সার্ভারে নির্দিষ্ট লোকেশনে। প্রতিটি Db2 Version কপি একই বা ভিন্ন কোড লেভেলে হতে পারে। DB2 Version 9 এবং পরবর্তীতে, আপনি একই সার্ভারে একাধিক Db2 কপি ইনস্টল এবং রান করতে পারেন যেমন DB2COPY1 of DB2 version 9, DB2COPY2 of version 10 … DB2COPY3 of version 11, ইত্যাদি।

একাধিক DB2 কপির সুবিধা:

  • i) একই সার্ভারে ভিন্ন Db2 ডাটাবেস ভার্সন 가진 অ্যাপ্লিকেশন।
  • ii) প্রোডাকশন ডাটাবেস পরবর্তী Db2 ডাটাবেস প্রোডাক্ট ভার্সনে মুভ করার আগে একই কম্পিউটারে টেস্ট করার ক্ষমতা।
  • iii) আলাদা DB2 ভার্সনে আপনার এক্টিভিটি ভাগ করার ক্ষমতা।

একাধিক DB2COPY উপলব্ধ থাকলে DB2 ইনস্টলেশন কপিতে স্যুইচ করার পদ্ধতি:

$>db2swtch -l
DB2COPY1 C: \ IBM\ SQLLIB (Default DB2 and IBM Database Client Interface Copy)
$>db2swtch -db2 -d DB2COPY1
Switching is successful. The current default DB2 copy is DB2COPY1.
$>dasupdt (Change DB admin Server to current copy.
SQL22266N The DB2 Administration Server is already installed under the current DB2 Copy.

DB2 ইন্সট্যান্স মেইনটেইন করার পদ্ধতি:

DB2CPOPY1-র বর্তমান ইনস্টলেশনে ইন্সট্যান্স তৈরি/লিস্ট/ড্রপ এবং করেন্ট ইন্সট্যান্স নাম সেট/ভিউ করার জন্য নিচের কমান্ডগুলো চালাতে পারেন:

বর্তমান ইন্সট্যান্স স্টপ এবং স্টার্ট করতে নিচের কমান্ড ব্যবহার করুন, দ্রষ্টব্য, start_stop_time প্যারামিটার ডাটাবেস স্টার্ট স্টপ বিহেভিয়ারকে প্রভাবিত করে:

$>Db2stop [ force ]
$>Db2start

উইন্ডোজ মেশিনে অন্যান্য উপায়ও উপলব্ধ যাতে আপনি সার্ভিস ব্যবহার করে ইন্সট্যান্সের জন্য স্টার্ট/স্টপ/অটোমেটিক স্টার্ট বিহেভিয়ার করতে পারেন।

ডাটাবেস অ্যাডমিনিস্ট্রেশনের উদ্দেশ্যে ডাটাবেস ইন্সট্যান্স স্টার্ট করতে নিচের কমান্ড ব্যবহার করতে পারেন: $>db2start admin mode [ user | group ]

অথবা

$>QUIESCE DATABASE উপরের কমান্ড দিয়ে ডাটাবেস শুধু SYSADM, SYSMAINT, DBADM, বা SYSCTRL প্রিভিলেজ 가진 ব্যবহারকারীদের জন্য অ্যাক্সেসIBLE। $>QUIESCE INSTANCE instance-name

উপরের কমান্ড ব্যবহার করে, দিয়ে गये ইন্সট্যান্সের অধীনে সকল ডাটাবেস শুধু SYSADM, SYSMAINT বা SYSCTRL প্রিভিলেজ 가진 ব্যবহারকারীদের জন্য অ্যাক্সেসIBLE হবে।

QUIESCE কমান্ডের ফুল সিনট্যাক্স:

ডাটাবেস অ্যাডমিনিস্ট্রেশন এক্টিভিটি সম্পন্ন হলে, আপনি ডাটাবেসকে DBA-অনলি মোড থেকে সবার জন্য উপলব্ধ মোডে কনভার্ট করতে নিচের কমান্ডগুলো ব্যবহার করতে পারেন:

UNQUIESCE DATABASE – ডাটাবেসকে Quiesce মোড থেকে সরান
UNQUIESCE INSTANCE instance-name – ইন্সট্যান্স এবং ইন্সট্যান্সের সকল ডাটাবেসকে Quiesce মোড থেকে সরান

ডাটাবেস তৈরি করার পদ্ধতি: DB2 ডাটাবেস একাধিক টাইপের অ্যাপ্লিকেশনের জন্য তৈরি করা যায়, ৩টি ওয়ার্কলোড ক্যাটাগরি:

  • Simple (Online Transaction Processing),
  • Complex (Online Analytical Processing)
  • Mixed (OLTP এবং OLAP মিক্স টাইপ)

সিনট্যাক্স: CREATE database testdb1 ( অপশন নাকি: encrypt, পূর্ণ সিনট্যাক্সের জন্য IBM DB2 নির্দিষ্ট গাইড দেখুন.) ;

উদাহরণ: db2 create db emp_utf autoconfigure using workload_type simple apply db only

db2 create db emp_utf using codeset utf-8 territory lets us collate using system

db2 drop db emp_utf

৬) ডিফল্ট টেবলস্পেস, টেবলস্পেস তৈরি, টেবলস্পেস লিস্ট

DB2 ডাটাবেসে ডিফল্ট টেবলস্পেস এবং বাফারপুল:

DB2 ডাটাবেস ৩টি ডিফল্ট টেবলস্পেসের সাথে আসে, আপনি আপনার অ্যাপ্লিকেশন প্রয়োজন অনুযায়ী ডিফল্ট টেবলস্পেস ছাড়া একাধিক টেবলস্পেস তৈরি করতে পারেন:

  • SYSCATSPACE – এই টেবলস্পেসে সিস্টেম ক্যাটালগ সংক্রান্ত ডিটেইল থাকে।
  • TEMPSPACE1 – এই টেম্পোরারি টেবলস্পেস মেমরি-ওরিয়েন্টেড অপারেশন যেমন SORTING-এ ব্যবহৃত হয়।
  • USERSPACE1 – এই টেবলস্পেস নন-ডিফল্ট ডাটাবেস অবজেক্টের জন্য ডিফল্ট।

DB2 ডাটাবেসে একটি ডিফল্ট বাফার পুল থাকে, নাম IBMDEFAULTBP।

DB2 ডাটাবেসে টেবলস্পেস তৈরি:

স্যাম্পল টেবলস্পেস তৈরি:

আপনি নতুন তৈরি টেবলস্পেসে টেবিল, ইনডেক্স, ভিউ ইত্যাদি অবজেক্ট তৈরি করতে পারেন, উদাহরণস্বরূপ, MYTBLS1 টেবলস্পেসে B নামে একটি টেবিল তৈরি করি।

টেবলস্পেস লিস্ট:

নিচের কমান্ড ব্যবহার করুন, এবং ডিটেইলড ইনফরমেশন পাওয়ার জন্য অপশন ব্যবহার করুন।

db2 list tablespaces [show details]

৭) লিসেনার কনফিগারেশন

আপনি DB2COMM প্যারামিটার ইন্সট্যান্স লেভেলে সেট করে ডাটাবেস কানেক্টিভিটি ডিটেইল সেট আপ করতে পারেন। চলুন করেন্ট লিসেনার সেটিংস পরিবর্তন করি পোর্ট 60000 কানেকশনের জন্য ব্যবহার করতে, একবার পোর্ট পরিবর্তন হলে আপনাকে ডাটাবেস সার্ভিস রিস্টার্ট করতে হবে যাতে নতুন কানেকশন পরিবর্তিত পোর্টে লিসেন করা শুরু করে। কমান্ডগুলো নিচে:

$>db2set -i db2inst1 DB2COMM=tcpip
$>db2 update dbm cfg using SVCENAME 60000
$>db2stop
$>db2start

৯) আর্কাইভ কনফিগারেশন

কমান্ড লাইন প্রসেসরে UPDATE DATABASE CONFIGURATION কমান্ড ব্যবহার করে ডাটাবেস লগিং অপশন কনফিগার করতে:

নির্দিষ্ট করুন আপনি সার্কুলার লগিং নাকি আর্কাইভ লগিং ব্যবহার করতে চান। যদি আপনি সার্কুলার লগিং ব্যবহার করতে চান, তবে logarchmeth1 এবং **logarchmeth2 ডাটাবেস কনফিগারেশন প্যারামিটার OFF সেট থাকতে হবে। এটি ডিফল্ট সেটিং। আর্কাইভ লগিং ব্যবহার করতে, আপনাকে এই ডাটাবেস কনফিগারেশন প্যারামিটারগুলোর কমপক্ষে একটি OFF ছাড়া অন্য মান সেট করতে হবে। উদাহরণস্বরূপ, আপনি আর্কাইভ লগিং ব্যবহার করতে চান এবং আর্কাইভড লগ ডিস্কে সংরক্ষণ করতে চান, তবে নিচের কমান্ড ইস্যু করুন:

db2 update db configuration for mydb using logarchmeth1 disk:/u/dbuser/archived_logs

অথবা

আপনি IBM® Data Studio, UPDATE DATABASE CONFIGURATION কমান্ড ব্যবহার করে ডাটাবেস লগিং অপশন কনফিগার করতে পারেন।

অথবা

db2CfgSet API

রিডো লগ জেনারেশন এড়াতে, আপনি CREATE TABLE/INDEX কমান্ডের সাথে NOT LOGGED INITIALLY অপশন ব্যবহার করতে পারেন।

উপসংহার

যেহেতু ডাটাবেস অ্যাডমিনিস্ট্রেশন টাস্ক একাধিক এক্টিভিটি জড়িত, এবং এই ব্লগে আমি কিছু প্রসেস এক্সপ্লোর করার চেষ্টা করেছি, আমি নিশ্চিত আপনি IBM DB2 ডাটাবেসের ওপর হ্যান্ডস-অন পেতে চাইবেন এর একাধিক ফিচারের জন্য যা ডাটাবেস অফার করে। অধিকাংশ SQL অপারেশন американickন্যাশনাল স্ট্যান্ডার্ডস ইনস্টিটিউট (ANSI) দ্বারা ডিফাইন করা SQL স্ট্যান্ডার্ড অনুযায়ী। এক্সট্রা ফিচার যেমন ক্লাস্টার্ড ডাটাবেস, হাই অ্যাক্সেসিবিলিটি, পার্টিশনিং, রেপ্লিকেশন, মেটেরিয়ালাইজড ভিউ অন্যান্য পপুলার RDBMS যেমন Oracle, PostgreSQL-এর মতো সকল সেফটি প্রোটোকল মেইনটেইন করে, এবং প্রোডাক্ট প্রাইসিং, এবং প্রায় সব টেকনোলজির সাথে কানেক্টিভিটি DB2-কে গ্লোবাল ডাটাবেস মার্কেটে ডেভেলপারদের একটি অনন্য পছন্দ করে তোলে।

আমাদের এক্সপার্টরা আপনার ডাটাবেস যাত্রায় গাইড করবেন।

মন্তব্য বা প্রশ্নের জন্য Feedback ট্যাব ব্যবহার করুন। আপনি আমাদের সাথে কথা বলতে পারেন।

  1. Oracle ডেটাবেস Статистиক্স পুনরুদ্ধার করে সর্বোচ্চ পারফরম্যান্স পেতে

  2. PostgreSQL মাস্টার করুন: ইনস্টলেশন ও কনফিগারেশন গাইড – পার্ট ১

  3. Oracle EBS 12.2 কে Oracle Database 19c-এ সহজে স্থানান্তর: ধাপে ধাপে গাইড

  4. Oracle-এর Always Free Autonomous Database দিয়ে শুরু করুন: পূর্ণ গাইড