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 ലെ പരിഗണനകൾ
ഞങ്ങൾ നേരത്തെ സൂചിപ്പിച്ചതുപോലെ, ഡെബിയനിൽ ഈ ടൂളുകളുടെ ഇൻസ്റ്റാളേഷൻ കൂടുതൽ ലളിതമാണ്, മാത്രമല്ല അവയുടെ ക്രമീകരണങ്ങളും. കോൺഫിഗറേഷൻ ഫയലുകൾ നിങ്ങൾ ഇതിൽ കണ്ടെത്തും:
- Automysqlbackup: /etc/default/automysqlbackup
- Autopostgresqlbackup: /etc/default/autopostgresqlbackup
സംഗ്രഹം
ഈ ലേഖനത്തിൽ, automysqlbackup, autopostgresqlbackup എന്നിവ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും ഉപയോഗിക്കാമെന്നും ഞങ്ങൾ വിശദീകരിച്ചിട്ടുണ്ട് (ആദ്യത്തേത് എങ്ങനെ ഉപയോഗിക്കണമെന്ന് പഠിക്കുന്നത് രണ്ടാമത്തേതും മാസ്റ്റർ ചെയ്യാൻ നിങ്ങളെ സഹായിക്കും), ഒരു DBA അല്ലെങ്കിൽ സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർ/എഞ്ചിനീയർ എന്ന നിലയിൽ നിങ്ങളുടെ ടാസ്uക്കുകൾ ഉണ്ടാക്കാൻ കഴിയുന്ന രണ്ട് മികച്ച ഡാറ്റാബേസ് ബാക്കപ്പ് ടൂളുകൾ വളരെ എളുപ്പമാണ്.
ഇമെയിൽ അറിയിപ്പുകൾ സജ്ജീകരിച്ച് അല്ലെങ്കിൽ ഇമെയിൽ വഴി ബാക്കപ്പ് ഫയലുകൾ അറ്റാച്ച്uമെന്റുകളായി അയച്ചുകൊണ്ട് നിങ്ങൾക്ക് ഈ വിഷയം വിപുലീകരിക്കാൻ കഴിയുമെന്നത് ശ്രദ്ധിക്കുക - കർശനമായി ആവശ്യമില്ല, പക്ഷേ ചിലപ്പോൾ ഇത് ഉപയോഗപ്രദമാകും.
അവസാന കുറിപ്പ് എന്ന നിലയിൽ, കോൺഫിഗറേഷൻ ഫയലുകളുടെ അനുമതികൾ മിനിമം ആയി സജ്ജീകരിക്കണം (മിക്ക കേസുകളിലും 0600). ഈ ലേഖനത്തെക്കുറിച്ച് നിങ്ങൾ എന്താണ് ചിന്തിക്കുന്നതെന്ന് കേൾക്കാൻ ഞങ്ങൾ കാത്തിരിക്കുകയാണ്. ചുവടെയുള്ള ഫോം ഉപയോഗിച്ച് ഞങ്ങൾക്ക് ഒരു കുറിപ്പ് ഇടാൻ മടിക്കേണ്ടതില്ല.