Oracle® ডেটাবেস আর্কাইভ করা আপনাকে দীর্ঘমেয়াদে ডেটা ধরে রাখতে এবং সঞ্চয় করতে দেয়, কিন্তু আপনার স্থান ফুরিয়ে গেলে কী হবে?
পরিচয়
যদি সংরক্ষণাগারের গন্তব্যটি পূরণ হয়, তাহলে আপনার ওরাকল ডেটাবেস হ্যাং বা আটকে যেতে পারে এবং আপনি নিম্নলিখিত ত্রুটিগুলির মধ্যে একটি দেখতে পেতে পারেন:
- 0RA-00257 :আর্কাইভার ত্রুটি, মুক্ত না হওয়া পর্যন্ত শুধুমাত্র অভ্যন্তরীণ সংযোগ করুন
- ORA-16014 :লগ 2 সিকোয়েন্স# 1934 সংরক্ষণাগারভুক্ত নয়, কোনো উপলভ্য গন্তব্য নেই
এই ক্ষেত্রে, মূল সংরক্ষণাগারের গন্তব্য ব্যর্থ হলে ব্যবহার করার জন্য আপনার একটি বিকল্প সংরক্ষণাগার গন্তব্য থাকতে হবে। প্রাথমিক আর্কাইভ গন্তব্যে কোনো ব্যর্থতার (স্পেস, হার্ডওয়্যার, এবং আরও) ক্ষেত্রে আপনি বিকল্প সংরক্ষণাগার গন্তব্যের সুবিধা নিতে পারেন।
এটি কীভাবে কাজ করে তা বোঝার জন্য আসুন একটি দ্রুত প্রদর্শনের মাধ্যমে যাই।
ডেমো পার্ট ওয়ান
প্রথমে, আমি প্রাথমিক সংরক্ষণাগারের গন্তব্য /u03/primary_dest অবস্থানে সেট করেছি , যা বর্তমানে 99% ব্যবহার করা হয়েছে। আপনি একটি পরীক্ষা হিসাবে একই জিনিস করতে পারেন.
তারপর, নিম্নলিখিত কমান্ডগুলি চালান:
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
ডেমো পার্ট থ্রি
আপনি প্রাথমিক এবং বিকল্প সংরক্ষণাগারের গন্তব্য লিঙ্ক করতে পারেন, এবং ওরাকল একটি বিকল্প সংরক্ষণাগার অবস্থানে ব্যর্থ হতে পারে যখন প্রাথমিক অবস্থান 100% ব্যবহারে পৌঁছে যায়৷ তবে, ওরাকল পুনরায় উপলব্ধ হওয়ার পরে প্রাথমিক গন্তব্যে একটি ব্যর্থতা চালাতে পারে না৷ এটি কাজ করার জন্য, আপনাকে প্রাথমিক সংরক্ষণাগার গন্তব্য সেট করতে হবে,LOG_ARCHIVE_DEST_1 , বিকল্প হিসাবে বিকল্প সংরক্ষণাগার গন্তব্যের জন্য,LOG_ARCHIVE_DEST_2 , নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
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
আপনি নিশ্চিত করতে চেক করতে পারেন যে আপনি আর্কাইভ গন্তব্য এক এবং দুইটি লিঙ্ক করেছেন৷ ওরাকল এখন প্রাইমারিতে মুক্ত স্থান থাকার পরে প্রাথমিকে ফিরে যেতে সক্ষম হবে৷
ডেমো পার্ট ফোর
এরপরে, আমি কিছু DML এক্সিকিউট করেছি যাতে আর্কাইভ গন্তব্যটি 100% ব্যবহার করতে পারে, যা নিম্নলিখিত আউটপুটে দেখানো হয়েছে:
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:29.217417+05:30
Errors in file /u01/app/oracle/diag/rdbms/modi/MODI/trace/MODI_arc0_23015.trc:
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)
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)
পঞ্চম ধাপ
ওরাকল সর্বদা প্রাথমিক গন্তব্যে আর্কাইভ করার চেষ্টা করে এবং প্রাথমিক গন্তব্যে স্বয়ংক্রিয়ভাবে ব্যর্থতা 12c সংস্করণে কাজ করে। আপনি প্রাথমিক গন্তব্যটি পরিষ্কার করার পরে এবং সংরক্ষণাগারের জন্য উপলব্ধ করার পরে, ওরাকল সতর্কতা লগ ফাইলে কোনও ত্রুটি বা ব্যর্থতার বার্তা রিপোর্ট না করেই প্রাথমিক গন্তব্যে রিডু লগগুলি সংরক্ষণাগারভুক্ত করা চালিয়ে যায়, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে যেখানে আমি v$archived_log<জিজ্ঞাসা করেছি :
SQL> থ্রেড#, ক্রম#, 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
31টি সারি নির্বাচন করা হয়েছে৷
৷উপসংহার
প্রাথমিক এবং বিকল্প গন্তব্যের মধ্যে আর্কাইভ গন্তব্য পরিবর্তনের স্বয়ংক্রিয় ব্যবস্থাপনায় ওরাকল উল্লেখযোগ্য উন্নতি করেছে। আশা করি, আপনি এই কার্যকারিতার সুবিধা নিতে আমার প্রদর্শন ব্যবহার করতে পারেন।
একটি বিকল্প সংরক্ষণাগার থাকা আপনাকে ভালভাবে পরিবেশন করে, তবে মনে রাখবেন যে প্রাথমিক সংরক্ষণাগারের গন্তব্যটি আবার প্রস্তুত না হওয়া পর্যন্ত ওরাক্লিন্টেন্টলি প্রাথমিক গন্তব্য ব্যর্থতা সম্পর্কে সতর্কতা লগ ফাইলে ত্রুটি বার্তাগুলি লগ করে৷
আমাদের ডেটা পরিষেবা সম্পর্কে আরও জানুন৷
৷কোনো মন্তব্য করতে বা প্রশ্ন জিজ্ঞাসা করতে প্রতিক্রিয়া ট্যাব ব্যবহার করুন। আপনি আমাদের সাথে একটি কথোপকথনও শুরু করতে পারেন৷