ভূমিকা
সিরিজের প্রথম অংশ Oracle® রিফ্রেশেবল ক্লোনের একটি পরিচয় দেয়, যার মধ্যে কখন এবং কেন সেগুলো ব্যবহার করতে হয়। এই পোস্টে, আমি দেখাব কিভাবে একটি রিফ্রেশেবল ক্লোন প্লগেবল ডেটাবেস (PDB) Oracle 18c-এ সেট আপ, কনফিগার, মেইনটেইন এবং ড্রপ করতে হয়।
রিফ্রেশেবল ক্লোন PDB-এর জন্য প্রেরিকোয়িজিট
এই ডেমোর সাথে ফলো আপ করতে, নিচের প্রেরিকোয়িজিটগুলো সম্পন্ন করুন:
নতুন তৈরি করা রিফ্রেশেবল ক্লোনের জন্য একটি ডেটাবেস লিংক থাকতে হবে যা একটি লোকাল বা রিমোট কন্টেইনারকে পয়েন্ট করে।
archive_log_modeকেenabled-এ সেট করুন।এনজিনিয়ার্ড সিস্টেম বা Enterprise Edition (EE) Oracle Cloud ব্যবহার করুন। যদি একই প্ল্যাটফর্ম বা ভার্সনে উপলব্ধ না থাকে, তবে এই ডেমোর জন্য হিডেন প্যারামিটার,
_exadata_feature_on, কেTrue-এ সেট করুন।local_undo_modeকেenabled-এ সেট করুন।
আপনি রিফ্রেশেবল PDB কে হয় CLOSED বা OPEN READ ONLY মোডে সেট করতে পারেন এবং রিফ্রেশের পর কোয়ারির জন্য OPEN READ ONLY মোডে।
এনভায়রনমেন্ট
এই ডেমোর জন্য, নিশ্চিত করুন যে আপনার এনভায়রনমেন্ট নিচের স্পেসিফিকেশনের সাথে সอด一声 합니다:
Oracle 18c ইনস্টল করুন এবং মেশিন এবং ডেটাবেসে প্রেরিকোয়িজিট সম্পন্ন করুন।
প্রোডাকশন ডেটাবেসের ভূমিকার জন্য:
কন্টেইনার ডেটাবেস (CDB) নাম সেট করুন: YCDB1
PDB নাম সেট করুন: PURCH_PDB
রিফ্রেশেবল ক্লোন PDB-এর ভূমিকার জন্য:
CDB নাম সেট করুন: XCDB1
PDB নাম সেট করুন: PDB2_REFRO
PDB কে প্রতি ৩০ মিনিটে স্বয়ংক্রিয়ভাবে রিফ্রেশ করার জন্য সেট করুন
create_pdbব্যবহার করে XCDB-এ একটি পাবলিক ডেটাবেস লিংক তৈরি করুন। লিংকটি YCDB-এ PURCH_PDB-কে পয়েন্ট করা উচিত।
-নিচের Transparent Network Substrate (TNS) কমান্ডগুলো এক্সিকিউট করুন:
purch_pdb=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = tejashost2.localdomain)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = purch_pdb)))
XCDB1=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = tejashost2.localdomain)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = XCDB1)))
YCDB1=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = tejashost2.localdomain)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = YCDB1)))
ডেমোन्स্ট্রেশন
এই ডেমোন্স্ট্রেশন নিচের অ্যাক্টিভিটি পারফর্ম করে:
এনভায়রনমেন্ট সেট আপ করে।
প্রোডাকশন ডেটাবেসের রিফ্রেশ মোড খুঁজে বের করে।
রিফ্রেশেবল ক্লোনের রিফ্রেশ মোড দেখায়, যার মধ্যে রিফ্রেশেবল ক্লোনের রিফ্রেশ ডিজেবল করা।
প্রোডাকশন এবং রিফ্রেশেবল ক্লোন এর মধ্যে সইচ করে।
রিফ্রেশেবল ক্লোন এনভায়রনমেন্ট সেট আপ করুন:
রিফ্রেশেবল ক্লোন এনভায়রনমেন্টের জন্য, নিচের অ্যাকশন নিন।
YCDB1-এ নেওয়া অ্যাকশন:
- একটি প্রোডাকশন ডেটাবেস তৈরি করুন এবং খুলুন।
impdpইউটিলিটি ব্যবহার করে বা PURCH_PDB-এ HR স্কিমা ইম্পোর্ট করে EXPDP ডাম্প থেকে ডেটা ইম্পোর্ট করুন। এই উদাহরণের জন্য, ডেটাবেসে নিচের স্ক্রিপ্ট রান করে একটি HR স্কিমা ইম্পোর্ট করুন:@?/demo/schema/human_resources/hr_main.sql
এটি শেষ হলে, HR স্কিমা ডিটেইল যাচাই করুন, নিচের ফিগার দেখানো হয়েছে:
XCDB1-এ নেওয়া অ্যাকশন:
প্রোডাকশন ডেটাবেস, PURCH_PDB-কে পয়েন্ট করে একটি ডেটাবেস লিংক তৈরি করুন।
একটি রিফ্রেশেবল PDB তৈরি করুন, রিফ্রেশ পিরিয়ড প্রতি ৩০ মিনিট সেট করুন, এবং ডেটা রিফ্রেশ হচ্ছে কিনা তা যাচাই করুন।
আপনি একটি PDB তৈরি করার সময় আপনি যেসব অ্যাট্রিবিউট ব্যবহার করেন সেগুলো আপনি একটি ডেটাবেস অন্য লোকেশনে তৈরি করতে ব্যবহার করতে পারেন। উদাহরণস্বরূপ, PDB ডেটাফাইল লোকেশন মডিফাই করতে, CREATE_FILE_DEST বা FILE_NAME_CONVERT ব্যবহার করুন।
একমাত্র যোগফল হলো REFRESH MODE অ্যাট্রিবিউট। এই ডেমোকে সহজ রাখতে, আমি কোনো অপশনাল অ্যাট্রিবিউট যোগ করিনি।
রিফ্রেশ মোড এবং প্রোডাকশন ডেটাবেস ডিটেইল খুঁজে বের করুন
আপনি টেবিল DBA_PDBS কোয়ারি করে রিফ্রেশেবল PDB মোড, স্ট্যাটাস, লাস্ট রিফ্রেশ SCN, এবং এর প্যারেন্ট প্রোডাকশন ডেটাবেস ডিটেইল চেক করতে পারেন। PDB2_REFRO PDB-র জন্য, আউটপুট চেক করুন নিচের উদাহরণের মতো:
আপনি আপনার টাস্ক সম্পন্ন করলে, রিফ্রেশেবল PDB কে MOUNTED মোডে ফিরিয়ে আনার উচিত একটি συνεχী রিফ্রেশের জন্য শিডিউল অনুযায়ী। এই অ্যাক্টিভিটি করতে নিচের কমান্ডগুলো ব্যবহার করুন। এখানে ব্যবহৃত open_mode.sql ডেটাবেসের বর্তমান open_mode চেক করার একটি কোয়ারি।
আপনি নিচের এরর দেখতে পেতে পারেন যদি আপনি ডেটাবেস ইনস্ট্যান্স রিফ্রেশের জন্য বন্ধ না করেন:
ORA-65025: Pluggable database is not closed on all instances
রিফ্রেশেবল ক্লোনের রিফ্রেশ মোড পরিবর্তন করুন
আপনি একটি রিফ্রেশেবল ক্লোনের মোড নিচের şekilde পরিবর্তন করতে পারেন:
ম্যানুয়াল রিফ্রেশ থেকে অটোমেটিক রিফ্রেশ-এ পরিবর্তন করুন।
অটোমেটিক রিফ্রেশ থেকে ম্যানুয়াল রিফ্রেশ-এ পরিবর্তন করুন।
অটোমেটিক বা ম্যানুয়াল রিফ্রেশ মোড থেকে রিফ্রেশ ডিজেবল করুন।
একটি ম্যানুয়াল রিফ্রেশ কে অটোমেটিক রিফ্রেশ-এ রূপান্তর করুন এবং বিপরীতভাবে
দ্রষ্টব্য: আপনি একটি PDB-এর রিফ্রেশ মোড পরিবর্তন করতে পারবেন না যখন আপনি অন্য একটি PDB-এ লগ ইন করা থাকেন। উদাহরণস্বরূপ, আপনি YPDB-এ লগ ইন করা থাকলে XPDB-এর মোড পরিবর্তন করতে পারবেন না। আপনি যদি চেষ্টা করেন, তবে নিচের এরর ঘটবে:
ORA-65118: operation affecting a pluggable database cannot be performed from another pluggable database.
ম্যানুয়াল রিফ্রেশ মোডে, আপনি আপনার ক্লোন্ড PDB কে প্রয়োজন অনুযায়ী রিফ্রেশ করতে পারেন নিচের কমান্ড ব্যবহার করে:
PDB রিফ্রেশ ডিজেবল করুন এবং একটি রিড-অনলি ক্লোন কে রিড-রাইট-এনাবলড ডেটাবেস-এ রূপান্তর করুন
আপনি একটি PDB-এর রিফ্রেশ মোড ডিজেবল করতে পারেন আপনার রিফ্রেশেবল ক্লোন কে রিড-রাইট মোডে রূপান্তর করতে।
দ্রষ্টব্য: আপনি আপনার প্লগেবল ডেটাবেসের জন্য রিফ্রেশ ডিজেবল করলে, আপনি আবার এনেবল করতে পারবেন না। আপনাকে PDB পুনরায় তৈরি করতে হবে যাতে সেটি একটি রিফ্রেশেবল PDB হয়। আপনি যদি NONE রিফ্রেশ মোড থেকে রিফ্রেশ মোডে রূপান্তর করার চেষ্টা করেন, তবে আপনি নিচের এরর পাবেন:
ORA-65261: pluggable database PDB2_REFRO3 not enabled for refresh.
রিফ্রেশ ডিজেবল করার পর, PDB-র রিড-রাইট অ্যাক্সেস থাকে।
প্রোডাকশন থেকে রিফ্রেশেবল ক্লোন-এ সইচ করুন এবং বিপরীতভাবে
Oracle 18c-এর আগে, আপনাকে সইচওভার করার জন্য সব ধাপ পারফর্ম করতে হতো, যার মধ্যে প্রাইমারি বন্ধ করা এবং এটিকে রিড-অনলি হিসেবে খোলা।
এই ডেমোতে, আমি নিচের কাজ করছি:
কন্টেইনার ডেটাবেস XCDB1 এবং YCDB1-এ C##SWITCHUSER ইউজার তৈরি করুন grant connect,
sysoperব্যবহার করে।একটি ডেটাবেস লিংক, dblink, তৈরি করুন যেটি অন্য একটি কন্টেইনার ডেটাবেসকে পয়েন্ট করে। YCDB1-এ, dblink, XCDB1SYSOPER, তৈরি করুন XCDB1-এ কানেক্ট করতে। ডেটাবেস ভিউ, DBA_DB_LINKS and V$DATABASE ব্যবহার করে ডেটাবেস ডিটেইল সংগ্রহ করুন ডেটাবেস লিংক তৈরি করার পর।
রিফ্রেশেবল ক্লোন ডেটাবেসকে রিড-অনলি হিসেবে খুলুন।
সইচওভার কমান্ড রান করুন।
প্রোডাকশন এবং রিফ্রেশেবল ক্লোন ডেটাবেস সইচ করার পর ডেটাবেস স্ট্যাটাস এবং ওপেন মোড যাচাই করুন।
YCDB1-এ নেওয়া অ্যাকশন:
সইচওভার কমান্ড এক্সিকিউট করার আগে প্রেরিকোয়িজিট ১ থেকে ৩ সম্পন্ন করুন।
ডেটাবেস লিংক ডিটেইলস:
XCDB1-এ নেওয়া অ্যাকশন
DBA_DB_LINKS এবং V$DATABASE ব্যবহার করে ডেটাবেস লিংক ডিটেইলস চেক করুন এবং ডেটাবেস open mode খুঁজে বের করুন।
সইচওভার সম্পন্ন হলে, মূল সোর্স PDB PURCH_PDB রিফ্রেশেবল ক্লোন PDB হয়ে গেল। এই PDB বর্তমানে MOUNT স্ট্যাটাসে, এবং এখন থেকে, আপনি এটিকে শুধু READ ONLY মোডে খুলতে পারবেন। বিপরীতভাবে, মূল রিফ্রেশেবল ক্লোন, PDB PDB2_REFRO এখন READ বা WRITE মোডে খোলা এবং একটি সোর্স PDB হিসেবে কাজ করছে।
উপসংহার
আপনাকে হাই অ্যাক্সেসিবিলিটির দৃষ্টিকোণ থেকে Data Guard-এর প্রতিস্থাপন হিসেবে রিফ্রেশেবল ক্লোন PDB ফিচার বিবেচনা করা উচিত নয়। যাইহোক, আপনি অন্য একটি সার্ভারে একটি রেপ্লিকা ডেটাবেস মেইনটেইন করতে একটি রিফ্রেশেবল ক্লোন ব্যবহার করতে পারেন।
এই পোস্টটি বর্ণনা করে কিভাবে রিফ্রেশেবল PDB-কে রেপ্লিকা হিসেবে ব্যবহার করতে হয় যাতে আপনি কিছু লো-লোড, নন-ক্রিটিক্যাল অ্যাপ্লিকেশন অপারেশন রিজিউম করতে পারেন, সইচওভার হলে প্ল্যানড বা আনপ্ল্যানড ইভেন্ট। মনে রাখবেন, আপনাকে সইচওভারকে Recovery Time Objectives (RTOs, অপারেশন রিজিউম করার সময়) এবং Recovery Point Objectives (RPOs, যেমন ন্যূনতম ডেটা লস অর্জন) এর দৃষ্টিকোণ থেকে বিবেচনা করা উচিত।
ফিডব্যাক ট্যাব ব্যবহার করে যেকোনো মন্তব্য বা প্রশ্ন করুন। আপনি এখন চ্যাট শুরু করতে পারেন।
ডেটাবেস সম্পর্কে আরও জানুন।