Automysqlbackup, Autopostgresqlbackup ടൂളുകൾ ഉപയോഗിച്ച് MySQL/MariaDB, PostgreSQL എന്നിവ എങ്ങനെ ബാക്കപ്പ് ചെയ്യാം/പുനഃസ്ഥാപിക്കാം


നിങ്ങളൊരു ഡാറ്റാബേസ് അഡ്മിനിസ്ട്രേറ്ററാണെങ്കിൽ (ഡിബിഎ) അല്ലെങ്കിൽ ഡാറ്റാബേസുകൾ പരിപാലിക്കുന്നതിനും ബാക്കപ്പ് ചെയ്യുന്നതിനും പുനഃസ്ഥാപിക്കുന്നതിനും ഉത്തരവാദിത്തമുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് ഡാറ്റ നഷ്uടപ്പെടുത്താൻ കഴിയില്ലെന്ന് നിങ്ങൾക്കറിയാം. കാരണം ലളിതമാണ്: ഡാറ്റ നഷ്uടപ്പെടുന്നത് അർത്ഥമാക്കുന്നത് പ്രധാനപ്പെട്ട വിവരങ്ങൾ നഷ്uടപ്പെടുമെന്ന് മാത്രമല്ല, നിങ്ങളുടെ ബിസിനസ്സിനെ സാമ്പത്തികമായി നശിപ്പിച്ചേക്കാം.

ഇക്കാരണത്താൽ, നിങ്ങൾ ഇത് എല്ലായ്പ്പോഴും ഉറപ്പാക്കണം:

1. നിങ്ങളുടെ ഡാറ്റാബേസുകൾ ആനുകാലിക അടിസ്ഥാനത്തിൽ ബാക്കപ്പ് ചെയ്യുന്നു,
2. ആ ബാക്കപ്പുകൾ സുരക്ഷിതമായ സ്ഥലത്ത് സംഭരിച്ചിരിക്കുന്നു, കൂടാതെ
3. നിങ്ങൾ പതിവായി പുനഃസ്ഥാപിക്കൽ അഭ്യാസങ്ങൾ നടത്തുന്നു.

ഈ അവസാന പ്രവർത്തനം അവഗണിക്കരുത്, കാരണം അത്തരം സാഹചര്യത്തിൽ ചെയ്യേണ്ടത് എന്താണെന്ന് പരിശീലിക്കാതെ ഒരു പ്രധാന പ്രശ്നത്തിലേക്ക് നയിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നില്ല.

ഈ ട്യൂട്ടോറിയലിൽ യഥാക്രമം MySQL/MariaDB, PostgreSQL ഡാറ്റാബേസുകൾ ബാക്കപ്പ് ചെയ്യുന്നതിനുള്ള രണ്ട് നല്ല യൂട്ടിലിറ്റികൾ ഞങ്ങൾ നിങ്ങളെ പരിചയപ്പെടുത്തും: automysqlbackup, autopostgresqlbackup.

രണ്ടാമത്തേത് ആദ്യത്തേതിനെ അടിസ്ഥാനമാക്കിയുള്ളതിനാൽ, ഞങ്ങൾ automysqlbackup-ൽ ഞങ്ങളുടെ വിശദീകരണം കേന്ദ്രീകരിക്കുകയും autopgsqlbackup-ലുള്ള വ്യത്യാസങ്ങൾ ഹൈലൈറ്റ് ചെയ്യുകയും ചെയ്യും.

ബാക്കപ്പ് ഡയറക്uടറിയിൽ മൌണ്ട് ചെയ്uതിരിക്കുന്ന ഒരു നെറ്റ്uവർക്ക് ഷെയറിൽ ബാക്കപ്പുകൾ സംഭരിക്കുന്നതിന് ശക്തമായി ശുപാർശചെയ്യുന്നു, അതുവഴി സിസ്റ്റം-വൈഡ് ക്രാഷ് സംഭവിക്കുമ്പോൾ, നിങ്ങൾക്ക് തുടർന്നും പരിരക്ഷ ലഭിക്കും.

MySQL-ൽ ഇനിപ്പറയുന്ന ഉപയോഗപ്രദമായ ഗൈഡുകൾ വായിക്കുക:

MySQL/MariaDB/PostgreSQL ഡാറ്റാബേസുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നു

1. നിങ്ങൾക്ക് MySQL/MariaDB/PostgreSQL ഇൻസ്റ്റൻസ് റണ്ണിംഗ് ഉണ്ടായിരിക്കണമെന്ന് ഈ ഗൈഡ് അനുമാനിക്കുന്നു, ഇല്ലെങ്കിൽ, ദയവായി ഇനിപ്പറയുന്ന പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യുക:

# 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

2. നിങ്ങൾക്ക് ഉപയോഗിക്കാനാകുന്ന ഒരു ടെസ്റ്റിംഗ് MySQL/MariaDB/PostgreSQL ഡാറ്റാബേസ് ഉണ്ട് (ഈ ടൂളുകൾ പരിചയപ്പെടുന്നതുവരെ ഒരു പ്രൊഡക്ഷൻ എൻവയോൺമെന്റിൽ automysqlbackup അല്ലെങ്കിൽ autopostgresqlbackup എന്നിവ ഉപയോഗിക്കരുത് എന്ന് നിങ്ങളോട് നിർദ്ദേശിക്കുന്നു).

അല്ലെങ്കിൽ, തുടരുന്നതിന് മുമ്പ് രണ്ട് സാമ്പിൾ ഡാറ്റാബേസുകൾ സൃഷ്uടിച്ച് അവ ഡാറ്റ ഉപയോഗിച്ച് പോപ്പുലേറ്റ് ചെയ്യുക. ഈ ലേഖനത്തിൽ ഞാൻ ഇനിപ്പറയുന്ന ഡാറ്റാബേസുകളും പട്ടികകളും ഉപയോഗിക്കും:

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, Debian 8 എന്നിവയിൽ automysqlbackup, autopgsqlbackup എന്നിവ ഇൻസ്റ്റാൾ ചെയ്യുന്നു

3. ഡെബിയൻ 8-ൽ, രണ്ട് ഉപകരണങ്ങളും റിപ്പോസിറ്ററികളിൽ ലഭ്യമാണ്, അതിനാൽ അവ ഇൻസ്റ്റാൾ ചെയ്യുന്നത് പ്രവർത്തിപ്പിക്കുന്നത് പോലെ ലളിതമാണ്:

# aptitude install automysqlbackup autopostgresqlbackup

അതേസമയം CentOS 7-ൽ നിങ്ങൾ ഇൻസ്റ്റലേഷൻ സ്ക്രിപ്റ്റുകൾ ഡൗൺലോഡ് ചെയ്ത് പ്രവർത്തിപ്പിക്കേണ്ടതുണ്ട്. ഡെബിയൻ 8-ന് വേണ്ടിയുള്ള ഈ ടൂളുകൾ CentOS 7-ൽ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിലും കോൺഫിഗർ ചെയ്യുന്നതിലും പരീക്ഷിക്കുന്നതിലും ഞങ്ങൾ പ്രത്യേകം ശ്രദ്ധ കേന്ദ്രീകരിക്കും.

4. ഇൻസ്റ്റലേഷൻ സ്ക്രിപ്റ്റ് ഡൗൺലോഡ് ചെയ്ത് പ്രവർത്തിപ്പിക്കുന്നതിന് /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

5. automysqlbackup-നുള്ള കോൺഫിഗറേഷൻ ഫയൽ myserver.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"

നിങ്ങളുടെ ആവശ്യങ്ങൾക്കനുസരിച്ച് automysqlbackup ക്രമീകരിച്ചുകഴിഞ്ഞാൽ, /etc/automysqlbackup/README-ൽ കാണുന്ന README ഫയൽ പരിശോധിക്കാൻ നിങ്ങൾ ശക്തമായി ഉപദേശിക്കുന്നു.

6. നിങ്ങൾ തയ്യാറാകുമ്പോൾ, കോൺഫിഗറേഷൻ ഫയൽ ആർഗ്യുമെന്റായി പാസ്സാക്കി പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കുക:

# automysqlbackup /etc/automysqlbackup/myserver.conf

ദൈനംദിന ഡയറക്uടറിയുടെ ഒരു ദ്രുത പരിശോധന automysqlbackup വിജയകരമായി പ്രവർത്തിച്ചതായി കാണിക്കും:

# pwd
# ls -lR daily

തീർച്ചയായും നിങ്ങളുടെ ആവശ്യങ്ങൾക്ക് ഏറ്റവും അനുയോജ്യമായ ഒരു സമയത്ത് automysqlbackup പ്രവർത്തിപ്പിക്കുന്നതിന് നിങ്ങൾക്ക് ഒരു crontab എൻട്രി ചേർക്കാവുന്നതാണ് (ചുവടെയുള്ള ഉദാഹരണത്തിൽ എല്ലാ ദിവസവും രാവിലെ 1:30):

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

7. ഇപ്പോൾ mariadb_db ഡാറ്റാബേസ് ഉദ്ദേശ്യത്തോടെ ഉപേക്ഷിക്കാം:

നമുക്ക് അത് വീണ്ടും സൃഷ്ടിച്ച് ബാക്കപ്പ് പുനഃസ്ഥാപിക്കാം. MariaDB പ്രോംപ്റ്റിൽ, ടൈപ്പ് ചെയ്യുക:

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-ൽ autopostgresqlbackup ഇൻസ്റ്റാൾ ചെയ്യുകയും കോൺഫിഗർ ചെയ്യുകയും ചെയ്യുന്നു

8. CentOS 7-ൽ autopostgresql കുറ്റമറ്റ രീതിയിൽ പ്രവർത്തിക്കുന്നതിന്, ഞങ്ങൾ ആദ്യം ചില ഡിപൻഡൻസികൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്:

# 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

അവസാനമായി, ഞങ്ങൾ ബാക്കപ്പ് ഡയറക്uടറി ക്രമീകരണത്തിന്റെ മൂല്യം ഇതിലേക്ക് എഡിറ്റ് ചെയ്യും:

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

automysqlbackup-ന്റെ കോൺഫിഗറേഷൻ ഫയൽ പരിശോധിച്ച ശേഷം, ഈ ടൂൾ കോൺഫിഗർ ചെയ്യുന്നത് വളരെ എളുപ്പമാണ് (ടാസ്ക്കിന്റെ ആ ഭാഗം നിങ്ങൾക്ക് വിട്ടുകൊടുത്തിരിക്കുന്നു).

9. CentOS 7-ൽ, Debian 8-ന് വിപരീതമായി, autopostgresqlbackup ഏറ്റവും നന്നായി പ്രവർത്തിക്കുന്നത് postgres സിസ്റ്റം ഉപയോക്താവ് എന്ന നിലയിലാണ്, അതിനാൽ നിങ്ങൾ ആ അക്കൗണ്ടിലേക്ക് മാറുകയോ അതിന്റെ crontab ഫയലിലേക്ക് ഒരു ക്രോൺ ജോബ് ചേർക്കുകയോ ചെയ്യണം:

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

ബാക്കപ്പ് ഡയറക്uടറി സൃഷ്uടിക്കേണ്ടതുണ്ട്, അതിന്റെ അനുമതികളും ഗ്രൂപ്പ് ഉടമസ്ഥതയും 0770 ആയും പോസ്റ്റ്uഗ്രേസിലും ആവർത്തിച്ച് സജ്ജീകരിക്കേണ്ടതുണ്ട് (വീണ്ടും, ഡെബിയനിൽ ഇത് ആവശ്യമില്ല):

# 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

10. ഇപ്പോൾ നിങ്ങൾക്ക് ആവശ്യമുള്ളപ്പോൾ ഫയലുകൾ പുനഃസ്ഥാപിക്കാൻ കഴിയും (ശൂന്യമായ ഡാറ്റാബേസ് പുനഃസൃഷ്ടിച്ചതിന് ശേഷം ഉപയോക്തൃ പോസ്റ്റ്ഗ്രെസ് ആയി ഇത് ചെയ്യാൻ ഓർക്കുക):

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

ഡെബിയൻ 8 ലെ പരിഗണനകൾ

ഞങ്ങൾ നേരത്തെ സൂചിപ്പിച്ചതുപോലെ, ഡെബിയനിൽ ഈ ടൂളുകളുടെ ഇൻസ്റ്റാളേഷൻ കൂടുതൽ ലളിതമാണ്, മാത്രമല്ല അവയുടെ ക്രമീകരണങ്ങളും. കോൺഫിഗറേഷൻ ഫയലുകൾ നിങ്ങൾ ഇതിൽ കണ്ടെത്തും:

  1. Automysqlbackup: /etc/default/automysqlbackup
  2. Autopostgresqlbackup: /etc/default/autopostgresqlbackup

സംഗ്രഹം

ഈ ലേഖനത്തിൽ, automysqlbackup, autopostgresqlbackup എന്നിവ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും ഉപയോഗിക്കാമെന്നും ഞങ്ങൾ വിശദീകരിച്ചിട്ടുണ്ട് (ആദ്യത്തേത് എങ്ങനെ ഉപയോഗിക്കണമെന്ന് പഠിക്കുന്നത് രണ്ടാമത്തേതും മാസ്റ്റർ ചെയ്യാൻ നിങ്ങളെ സഹായിക്കും), ഒരു DBA അല്ലെങ്കിൽ സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർ/എഞ്ചിനീയർ എന്ന നിലയിൽ നിങ്ങളുടെ ടാസ്uക്കുകൾ ഉണ്ടാക്കാൻ കഴിയുന്ന രണ്ട് മികച്ച ഡാറ്റാബേസ് ബാക്കപ്പ് ടൂളുകൾ വളരെ എളുപ്പമാണ്.

ഇമെയിൽ അറിയിപ്പുകൾ സജ്ജീകരിച്ച് അല്ലെങ്കിൽ ഇമെയിൽ വഴി ബാക്കപ്പ് ഫയലുകൾ അറ്റാച്ച്uമെന്റുകളായി അയച്ചുകൊണ്ട് നിങ്ങൾക്ക് ഈ വിഷയം വിപുലീകരിക്കാൻ കഴിയുമെന്നത് ശ്രദ്ധിക്കുക - കർശനമായി ആവശ്യമില്ല, പക്ഷേ ചിലപ്പോൾ ഇത് ഉപയോഗപ്രദമാകും.

അവസാന കുറിപ്പ് എന്ന നിലയിൽ, കോൺഫിഗറേഷൻ ഫയലുകളുടെ അനുമതികൾ മിനിമം ആയി സജ്ജീകരിക്കണം (മിക്ക കേസുകളിലും 0600). ഈ ലേഖനത്തെക്കുറിച്ച് നിങ്ങൾ എന്താണ് ചിന്തിക്കുന്നതെന്ന് കേൾക്കാൻ ഞങ്ങൾ കാത്തിരിക്കുകയാണ്. ചുവടെയുള്ള ഫോം ഉപയോഗിച്ച് ഞങ്ങൾക്ക് ഒരു കുറിപ്പ് ഇടാൻ മടിക്കേണ്ടതില്ല.