কোন টেবিলগুলি সাফ করা নিরাপদ?


40

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

আমি স্ট্যান্ডার্ড ক্যাশে টেবিল, সিসলগ এবং অ্যাক্সেসলগ সাফ করে দিয়েছি।

কোনও স্ট্যান্ডার্ড ড্রুপাল সাইটে আমি নিরাপদে কাটাতে পারি এমন অন্য কোনও টেবিল রয়েছে কি?


1
আপনি phpmyadmin এ তাদের আকারের উপর ভিত্তি করে টেবিলগুলি বাছাই করতে পারেন। এটি চেষ্টা করুন এবং তারপরে কোন সারণীগুলি সবচেয়ে বড় তা দেখুন এবং এখানে রিপোর্ট করুন। আমি উদাহরণস্বরূপ বিশাল সেশন টেবিল দেখেছি যা কোনও কারণে পরিষ্কার হয় না। এটি এমন একটি বিষয় যা আপনি পরিষ্কার করতে পারেন যদি আপনি আবার লগইন করা ব্যবহারকারীদের সাথে থাকতে পারেন (এবং সম্ভবত সাইটে থাকা ফর্ম ডেটাগুলি
হারাতে

সেখানে কেবল একটি পার্শ্ব নোট, যে ট্রান্সকাটিংয়ের উল্লেখ নীচে সমস্ত উত্তর {cache_form}সত্যই সঠিক নয়। এটি সত্যিকারের ক্যাশে টেবিল নয়। এটি অগ্রগতির ফর্ম জমাগুলিতে রয়েছে। আপনি যদি এই টেবিলের সমস্ত ডেটা মুছে ফেলেন তবে আপনার ব্যবহারকারীর ডেটা হারাতে পারে । এই টেবিলটির সাথে সঠিক জিনিস হ'ল প্রবেশের মেয়াদ শেষ।
এমপিডোনাডিও

উত্তর:


21

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

এটি যদি পিএইচপিএমআইএডমিনের সাথে নজর রাখতে সহায়তা না করে এবং কোন টেবিলে প্রচুর এন্ট্রি রয়েছে তা আমাদের জানান।


1
এটি আমি প্রথম গিয়েছিলাম। তবে, ডাটাবেসটি গিগের চেয়ে বেশি এবং এই পদ্ধতির মাধ্যমে ব্যাকআপ নেবে না। আমার উদ্দেশ্য হল ডাটাবেস সাফ করা যাতে আমি ব্যাকআপ ব্যবহার করতে পারি এবং নিয়মিত মাইগ্রেট করতে পারি। মূলত আমি ভাবছি যে আমি পরিষ্কার করতে পারি এমন আরও কোনও টেবিল রয়েছে কিনা (যেগুলি ডিএএমএফ ডিফল্টভাবে বিএএম ছাড়েনি)।
নাইজেল ওয়াটারস

আপনার যদি কমান্ড লাইন অ্যাক্সেস থাকে তবে আপনি ব্যাকআপ শুরু করতে এবং স্থানান্তরিত করতে ড্রাশ ব্যবহার করতে পারেন। অথবা কমান্ড লাইনে mysql অ্যাক্সেস করুন (উদাহরণ: mysqldump --host = your.host.com --user = db_user --compress --password your_pw> dump.sql) এইভাবে আপনি সময়সামগ্রীতে চলে যাবেন না। সাধারণভাবে ব্যাকআপ না করে সাফ করা খুব সাশ্রয়ী নয়। আপনি সহজেই একটি ভাঙা পৃষ্ঠা এবং ফিরে যেতে কোনও উপায় দিয়ে শেষ করতে পারেন।
বিটা রাইড

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

@ বেটা রাইড সঠিক, বিএএম-কে বাদ দেওয়া ডিফল্টগুলিই নিরাপদ। অন্যদের কাছে প্রকৃত ডেটা থাকতে পারে বা নাও থাকতে পারে।
এমপিডোনাদিও

22

ড্রুপাল 7 টি টেবিল যা বাদ দেওয়া যায়

এখানে দ্রুপাল in-এ সারণীর একটি তালিকা রয়েছে যা আপনি হয় সাফ করতে পারেন (ডাটাবেসের আকার হ্রাস করতে) বা নিরাপদে স্থানান্তর করতে বাদ দিতে পারেন ( আমার সার্ভার আমদানির সীমাটি পেতে স্থানীয়ভাবে রফতানি করা ডাটাবেসের আকার কীভাবে হ্রাস করবেন? ):

  • accesslog
  • দল
  • সমস্ত ক্যাশে সম্পর্কিত সারণী যেমন:
    • ক্যাশে *
    • cache_block
    • cache_content
    • cache_filter *
    • cache_form
    • cache_calendar_ical
    • cache_menu *
    • cache_page *
    • cache_views
    • * _ ক্যাশে, যেমন বৈশিষ্ট্য_ক্যাচ বা দর্শন_ডাটা_জেক্ট_এক্সপোর্ট_ক্যাচ
  • ctools_views_cache
  • ctools_object_cache
  • devel_queries
  • devel_times
  • বন্যা
  • ইতিহাস
  • কিউ
  • বিভিন্ন অনুসন্ধান_ * টেবিল, যেমন:
    • search_dataset
    • search_index
    • search_keywords_log
    • search_total
  • সেমফোর্
  • সেশন
  • রক্ষী কুকুর
  • webform_submitted_data

সাধারণত টেবিল যেমন search_indexএবং watchdogপ্রচুর ডাটাবেস স্পেস ব্যবহার করে, সুতরাং কেবলমাত্র সেই 2 টি টেবিলগুলি সরিয়ে ফেলা ইতিমধ্যে একটি বিশাল পার্থক্য আনতে পারে।

বাদ দেওয়া হতে পারে এমন অন্যান্য সারণী

আপনার অবশিষ্ট টেবিলগুলির আকার পরীক্ষা করুন এবং তাদের মধ্যে কোনটি আকারে সবচেয়ে বড় তা সনাক্ত করুন।

সাধারণত আপনি সেশন টেবিলগুলি সন্ধান করতে পারেন যার জন্য কোনও পরিষ্কার করার পদ্ধতি নেই। এই জাতীয় সারণী আপনি সম্ভবত বাদ দিতে পারেন।

মডিউল ব্যাকআপ এবং মাইগ্রেট

" আমার সার্ভার আমদানির সীমাটি পেতে কীভাবে স্থানীয়ভাবে রফতানি করা ডাটাবেসের আকার হ্রাস করা যায়? " এ বিশদ হিসাবে চ্যালেঞ্জটি আরও কমাতে , ব্যাকআপ এবং মাইগ্রেট মডিউলটিও দেখুন । এটির প্রকল্প পৃষ্ঠা থেকে এখানে একটি উদ্ধৃতি (বোল্ড মার্কআপ এখানে যুক্ত করা হয়েছে):

আপনার ড্রুপাল মাইএসকিউএল ডাটাবেস, কোড এবং ফাইলগুলি ব্যাক আপ করুন এবং পুনরুদ্ধার করুন বা পরিবেশের মধ্যে কোনও স্থানান্তর করুন rate ব্যাকআপ এবং মাইগ্রেট জিজিপ, বিজিপ এবং জিপ সংক্ষেপণের পাশাপাশি স্বয়ংক্রিয়ভাবে নির্ধারিত ব্যাকআপ সমর্থন করে।

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

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


গুড যোগ করার জন্য যে কোন টেবিল cache_prepended বা _cacheযোগ করা নিরাপদ যেমন পাশাপাশি অগ্রভাগ ছাঁটিয়া চাই, features_cacheবা views_data_object_export_cacheইত্যাদি
Beebee

1
যুদ্ধের শব্দ, অনুসন্ধান সারণী ডেটা বাদ দেওয়া যেতে পারে তবে বড় সাইটগুলিতে সূচিগুলি পুনর্নির্মাণ করতে খুব, খুব দীর্ঘ সময় লাগতে পারে। কেস বাই বাই বেস ভিত্তিতে এটি বিচার করুন।
এমপিডোনাদিও

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

@ এমপিডি: এই আকর্ষণীয় প্রতিক্রিয়ার জন্য ধন্যবাদ (এটি সম্পর্কে এখনও জানতাম না)। অনুসন্ধান সারণী সম্পর্কে: বৈধ পয়েন্ট। তবে ব্যক্তিগতভাবে আমি সর্বদা পুনর্নির্মাণের পদ্ধতির জন্য যাব: এটি সীমাবদ্ধতাটি পেতে সহায়তা করে এবং এটি সূচকটি লক্ষ্যমাত্রার প্রকৃত সামগ্রীর সাথে মেলে তা নিশ্চিত করে। আপনার ২ য় মন্তব্য সম্পর্কে: উদ্ধৃতিটি প্রকল্পের পৃষ্ঠা থেকে কাটা এবং অতীত, সুতরাং সম্ভবত আপনি তার ইস্যু সারিতে এটি সম্পর্কে একটি ফাইল দায়ের করতে চান (দ্রুপাল.এসই বাগগুলি সম্পর্কিত রিপোর্টের স্থান নয়, তাই না?) ।
পিয়ের.ভ্রিয়েন্স

@ পিয়ের.ভ্রিয়েন্স সামগ্রী ক্রিয়াকলাপের সাথে মিলবে না তা ধরে নেওয়া উচিত যে আপনার ক্রোন চলছে এবং নিশ্চিত করুন যে সূচীকরণটি ঘটেছে। বি অ্যান্ড এম, বেশ নিশ্চিত যে এটি একটি পরিচিত সমস্যা। এছাড়াও, সেশন ডেটা সম্পর্কে বিভাগটি 100% সঠিক নয়। ডিফল্ট সেশনের সময় প্রায় তিন সপ্তাহ হওয়ায় এই টেবিলটি বড় হয়; _drupal_session_garbage_collectionসিস্টেম সেটিংসের উপর ভিত্তি করে সেই টেবিলটি পরিষ্কার রাখবে।
এমপিডোনাদিও

19

আমার অভিজ্ঞতায় আমি সমস্ত "ক্যাশে_ *" টেবিলগুলি পরিষ্কার করি।

  • প্লাস "ওয়াচডগ" যদি আমি অতীত দ্রুপাল লগগুলিতে যত্ন না করি
  • প্লাস "অ্যাক্সেসলগ" যদি আমি লগ-ইন করা ব্যবহারকারীদের সম্পর্কে চিন্তা না করি
  • প্লাস "অনুসন্ধান" যদি আমি সূচিযুক্ত নোডের সামগ্রীর বিষয়ে চিন্তা না করি

1
এখানেও, আমিও সেশন করতাম।
অ্যালেক্স ওয়েবার

2
যে কেউ এই চেষ্টা করে একটি নোট: প্রথমে একটি ব্যাকআপ তৈরি করুন। এবং সারণীগুলি বাদ দিন, খালি বা ছাঁটাই করুন।
টিমোফের.কম

9

আমি কখনও কখনও শীর্ষ টেবিলগুলির বিকাশের উপর নজর রাখতে এই এসকিউএল চালিত করি:

SELECT * 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA =  'yourdbnamehere'
ORDER BY table_rows DESC 

বৃদ্ধির জন্য আমার কী কলামটি পরীক্ষা করা উচিত?, আপনার অর্থ TABLE_ROWS
বাল

8

ওয়াচডগ এবং সেশনগুলিও সাফ করা যায়, মনে রাখবেন যে সমস্ত ব্যবহারকারী লগ আউট হয়ে যাবেন।


6

মাইএসকিউএল দিয়ে আপনি মাইএসকিএলডাম্প প্রোগ্রামের সাথে মজাদার জিনিসগুলি সম্পূর্ণরূপে বা অংশে ডাটাবেস রপ্তানি করতে পারেন। উদাহরণস্বরূপ এটি কেবল কাঠামোটি রফতানি করে:

mysqldump -u root -pBatteryHorseStapleObviously -h some_host --no-data dbname > ~/dbname.sql

তারপরে আপনি আরও রফতানি ডেটা, যেমন 'উপেক্ষা টেবিল' বিকল্পটি ব্যবহার করতে পারেন eg

mysqldump -u root -pBatteryHorseStapleObviously -h some_host --ignore-table=dbname.huge_table --ignore-table=dbname.massive_table --ignore-table=dbname.useless_table some_host >> ~/dbname.sql

এটি কিছু বিশাল টেবিল উপেক্ষা করে আগের ফাইলটির শেষে ডেটা স্থাপন করে।

এরপরে যদি আপনার বড় আকারের টেবিলগুলির প্রয়োজন হয় তবে উপরের পদ্ধতির সাহায্যে আপনি এগুলি অন্য কোনও ফাইলে রফতানি করতে পারেন, তারপরে আপনি সেগুলি খণ্ডে আমদানি করতে পারেন (যদিও fk চেক অফ প্রয়োজন হতে পারে)।

আপনি আপলোড করার আগে আপনার ফাইলটি জিপ করেছেন, বা এটি কি নির্বোধ প্রশ্ন?


5

ক্যাশে সারণীগুলি পরিষ্কার করতে OptimizeDB মডিউলটি ব্যবহার করুন । ডাটাবেজ অ্যাডমিনিস্ট্রেশন এছাড়াও সহায়ক।

ডাটাবেসের ব্যাকআপ রাখতে ভুলবেন না।


ডাটাবেসের এখন 14Mo, আমি OptimizeDB ব্যবহৃত, Thak আপনি আবার
মিচ

@ আপনি স্বাগত মিচ
এম আমা ডি

2

এই কিন্তু আমার অভিজ্ঞতা ভাগ করার ... যদি আপনি ব্যাকআপ এবং স্থানান্তরণের মডিউল ব্যবহার করছেন না এবং ম্যানুয়ালি রপ্তানি টেবিল খালি পারে কিছু / আরোপ করা হবে অতি বিশেষজ্ঞ watchdog, cache, cache_menu, cache_block, cache_content, cache_formহিসাবে তারা একটি বৃহৎ থাকতে পারে ক্যাশেড স্টাফ ক্লিয়ারিংয়ের পরিমাণ যা আমি মনে করি যে ক্ষতি না করবে ... তবে আবার এটি আমার অভিজ্ঞতা এবং এর কারণে আমি কোনও সমস্যা বা ডেটা ক্ষতির মুখোমুখি হইনি।


2

কিছু ধারণা:

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

2

example.drushrc.phpএই তালিকাটি যাচাই করুন :

$options['structure-tables']['common'] = array('cache', 'cache_*', 'history', 'search_*', 'sessions', 'watchdog');
$options['skip-tables']['common'] = array('migration_*');

বিভিন্ন পরিবেশের মধ্যে ডাটাবেস সরিয়ে নেওয়ার ক্ষেত্রে তাদের সাফ করা নিরাপদ (বিশেষত যখন আপনি বড় ডেটাবেস নিয়ে কাজ করছেন )। তবে আপনি কী পরিষ্কার করছেন তা এখনও বুঝতে হবে।


1

সাফ করা যেতে পারে এমন অতিরিক্ত সারণী:

  • দল
  • webform_submitted_data

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

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