এসকিএল সার্ভারে ওয়েব সার্ভার লগের 'এন' দিনগুলি কীভাবে সংরক্ষণ করবেন?


18

দ্রুত প্রতিবেদন এবং কর্মক্ষমতা বিশ্লেষণের জন্য, আমরা আমাদের ওয়েব সার্ভার লগগুলি সিকিএল সার্ভারে সন্নিবেশ করতে চাই। এটি আমাদের কাছাকাছি রিয়েল-টাইমে ট্র্যাফিকের নিদর্শন, সমস্যাগুলি, মন্দা দেখতে দেয় to

আমাদের একটি ডেমন রয়েছে যা আমাদের লোড ব্যালান্সার এবং ডেটাবেসে বাল্ক সন্নিবেশ থেকে অনুরোধ / প্রতিক্রিয়া ইভেন্টগুলি শোনায়।

তবে, আমরা প্রতিদিন প্রায় 1 গিগাবাইট লগ পাই এবং আমাদের কেবল প্রায় এক সপ্তাহ রাখা উচিত (কমপক্ষে এই কাঁচা ফর্মটিতে)।

এই ডেটা সংরক্ষণ করার সর্বোত্তম উপায় এবং পুরানো এন্ট্রিগুলি মোছার সর্বোত্তম উপায় কী?

আমরা প্রত্যেক দিনের ডেটা তার নিজস্ব টেবিলে সংরক্ষণ করার বিষয়ে কথা বললাম, উদাহরণস্বরূপ Log_2011_04_07সেই দিনের জন্য সমস্ত এন্ট্রি থাকবে এবং তারপরে প্রাচীনতম টেবিলটি বাদ দেওয়া হবে। সহজে অনুসন্ধানের জন্য সারা দিনের টেবিল বিস্তৃত করার জন্য একটি দৃশ্য তৈরি করা যেতে পারে। সম্ভাব্য কি?


এটি একটি খুব অনুরূপ প্রশ্ন তবে ওরাকেলের জন্য; বাক্য গঠনটি ভিন্ন হবে তবে এটি তারিখ অনুসারে বিভাজনের একটি সর্বোত্তম প্রয়োগ। চাকাটি পুন: উদ্ভাবনের দরকার নেই :-)
গাইউস

উত্তর:


17

আপনার বিভাজনের দিকে নজর দেওয়া উচিত।

http://technet.microsoft.com/en-us/library/dd578580%28SQL.100%29.aspx

বিভাজন সম্পর্কে দুর্দান্ত জিনিসটি হল আপনার কেবল একটি টেবিলের নাম রয়েছে (একাধিক টেবিল পদ্ধতির বিপরীতে) যাতে আপনার sertোকানো বিবৃতি স্থির থাকে। এটি প্রতিটি অ্যাপ্লিকেশনের সাথে কাজ করে - এটি প্রশ্নের সম্পূর্ণ স্বচ্ছ। আপনি যদি প্রতিটি টেবিলের বিভিন্ন সূচি বা পরিসংখ্যান দিয়ে শেষ করেন তবে কী হবে তা নিয়ে আপনাকে চিন্তার দরকার নেই।

আপনি একটি পার্টিশন ফাংশন তৈরি করেন যা দৃশ্যের পিছনে একাধিক টেবিলগুলিতে টেবিলটি কীভাবে ভাঙ্গতে হবে তা স্থির করে। ফাংশনটি কেবল একটি ইনপুট প্যারামিটার / ক্ষেত্র নিতে পারে এবং আপনার ক্ষেত্রে এটি একটি তারিখের ক্ষেত্র হবে। ফাংশনটি তারিখ, সপ্তাহ, মাস, বা বছর অনুসারে টেবিলটি ভেঙে ফেলতে পারে - আপনার ক্ষেত্রে, আপনি তারিখ চান, 24 ঘন্টা সময় চাই।

তারপরে একটি এসকিউএল সার্ভার এজেন্ট কাজ তৈরি করুন যা প্রতিদিন শেষ পার্টিশনটি অদলবদল করতে টি-এসকিউএল ব্যবহার করে। মুছে ফেলা একটি মেটাডেটা অপারেশন হয়ে যায় এবং এটি দ্রুত জ্বলছে। পার্টিশনটি অদলবদল করুন, তারপরে পুরানোটি বাদ দিন।


আমি এটি খতিয়ে দেখব - এটি পৃথক পার্টিশন হ্রাস করার অনুমতি দেয়, তাই মুছে ফেলা দ্রুত যেতে পারে?
টেকনোলজি ডিক্সন

3
হ্যাঁ, আপনার বিশেষত "স্বয়ংক্রিয় স্লাইডিং উইন্ডো পার্টিশন" ধারণাটি দেখে নেওয়া উচিত। আপনি SQLServerCentral খুঁজে পেতে পারেন প্রবন্ধ একটি সুন্দর সিরিজ: part1 , Part2 এবং part3
মেরিয়ান

7

আমরা 6 বছর আগে একটি ওয়েবস্ট্যাটিস্টিক লগিং পণ্য তৈরি করেছি যা আমাদের ব্যবহারকারীদের দেখার প্রতিটি ক্লিক ট্র্যাক করতে দেয়।

আমরা যা করেছি তা হ'ল প্রতিটি ভিজিটকে রেকর্ড করার সাথে সাথে আপনি লিখেছিলেন এবং নির্ধারিত ডিমন লগগুলিকে পার্স করে এবং পরবর্তী অনুসন্ধানের জন্য ডেটা স্বাভাবিক করে দেয়। ডেটা / রেকর্ডটি পার্স হওয়ার সাথে সাথে এটি ডেটা কাঠামোকে কম রাখার জন্য সরানো হয়েছে।

আমাদের পণ্যের পরবর্তী সংস্করণটির জন্য, আমরা বাল্ক-সংগ্রহকারীদের আলাদা করে ওয়েবসাইটে বিতরণ করব এবং তারপরে ডেমন ব্যবহার করে ডেটা সংগ্রহ করতে এবং পরে বাল্ক-পরিষেবাতে আদেশ জারি করে পরিষ্কার করব।

এইভাবে আমরা ডেটা হারানো ছাড়াই একটি "নির্ধারিত রক্ষণাবেক্ষণ" পরিচালনা করতে পারি।

কেন্দ্রের সার্ভারে ক্লিনআপ ইস্যু সম্পর্কিত, আমাদের বর্তমান পরিকল্পনাটি উদাহরণস্বরূপ তথ্য সংরক্ষণাগারভুক্ত করতে "টাইমস্ট্যাম্পগুলি" যুক্ত করা। 3 মাস.

আমরা 3 ডি গেমস / রেন্ডারিংয়ে এমআইপি-এমএপি টেক্সচারের মতো এটি ভেবেছি। আপনি যত কাছাকাছি আসবেন তত বেশি বিশদ ডেটা, আরও দূরে, আরও "গোষ্ঠীভূত" এবং কম বিশদ।

তাই প্রতিদিনের ভিত্তিতে আমরা দর্শনার্থীদের নিদর্শনগুলি পর্যবেক্ষণ করতে পারি, তবে 3 মাস পরে সেই ডেটাগুলি সত্যই প্রাসঙ্গিক নয় এবং আমরা ডেটাটি কম বিশদে সংকুচিত করি।

"বিশদ স্তরের" বিচ্ছিন্ন জনসংযোগ বজায় রাখার জন্য আমরা সিদ্ধান্ত নিয়েছি যে আমরা এটির জন্য ডাটাবেসগুলিকে খণ্ডগুলিতে বিভক্ত করব কিনা। তথ্যশালা. তবে আমরা কেবল সম্ভবত, যেমন আমরা একই ডাটাবেসে বিভিন্ন স্তর সংরক্ষণ করি তবে নামকরণের কিছু সমস্যা রয়েছে।

আশা করি আপনি এটি কিছুর জন্য ব্যবহার করতে পারবেন? আমাদের কোম্পানির পণ্যের অংশ হিসাবে আমি আপনাকে উদাহরণ কোড সরবরাহ করতে পারি না।


1

দুটি কলাম সহ আরও একটি টেবিল দৈনিক_ টেবিল তৈরি করুন: সারণী_নাম এবং তারিখ_সারণযোগ্য_বিকাশযুক্ত। আপনার কোডে যা একটি নতুন প্রতিদিনের টেবিল তৈরি করে (যা ওয়েব লগগুলি লোড করে), তৈরি করা টেবিলের নাম এবং টাইমস্ট্যাম্প (বর্তমান তারিখের সময়) সহ ডেলি_ টেবিল সারণী স্থাপন করতে অন্য এন্ট্রি যুক্ত করুন। একটি এসকিউএল এজেন্ট কাজ তৈরি করুন যা প্রতি সপ্তাহে একটি টিএসকিউএল স্ক্রিপ্ট চালাবে। টিএসকিউএলকে _ দিনের চেয়ে পুরানো একটি ডেট_টেবিল_ক্রিয়েটড টাইমস্ট্যাম্প সহ ডেইলি_ টেবিলগুলি থেকে সমস্ত টেবিলের নাম (টেবিলের নাম) বাদ দেওয়া উচিত।

এই জন্য আপনি খুঁজছেন হয়েছে কি না আশা করি :)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.