• ভাষা:
  • English
  • বাংলা
হোম > ওরাকল ডাটাবেজ অ্যাডমিনিস্ট্রেশন
লেখক পরিচিতি
লেখকের নাম: মো: ইফতেখারুল ইসলাম
মোট লেখা:৫
লেখা সম্পর্কিত
পাবলিশ:
২০১১ - জানুয়ারী
তথ্যসূত্র:
কমপিউটার জগৎ
লেখার ধরণ:
ওরাকল
তথ্যসূত্র:
অ্যাডমিনিস্ট্রেশন
ভাষা:
বাংলা
স্বত্ত্ব:
কমপিউটার জগৎ
ওরাকল ডাটাবেজ অ্যাডমিনিস্ট্রেশন

(পূর্ব প্রকাশিতের পর)

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

ডাটা ফাইল এবং টেবিলস্পেস

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

টেবিলস্পেসের প্রকারভেদ

ডিবিএ টেবিলস্পেস তৈরি করে যাতে ডাটাবেজকে সহজে নিয়ন্ত্রণ এবং মেইনটেইন করতে পারে। ওরাকল সার্ভার দুই ধরনের টেবিলস্পেস ধারণ করে- ০১. সিস্টেম ০২. ননসিস্টেম।

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

ননসিস্টেম :
এখানেই মূলত থাকে ইউজারে সংরক্ষিত ডাটা। ননসিস্টেম টেবিলস্পেসের কারণে ডিবিএ ডাটা ফাইলকে ভালোভাবে ম্যানেজ করতে পারে।

টেবিলস্পেস তৈরি করার কমান্ড :

CREATE TABLESPACE userdata
DATAFILE ‘/u01/oradata/userdata01.dbf’ SIZE 5M;

স্পেস ব্যবস্থাপনা :

টেবিলস্পেস এক্সটেন্ড হিসেবে স্থান বরাদ্দ করে। দুইটি পদ্ধতিতে টেবিলস্পেস খালি অথবা ব্যবহার হওয়া স্থানকে ম্যানেজ করে থাকে। ০১. লোকালি ম্যানেজড ০২. ডিকশনারি ম্যানেজড।

লোকালি ম্যানেজড :

এক্সটেন্ড এই পদ্ধতিতে বিটম্যাপের মাধ্যমে ম্যানেজ হয়ে থাকে। যখন কোনো এক্সটেন্ড বরাদ্দ অথবা খালি হয় তখন ওরাকল সার্ভার বিটম্যাপের মান পরিবর্তন করে দেয়, যার ফলে ডাটা ব্লকের বর্তমান অবস্থা বুঝা যায়।

ডিকশনারি ম্যানেজড :

ডাটা ডিকশনারি দিয়ে এক্সটেন্ড ম্যানেজ হয়ে থাকে। ওরাকল সার্ভার ডাটা ডিকশনারি প্রয়োজনীয় টেবিলে কখন কোন স্থান খালি হলো বা বরাদ্দ হলো তা নিয়মিত আপডেট করে থাকে।

লোকালি ম্যানেজড টেবিলস্পেস তৈরির কমান্ড :

CREATE TABLESPACE userdata
DATAFILE ‘/u01/oradata/userdata01.dbf’ SIZE 500M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;

ডিকশনারি ম্যানেজড টেবিলস্পেস তৈরির কমান্ড :

CREATE TABLESPACE userdata
DATAFILE ‘/u01/oradata/userdata01.dbf’ SIZE 500M
EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE ( initial 1M NEXT 1M );

লোকালি ম্যানেজড টেবিলস্পেস যে কারণে ডিকশনারি ম্যানেজড টেবিলস্পেস অপেক্ষা ভালো

লোকালি ম্যানেজড টেবিলস্পেস ডিকশনারি ম্যানেজড অপেক্ষা বেশ কার্যকর। কারণ-

০১.
লোকালি ম্যানেজড টেবিলস্পেস এক্সটেন্ড স্বয়ংক্রিয়ভাবে শূন্যস্থান পূরণ করে ফেলে, যা ডিকশনারিতে ম্যানেজড টেবিলস্পেসে সম্ভব নয়।

০২.
ডাটা ডিকশনারিতে কোনো ফ্রিস্পেসের তথ্য সংরক্ষণ করতে হয় না।

০৩.
লোকালি ম্যানেজড টেবিলস্পেস রিকারসিভ স্পেস ব্যবস্থাপনার মাধ্যমে কাজ করে না, যার ফলে এক্সটেন্ডে স্থান বরাদ্দ অথবা ডাটা ডিকশনারি টেবিল পূর্ণ করার জন্য নতুন কোনো অপারেশন করতে হয় না।

০৪.
এক্সটেন্ডের আকার স্বয়ংক্রিয়ভাবে নিয়ন্ত্রণ হয়ে থাকে।

ডিকশনারি ম্যানেজড টেবিলস্পেস লোকালি ম্যানেজড-এ পরিবর্তনের কমান্ড :

DBMS_SPACE_ADMIN.
TABLESPACE_MIGRATE_ TO_LOCAL(‘SYSTEM’);

আন্ডু টেবিলস্পেস :


চিত্র-১

যখন ডাটাবেজে ডাটার কোনো পরিবর্তন হয়, তখন পরিবর্তন পূর্ববর্তী ডাটা ওরাকল যে সেগমেন্টে সংরক্ষণ করে তাকে বলা হয় আন্ডু সেগমেন্ট।

এই আন্ডু যে টেবিলস্পেসের আওতাধীন থাকে তাকে বলা হয় আন্ডু টেবিলস্পেস ।

আন্ডুর প্রয়োজনীয়তা :


চিত্র-২

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

ট্রানজেকশন রিকভারি :

যদি ট্রানজেকশন কোনো কারণে সম্পন্ন না হয় তবে আবার ইনস্ট্যান্স রিওপেন করার সময় আনকমিটেড পরিবর্তনগুলো রিকভার করার প্রয়োজন হয়। তখন সার্ভার আন্ডু সেগমেন্ট রিড করে ডাটাবেজ ওপেন করে।

রিড কনসিসট্যান্সি :

যখন কোনো ট্রানজেকশন চলে তখন অন্য কোনো ইউজারের মাধ্যমে পরিবর্তিত আনকমিটেড ডাটা অন্য সব ইউজারের কোয়ারিতে বাধার সৃষ্টি না করে তার জন্য সার্ভার কারেন্ট সিস্টেম চেইন নাম্বার নির্ণয় করে এবং বড় কোয়ারি রান করার মধ্যেও যদি কোনো পরিবর্তন হয় তাহলেও রিড কনসিসট্যান্ট ইমেজ তৈরি করে ইউজারের প্রয়োজনমতো ফলাফল প্রদর্শন করে।

আন্ডু টেবিলস্পেস তৈরির কমান্ড

CREATE UNDO TABLESPACE undo1
DATAFILE ‘/u01/oradata/undo101.dbf’ SIZE 40M;
আন্ডু টেবিলস্পেসে এক্সটেন্ড লোকালি ম্যানেজড হয়ে থাকে।

টেম্পোরারি টেবিলস্পেস :

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

CREATE TEMPORARY TABLESPACE temp
TEMPFILE ‘/u01/oradata/temp01.dbf’ SIZE 20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;

ডিফল্ড টেম্পোরারি টেবিলস্পেস :

যদি কোনো ডাটাবেজের জন্য টেম্পোরারি টেবিলস্পেস নির্ণয় না করা হয়, তবে সর্ট অপারেশন সিস্টেম টেবিলস্পেসে হবে। যার ফলে ডাটাবেজের পারফরমেন্স ভালো হয় না। তাই আমাদের অবশ্যই ডাটাবেজের জন্য একটি ডিফল্ট টেম্পোরারি টেবিলস্পেস নির্ধারণ করতে হবে । দু’ভাবে এটা করা যায় ।

০১. CREATE DATABASE কমান্ড দিয়ে।
০২. ALTER DATABASE কমান্ড দিয়ে।

০১. CREATE DATABASE কমান্ড :

ডাটাবেজ তৈরির সময় আমরা ডিফল্ট টেম্পোরারি টেবিলস্পেস নির্ধারণ করতে পারি

CREATE DATABASE DBA01
LOGFILE
GROUP 1 (‘/$HOME/ORADATA/u01/ redo01.log’) SIZE 100M,
GROUP 2 (‘/$HOME/ORADATA/ u02/redo02.log’) SIZE 100M,
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
DATAFILE ‘/$HOME/ORADATA/u01/ system01.dbf’ SIZE 325M
UNDO TABLESPACE undotbs
DATAFILE ‘/$HOME/ORADATA/u02/ undotbs01.dbf’ SIZE 200
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE ‘/$HOME/ORADATA/u03/temp 01.dbf’ SIZE 4M
CHARACTER SET US7ASCII

০২. অল্টার ডাটাবেজ কমান্ড :

ডাটাবেজ তৈরির পর যদি কোনো কারণে আমাদের টেম্পরারি টেবিলস্পেস নির্ধারণ করতে হয় তবে এই কমান্ড দিয়ে করতে হবে।

ALTER DATABASE
DEFAULT TEMPORARY TABLESPACE default_temp2;

রিড অনলি টেবিলস্পেস : কোনো কারণে টেবিলস্পেসের কোনো অবজেক্ট যেমন টেবিল, ইনডেক্স ড্রপ করতে হয়, তখন টেবিলস্পেসকে রিড অনলি মোডে নিতে হয়। নিচের কমান্ড দিয়ে টেবিলস্পেসকে রিড অনলি মোডে নিতে হবে।

ALTER TABLESPACE userdata READ ONLY;

টেবিলস্পেসকে অফলাইনকরণ :

সাধারণত টেবিলস্পেস অনলাইন থাকে, তবে নিচে বর্ণিত কারণে কখনো কখনো টেবিলস্পেসকে অফলাইন করা হয় ।

০১. ডাটাবেজ পার্টিশন করার সময়।
০২. অফলাইন ব্যাকআপ নেয়ার সময়।
০৩. ডাটাবেজ ওপেন অবস্থায় রিকভারি করলে।
০৪. ডাটা ফাইল মুভ করার সময়।

টেবিলস্পেসকে অফলাইনকরণ করার কমান্ড :

ALTER TABLESPACE userdata OFFLINE;

রিসাইজকরণ :

দুই উপায়ে টেবিলস্পেস রিসাইজ করা যায়।

০১. ডাটা ফাইলের সাইজ পরিবর্তন করে।

ক. AUTOEXTEND ব্যবহার করে স্বয়ংক্রিয়ভাবে।
CREATE TABLESPACE user_data
DATAFILE ‘/u01/oradata/userdata01.dbf’ SIZE 200M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M;

খ. ম্যানুয়ালি ALTER DATABASE কমান্ড দিয়ে
ALTER DATABASE
DATAFILE ‘/u03/oradata/userdata02.dbf’
RESIZE 200M;

০২. ALTER TABEL SPACE কমান্ড দিয়ে কোনো ডাটা ফাইল সংযুক্ত করবে।

ALTER TABLESPACE user_data
ADD DATAFILE ‘/u01/oradata/userdata03.dbf’
SIZE 200M;

ডাটা ফাইল স্থানান্তর করা :

নিম্নলিখিত ধাপগুলো অনুসরণ করে ডাটা ফাইল স্থানান্তর করা যায়।

০১. টেবিলস্পেস অফলাইন করতে হবে।
০২. অপারেটিং সিস্টেম কমান্ড দিয়ে ফাইলকে মুভ করতে হবে।
০৩. নিচের কমান্ড দিতে হবে :

ALTER TABLESPACE userdata RENAME
DATAFILE ‘/u01/oradata/userdata01.dbf’
TO ‘/u02/oradata/userdata01.dbf’;

০৪. টেবিলস্পেস অনলাইন করতে হবে।
০৫. প্রয়োজন হলে আগের ফাইল কমান্ড দিয়ে মুছে ফেলতে হবে।
TABLE SPACE কে ড্রপ করা :

কোনো অ্যাকটিভ অথবা সিস্টেম টেবিলস্পেস ছাড়া সব টেবিলস্পেসকে নিচের কমান্ড দিয়ে ড্রপ করা যাবে।

DROP TABLESPACE userdata
INCLUDING CONTENTS AND DATAFILES;

টেবিলস্পেস সংক্রান্ত যেকোনো তথ্য আমরা জানতে পারবো নিচের ডাটা ডিকশনারিগুলো ব্যবহার করে :

০১. টেবিলস্পেসের তথ্য

DBA_TABLESPACES
V$TABLESPACE

০২. ডাটা ফাইলের তথ্য

DBA_DATA_FILES
V$DATAFILE

০৩. টেম্পোরারি টেবিলস্পেসের তথ্য

DBA_TEMP_FILES
V$TEMPFILE (চলবে)

কজ ওয়েব

ফিডব্যাক :
পত্রিকায় লেখাটির পাতাগুলো
লেখাটি পিডিএফ ফর্মেটে ডাউনলোড করুন
লেখাটির সহায়ক ভিডিও
চলতি সংখ্যার হাইলাইটস