Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> डेटाबेस

Oracle में वैकल्पिक संग्रह गंतव्य

Oracle® डेटाबेस को संग्रहीत करने से आप लंबे समय तक डेटा को बनाए रख सकते हैं और संग्रहीत कर सकते हैं, लेकिन यदि आपके पास जगह नहीं है तो क्या होगा?

परिचय

यदि संग्रह गंतव्य भर जाता है, तो आपका 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

डेमो भाग तीन

आप प्राथमिक और वैकल्पिक संग्रह गंतव्य को लिंक कर सकते हैं, और Oracle एक वैकल्पिक संग्रह स्थान पर विफल हो सकता है जब प्राथमिक स्थान 100% उपयोग तक पहुँच जाता है। हालाँकि, Oracle फिर से उपलब्ध होने के बाद प्राथमिक गंतव्य के लिए एक फ़ेलबैक निष्पादित नहीं कर सकता है। उसके काम करने के लिए, आपको प्राथमिक संग्रह गंतव्य,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

आप यह पुष्टि करने के लिए जांच कर सकते हैं कि आपने संग्रह गंतव्यों एक और दो को लिंक किया है। प्राथमिक में खाली स्थान होने के बाद Oracle अब प्राथमिक पर वापस विफल होने में सक्षम होना चाहिए।

डेमो भाग चार

इसके बाद, मैंने कुछ डीएमएल को निष्पादित किया ताकि संग्रह गंतव्य 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)

पांचवां चरण

Oracle हमेशा प्राथमिक गंतव्य पर संग्रह करने का प्रयास करता है, और प्राथमिक गंतव्य पर स्वचालित विफलता संस्करण 12c में काम करती है। जब आप प्राथमिक गंतव्य को साफ करते हैं और इसे संग्रह के लिए उपलब्ध कराते हैं, तो Oracle अलर्ट लॉग फ़ाइल में किसी भी त्रुटि या विफलता संदेश की रिपोर्ट किए बिना प्राथमिक गंतव्य पर फिर से लॉग को संग्रहीत करना जारी रखता है, जैसा कि निम्नलिखित उदाहरण में दिखाया गया है जहां मैंने 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 पंक्तियाँ चुनी गईं।

निष्कर्ष

Oracle ने प्राथमिक और वैकल्पिक गंतव्य के बीच आर्काइवडेस्टिनेशन स्विचिंग के स्वचालित प्रबंधन में एक महत्वपूर्ण सुधार किया है। उम्मीद है, आप इस कार्यक्षमता का लाभ उठाने के लिए मेरे प्रदर्शन का उपयोग कर सकते हैं।

एक वैकल्पिक संग्रह होने से आपको अच्छी तरह से सेवा मिलती है, लेकिन याद रखें कि प्राथमिक संग्रह गंतव्य फिर से तैयार होने तक प्राथमिक गंतव्य विफलता के बारे में चेतावनी लॉग फ़ाइल में Oracle आंतरायिक रूप से त्रुटि संदेशों को लॉग करता है।

हमारी डेटा सेवाओं के बारे में अधिक जानें।

कोई टिप्पणी करने या प्रश्न पूछने के लिए प्रतिक्रिया टैब का उपयोग करें। आप हमारे साथ बातचीत भी शुरू कर सकते हैं।


  1. पेश है Oracle एप्लीकेशन एक्सप्रेस

    क्या आपका संगठन अधिक चुस्त हो सकता है, अनुप्रयोगों को तेजी से, सस्ता और अधिक कुशलता से विकसित कर सकता है? Oracle® एप्लिकेशन एक्सप्रेस (APEX) और निम्न-कोड विकास का उपयोग करने पर विचार करें—ड्रैग-एंड-ड्रॉप तत्वों का उपयोग करके एक दृश्य विकास विधि। परिचय एपेक्स आपको बदलती आवश्यकताओं के अनुकूल होने में

  1. Oracle डिफर्ड COGS अकाउंटिंग

    यह पोस्ट Oracle® कॉस्ट मैनेजमेंट रिलीज 12.0.0 और बाद में डिफर्ड कॉस्ट ऑफ गुड्स सोल्ड (DCOGS) अकाउंटफंक्शनलिटी का परिचय देता है। यह वृद्धि सीधे तौर पर बेचे गए माल की लागत (COGS) से राजस्व से मेल खाती है, जो पहले संभव नहीं था। परिचय पिछले संस्करणों में, सिस्टम ने इन्वेंट्री से COGS को भेजे गए माल के

  1. Oracle 19c में DBCA कमांड का उपयोग करके डेटाबेस क्लोन करना

    यह ब्लॉग डेटाबेस कॉन्फ़िगरेशन सहायक (DBCA) का उपयोग करने के तरीकों का परिचय देता है, Oracle 19c में एक नई सुविधा, स्रोत डेटाबेस का बैकअप लिए बिना एक दूरस्थ प्लग करने योग्य डेटाबेस (PDB) को एक कंटेनर डेटाबेस (CDB) में क्लोन करने के लिए। स्रोत से लक्ष्य तक क्लोन करने में कम से कम समय लगता है। स्रोत D