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

Oracle ডাউনটাইম প্রতিরোধ: বিকল্প আর্কাইভ ডেস্টিনেশন কনফিগার করুন

Oracle® ডাটাবেস আর্কাইভ করা আপনাকে ডেটা দীর্ঘমেয়াদে রাখতে এবং সংরক্ষণ করতে দেয়, কিন্তু যদি আপনি স্পেস শেষ হয়ে যায় তবে কী হবে?

ভূমিকা

যদি আর্কাইভ ডেস্টিনেশন ফুল হয়ে যায়, আপনার Oracle ডাটাবেস هنگ বা আটকে যেতে পারে, এবং আপনি নিচের এররগুলো দেখতে পারেন:

  • 0RA-00257: আর্কাইভার এরর, শুধু ইন্টারনাল কানেক্ট করার পর্যন্ত মুক্ত না হওয়া পর্যন্ত
  • ORA-16014: লগ ২ সিকোয়েন্স# ১৯৩৪ আর্কাইভ করা হয়নি, কোনো উপলব্ধ ডেস্টিনেশন নেই

এই ক্ষেত্রে, আপনাকে একটি বিকল্প আর্কাইভিং ডেস্টিনেশন রাখতে হবে যা প্রাইমারি আর্কাইভ ডেস্টিনেশন ব্যর্থ হলে ব্যবহার করা যাবে। আপনি প্রাইমারি আর্কাইভ ডেস্টিনেশনে যেকোনো ব্যর্থতা (স্পেস, হার্ডওয়্যার, ইত্যাদি) হলে বিকল্প আর্কাইভ ডেস্টিনেশন ব্যবহার করতে পারেন।

চলুন একটি দ্রুত ডেমো দিয়ে বুঝি কীভাবে এটি কাজ করে।

ডেমো পার্ট वन

প্রথমে, আমি প্রাইমারি আর্কাইভ ডেস্টিনেশনকে /u03/primary_dest location-এ সেট করেছি, যা বর্তমানে ৯৯% ব্যবহার করা হয়েছে। আপনি একই জিনিস টেস্ট হিসেবে করতে পারেন।

তারপর, নিচের কমান্ডগুলো রান করুন:

SQL> select version from v$instance; VERSION ----------------- 12.1.0.2.0 SQL> select DEST_NAME,TARGET,DESTINATION,VALID_ROLE,STATUS from v$archive_dest where status!='INACTIVE'; DEST_NAME TARGET DESTINATION VALID_ROLE STATUS --------------------- ---------- -------------------- ------------ --------- LOG_ARCHIVE_DEST_1 PRIMARY /u03/primary_dest ALL_ROLES VALID 

ডেমো পার্ট টু

আসুন একটি বিকল্প আর্কাইভ ডেস্টিনেশন /u04/alternate_dest যোগ করি, যা প্রাইমারি ডেস্টিনেশন অনুপলব্ধ হলে সিস্টেম ব্যবহার করতে পারে।

SQL> !df -h /u04/alternate_dest Filesystem Size Used Avail Use% Mounted on /dev/ddg2 1004M 18M 936M 2% /u04 SQL> alter system set log_archive_dest_2='LOCATION=/u04/alternate_dest' scope=both; System altered. SQL> alter system set log_archive_dest_state_2=ALTERNATE scope=both; System altered. SQL> select DEST_NAME,TARGET,DESTINATION,VALID_ROLE,STATUS,ALTERNATE from v$archive_dest where status!='INACTIVE'; DEST_NAME TARGET DESTINATION VALID_ROLE STATUS ALTERNATE ------------------- ----------- ------------------- ------------ ----------- --------- LOG_ARCHIVE_DEST_1 PRIMARY /u03/primary_dest ALL_ROLES VALID NONE LOG_ARCHIVE_DEST_2 PRIMARY /u04/alternate_dest ALL_ROLES ALTERNATE NONE 

ডেমো পার্ট থ্রি

আপনি প্রাইমারি এবং বিকল্প আর্কাইভ ডেস্টিনেশন লিংক করতে পারেন, এবং Oracle প্রাইমারি লোকেশন ১০০% ব্যবহার হলে বিকল্প আর্কাইভ লোকেশনে ফেইলওভার করতে পারে। যাইহোক, প্রাইমারি ডেস্টিনেশন আবার উপলব্ধ হলে Oracle প্রাইমারি ডেস্টিনেশনে ফেইলব্যাক এক্সিকিউট করতে পারে না। সেটি কাজ করার জন্য, আপনাকে প্রাইমারি আর্কাইভ ডেস্টিনেশন, LOG_ARCHIVE_DEST_1-কে বিকল্প আর্কাইভ ডেস্টিনেশন, LOG_ARCHIVE_DEST_2-এর জন্য ALTERNATE হিসেবে সেট করতে হবে, নিচের উদাহরণের মতো:

SQL> alter system set log_archive_dest_2='LOCATION=/u04/alternate_dest NOREOPEN ALTERNATE=LOG_ARCHIVE_DEST_1' scope=both; System altered. SQL> alter system set log_archive_dest_1='LOCATION=/u03/primary_dest NOREOPEN ALTERNATE=LOG_ARCHIVE_DEST_2' scope=both; System altered. SQL> select DEST_NAME,TARGET,DESTINATION,VALID_ROLE,STATUS,ALTERNATE from v$archive_dest where status!='INACTIVE'; DEST_NAME TARGET DESTINATION VALID_ROLE STATUS ALTERNATE -------------------- ----------- -------------------- ------------ ---------- ------------------ LOG_ARCHIVE_DEST_1 PRIMARY /u03/primary_dest ALL_ROLES VALID LOG_ARCHIVE_DEST_2 LOG_ARCHIVE_DEST_2 PRIMARY /u04/alternate_dest ALL_ROLES ALTERNATE LOG_ARCHIVE_DEST_1 

আপনি আর্কাইভ ডেস্টিনেশন এক এবং দুই লিংক করা আছে কিনা তা চেক করতে পারেন। Oracle এখন প্রাইমারি ফรี স্পেস পাওয়ার পর প্রাইমারিতে ফেইলব্যাক করতে সক্ষম হওয়া উচিত।

ডেমো পার্ট ফোর

পরবর্তীতে, আমি কিছু DML এক্সিকিউট করেছি যাতে আর্কাইভ ডেস্টিনেশন ১০০% ব্যবহার হয়, নিচের আউটপুটের মত:

Thread 1 is advanced to log sequence 20 (LGWR switch) Current log# 2 seq# 20 mem# 0: /u01/app/oracle/oradata/MODI/redo02.log 2020-12-05T04:44:29.216275+05:30 ARC0: Encountered disk I/O error 19502 2020-12-05T04:44:29.216575+05:30 ARC0: Closing local archive destination LOG_ARCHIVE_DEST_1 '/u03/primary_dest/1_19_1058325294.dbf' (error 19502) (MODI) 2020-12-05T04:44:32.583182+05:30 MODIP(3):Resize operation completed for file# 11, old size 1172480K, new size 1182720K 2020-12-05T04:44:33.183355+05:30 Errors in file /u01/app/oracle/diag/rdbms/modi/MODI/trace/MODI_arc0_23015.trc: ORA-19502: write error on file "/u03/primary_dest/1_19_1058325294.dbf", block number 350208 (block size=512) ORA-27072: File I/O error Additional information: 4 Additional information: 350208 Additional information: 446464 ORA-19502: write error on file "/u03/primary_dest/1_19_1058325294.dbf", block number 350208 (block size=512) 

স্টেপ ফাইভ

Oracle সবসময় প্রাইমারি ডেস্টিনেশনে আর্কাইভ করার চেষ্টা করে, এবং প্রাইমারি ডেস্টিনেশনে স্বয়ংক্রিয় ফেইলব্যাক 12c-এ কাজ করে। আপনি প্রাইমারি ডেস্টিনেশন পরিষ্কার করে এবং আর্কাইভিংয়ের জন্য উপলব্ধ করালে, Oracle কোনো এরর বা ফেইলব্যাক মেসেজ 알ার্ট লগ ফাইলে রিপোর্ট किए बिना প্রাইমারি ডেস্টিনেশনে রিডো লগ আর্কাইভ করা চালিয়ে রাখে, নিচের উদাহরণে যেখানে আমি v$archived_log কোয়েরি করেছি:

SQL> select thread#,sequence#,name from v$archive_log;

THREAD# SEQUENCE# NAME -------- ---------- ----------------------------------------------- 1 2 /u03/primary_dest/1_2_1058325294.dbf 1 3 /u03/primary_dest/1_3_1058325294.dbf 1 4 /u03/primary_dest/1_4_1058325294.dbf 1 5 /u03/primary_dest/1_5_1058325294.dbf 1 6 /u04/alternate_dest/1_6_1058325294.dbf 1 7 /u04/alternate_dest/1_7_1058325294.dbf 1 8 /u04/alternate_dest/1_8_1058325294.dbf 1 9 /u04/alternate_dest/1_9_1058325294.dbf 1 10 /u04/alternate_dest/1_10_1058325294.dbf 1 11 /u04/alternate_dest/1_11_1058325294.dbf 1 12 /u04/alternate_dest/1_12_1058325294.dbf 1 13 /u04/alternate_dest/1_13_1058325294.dbf 1 14 /u04/alternate_dest/1_14_1058325294.dbf 1 15 /u04/alternate_dest/1_15_1058325294.dbf 1 16 /u04/alternate_dest/1_16_1058325294.dbf 1 17 /u04/alternate_dest/1_17_1058325294.dbf 1 18 /u04/alternate_dest/1_18_1058325294.dbf 1 19 /u04/alternate_dest/1_19_1058325294.dbf 1 20 /u04/alternate_dest/1_20_1058325294.dbf 1 21 /u04/alternate_dest/1_21_1058325294.dbf 1 22 /u04/alternate_dest/1_22_1058325294.dbf 1 23 /u04/alternate_dest/1_23_1058325294.dbf 1 24 /u04/alternate_dest/1_24_1058325294.dbf 1 25 /u04/alternate_dest/1_25_1058325294.dbf 1 26 /u04/alternate_dest/1_26_1058325294.dbf 1 27 /u04/alternate_dest/1_27_1058325294.dbf 1 28 /u04/alternate_dest/1_28_1058325294.dbf 1 29 /u03/primary_dest/1_29_1058325294.dbf 1 30 /u03/primary_dest/1_30_1058325294.dbf 1 31 /u03/primary_dest/1_31_1058325294.dbf 1 32 /u03/primary_dest/1_32_1058325294.dbf 

৩১ সারি নির্বাচিত।

উপসংহার

Oracle প্রাইমারি এবং বিকল্প ডেস্টিনেশনের মধ্যে আর্কাইভ ডেস্টিনেশন সইচিং-এর স্বয়ংক্রিয় ব্যবস্থাপনায় উল্লেখযোগ্য উন্নতি করেছে। আশা করি আপনি আমার ডেমো ব্যবহার করে এই কার্যকারিতার সুবিধা নিতে পারবেন।

একটি বিকল্প আর্কাইভ আপনাকে ভালো সার্ভিস দেয়, কিন্তু মনে রাখবেন যে Oracle अलার্ট লগ ফাইলে প্রাইমারি ডেস্টিনেশন ব্যর্থতার সম্পর্কে রুকুনু깐ুই এরর মেসেজ লগ করে যতক্ষণ না প্রাইমারি আর্কাইভ ডেস্টিনেশন আবার রেডি হয়।

আমাদের ডেটা সার্ভিস সম্পর্কে আরও জানুন।

ফিডব্যাক ট্যাব ব্যবহার করে যেকোনো মন্তব্য করুন বা প্রশ্ন জিজ্ঞাসা করুন। আপনি আমাদের সাথে কথোপকথনও শুরু করতে পারেন।


  1. Oracle External Tables ব্যবহার করে দক্ষ ডেটা অ্যাক্সেসের পদ্ধতি

  2. Oracle APEX আবিষ্কার করুন: লো-কোড পাওয়ার সাথে ডেভেলপমেন্ট ত্বরান্বিত করুন

  3. Oracle-এর ডিফার্ড COGS একাউন্টিং ফিচার দিয়ে প্রফিট অ্যাকুরেসি অপ্টিমাইজ করুন

  4. Oracle 19c DBCA ব্যবহার করে রিমোট PDB-কে CDB-তে দক্ষতার সাথে ক্লোন করুন