ডাটাবেস সার্ভারে এনটিপি শুরু করার ঝুঁকি?


27

ডাটাবেস এবং মেল সার্ভারগুলিতে খারাপ কিছু হওয়ার গুজব শুনেছি যদি আপনি চলমান সময় সিস্টেমের সময় পরিবর্তন করেন। যাইহোক, প্রকৃত ঝুঁকি সম্পর্কিত কোনও সুনির্দিষ্ট তথ্য খুঁজে পেতে আমার খুব কষ্ট হচ্ছে।

আমার একটি প্রোডাকশন পোস্টগ্রিস 9.3 সার্ভার একটি ডেবিয়ান হুইজি হোস্টে চলছে এবং সময়টি 367 সেকেন্ডের মধ্যে বন্ধ। ntpdateপোস্টগ্র্রেস চলাকালীন আমি কি কেবল ওপেনটিপ চালাতে বা শুরু করতে পারি , বা এটির কারণে কোনও সমস্যা হওয়ার সম্ভাবনা রয়েছে? যদি তা হয় তবে সময় সংশোধন করার নিরাপদ পদ্ধতি কী?

সিস্টেম সময় পরিবর্তনের জন্য আরও সংবেদনশীল এমন কি অন্যান্য পরিষেবা রয়েছে? মেইল সার্ভার (এক্সিম, সেন্ডমেল, ইত্যাদি) বা বার্তার সারি (অ্যাক্টিভ এমকিউ, রাবিটমিক, জেরোমক, ইত্যাদি)?

উত্তর:


23

ডেটাবেসগুলি সময় মতো পিছনের পদক্ষেপগুলি পছন্দ করে না, তাই আপনি সময়টি লাফানোর ডিফল্ট আচরণ দিয়ে শুরু করতে চান না। যোগ করা হচ্ছে -xকমান্ড লাইন বিকল্প সময় হত্যা করল যদি অফসেট কম 600 সেকেন্ড (10 মিনিট) হবে। সর্বোচ্চ হারে হারে এক মিনিটের মধ্যে ঘড়িটি সামঞ্জস্য করতে প্রায় দেড় দিন সময় লাগবে। সময় সামঞ্জস্য করার এটি একটি ধীর অথচ নিরাপদ উপায়।

ntpসময় সামঞ্জস্য করতে দৌড়ানোর আগে , আপনি কতটা অফসেট এটি সনাক্ত করছে তা যাচাই করার ntpমতো একটি বিকল্প দিয়ে শুরু করতে চাইতে পারেন -g 2। এটি প্যানিক অফসেটটিকে 2 সেকেন্ডে সেট করবে যা তুলনামূলকভাবে নিরাপদ হওয়া উচিত।

এই বিকল্পটি উপলভ্য হওয়ার আগে আমি একটি বিকল্প বিকল্পটি ব্যবহার করেছি এটি ছিল একটি লুপ লেখা যা প্রতি মিনিটে কয়েক মিনিট পরে সেকেন্ডের ঘড়ির অংশটি পুনরায় সেট করে। আপনি যদি পুনরায় সেটটি দ্বিতীয়টি পরিবর্তন না করে তা নিশ্চিত করার জন্য পরীক্ষা করে থাকেন এটি সম্ভবত নিরাপদ। আপনি যদি টাইমস্ট্যাম্পগুলি ভারী ব্যবহার করেন তবে আপনার ক্রম রেকর্ডের বাইরে রয়েছে।

একটি সাধারণ বিকল্পটি হ'ল দীর্ঘক্ষণ সার্ভারটি বন্ধ করে দেওয়া যে ঘড়ির কোনও পশ্চাদপসরণ নেই। ntpবা ntpdateশুরুতে সঠিক সময়ে ঘড়িটি লাফিয়ে কনফিগার করা যেতে পারে। এটি ডাটাবেস শুরু হওয়ার আগেই করা উচিত।


8

ডাটাবেসগুলি যদি খুব সক্রিয় থাকে এবং অভ্যন্তরীণ রেকর্ডগুলিতে টাইমস্ট্যাম্প থাকে তবে তারা সিস্টেম সময় পরিবর্তনের জন্য বিশেষত দুর্বল হতে পারে। সাধারণভাবে, যদি আপনি সময় পিছনে থাকেন তবে আপনি যদি সামনের দিকে এগিয়ে যান এবং হঠাৎ পিছন দিকে ঝাঁপ দেন তবে আপনি যদি হঠাৎ এগিয়ে যান তবে আপনার খুব কম সমস্যা হবে।

জোফ্রে যেমন উল্লেখ করেছেন - এটি প্রায়শই এমন অ্যাপ্লিকেশন যার সাথে হঠাৎ সময়ের সাথে ঝাঁপিয়ে পড়ার সমস্যা রয়েছে যা ডেটাবেস থেকেই। সময়টি সংশোধন করার সবচেয়ে নিরাপদতম উপায় হ'ল এন + 1 মিনিটের জন্য অ্যাপ্লিকেশনটি বন্ধ করে দেওয়া (যেখানে এন আপনার সিস্টেমের ঘড়িটি এগিয়ে যাওয়ার মিনিটের সংখ্যা হয়) এবং তারপরে সময় সিঙ্ক করে, এনটিপি শুরু করে এবং অ্যাপ্লিকেশনটি পুনরায় চালু করে। আপনি যদি অ্যাপ্লিকেশনটিতে এতটা ডাউনটাইম নিতে না পারেন তবে আমি কেবলমাত্র সময় সিঙ্ক করার আগে আপনাকে ডাটাবেসটির একটি ব্যাকআপ নেওয়ার পরামর্শ দিতে পারি, তারপরে কম্পিউটারডমের গডায় একটি মৃত কাঠবিড়ালি উপস্থাপন করুন এবং কেবল ট্রিগারটি টানুন। ঠিক আছে, আমি কিছুটা রুচিশীল হয়ে উঠছি, তবে অ্যাপ্লিকেশন আউটেজ নেওয়ার চেয়ে আমি অন্য কোনও "নিরাপদ" উপায় সম্পর্কে ভাবতে পারি না।


আমি এগিয়ে এবং প্রায় 6 মিনিট পিছনে পিছনে লাফিয়ে উঠার প্রয়োজন need আমার সাথে অনেকগুলি, অনেকগুলি অভ্যন্তরীণ রেকর্ড রয়েছে যা সেট করা হয়েছিল now()। আপনি নিজের উত্তরের সময় পরিবর্তন করার কোনও নিরাপদ পদ্ধতি যুক্ত করতে পারেন?
ਵਿਸ਼ਾਲভাবে সুপিরিয়রম্যান

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

@ জোনাথনজে - এনটিপিকে 5 মিনিটেরও বেশি সময় স্কিউগুলি সংশোধন করতে অসুবিধা হয় এবং যখন "স্ট্যান্ডার্ড" ডকুমেন্টেশন প্রতি সেট করা হয় (যার মধ্যে বেশ কয়েকটি সেট রয়েছে, স্বীকৃতভাবে) প্রথমে এক লাফে সময় সিঙ্ক করে তারপরে ড্রিফ্ট সামঞ্জস্য করে সিঙ্ক বজায় রাখে।
জন

@ জন আমি কয়েক বছর আগে কাঠবিড়ালি হয়ে দৌড়েছি;)
জোফ্রে

4

এটি সাধারণত ডাটাবেস সার্ভার নয় যা তাত্ক্ষণিক সময় লিপ হওয়ার সময় ত্রুটির পক্ষে ঝুঁকির মধ্যে পড়ে: এটি সেই অ্যাপ্লিকেশনগুলি যা সময়টি ব্যবহার করে।

সময় ট্র্যাক করার দুটি উপায় রয়েছে: নিজস্ব সময় ট্র্যাকিং বা সিস্টেমের সময়ের তুলনা। উভয়েরই কিছু ইতিবাচক এবং নেতিবাচক বাণিজ্য রয়েছে।

নিজস্ব সময় ট্র্যাকিং

আমি এটি এমন কিছু এম্বেডেড প্রোগ্রামিং এবং সিস্টেমে ব্যবহৃত দেখতে পাই যেখানে সঠিক সময় নির্ধারণ করা তাত্পর্যপূর্ণ নয়। একটি প্রধান অ্যাপ্লিকেশন লুপে 'টিক' ট্র্যাক করার একটি উপায় যত্ন নেওয়া হয়। এটি কার্নেলের দ্বারা প্রদত্ত একটি অ্যালার্ম হতে পারে, ঘুম বা নির্বাচন করুন যা সময় কেটে গেছে তার ইঙ্গিত দেয়। কখন কী সময় কেটে গেছে তা আপনি জানেন আপনি একটি কাউন্টারে এই সময় যোগ বা বিয়োগ করতে পারেন। এই কাউন্টারটি হ'ল যা আপনার সময় প্রয়োগকে ঘটায়। উদাহরণস্বরূপ, যদি কাউন্টারটি 10 ​​সেকেন্ডের বেশি হয় তবে আপনি কিছু ফেলে দিতে পারেন, বা আপনাকে কিছু করতে হবে।

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

প্রো:

  • সিস্টেম ঘড়ির উপর নির্ভরশীল নয়
  • একটি বড় সময় স্কু ব্রেক হবে না
  • কোনও ব্যয়বহুল সিস্টেম কল নেই
  • ছোট কাউন্টারের পুরো টাইমস্ট্যাম্পের চেয়ে কম মেমরির ব্যয় হবে

কন:

  • সময় খুব সঠিক হয় না
  • সিস্টেমের সময় পরিবর্তন এটিকে আরও ভুল করে তুলতে পারে
  • সময়টি অ্যাপ্লিকেশন চালনার সাথে সম্পর্কিত, স্থির থাকে না

সিস্টেমের সময়ের তুলনা করা

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

প্রো:

  • সঠিক সময়ের তুলনা
  • পুনরায় আরম্ভ এবং দীর্ঘ বিরতির উপর স্থায়ী

কন:

  • অন্যান্য টাইমস্ট্যাম্পগুলির সাথে তুলনা করার জন্য একটি নতুন টাইমস্ট্যাম্প পেতে একটি সিস্টেম কল নেয়
  • অ্যাপ্লিকেশনটির স্কিউ সম্পর্কে সচেতন হওয়া বা ব্রেক করতে পারে

প্রভাবিত সিস্টেম

অ্যাপ্লিকেশনগুলির বেশিরভাগ সময় নির্ধারণের কাজের সাথে তুলনা করে টাইমস্ট্যাম্প ব্যবহার করবে। ডাটাবেস সিস্টেমের জন্য যা ক্যাশে ক্লিনআপ হতে পারে।

সমস্ত অ্যাপ্লিকেশন যা কোয়েরি ভাষায় একটি ডেটাবেস এবং কল টাইম ফাংশন ব্যবহার করে তা যদি স্কুলে অ্যাপ্লিকেশন সনাক্ত না করে এবং সেই অনুযায়ী পরিচালনা না করে তবে স্কিউ দ্বারা প্রভাবিত হবে। অ্যাপ্লিকেশনগুলি কখনই চলমান বন্ধ করতে পারে না বা এর উদ্দেশ্য অনুসারে অনির্দিষ্টকালের জন্য লগইন সময়কে অনুমতি দেয় না allow

মেল সিস্টেমগুলি বাসি বা অপরিবর্তিত মেলগুলি পরিচালনা করার জন্য টাইমস্ট্যাম্প এবং / অথবা টাইমআউটগুলি ব্যবহার করবে। একটি ঘড়ির স্কিউ এতে প্রভাব ফেলতে পারে তবে খুব কম প্রভাব ফেলতে পারে। সার্ভারে পুনরায় সংযোগ সম্পর্কিত ব্যাক-অফ টাইমারগুলি মিস হয়ে যেতে পারে যার ফলে সংযোগকারী সার্ভারে পেনাল্টি হয়।

আমি মনে করি না (গবেষণা করেনি) যে সিস্টেমের সময় পরিবর্তন করার সময় কার্নেল অ্যালার্মগুলি বন্ধ হয়ে যাবে। যে সিস্টেমগুলি এগুলি ব্যবহার করে সেগুলি নিরাপদ হতে পারে।

সলিউশন

আস্তে সময় সরানো। এটি আপনার প্রিয় সময় সমাধানের ডকুমেন্টেশনে পাওয়া যাবে।


1
এটি একটি দুর্দান্ত প্রতিক্রিয়া, এবং সময় রাখার বিষয়ে আরও শিখার জন্য আমি প্রশংসা করি। আমি এটি নির্বাচন করিনি কারণ এটি আমার প্রোডাকশন ডেটাবেস সার্ভারে সময় সামঞ্জস্য করার বর্তমান উদ্বেগের স্পষ্ট সমাধান সরবরাহ করে না। আমাকে জিনিস শেখানোর জন্য +1।
ਵਿਸ਼ਾਲভাবে সুপিরিয়রম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.