Oracle Datafile Architecture: हालांकि एक Oracle Instance Memory Structure व उन Processes से बना होता है, जो Memory Structures को Manage करते हैं, फिर भी Physical Database Files वे Files होती है, जो System को Use-able बनाती हैं। ये Files निम्न कारणों से Database से Associated सभी प्रकार के Data को Hold करती हैं:
- Database को ये Allow करने के लिए कि वह Physical Memory में Store हो सकने वाले Data की क्षमता से ज्यादा Data के साथ Dealing कर सके। एक बात ध्यान रखें कि Operating System के Swapping व Paging को किसी भी कीमत पर Avoid किया जाना होता है, ताकि Oracle की Performance पर कोई विपरीत असर ना पडे।
- Database Transaction की Recovery को Allow करने के लिए, फिर चाहे वह Recovery Failure Point से हो या किसी Previous Point से हो।
किसी Real-Life Database में ये Files ही सबसे ज्यादा महत्वपूर्ण होती हैं, क्योंकि इसी के आधार पर पूरा System काम करता है। Oracle में मुख्य रूप से चार तरह की Database Files होती हैं:
- Control Files
- Initialization (Parameter) Files
- Online Redo Log Files
- Data Files
ये चारों ही Files Oracle को ठीक तरीके से Run करने के लिए जरूरी व महत्वपूर्ण होती हैं।
Control Files
ये एक छोटी सी File होती है, जो Current Database Structure को Describe करती है। हम इस File को एक Online Database Header File के रूप में देख सकते हैं। ये एक Binary File होती है, इसलिए हमें इस File को Edit करने की कोशिश नहीं करनी चाहि,। इस File को Oracle Instance द्वारा Start-Up के समय Read किया जाता है और इस File को तब तक Up-To-Date रखा जाता है, जब तक कि Oracle के Instance को Shut Down नहीं किया जाता। इस File के निम्न Purpose होते हैं:
- Database का नाम रखने के लिए।
- Database Files व Log Files को Identify करने के लिए।
- Recovery के लिए जरूरी जानकारियों जैसे कि Checkpoints आदि को Synchronize करने के लिए, जिनका प्रयोग Database की Recovery के लिए किया जाता है।
जितनी बार भी Database Structure Change किया जाता है, उदाहरण के लिए जब हम किसी Table को Create या Drop करते हैं या किसी Log File को Add करते हैं, तब इस Physical Change के साथ ही Control File भी Update हो जाती है। Oracle में Default रूप से केवल एक Control File को Configure किया जाता है, लेकिन हमें कम से कम दो Control Files को Configure करके रखना चाहिए, ताकि Crash की स्थिति में Recovery निश्चित हो।
Parameter Files
Parameter File में Oracle Instance के Start-Up Options से सम्बंधित सभी Information होती हैं। इसे तब Read किया जाता है जब Database Start होता है और ये Microsoft Windows की Initialization File (*.ini) Files के समान ही होती है, जिसके आधार पर एक Oracle Instance Start होता है। हम इस File को Edit कर सकते हैं और Parameters को Manually Set कर सकते हैं। यदि हम हमारी Settings को Change करते हैं, तो उन Settings का Effect तब तक नहीं होता है, जब तक कि हम Oracle Instance को Restart ना करें।
एक Typical Parameter File को आगे दर्शाया गया है। By Default इसका नाम initSID.ora होता है, जबकि SID Start किए जाने वाले Instance का नाम है, जिसे हम Oracle के Installation के समय Specify करते हैं। यदि हमने हमारे SID का नाम SCT रखा हो, तो हमें इस File को Open करने के लिए initSCT.ora नाम की File को “..\Oracle\Ora81\DATABASE” Path से Open करना चाहि,। जब हम इस File को Notepad का प्रयोग करके Open करते हैं, तब हमें इस File में निम्नानुसार Statement दिखाई देता है:
IFILE=’C:\Oracle\admin\SCT\pfile\init.ora’
Database की पूरी Initialization Information को हम init.ora नाम की File से प्राप्त कर सकते हैं, जो कि हमें “C:\Oracle\admin\SCT\pfile” Path पर प्राप्त होती है। इस File में Data निम्नानुसार हो सकते हैं:
# # Copyright (c) 1991, 1998 by Oracle Corporation # ############################################################################## # Example INIT.ORA file # # This file is provided by Oracle Corporation to help you customize # your RDBMS installation for your site. Important system parameters # are discussed, and example settings given. # # Some parameter settings are generic to any size installation. # For parameters that require different values in different size # installations, three scenarios have been provided: SMALL, MEDIUM # and LARGE. Any parameter that needs to be tuned according to # installation size will have three settings, each one commented # according to installation size. # # Use the following table to approximate the SGA size needed for the # three scenarios provided in this file: # # -------Installation/Database Size------ # SMALL MEDIUM LARGE # Block 2K 4500K 6800K 17000K # Size 4K 5500K 8800K 21000K # # To set up a database that multiple instances will be using, place # all instance-specific parameters in one file, and then have all # of these files point to a master file using the IFILE command. # This way, when you change a public # parameter, it will automatically change on all instances. This is # necessary, since all instances must run with the same value for many # parameters. For example, if you choose to use private rollback segments, # these must be specified in different files, but since all gc_* # parameters must be the same on all instances, they should be in one file. # # INSTRUCTIONS: Edit this file and the other INIT files it calls for # your site, either by using the values provided here or by providing # your own. Then place an IFILE= line into each instance-specific # INIT file that points at this file. # # NOTE: Parameter values suggested in this file are based on conservative # estimates for computer memory availability. You should adjust values upward # for modern machines. # ############################################################################### db_name = "SCT" db_domain = Domain instance_name = SCT service_names = SCT.Domain db_files = 1024 control_files = ("C:\Oracle\oradata\SID\control01.ctl", "C:\Oracle\oradata\SID\control02.ctl", "C:\Oracle\oradata\SID\control03.ctl") open_cursors = 100 max_enabled_roles = 30 db_file_multiblock_read_count = 8 db_block_buffers = 2048 shared_pool_size = 4194304 large_pool_size = 614400 java_pool_size = 0 log_checkpoint_interval = 10000 log_checkpoint_timeout = 1800 processes = 50 parallel_max_servers = 5 log_buffer = 32768 #audit_trail = true # if you want auditing #timed_statistics = true # if you want timed statistics max_dump_file_size = 10240 # limit trace file size to 5M each # Uncommenting the line below will cause automatic archiving if archiving has # been enabled using ALTER DATABASE ARCHIVELOG. # log_archive_start = true # log_archive_dest_1 = "location=C:\Oracle\oradata\SCT\archive" # log_archive_format = %%ORACLE_SCT%%T%TS%S.ARC # If using private rollback segments, place lines of the following # form in each of your instance-specific init.ora files: #rollback_segments = ( RBS0, RBS1, RBS2, RBS3, RBS4, RBS5, RBS6 ) # Global Naming -- enforce that a dblink has same name as the db it connects to global_names = true # Uncomment the following line if you wish to enable the Oracle Trace product # to trace server activity. This enables scheduling of server collections # from the Oracle Enterprise Manager Console. # Also, if the oracle_trace_collection_name parameter is non-null, # every session will write to the named collection, as well as enabling you # to schedule future collections from the console. # oracle_trace_enable = true oracle_trace_collection_name = "" # define directories to store trace and alert files background_dump_dest = C:\Oracle\admin\SCT\bdump #Uncomment this parameter to enable resource management for your database. #The SYSTEM_PLAN is provided by default with the database. #Change the plan name if you have created your own resource plan.# resource_manager_plan = system_plan user_dump_dest = C:\Oracle\admin\SCT\udump db_block_size = 8192 remote_login_passwordfile = exclusive os_authent_prefix = "" distributed_transactions = 500 compatible = 8.0.5 sort_area_size = 65536 sort_area_retained_size = 65536
Online Redo Log Files
हालांकि Data में किया जाने वाला कोई भी Change Memory के Redo Log Buffer में होता है, फिर भी Instance के Fail होने की स्थिति में Backup लेना जरूरी होता है। इस काम को Log Writer Process द्वारा पूरा किया जाता है, जो कि Redo Log Buffers से Data को Read करके SGA के Online Redo Log Files में Store कर देता है। ये Redo Log Files फिर से Circular Storage Areas की तरह Treat होती हैं और यदि Database ARCHIVELOG Mode में ना हो, तो ये Continuously Overwrite होती रहती हैं।
Oracle में Default रूप से दो Log Files होती हैं, जिन्हे हम redo_1a व redo_2a नाम दे सकते हैं। इन्हें Separate Groups का Member माना जा सकता है, जो कि हमारे Case में हर Group में केवल एक File या Member के रूप में है। वास्तव में हमें Performance को बनाए रखने के लिए कम से कम एक और Group की जरूरत रहती है, इसलिए हम एक और Group Create कर रहे हैं, जिसमें redo_3a नाम की एक Member File है। अब Log Writer redo_1a, redo_2a व redo_3a Log Files में Data को Write करता है। इसके बाद ये फिर से redo_1a में Writing करने लगता है, और इसी समय इसके Data को Archive Destination पर Copy कर दिया जाता है। जो Group Write किया जा रहा होता है, उसे Current Group कहते हैं।
इस तरह से सारांश में कहें तो Log Writer पहले एक Log Group में Data को Write करता है फिर क्रम से आगे के Groups में Data को Write करता है। हर Log Group में एक या एक से ज्यादा Members हो सकते हैं और एक Group के सभी Members Different Disks पर Store होने चाहिए, ताकि Crash की स्थिति में किसी भी अन्य Disk से Data को Recover किया जा सके।
Important Redo Log Files की Losing के Risk को कम करने के लिए, जो कि मुख्य रूप से Disk Crash होने की स्थिति में Database की Recovery के लिए जिम्मेदार होती हैं, निम्न Guidelines का पालन किया जाता है:
- हर Group में एक से ज्यादा File को Add करना चाहिए, जो कि Data को Mirror करे। हम redo_1a, redo_2a व redo_3a को तीनों Groups के नए Members के रूप में Add कर सकते हैं।
- ये बात निश्चित कर लेनी चाहि, कि सभी Mirrored Files को Separate Disks पर Store किया गया हो, ताकि Failure की स्थिति में हमारे पास एक से ज्यादा स्थानों पर Backup हो।
- हमें ये निश्चित कर लेना चाहि, कि Archiving को Enable किया गया है।
- इस बात को निश्चित कर लेना चाहि, कि विभिन्न Redo Logs Different Disks पर हों, ताकि Database के Performance पर प्रभाव ना पडे।
इस Post में हमने Oracle Datafile Architecture से सम्बंधित Control Files के बारे में जाना। अगले Article में हम Oracle Datafile Architecture से सम्बंधित Datafiles व Oracle के Logical Structure के सबंध में जानेंगे।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Oracle 8i/9i SQL/PLSQL in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Oracle 8i/9i SQL/PLSQL in Hindi | Page: 587 | Format: PDF