এতিম অবতার কী?


9

সমগ্র আদর্শের ব্যাখ্যা করা আছে একটি উত্তর থেকে আরেকটি প্রশ্ন এই সাইটে। উত্তরে 'এতিম' অবতারের কথা উল্লেখ করা হয়েছে:

… এমন আরও কিছু কারণ রয়েছে যার ফলস্বরূপ ORFHANED অবতার এবং OBSOLETE ব্যাকআপ…

আমি ওরাকল ডক্স থেকে দেখছি যাতে V$DATABASE_INCARNATIONএকটি STATUSকলাম অন্তর্ভুক্ত রয়েছে যার মান থাকতে পারে ORPHAN, CURRENTবা PARENTযা সম্পর্কিত হতে হবে।

'অনাথ' অবতার কী? এবং কোন পদক্ষেপের ফলস্বরূপ STATUS= ORPHANইন এর সাথে এক সারি হবে V$DATABASE_INCARNATION?

উত্তর:


8

নীচে একটি সংক্ষিপ্ত গ্রাফিক দেওয়া হচ্ছে যা আমি যখন ডেটাবেসের অবতারে এতিম তৈরি করা হয় তখন তা বোঝাতে ব্যবহার করব। এই প্রশ্নের গ্রাফিকের একটি ভিন্নতা যা আমি প্রশ্নের উত্তরে অবতারগুলি ব্যাখ্যা করতাম, কেউ কি আমাকে সহজে বোঝার উপায়ে ওরাকল ডাটাবেসে "অবতার" ধারণাটি ব্যাখ্যা করতে পারেন?

আমি আশা করি আপনি ভ্রমণ উপভোগ করবেন।

                                          restore db    +-----+     +-----+     +-----+          
                                          recover db    | 2>3 | --> |  3  | --> |  3  | -->  ... 
                                          resetlogs     +-----+     +-----+     +-----+  ^       
                                                            ^ Incarn   3           3     |    3  
                                                           /  SCN #   500         600    |   700 
                                                          /                              |          
                                                         /                               |          
             restore db    +-----+          +-----+     +-----+                          |          
             recover db    | 1>2 | -------> |  2  | --> |  2  | -->  ...                 |          
             resetlogs     +-----+          +-----+     +-----+  ^                       |          
                           ^       Incarn.     2 \         2     |    2                  |          
                          /        SCN #      300 \       400    |   500                 |          
                         /                         \             |                       |          
                        /                           + --------------------+              |          
        +-----+     +-----+     +-----+                          |         \    +-----+  |  +-----+ 
    --> |  1  | --> |  1  | --> |  1  | -->   ...                |          +-> | 2>4 | --> |  4  | 
        +-----+     +-----+     +-----+  ^                       |   restore db +-----+  |  +-----+ 
Incarn.    1           1           1     |     1           2     |   recover db          |     4    
SCN #     100         200         300    |    400         400    |   resetlogs           |    400   
                                         |                       |                       |          
Backup   11:00 ----- 12:00 ----- 13:00 ----- 14:00 ----- 15:00 ----- 16:00 ----- 17:00 ----- 18:00  
                                         |                       |                       |          
Restore/                                (1)                     (2)                     (3)         
Recovery                                                                                            

সময় পয়েন্টে ডাটাবেস পুনরুদ্ধার (1)

কোথাও কোথাও 13:00 (বিকাল 1 টা) পরে কেউ সিদ্ধান্ত নিয়েছে যে ডাটাবেসটি 12:00 (12 টা বাজে মধ্যাহ্ন) এ পুনরুদ্ধার করতে হবে। ডিবিএ হয় সময়মতো ডাটাবেসটি পুনরুদ্ধার করার জন্য আরএমএন কমান্ডগুলির একটি গুচ্ছ সেট করে বা তৃতীয় পক্ষের বিক্রেতার কাছ থেকে পুনরুদ্ধার / পুনরুদ্ধার শুরু করার জন্য চমত্কার জিইউআইয়ের মাধ্যমে তার পথে ক্লিক করে।

আরএমএন ডাটাবেসটির সম্পূর্ণ ব্যাকআপ এবং ডিস্ক / টেপ থেকে সমস্ত সংরক্ষণাগার লগ ব্যাকআপ পুনরুদ্ধার করে এবং সেগুলি ডিস্কে পুনরুদ্ধার করে। পুনরুদ্ধারের পর্যায়ে আরএমএন পরীক্ষা করবে যে সমস্ত প্রাসঙ্গিক তথ্য পাওয়া যায় এবং সমস্ত সমাপ্ত লেনদেন পয়েন্ট ইন টাইম এ প্রেরণ করে এবং সমস্ত অসম্পূর্ণ লেনদেনকে পয়েন্ট ইন টাইম করে ফিরিয়ে দেয়, ডাটাবেসটি একটি সুসংগত অবস্থায় রয়েছে তা নিশ্চিত করতে।

সাধারণ জনগণের জন্য ডাটাবেস খোলার আগে, ডাটাবেসটিকে নিশ্চিত করতে হবে যে ভবিষ্যতের সমস্ত ব্যাকআপগুলি আগের ব্যাকআপগুলির সাথে বিরোধ না করে। এটি যখন নতুন অবতার তৈরি করা উচিত এবং যখন আপনি ডাটাবেস খোলার জন্য নিম্নলিখিত কমান্ডটি প্রয়োগ করেন তখন এটি ঘটে:

ALTER DATABASE OPEN RESETLOGS;

আপনার (বর্তমান) অবতারের শ্রেণিবদ্ধ দৃশ্য পুনরুদ্ধার করতে আপনি আপনার দৃষ্টান্তের বিরুদ্ধে নিম্নলিখিত স্ক্রিপ্টটি চালাতে পারেন:

set pages 50               --- repeat header every 50 records
set lines 230              --- set lines(ize) length to 230
column path format a40     --- set column path to alpha-numeric 40
alter sessiosn set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
                           --- set date format of date columns to something more detailed
select 
    INCARNATION#, 
    PRIOR_INCARNATION#, 
    RESETLOGS_CHANGE#, 
    RESETLOGS_TIME, 
    STATUS, 
    SYS_CONNECT_BY_PATH(INCARNATION#, ' -> ') Path 
    FROM v$database_incarnation 
    WHERE LEVEL >=1 START WITH INCARNATION# = '1' 
        CONNECT BY PRIOR INCARNATION# = PRIOR_INCARNATION# 
    ORDER BY LEVEL, Path, RESETLOGS_TIME;

ডাটাবেসের বর্তমান অবতারটি এর সাথে সমান হবে:

INCARNATION# PRIOR_INCARNATION# RESETLOGS_CHANGE# RESETLOGS_TIME      STATUS  PATH
------------ ------------------ ----------------- ------------------- ------- --------------------
           1                  0                 1 2017-03-08 15:57:31 PARENT   -> 1
           2                  1               200 2018-07-27 13:20:00 CURRENT  -> 1 -> 2

গ্রাফিকটি ব্যবহার করে আমরা দেখতে পাচ্ছি যে আমরা অবতার 1 যুক্ত পথটি অবতার 2 সহ পাথের দিকে চলে এসেছি, কারণ আমরা ডাটাবেসটি খুললাম এবং ডেটাবেস RESETLOGSএকটি নতুন অবতার তৈরি করেছে।

সময় পয়েন্টে ডাটাবেস পুনরুদ্ধার (2)

আসুন আবার ধরে নেওয়া যাক প্রথম পুনরুদ্ধার / পুনরুদ্ধার ক্রিয়াকলাপের পরে ডাটাবেসটি চলতে থাকবে এবং 15:00 (3 pm) সামান্য পরে কেউ সিদ্ধান্ত নিয়েছে যে একই দিন 15:00 (বিকাল 3) এ পুরো ঘন্টা ফিরে একটি নতুন পুনরুদ্ধার / পুনরুদ্ধার করার দরকার আছে।

আরএমএন ফাইলগুলি পুনরুদ্ধার করবে, ডাটাবেস পুনরুদ্ধার করবে এবং ALTER DATABASE OPEN RESETLOGSডাটাবেসটিকে অনলাইনে ফিরিয়ে আনতে একটি সেট করবে। INCARNATION # এখন 3 এ সেট করা হবে এবং 16:00 এ প্রথম ব্যাকআপে তথ্য থাকবে:

INCARNATION#    3
SCN#           500
Time......... 16:00

উপরের স্ক্রিপ্টটি ব্যবহার করে আমরা যদি ডাটাবেসে অবতারকে জিজ্ঞাসা করি তবে আমরা এরকম কিছু পাব:

INCARNATION# PRIOR_INCARNATION# RESETLOGS_CHANGE# RESETLOGS_TIME      STATUS  PATH
------------ ------------------ ----------------- ------------------- ------- --------------------
           1                  0                 1 2017-03-08 15:57:31 PARENT   -> 1
           2                  1               200 2018-07-27 13:20:00 PARENT   -> 1 -> 2
           3                  2               400 2018-07-27 15:20:00 CURRENT  -> 1 -> 2 -> 3

সময় পয়েন্টে ডাটাবেস পুনরুদ্ধার (3)

আসুন আবার ধরে নেওয়া যাক দ্বিতীয় পুনরুদ্ধার / পুনরুদ্ধারের ক্রিয়াকলাপের পরে ডাটাবেস চলতে থাকবে এবং 17:00 (বিকাল 5 টা) পরে কিছুটা সিদ্ধান্ত নিয়েছে যে একই দিন নতুন পুনরুদ্ধার / পুনরুদ্ধার হওয়া দরকার একই দিন 14:00 (দুপুর ২ টা)।

আরএমএন ফাইলগুলি পুনরুদ্ধার করবে, ডাটাবেস পুনরুদ্ধার করবে এবং ALTER DATABASE OPEN RESETLOGSডাটাবেসটিকে অনলাইনে ফিরিয়ে আনতে একটি সেট করবে set INCARNATION # এখন 4 এ সেট করা হবে এবং 18:00 এ প্রথম ব্যাকআপে তথ্য থাকবে:

INCARNATION#    4
SCN#           400
Time......... 18:00

উপরের স্ক্রিপ্টটি ব্যবহার করে আমরা যদি ডাটাবেসে অবতারকে জিজ্ঞাসা করি তবে আমরা এরকম কিছু পাব:

INCARNATION# PRIOR_INCARNATION# RESETLOGS_CHANGE# RESETLOGS_TIME      STATUS  PATH
------------ ------------------ ----------------- ------------------- ------- --------------------
           1                  0                 1 2017-03-08 15:57:31 PARENT   -> 1
           2                  1               200 2018-07-16 13:20:00 PARENT   -> 1 -> 2
           3                  2               400 2018-07-17 15:20:00 ORPHAN   -> 1 -> 2 -> 3
           4                  2               300 2018-07-17 17:20:00 CURRENT  -> 1 -> 2 -> 4

কি হয়েছে? আমাদের এতিম আছে!

অনাথ অবতার ...

যদি আপনি গ্রাফিকের দিকে তাকান, আমরা বর্তমানে অবতরণ 4 এবং এসসিএন 400 নিয়ে 18:00 (সন্ধ্যা 6 টায়) বর্গাকারে দাঁড়িয়ে আছি Now এখন আপনি যদি সেই লাইনটি আবার শুরুতে অনুসরণ করেন তবে আপনি দেখতে পাবেন যে আমরা অবতার থেকে যাব 4 অবতার অবধি 2 এবং তারপরে অবতার 1-এ ফিরে যান, এটি যখন ডাটাবেস তৈরি হয়েছিল।

এটি আমার স্ক্রিপ্টগুলির (সরলীকৃত) আউটপুটটির সাথেও মিলে যায়।

INCARNATION# PRIOR_INCARNATION# RESETLOGS_CHANGE# RESETLOGS_TIME      STATUS  PATH
------------ ------------------ ----------------- ------------------- ------- --------------------
           4                  2               300 2018-07-17 17:20:00 CURRENT  -> 1 -> 2 -> 4

তাহলে অবতার 3 নিয়ে কী হল? অবতার 3 খারাপ বা বাসি বা কি দেয়?

উত্তর

না, 3 অবতারটি খারাপ নয়, এটি কেবল অনাথ।

ব্যাকআপগুলি এবং পুনরুদ্ধারগুলির মধ্যে আরও সময় সহ বৃহত্তর স্কেলে আপনি এখনও অবতারের বংশের সময়সীমার মধ্যে একটি সময়ে ডাটাবেসটিকে পুনরুদ্ধার / পুনরুদ্ধার করতে পারেন 3. আপনি নীচের আদেশটি বন্ধ করবেন:

RESET DATABASE TO INCARNATION 3;

... এবং তারপরে সময় মতো ডাটাবেসটিকে পুনরুদ্ধার / পুনরুদ্ধার করুন আপনি যেমন অন্য কোনও ডাটাবেস পুনরুদ্ধার / পুনরুদ্ধার করতে চান।

কি ORPHANঅবস্থা, আপনাকে বলতে যে অবতার 3 আর বর্তমান অবতার 4. এতিম অবতার 3 আর পূর্বাবস্থায় ফিরিয়ে আনুন / বর্তমান টাইমলাইনে বরাবর ডাটাবেসের পুনরুদ্ধার করতে প্রয়োজন বোধ করা হয় সঙ্গে ডাটাবেসের বর্তমান অবস্থা এর সাথে সম্পর্কিত করা হয়।

... অপ্রচলিত ব্যাকআপগুলিতে ফলাফল

এখন এতিম অবতারের সাথে সম্পর্কিত ডাটাবেস ব্যাকআপগুলির দিকে নজর রেখে, আরএমএএন নির্ধারণ করে যে অনাথ অবতারের ব্যাকআপগুলি ওবিএসওএলইটি। তবে এটি একটি ভিন্ন প্রশ্নোত্তরের গল্প ...


7

RC_DATABASE_INCARNATION

অর্পান যদি এটি একটি অবিকৃত অবতার হয় যা বর্তমান অবতারের সরাসরি পূর্বপুরুষ নয়।

ধাপ পুনর্গঠন কর:

SQL> select incarnation#, status from v$database_incarnation;

INCARNATION# STATUS
------------ -------
           1 PARENT
           2 CURRENT

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
    3393014

SQL> shu immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size                  8628936 bytes
Variable Size             394265912 bytes
Database Buffers          662700032 bytes
Redo Buffers                8146944 bytes
Database mounted.
SQL> flashback database to scn 3393014;

Flashback complete.

SQL> alter database open resetlogs;

Database altered.

SQL> select incarnation#, status from v$database_incarnation;

INCARNATION# STATUS
------------ -------
           1 PARENT
           2 PARENT
           3 CURRENT

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
    3393975

SQL> shu immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size                  8628936 bytes
Variable Size             394265912 bytes
Database Buffers          662700032 bytes
Redo Buffers                8146944 bytes
Database mounted.
SQL> flashback database to scn 3393200;

Flashback complete.

SQL> alter database open resetlogs;

Database altered.

SQL> select incarnation#, status from v$database_incarnation;

INCARNATION# STATUS
------------ -------
           1 PARENT
           2 PARENT
           3 PARENT
           4 CURRENT

SQL> shu immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size                  8628936 bytes
Variable Size             394265912 bytes
Database Buffers          662700032 bytes
Redo Buffers                8146944 bytes
Database mounted.
SQL> flashback database to scn 3393014;

Flashback complete.

SQL> alter database open resetlogs;

Database altered.

SQL> select incarnation#, status from v$database_incarnation;

INCARNATION# STATUS
------------ -------
           1 PARENT
           2 PARENT
           3 ORPHAN
           4 ORPHAN
           5 CURRENT
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.