কীভাবে মারিয়াডিবি ডাটাবেস সার্ভারের ইনস্টল, সুরক্ষা এবং পারফরম্যান্স টিউনিং করবেন


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

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

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

একটি মারিয়াডিবি সার্ভার ইনস্টল করা ও সুরক্ষিত করা

CentOS 7.x এ, মারিয়াডিবি MySQL প্রতিস্থাপন করেছে, যা এখনও উবুন্টুতে পাওয়া যায় (মারিয়াডিবি সহ)। ওপেনসুসের ক্ষেত্রেও একই কথা।

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

এর অর্থ হ'ল মাইএসকিউএল এবং মারিয়াডিবি উভয় ক্ষেত্রে ক্লায়েন্ট-সাইড কমান্ডগুলি একই এবং কনফিগারেশন ফাইলগুলির নাম একই স্থানে রয়েছে located

মারিয়াডিবি ইনস্টল করতে, করুন:

--------------- On CentOS/RHEL 7 and Fedora 23 --------------- 
# yum update && yum install mariadb mariadb-server # CentOS 

--------------- On Debian and Ubuntu --------------- 
$ sudo aptitude update && sudo aptitude install mariadb-client mariadb-server 

--------------- On openSUSE --------------- 
# zypper update && zypper install mariadb mariadb-tools # openSUSE

মনে রাখবেন যে উবুন্টুতে আপনাকে আরডিবিএমএস রুট ব্যবহারকারীর জন্য একটি পাসওয়ার্ড লিখতে বলা হবে।

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

--------------- On CentOS/RHEL 7 and Fedora 23 --------------- 
# systemctl start mariadb && systemctl enable mariadb 

--------------- On openSUSE --------------- 
# systemctl start mysql && systemctl enable mysql

তারপরে mysql_secure_installation স্ক্রিপ্টটি চালান। এই প্রক্রিয়া আপনাকে অনুমতি দেবে:

  1. আরডিবিএমএস মূল ব্যবহারকারীর জন্য পাসওয়ার্ড সেট/রিসেট করুন
  2. নামবিহীন লগইনগুলি সরান (এইভাবে কেবল বৈধ অ্যাকাউন্টযুক্ত ব্যবহারকারীদের আরডিবিএমএসে লগ ইন করতে সক্ষম করুন)
  3. লোকালহোস্ট ব্যতীত অন্য মেশিনগুলির জন্য রুট অ্যাক্সেস অক্ষম করুন
  4. পরীক্ষার ডাটাবেসটি সরিয়ে ফেলুন (যে কোনও এটি অ্যাক্সেস করতে পারে)
  5. 1 থেকে 4 এর সাথে যুক্ত পরিবর্তনগুলি সক্রিয় করুন

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

মারিয়াডিবি সার্ভার কনফিগার করা হচ্ছে

ডিফল্ট কনফিগারেশন বিকল্পগুলি প্রদত্ত ক্রমে নিম্নলিখিত ফাইলগুলি থেকে পঠিত: /etc/mysql/my.cnf , /etc/my.cnf , এবং ~ /.my.cnf

প্রায়শই কেবল /etc/my.cnf উপস্থিত থাকে। এই ফাইলটিতেই আমরা সার্ভার-ওয়াইড সেটিংস সেট করব (যা প্রতিটি ব্যবহারকারীর জন্য ।/.My.cnf এ একই সেটিংসের সাথে ওভাররাইড করা যেতে পারে)।

my.cnf সম্পর্কে আমাদের প্রথম যে বিষয়টি লক্ষ্য করতে হবে তা হ'ল সেটিংসটি বিভাগগুলিতে (বা গোষ্ঠীগুলিতে) সংগঠিত হয় যেখানে প্রতিটি বিভাগের নাম বর্গক্ষেত্র বন্ধনীর সাথে সংযুক্ত থাকে।

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

আমরা পরিষেবাটি কেবলমাত্র তার মূল ঠিকানায় (192.168.0.13) শোনার নির্দেশ দেওয়ার জন্য এটি পরিবর্তন করব:

বাইন্ড_এড্রেস = 192.168.0.13 <টিডি স্টাইল = সীমানা:

আমরা ডিফল্ট মান (3306) 20500 এর সাথে প্রতিস্থাপন করব (তবে আমাদের নিশ্চিত করা দরকার যে অন্য কোনও কিছুই সেই বন্দরটি ব্যবহার করছে না):
পোর্ট = 20500

কিছু লোক যেহেতু যুক্তি দেবেন যে অস্পষ্টতার মাধ্যমে সুরক্ষা দেওয়া ভাল অনুশীলন নয়, উচ্চতরগুলির জন্য ডিফল্ট অ্যাপ্লিকেশন পোর্টগুলি পরিবর্তন করা বন্দর স্ক্যানগুলি নিরুৎসাহিত করার জন্য একটি প্রাথমিক-মূল কার্যকর পদ্ধতি। <টিডি স্টাইল = "সীমানা: 1px কঠিন # 000001;" align = "বাম" বিজিক্লোর = "# এফএফএফএফএফএফ"> <স্প্যান শৈলী = "রঙ: কালো;"> পোর্ট = 3306 <টিডি স্টাইল = "সীমানা: 1px কঠিন # 000001;" align = "বাম" বিজিক্লোলার = "# এফএফএফএফএফএফ" উচ্চতা = "65"> ইনোডব_বফার_পুল_সাইজ ইনোডব ব্যবহার করার সময় ঘন ঘন অ্যাক্সেস করা ডেটা এবং সূচিগুলির জন্য বরাদ্দ করা মেমরির বাফার পুল (বাইটগুলিতে) হয় যা মারিয়্যাডবিতে ডিফল্ট) বা স্ট্রোল ইঞ্জিন হিসাবে এক্সট্রাডিবি।

আমরা 256 এমবি দিয়ে ডিফল্ট মানটি প্রতিস্থাপন করব:

ইনোডাব_বফার_পুল_সাইজ = 256 এম <টিডি স্টাইল = "সীমানা: 1px কঠিন # 000001;" align = "বাম" বিজিক্লোর = "# এফএফএফএফএফএফ"> <স্প্যান শৈলী = "রঙ: কালো;"> ইনোডাব_বফার_পুল_সাইজ = 134217728 <টিডি স্টাইল = "সীমানা: 1px কঠিন # 000001;" align = "বাম" বিজিকালার = "# এফএফএফএফএফএফ" উচ্চতা = "50"> স্কিপ_নাম_প্রবর্তন ইঙ্গিত দেয় যে হোস্টনামগুলি সমাধান করা হবে না আগত সংযোগগুলিতে। যদি 1 তে সেট করা থাকে, যেমন আমরা এই গাইডে করব, কেবলমাত্র আইপি ঠিকানাগুলি।

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

skip_name_resolve = 1 <টিডি স্টাইল = "সীমানা: 1px কঠিন # 000001;" align = "বাম" বিজিক্লোর = "# এফএফএফএফএফএফ"> <স্প্যান শৈলী = "রঙ: কালো;"> এড়িয়ে যান_নাম_প্রেসিভ = 0 <টিডি স্টাইল = "সীমানা: 1px কঠিন # 000001;" align = "বাম" বিজিক্লোর = "# এফএফএফএফএফএফ" উচ্চতা = "৮০"> ক্যোয়ারী_ক্যাচি_সাইজ ডিস্কের ক্যোয়ারী ক্যাশে উপলব্ধ আকার (বাইটগুলিতে) প্রতিনিধিত্ব করে, যেখানে একটি অনুলিপি জিজ্ঞাসা করার সময় SELECT অনুসন্ধানগুলির ফলাফলগুলি ভবিষ্যতের ব্যবহারের জন্য সঞ্চিত থাকে একই ডাটাবেস এবং একই প্রোটোকল এবং একই অক্ষর সেট ব্যবহার করে) সঞ্চালিত হয়।

আপনার 1) পুনরাবৃত্ত অনুসন্ধানের সংখ্যা এবং 2) পুনরাবৃত্ত প্রশ্নগুলি প্রত্যাশিত রেকর্ডগুলির আনুমানিক সংখ্যার ভিত্তিতে আপনার একটি ক্যোয়ারী ক্যাশে আকার চয়ন করা উচিত। আমরা আপাতত এই মানটি 100 এমবিতে সেট করব:

ক্যোরি_ক্যাচি_সাইজ = 100 মি <টিডি স্টাইল = "সীমানা: 1px কঠিন # 000001;" align = "বাম" bgcolor = "# এফএফএফএফএফ"> ক্যোয়ারী_ক্যাচি_সাইজ = 0 (যার অর্থ এটি ডিফল্টরূপে অক্ষম করা হয়েছে) <টিডি স্টাইল = "সীমানা: 1px কঠিন # 000001;" align = "বাম" বিজিক্লোর = "# এফএফএফএফএফএফ" উচ্চতা = "50"> সর্বাধিক সংযোগগুলি সার্ভারের একযোগে ক্লায়েন্ট সংযোগের সর্বাধিক সংখ্যা। আমরা এই মানটি 30 এ সেট করব:
সর্বোচ্চ_সংযোগ = 30 প্রতিটি সংযোগ একটি থ্রেড ব্যবহার করবে এবং এইভাবে স্মৃতি গ্রাস করবে। সর্বোচ্চ_সংযোগ স্থাপন করার সময় এই সত্যটিকে বিবেচনা করুন <টিডি স্টাইল = "সীমানা: 1px কঠিন # 000001;" align = "বাম" বিজিক্লোর = "# এফএফএফএফএফএফ"> <স্প্যান শৈলী = "রঙ: কালো;"> সর্বাধিক সংযোগ = 151 <টিডি স্টাইল = "সীমানা: 1px কঠিন # 000001;" align = "বাম" bgcolor = "# FFFFFF" উচ্চতা = "65"> থ্রেড_ক্যাচি_সাইজ ক্লায়েন্টের সংযোগ বিচ্ছিন্ন হওয়ার পরে সার্ভারটি পুনরায় ব্যবহারের জন্য বরাদ্দ করে এবং পূর্বে ব্যবহৃত থ্রেড (গুলি) মুক্ত করে। এই পরিস্থিতিতে, কোনও নতুনকে ইনস্ট্যান্ট করার চেয়ে কোনও থ্রেডের পুনরায় ব্যবহার করা সস্তা (পারফরম্যান্স-ওয়াইজ) is

আবার এটি আপনার সংযোগের সংখ্যার উপর নির্ভর করে। আমরা এই মানটি নিরাপদে সর্বোচ্চ_ সংযোগের অর্ধেক সংখ্যায় সেট করতে পারি:

থ্রেড_ক্যাচি_সাইজ = 15 <টিডি স্টাইল = "সীমানা: 1px কঠিন # 000001;" align = "বাম" বিজিক্লোর = "# এফএফএফএফএফএফ"> থ্রেড_ক্যাচি_সাইজ = 0 (ডিফল্টরূপে অক্ষম) সেন্টোসে, আমাদের সেলইনাক্সকে মারিয়াডিবিকে পরিষেবাটি পুনরায় চালু করার আগে একটি মানহীন পোর্ট (20500) শোনার অনুমতি দেওয়ার জন্য বলতে হবে:

# yum install policycoreutils-python
# semanage port -a -t mysqld_port_t -p tcp 20500

তারপরে মারিয়াডিবি পরিষেবাটি পুনরায় চালু করুন।

টিউনিং মারিয়াডিবি পারফরম্যান্স

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

# wget https://github.com/major/MySQLTuner-perl/tarball/master
# tar xzf master

তারপরে তারবাল থেকে আহৃত ফোল্ডারে ডিরেক্টরি পরিবর্তন করুন (সঠিক সংস্করণটি আপনার ক্ষেত্রে পৃথক হতে পারে):

# cd major-MySQLTuner-perl-7dabf27

এবং এটি চালান (আপনাকে আপনার প্রশাসনিক মারিয়াডিবি অ্যাকাউন্টের শংসাপত্রগুলি প্রবেশ করার অনুরোধ জানানো হবে)

# ./mysqltuner.pl

স্ক্রিপ্টের আউটপুট নিজেই খুব আকর্ষণীয়, তবে নীচের দিকে চলে যাক যেখানে সামঞ্জস্য করতে চলকগুলি প্রস্তাবিত মানের সাথে তালিকাভুক্ত করা হয়:

ক্যোয়ারী_ক্যাচি_প্রকার সেটিংস নির্দেশ করে যে ক্যোয়ারী ক্যাশে অক্ষম করা হয়েছে (0) বা সক্ষম (1)। এই ক্ষেত্রে, মাইএসকিএলটিউনার এটি অক্ষম করার পরামর্শ দিচ্ছে।

তাহলে কেন এখনই এটি নিষ্ক্রিয় করার পরামর্শ দেওয়া হচ্ছে? কারণটি হ'ল ক্যোয়ারী ক্যাশেটি বেশিরভাগ উচ্চ-পঠিত/কম-লেখার পরিস্থিতিতে (যা আমাদের ক্ষেত্রে নয়, যেহেতু আমরা কেবল ডাটাবেস সার্ভারটি ইনস্টল করেছি) ক্ষেত্রে দরকারী is

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

সারসংক্ষেপ

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

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