আমি আমার বর্তমান এসসিএন কীভাবে খুঁজে পাব?


14

ওরাকলের যে কোনও সংস্করণ দেওয়া হয়েছে:

  • আমি আমার বর্তমান এসসিএন কীভাবে খুঁজে পাব?
  • সর্বাধিক সম্ভাব্য এসসিএন কী?

এই প্রশ্নটি এই নিবন্ধটি দ্বারা অনুপ্রাণিত হয়েছিল । এই মুহুর্তে এই সংখ্যাগুলি খুঁজে পেতে সম্ভবত প্রচুর ওরাকল মানুষ রয়েছেন। :)
নিক চ্যামাস

দেখে মনে হচ্ছে আমার আগের মন্তব্যটির লিঙ্কটি এখন ভেঙে গেছে। আমি বিশ্বাস করি যে পৃষ্ঠাটি এখানে স্থানান্তরিত হয়েছিল: infoworld.com/article/2618409/…
নিক চ্যামাস

উত্তর:


16

বর্তমান এসসিএন

ওরাকল 9 আই:

SELECT dbms_flashback.get_system_change_number as current_scn 
FROM DUAL;

ওরাকল 10 গ্রাম এবং উপরে:

SELECT current_scn
FROM V$DATABASE;

এসসিএন সীমাবদ্ধতা

এখানে বর্ণিত হিসাবে এসসিএন এর ফর্ম্যাট দ্বারা আরোপিত একটি শক্ত সীমা এবং ওরাकल দ্বারা কৃত্রিমভাবে চাপানো একটি নরম সীমা রয়েছে । আমি নীচের প্রাসঙ্গিক অংশ উদ্ধৃত করেছি (জোর যুক্ত করা)।

হার্ড সীমাবদ্ধতা

ওরাকল এর ফ্ল্যাগশিপ ডাটাবেস অ্যাপ্লিকেশনটির স্থপতিরা অবশ্যই এসসিএনকে একটি পূর্ণসংখ্যার পূর্ণসংখ্যা হওয়ার জন্য ভালভাবে অবগত ছিলেন। এটি: একটি 48-বিট নম্বর ( 281,474,976,710,656 )। অরাকল ডাটাবেসের জন্য সেই সংখ্যার লেনদেনটি গ্রহন করতে এবং সমস্যার কারণ হতে পারে - বা আপনার মনে হতে পারে।

নরম সীমা

নরম সীমাটি 24 বছর আগে সময়ে একটি বিন্দুতে নোঙ্গর করা খুব সাধারণ গণনা থেকে প্রাপ্ত: 00:00:00 01/01/1988 সাল থেকে সেকেন্ডের সংখ্যাটি নিন এবং সেই চিত্র 16,384 দ্বারা গুণ করুন। যদি বর্তমান এসসিএন এর মান নীচে থাকে তবে সমস্ত কিছু ঠিক আছে এবং প্রক্রিয়াজাতকরণ স্বাভাবিক হিসাবে চলতে থাকে। এটিকে সহজ ভাষায় বলতে গেলে, গণনাটি ধরে নিয়েছে যে 01/01/1988 সাল থেকে একটি ডাটাবেস ক্রমাগত চলমান, প্রতি সেকেন্ডে 16,384 লেনদেন প্রক্রিয়াজাতকরণ বাস্তবে থাকতে পারে না।

এসসিএন সীমা পরীক্ষা করুন

এই স্ক্রিপ্ট (ওরাকল 10 গ্রাম এবং উপরে) আপনি কতটা শক্ত এবং নরম সীমাবদ্ধতা শেষ করেছেন তা পরীক্ষা করবে। নরম সীমাটি কল করার জন্য রবকে ধন্যবাদ।

WITH limits AS (
  SELECT 
      current_scn
  --, dbms_flashback.get_system_change_number as current_scn -- Oracle 9i
    , (SYSDATE - TO_DATE('1988-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) * 24*60*60 * 16384 
        AS SCN_soft_limit
    , 281474976710656 AS SCN_hard_limit
  FROM V$DATABASE
)
SELECT
    current_scn
  , current_scn/scn_soft_limit*100 AS pct_soft_limit_exhausted
  , scn_soft_limit
  , current_scn/scn_hard_limit*100 AS pct_hard_limit_exhausted
  , scn_hard_limit
FROM limits;

2
আমি আপনার উত্তর আছে দেখুন। আপনারও রিয়েজের নিবন্ধটি orainternals.com/2012/01/20/scn- কি- কেন- এবং-
লিচফিল্ড

রেফারেন্সের জন্য ধন্যবাদ! অন্য কেউ যদি এটি পড়তে চায় তবে নিবন্ধটি এখন orainternals.wordpress.com/2012/01/19/scn- কি- কেন- এবং- কীভাবে রয়েছে
ম্যাগনাস রেফটেল

6

এসসিএন বাগ ইস্যু সম্পর্কিত স্যানিটির জন্য আমার ডাটাবেসগুলি পরীক্ষা করতে আমি এখানে এসেছি:

# Show the amount of SCN keyspace we have used so far on this database
# By default the SCN max on a 10g/11g 
# instance is a 48-bit integer (281,474,976,710,656) 
SELECT NAME,  
   (current_scn/281474976710656)*100 as PCT_OF_SCN_KEYSPACE_USED,  
   ROUND(SYSDATE-CREATED) as DAYS_SINCE_DB_CREATION, 
   ROUND(1/(current_scn/281474976710656)*(SYSDATE-CREATED)) AS EST_DAYS_BEFORE_SCN_EXHAUSTED, 
   ROUND(1/(current_scn/281474976710656)*(SYSDATE-CREATED)/365) AS EST_YEARS_BEFORE_SCN_EXHAUSTED  
FROM v$database;

আমার বেশিরভাগ ডাটাবেস যা ডিবি লিঙ্কগুলি ব্যবহার করে তারা 3.5% অবসন্ন চিহ্নে থাকে এবং কোন সমস্যা ছাড়াই 50+ বছর ধরে বর্তমান হারে চালিয়ে যেতে পারে। এর অর্থ এই নয় যে আমি এসসিএন বাগটিকে টিকটিক করে কারও কাছ থেকে নিরাপদ, তবে কমপক্ষে আমরা এমন একটি ডেটাবেস খুঁজে পাই নি যা অন্যের চেয়ে উচ্চতর বা সীমাটির কাছাকাছি ছিল।


2

281,474,976,710,656 হ'ল হার্ড সীমা। নরম সীমাটি কী তা আপনি জানতে চাইবেন, যেহেতু এটিই প্রথমে আপনার মাথায় আঘাত করবেন। নরম সীমাটি (মোটামুটিভাবে) 1 জানুয়ারী, 1988 x 16384 এর পরে কেটে যাওয়া সেকেন্ডের সংখ্যা দ্বারা গণনা করা হয়।


আমি জানি না যে পুরানো উত্তরগুলি কীভাবে নরম সীমাটি মিস করেছিল (যা নিকের সাথে যুক্ত নিবন্ধে উল্লেখ করা হয়েছে) - সুতরাং অনুপস্থিত বিশদ যুক্ত করার জন্য এটি একটি ভাল ধারণা।
dezso
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.