মূলত TriCore দ্বারা প্রকাশিত:আগস্ট 29, 2017
Oracle® সংস্করণ 12c একটি একক কন্টেইনার ডাটাবেস (CDB) সহ হোস্ট মাল্টিপলপ্লাগেবল ডেটাবেস (PDB) এর জন্য মাল্টিটেন্যান্ট ডাটাবেস বিকল্পগুলি অফার করে। কখনও কখনও, আপনাকে একটি নন-CDB ডাটাবেসকে একটি CDB প্লাগেবল ডাটাবেসে রূপান্তর করতে হবে। এই ব্লগটি এমন পদ্ধতিগুলি বর্ণনা করে যা আপনি একটি নন-CDB ডাটাবেসকে একটি CDBdatabase এ রূপান্তর করতে ব্যবহার করতে পারেন৷
টেস্ট কেস সেটআপ
এই পরীক্ষার দৃশ্যটি একটি নন-CDB ডাটাবেস উদাহরণ দিয়ে শুরু হয়, noncdb12c
,যা মেশিনে চলছে ABC123.xyz.com
. কাজটি হল একটি CDBdatabase, cdb12c
তৈরি করা , একই মেশিনে। রূপান্তরিত CDB ডাটাবেস ধরে রাখার জন্য আপনার কাছে যথেষ্ট ডিস্ক স্পেস আছে তা নিশ্চিত করতে হবে।
হোস্ট সার্ভার :ABC123.xyz.com
নন-সিডিবি ডাটাবেস :noncdb12c
ওরাকল সংস্করণ :12.1.0.2
নিম্নলিখিত চিত্রটি পরীক্ষার দৃশ্য দেখায়:
রূপান্তর পরীক্ষা
নন-সিডিবি ডাটাবেসকে সিডিবি ডাটাবেসে রূপান্তর করতে এই বিভাগের ধাপগুলি ব্যবহার করুন।
ধাপ 1:একটি পরিষ্কার শাটডাউন সম্পাদন করুন
অ-CDB ডাটাবেস পরিষ্কারভাবে বন্ধ করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
-
পরিবেশকে
noncdb12c
এ সেট করুন . -
নিম্নলিখিত কমান্ডটি চালান:
sqlplus / as sysdba
-
এসকিউএল প্রম্পটে নিম্নলিখিত কোডটি চালান:
shutdown immediate
ধাপ 2:শুধুমাত্র পঠন হিসাবে ডাটাবেস খুলুন
আপনি পরিষ্কারভাবে ডাটাবেস বন্ধ করার পরে, মাউন্ট এক্সক্লুসিভ মোডে ডাটাবেস চালু করার জন্য নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন এবং শুধুমাত্র-পঠন মোডে ডাটাবেস খুলুন:
-
পরিবেশকে
noncdb12c
এ সেট করুন . -
নিম্নলিখিত কমান্ডটি চালান:
sqlplus / as sysdba
-
এসকিউএল প্রম্পটে নিম্নলিখিত কোডটি চালান:
startup mount exclusive alter database open read only;
ধাপ 3:একটি PDB ম্যানিফেস্ট ফাইল তৈরি করুন
নন-সিডিবি থেকে একটি PDB ম্যানিফেস্ট ফাইল তৈরি করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
-
পরিবেশকে
noncdb12c
এ সেট করুন . -
নিম্নলিখিত কমান্ডটি চালান:
sqlplus / as sysdba
-
এসকিউএল প্রম্পটে নিম্নলিখিত কোডটি চালান:
exec dbms_pdb.describe (pdb_descr_file=>'/tmp/noncdb12c_manifest_file.xml');
ধাপ 4:নন-সিডিবি বন্ধ করুন
নন-CDB ফাইল বন্ধ করার জন্য ধাপ 3 সম্পূর্ণ হওয়ার পরে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন৷
-
পরিবেশকে
noncdb12c
এ সেট করুন . -
নিম্নলিখিত কমান্ডটি চালান:
sqlplus / as sysdba
-
এসকিউএল প্রম্পটে নিম্নলিখিত কোডটি চালান:
shutdown immediate
ধাপ 5:CDB শুরু করুন
যদি CDB ইতিমধ্যে চালু না হয়, তাহলে এটি শুরু করতে এবং সামঞ্জস্যতা পরীক্ষা করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
-
পরিবেশকে
cdb12c
-এ সেট করুন . -
নিম্নলিখিত কমান্ডটি চালান:
sqlplus / as sysdba
-
এসকিউএল প্রম্পটে নিম্নলিখিত কোডটি চালান:
startup SET SERVEROUTPUT ON; DECLARE Compatible CONSTANT VARCHAR2(3) :=CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY (pdb_descr_file => '/tmp/noncdb12c_manifest_file.xml') WHEN TRUE THEN 'YES' ELSE 'NO' END; BEGIN DBMS_OUTPUT.PUT_LINE(compatible); END; /
ধাপ 6:ত্রুটিগুলি পরীক্ষা করুন
CDB ডাটাবেস স্টার্টআপ সম্পূর্ণ হওয়ার পরে, PDB_PLUG_IN_VIOLATIONS
-এ ত্রুটিগুলি পরীক্ষা করার জন্য নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন দেখুন:
-
পরিবেশকে
cdb12c
-এ সেট করুন . -
নিম্নলিখিত কমান্ডটি চালান:
sqlplus / as sysdba
-
এসকিউএল প্রম্পটে নিম্নলিখিত কোডটি চালান:
startup SELECT name, cause, type, message, status FROM PDB_PLUG_IN_VIOLATIONS WHERE name='NONCDB12C';
দ্রষ্টব্য :কোনো ত্রুটি থাকলে, এগিয়ে যাওয়ার আগে সেগুলি ঠিক করুন৷
৷ধাপ 7:CDB এর সাথে সংযোগ করুন এবং PDB-এ প্লাগ করুন
CDB-এর সাথে সংযোগ করতে এবং নন-CDB ম্যানিফেস্ট ফাইল ব্যবহার করে PDDB12Cdatabase-এ প্লাগ-ইন করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
-
পরিবেশকে
cdb12c
-এ সেট করুন . -
নিম্নলিখিত কমান্ডটি চালান:
sqlplus / as sysdba
-
এসকিউএল প্রম্পটে নিম্নলিখিত কোডটি চালান:
CREATE PLUGGABLE DATABASE pdb12c USING '/tmp/noncdb12c_manifest_file.xml' COPY FILE_NAME_CONVERT = ('<Datafile_Location_for_noncdb>', 'Datafile_Location_for_pdb');
দ্রষ্টব্য :নিম্নলিখিত বিকল্পগুলি সমর্থিত, এবং আপনি আপনার পরিবেশের উপর ভিত্তি করে একটি বেছে নিতে পারেন:
- কপি :
noncdb
এর ডেটাফাইল অক্ষত থাকে, এবংnoncdb
নতুন অবস্থানে একটি PDB তৈরি করতে এবং আসল ডেটাফাইলগুলিকে আসল অবস্থানে অক্ষত রাখতে অনুলিপি করা হয়। এর মানে হল যে একটি ননসিডিবি ডেটাবেস পিডিবি তৈরির পরেও চালু আছে৷ - সরান৷ :
noncdb
এর ডেটাফাইল একটি PDB তৈরি করতে একটি নতুন স্থানে সরানো হয়। এই ক্ষেত্রে,noncdb
PDB তৈরি হওয়ার পর ডাটাবেস পাওয়া যায় না। - NOCOPY :
noncdb
এর ডেটাফাইল একটি PDB2 তৈরি করতে ব্যবহৃত হয় এবং এটিnoncdb
এর মতো একই অবস্থান ব্যবহার করে . এই ক্ষেত্রে,noncdb
PDB তৈরি হওয়ার পর ডাটাবেস পাওয়া যায় না।
আপনি FILE_NAME_CONVERT
ব্যবহার করতে পারেন কপি ব্যবহার করার সময় ডেটাফাইলের নতুন অবস্থান নির্দিষ্ট করার পরামিতি অথবা সরান বিকল্প।
ধাপ 8:রূপান্তর স্ক্রিপ্ট চালান
ধাপ 7 সফলভাবে সম্পন্ন হওয়ার পরে, PDB কন্টেইনারে যেতে এবং রূপান্তর স্ক্রিপ্ট চালাতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন,$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
:
-
পরিবেশকে
cdb12c
-এ সেট করুন . -
নিম্নলিখিত কমান্ডটি চালান:
sqlplus / as sysdba
-
এসকিউএল প্রম্পটে নিম্নলিখিত কোডটি চালান:
alter session set container=pdb12c @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
ধাপ 9:PDB শুরু করুন এবং মোড যাচাই করুন
PDB শুরু করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন এবং মোডটি খোলা তা যাচাই করুন :
-
পরিবেশকে
cdb12c
-এ সেট করুন . -
নিম্নলিখিত কমান্ডটি চালান:
sqlplus / as sysdba
-
এসকিউএল প্রম্পটে নিম্নলিখিত কোডটি চালান:
alter pluggable database open; SELECT name, open_mode FROM v$pdbs;
উপসংহার
যখন আপনি একটি নন-CDB ডাটাবেসকে একটি CDB প্লাগযোগ্য ডাটাবেসে রূপান্তর করেন, তখন আপনি ডাটাবেসের আকারের উপর নির্ভর করে বিভিন্ন বিকল্প থেকে বেছে নিতে পারেন।
ডাটাবেসটি খুব বড় হলে, আপনি NOCOPY ব্যবহার করতে পারেন বিকল্প এটি প্রয়োজনীয় অতিরিক্ত স্থানের পরিমাণ কমিয়ে দেয় এবং রূপান্তর ক্রিয়াকলাপ সম্পাদন করতে যে সময় লাগে তা হ্রাস করে। NOCOPY৷ বিকল্পটি ঝুঁকিপূর্ণ, কারণ আপনি মূল ডাটাবেস ফাইলগুলি অক্ষত রাখেন না। এইভাবে, যদি আপনাকে পূর্ববর্তী অবস্থায় ডেটাবেস পুনরুদ্ধার করতে হয়, তাহলে আপনাকে অবশ্যই রূপান্তর কার্যকলাপের আগে নেওয়া ব্যাকআপগুলি ব্যবহার করে ডাটাবেস পুনরুদ্ধার করতে হবে৷
ডাটাবেসের আকার ছোট হলে, আপনার কপি ব্যবহার করা উচিত বিকল্প যাতে, কোনো সমস্যা থাকলে, পুরানো নন-সিডিবিতে ফলব্যাক করা সহজ কারণ আসল ফাইলগুলি সর্বদা অক্ষত থাকে৷
কোনো মন্তব্য করতে বা প্রশ্ন জিজ্ঞাসা করতে প্রতিক্রিয়া ট্যাবটি ব্যবহার করুন৷
৷Rackspace অ্যাপ্লিকেশন পরিষেবা সম্পর্কে আরও জানুন।