অটোমিস্ক্লব্যাকআপ এবং অটোপোস্টগ্রেসক্লব্যাকআপ সরঞ্জামগুলি ব্যবহার করে কীভাবে মাইএসকিউএল/মারিয়াডিবি এবং পোস্টগ্র্যাস এসকিউএল ব্যাকআপ/পুনরুদ্ধার করবেন?


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

যে কারণে, আপনার অবশ্যই সর্বদা এটি নিশ্চিত করতে হবে:

1. আপনার ডেটাবেসগুলি পর্যায়ক্রমিক ভিত্তিতে ব্যাক আপ করা হয়,
২. এই ব্যাকআপগুলি নিরাপদ স্থানে এবং
are ৩. আপনি নিয়মিত পুনরুদ্ধার ড্রিল সঞ্চালন।

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

এই টিউটোরিয়ালে আমরা আপনাকে যথাক্রমে মাইএসকিউএল/মারিয়াডিবি এবং পোস্টগ্রিএসকিউএল ডাটাবেসগুলি ব্যাক আপ করার জন্য দুটি দুর্দান্ত ইউটিলিটির সাথে পরিচয় করিয়ে দেব: অটোমিস্ক্লব্যাকআপ এবং অটোপোস্টগ্রিসক্লব্যাকআপ।

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

ব্যাকআপ ডিরেক্টরিতে মাউন্ট করা একটি নেটওয়ার্ক শেয়ারে ব্যাকআপগুলি সংরক্ষণ করার জন্য দৃ strongly়ভাবে সুপারিশ করা হয় যাতে কোনও সিস্টেম-ব্যাপী ক্র্যাশ হওয়ার পরেও আপনি .েকে রাখবেন।

মাইএসকিউএল সম্পর্কিত নিম্নলিখিত দরকারী গাইডগুলি পড়ুন:

মাইএসকিউএল/মারিয়াডিবি/পোস্টগ্রিএসকিউএল ডেটাবেস ইনস্টল করা হচ্ছে

1. এই গাইডটি ধরে নিয়েছে যে আপনার অবশ্যই মাইএসকিউএল/মারিয়াডিবি/পোস্টগ্রেএসকিউএল ইনস্ট্যান্স চলমান আছে, যদি তা না হয় তবে দয়া করে নীচের প্যাকেজগুলি ইনস্টল করুন:

# yum update && yum install mariadb mariadb-server mariadb-libs postgresql postgresql-server postgresql-libs
# aptitude update && aptitude install mariadb-client mariadb-server mariadb-common postgresql-client postgresql postgresql-common

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

অন্যথায়, দুটি নমুনা ডাটাবেস তৈরি করুন এবং এগিয়ে যাওয়ার আগে ডেটা দিয়ে এগুলি স্থাপন করুন। এই নিবন্ধে আমি নিম্নলিখিত ডাটাবেস এবং টেবিল ব্যবহার করব:

CREATE DATABASE mariadb_db;
CREATE TABLE tecmint_tbl (UserID INT AUTO_INCREMENT PRIMARY KEY, 
UserName VARCHAR(50), 
IsActive BOOL);
CREATE DATABASE postgresql_db;
CREATE TABLE tecmint_tbl (
UserID SERIAL PRIMARY KEY,
UserName VARCHAR(50),
IsActive BOOLEAN);

CentOS 7 এবং ডেবিয়ান 8 এ অটোমিস্ক্লব্যাকআপ এবং অটোপ্পসক্লব্যাকআপ ইনস্টল করা হচ্ছে

৩. ডেবিয়ান ৮-এ, উভয় সরঞ্জামই সংগ্রহস্থলগুলিতে উপলব্ধ, সুতরাং সেগুলি ইনস্টল করা চালানের মতোই সহজ:

# aptitude install automysqlbackup autopostgresqlbackup

যেখানে CentOS 7 এ আপনাকে ইনস্টলেশন স্ক্রিপ্টগুলি ডাউনলোড করতে হবে এবং এগুলি চালাতে হবে। নীচের বিভাগগুলিতে আমরা সেন্টোজ on এ এই সরঞ্জামগুলি ইনস্টল, কনফিগার এবং পরীক্ষা করার উপর একচেটিয়াভাবে মনোনিবেশ করব যেহেতু দেবিয়ান 8 - যেখানে তারা প্রায় বাক্সের বাইরে কাজ করে, আমরা এই নিবন্ধে পরে প্রয়োজনীয় ব্যাখ্যা করব।

৪. ইনস্টলেশন স্ক্রিপ্টটি ডাউনলোড করতে এবং এটি চালনার জন্য /opt এর ভিতরে একটি কার্যনির্বাহী ডিরেক্টরি তৈরি করে শুরু করুন:

# mkdir /opt/automysqlbackup
# cd /opt/automysqlbackup
# wget http://ufpr.dl.sourceforge.net/project/automysqlbackup/AutoMySQLBackup/AutoMySQLBackup%20VER%203.0/automysqlbackup-v3.0_rc6.tar.gz
# tar zxf automysqlbackup-v3.0_rc6.tar.gz
# ./install.sh

৫. অটোমিস্ক্লব্যাকআপের জন্য কনফিগারেশন ফাইলটি মাইসারভার.conf নামে/etc/automysqlbackup এর ভিতরে অবস্থিত। আসুন সর্বাধিক প্রাসঙ্গিক কনফিগারেশন নির্দেশাবলী একবার দেখুন:

# Username to access the MySQL server
CONFIG_mysql_dump_username='root'
# Password
CONFIG_mysql_dump_password='YourPasswordHere'
# Host name (or IP address) of MySQL server
CONFIG_mysql_dump_host='localhost'
# Backup directory
CONFIG_backup_dir='/var/backup/db/automysqlbackup'
# List of databases for Daily/Weekly Backup e.g. ( 'DB1' 'DB2' 'DB3' ... )
# set to (), i.e. empty, if you want to backup all databases
CONFIG_db_names=(AddYourDatabase Names Here)
# List of databases for Monthly Backups.
# set to (), i.e. empty, if you want to backup all databases
CONFIG_db_month_names=(AddYourDatabase Names Here)
# Which day do you want monthly backups? (01 to 31)
# If the chosen day is greater than the last day of the month, it will be done
# on the last day of the month.
# Set to 0 to disable monthly backups.
CONFIG_do_monthly="01"
# Which day do you want weekly backups? (1 to 7 where 1 is Monday)
# Set to 0 to disable weekly backups.
CONFIG_do_weekly="5"
# Set rotation of daily backups. VALUE*24hours
# If you want to keep only today's backups, you could choose 1, i.e. everything older than 24hours will be removed.
CONFIG_rotation_daily=6
# Set rotation for weekly backups. VALUE*24hours. A value of 35 means 5 weeks.
CONFIG_rotation_weekly=35
# Set rotation for monthly backups. VALUE*24hours. A value of 150 means 5 months.
CONFIG_rotation_monthly=150
# Include CREATE DATABASE statement in backup?
CONFIG_mysql_dump_create_database='no'
# Separate backup directory and file for each DB? (yes or no)
CONFIG_mysql_dump_use_separate_dirs='yes'
# Choose Compression type. (gzip or bzip2)
CONFIG_mysql_dump_compression='gzip'
# What would you like to be mailed to you?
# - log   : send only log file
# - files : send log file and sql files as attachments (see docs)
# - stdout : will simply output the log to the screen if run manually.
# - quiet : Only send logs if an error occurs to the MAILADDR.
CONFIG_mailcontent='quiet'
# Email Address to send mail to? ([email )
CONFIG_mail_address='root'
# Do you wish to encrypt your backups using openssl?
#CONFIG_encrypt='no'
# Choose a password to encrypt the backups.
#CONFIG_encrypt_password='password0123'
# Command to run before backups (uncomment to use)
#CONFIG_prebackup="/etc/mysql-backup-pre"
# Command run after backups (uncomment to use)
#CONFIG_postbackup="/etc/mysql-backup-post"

একবার আপনি আপনার প্রয়োজন অনুসারে অটোমিস্ক্লব্যাকআপ কনফিগার করে নিলে আপনাকে/etc/automysqlbackup/README এ পাওয়া README ফাইলটি পরীক্ষা করার জন্য দৃ strongly়ভাবে পরামর্শ দেওয়া হচ্ছে।

You. আপনি প্রস্তুত হয়ে গেলে কনফিগারেশন ফাইলটিকে যুক্তি হিসাবে পাস করে এগিয়ে যান এবং প্রোগ্রামটি চালান:

# automysqlbackup /etc/automysqlbackup/myserver.conf

প্রতিদিনের ডিরেক্টরিগুলির একটি দ্রুত পরিদর্শন দেখায় যে অটোমিস্কেলব্যাকআপ সফলভাবে চলেছে:

# pwd
# ls -lR daily

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

30 01 * * * /usr/local/bin/automysqlbackup /etc/automysqlbackup/myserver.conf

Now. এখন উদ্দেশ্য হিসাবে মারিয়াডবি_ডিবি ডাটাবেসটি ফেলে দিন:

আসুন এটি আবার তৈরি করুন এবং ব্যাকআপ পুনরুদ্ধার করুন। মারিয়াডিবি প্রম্পটে টাইপ করুন:

CREATE DATABASE mariadb_db;
exit

তারপরে সনাক্ত করুন:

# cd /var/backup/db/automysqlbackup/daily/mariadb_db
# ls

এবং ব্যাকআপ পুনরুদ্ধার করুন:

# mysql -u root -p mariadb_db < daily_mariadb_db_2015-09-01_23h19m_Tuesday.sql
# mysql -u root -p
MariaDB [(none)]> USE mariadb_db; 
MariaDB [(none)]> SELECT * FROM tecmint_tb1;

CentOS 7 এ অটোপোস্টগ্রেক্ল্যাকব্যাকআপ ইনস্টল এবং কনফিগার করা

৮. সেন্টোস in-এ অটোপোস্টগ্রেসকিএল নির্বিঘ্নে কাজ করার জন্য, আমাদের প্রথমে কিছুটা নির্ভরতা ইনস্টল করতে হবে:

# yum install mutt sendmail

তারপরে আগের মতো প্রক্রিয়াটি পুনরাবৃত্তি করা যাক:

# mkdir /opt/autopostgresqlbackup
# cd /opt/autopostgresqlbackup
# wget http://ufpr.dl.sourceforge.net/project/autopgsqlbackup/AutoPostgreSQLBackup/AutoPostgreSQLBackup-1.0/autopostgresqlbackup.sh.1.0
# mv autopostgresqlbackup.sh.1.0 /opt/autopostgresqlbackup/autopostgresqlbackup.sh

স্ক্রিপ্টটি সম্পাদনযোগ্য করে তুলুন এবং পরিষেবা শুরু/সক্ষম করুন:

# chmod 755 autopostgresqlbackup.sh
# systemctl start postgresql
# systemctl enable postgresql

অবশেষে, আমরা ব্যাকআপ ডিরেক্টরি সেটিংয়ের মানটি এখানে সম্পাদনা করব:

BACKUPDIR="/var/backup/db/autopostgresqlbackup"

অটোমিস্ক্লব্যাকআপের কনফিগারেশন ফাইলটি পাওয়ার পরে, এই সরঞ্জামটি কনফিগার করা খুব সহজ (টাস্কের সেই অংশটি আপনার হাতে ছেড়ে যায়)।

৯. সেন্টোজ 7-এ, ডেবিয়ান ৮-এর বিপরীতে, পোস্টগ্রিস সিস্টেম ব্যবহারকারী হিসাবে অটোপোস্টগ্রেসক্লব্যাকআপ সর্বোত্তমভাবে পরিচালিত হয়, যাতে করে আপনি সেই অ্যাকাউন্টটিতে স্যুইচ করতে পারেন বা তার ক্রোনটব ফাইলে ক্রোন জব যুক্ত করতে হবে:

# crontab -u postgres -e
30 01 * * * /opt/autopostgresqlbackup/autopostgresqlbackup.sh

ব্যাকআপ ডিরেক্টরিটি তৈরি করতে হবে এবং এর অনুমতিগুলি এবং গোষ্ঠী মালিকানা অবশ্যই পুনরাবৃত্তভাবে 0770 এবং পোস্টগ্রিসে সেট করতে হবে (আবার, এটি দেবিয়ানের জন্য প্রয়োজনীয় হবে না):

# mkdir /var/backup/db/autopostgresqlbackup
# chmod -R 0770 /var/backup/db/autopostgresqlbackup
# chgrp -R postgres /var/backup/db/autopostgresqlbackup

ফলাফল:

# cd /var/backup/db/autopostgresqlbackup
# pwd
# ls -lR daily

১০. এখন আপনি যখন প্রয়োজন ফাইলগুলি পুনরুদ্ধার করতে পারেন (খালি ডাটাবেস পুনরায় তৈরি করার পরে ব্যবহারকারী পোস্টগ্রাগ হিসাবে এটি করতে মনে রাখবেন):

# gunzip -c postgresql_db_2015-09-02.Wednesday.sql.gz | psql postgresql_db

ডেবিয়ান 8 বিবেচনা

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

  1. অটোমিস্ক্লব্যাকআপ:/ইত্যাদি/ডিফল্ট/অটোমিস্ক্লব্যাকআপ
  2. অটোপোস্টগ্রেসক্লব্যাকআপ:/ইত্যাদি/ডিফল্ট/অটোপোস্টগ্রেসক্লব্যাকআপ

সারসংক্ষেপ

এই নিবন্ধে আমরা কীভাবে অটোমিস্ক্লব্যাকআপ এবং অটোপোস্টগ্রেসক্লব্যাকআপ ইনস্টল ও ব্যবহার করতে পারি (প্রথমটি কীভাবে ব্যবহার করতে হয় তা শিখতে আপনাকে দ্বিতীয়টিও আয়ত্ত করতে সহায়তা করবে), দুটি দুর্দান্ত ডাটাবেস ব্যাকআপ সরঞ্জাম যা ডিবিএ বা সিস্টেম প্রশাসক/প্রকৌশলী হিসাবে আপনার কাজগুলিকে তৈরি করতে পারে আরো সহজ.

দয়া করে নোট করুন যে আপনি ইমেল বিজ্ঞপ্তি স্থাপন বা ইমেল মাধ্যমে সংযুক্তি হিসাবে ব্যাকআপ ফাইল প্রেরণ করে এই বিষয়ে প্রসারিত করতে পারেন - কঠোরভাবে প্রয়োজন হয় না, তবে কখনও কখনও কাজে আসতে পারে।

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