“Automysqlbackup” we “Autopostgresqlbackup” gurallaryny ulanyp, MySQL/MariaDB we PostgreSQL-ni nädip ätiýaçlandyrmaly/dikeltmeli


Maglumatlar bazasynyň dolandyryjysy (DBA) bolsaňyz ýa-da maglumat bazalaryny saklamak, ätiýaçlandyrmak we dikeltmek üçin jogapkär bolsaňyz, maglumatlary ýitirip bilmejekdigiňizi bilýärsiňiz. Munuň sebäbi ýönekeý: maglumatlary ýitirmek diňe bir möhüm maglumatlaryň ýitmegini aňlatman, eýsem işiňize maddy taýdan zyýan ýetirip biler.

Şol sebäpli elmydama hökman göz ýetirmeli:

1. maglumat bazalaryňyz wagtal-wagtal ätiýaçlanýar,
2. şol ätiýaçlyk nusgalar howpsuz ýerde saklanýar we
3. dikeldiş türgenleşiklerini yzygiderli ýerine ýetirýärsiňiz.

Bu soňky işe üns bermeli däldir, sebäbi beýle ýagdaýda edilmeli zatlary ýerine ýetirmän esasy meselä girmek islemeýärsiňiz.

Bu gollanmada, degişlilikde MySQL/MariaDB we PostgreSQL maglumat bazalaryny ätiýaçlandyrmak üçin iki sany gowy kömekçi enjam bilen tanyşdyrarys: automysqlbackup we autopostgresqlbackup.

Ikinjisi öňküsine esaslanýandygy sebäpli, düşündirişlerimizi automysqlbackup-a gönükdireris we umuman bar bolsa autopgsqlbackup bilen tapawutlary belläris.

Uptiýaçlyk nusgalary ätiýaçlyk katalogynda gurnalan tor paýynda saklamak maslahat berilýär, ulgam ulgamyndaky näsazlyk ýüze çykan halatynda size ýapylar.

MySQL-da aşakdaky peýdaly gollanmalary okaň:

MySQL/MariaDB/PostgreSQL maglumat bazalaryny gurmak

1. Bu gollanma, MySQL/MariaDB/PostgreSQL mysalynyň işlemelidigini göz öňünde tutýar, ýok bolsa, aşakdaky paketleri guruň:

# 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. Sizde ulanyp boljak MySQL/MariaDB/PostgreSQL maglumat bazasy bar (bu gurallar bilen tanyşýançaňyz, önümçilik gurşawynda awtomatizqlbackup ýa-da autopostgresqlbackup ulanmazlygy maslahat berilýär).

Otherwiseogsam, iki sany maglumat bazasyny dörediň we dowam etmezden ozal olary maglumatlar bilen dolduryň. Bu makalada aşakdaky maglumat bazalaryny we tablisalary ulanaryn:

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 we Debian 8-de awtomatizqlbackup we autopgsqlbackup gurmak

3. Debian 8-de iki gural hem ammarlarda bar, şonuň üçin olary gurmak işlemek ýaly ýönekeý:

# aptitude install automysqlbackup autopostgresqlbackup

CentOS 7-de bolsa, gurnama skriptlerini göçürip almaly bolarsyňyz. Aşakdaky bölümlerde diňe bu gurallary CentOS 7-de gurnamak, düzmek we synagdan geçirmek meselesine ünsi jemläris, sebäbi Debian 8 üçin - bu gutulardan çykýar, biz bu makalada zerur düşündirişler bereris.

4. Gurmak skriptini göçürip almak we işletmek üçin /opt içinde iş bukjasyny döretmekden başlalyň:

# 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 üçin konfigurasiýa faýly myserver.conf ady bilen/etc/automysqlbackup içinde ýerleşýär. Geliň, iň möhüm konfigurasiýa görkezmelerine göz aýlalyň:

# 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"

“Autysqlbackup” -y zerurlyklaryňyza görä düzeniňizden soň,/etc/automysqlbackup/README-den tapylan README faýlyny barlamagy maslahat berýärsiňiz.

6. Taýar bolanyňyzda, konfigurasiýa faýlyny argument hökmünde geçirip, programmany işlediň:

# automysqlbackup /etc/automysqlbackup/myserver.conf

Gündelik katalogy çalt gözden geçirmek, “autysqlbackup” -yň üstünlikli işleýändigini görkezer:

# pwd
# ls -lR daily

Elbetde, zerurlyklaryňyza laýyk gelýän günüň dowamynda “automysqlbackup” -y işletmek üçin “crontab” ýazgysyny goşup bilersiňiz (aşakdaky mysalda her gün irden 1:30):

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

7. Indi mariadb_db maglumat bazasyny maksatly goýalyň:

Geliň, ýene döredeliň we ätiýaçlyk nusgasyny dikeliň. MariaDB haýyşnamasynda ýazyň:

CREATE DATABASE mariadb_db;
exit

Soňra tapyň:

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

Thetiýaçlyk nusgasyny dikelt:

# 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-de autopostgresqlbackup gurmak we düzmek

8. Autopostgresql-iň CentOS 7-de kemsiz işlemegi üçin ilki bilen käbir garaşlylygy gurmaly bolarys:

# yum install mutt sendmail

Soňra bolsa prosesi öňküsi ýaly gaýtalalyň:

# 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

Scriptazgyny ýerine ýetirip, hyzmaty başlamaga/işletmäge mümkinçilik bereliň:

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

Ahyrynda, ätiýaçlyk katalog sazlamasynyň bahasyny redaktirläris:

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

“Automyslbackup” -yň konfigurasiýa faýlyndan geçensoň, bu guraly düzmek gaty aňsat (meseläniň şol bölegi size bagly).

9. CentOS 7-de, Debian 8-den tapawutlylykda, autgostgresqlbackup postgres ulgamynyň ulanyjysy hökmünde iň oňat işleýär, şonuň üçin bu hasabyňyza geçmeli ýa-da krontab faýlyna kron işini goşmaly:

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

Theeri gelende aýtsak, ätiýaçlyk katalog döredilmeli we onuň rugsatlary we topar eýeçiligi 0770-e we postgreslere yzygiderli kesgitlenmeli (ýene-de bu Debian dilinde zerur bolmaz):

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

Netije:

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

10. Indi zerur bolanda faýllary dikeldip bilersiňiz (boş maglumatlar bazasyny döredeniňizden soň ulanyjy postgres hökmünde etmegi ýatdan çykarmaň):

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

Debian 8-de pikirler

Öň hem belläp geçişimiz ýaly, diňe Debian-da bu gurallary gurnamak has gönümel däl, eýsem degişli konfigurasiýalarydyr. Sazlama faýllaryny şu ýerden tapyp bilersiňiz:

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

Gysgaça mazmun

Bu makalada “automysqlbackup” we “autopostgresqlbackup” -y nädip gurmalydygyny we ulanmalydygyny (birinjisini nädip ulanmalydygyny öwrenmek, ikinjisini hem özleşdirmäge kömek eder), DBA ýa-da ulgam dolandyryjysy/inerener hökmünde wezipeleriňizi ýerine ýetirip biljek iki sany uly maglumat bazasynyň ätiýaçlyk guralyny düşündirdik. has aňsat.

E-poçta habarnamalaryny düzmek ýa-da ätiýaçlyk faýllary e-poçta arkaly goşmaçalar hökmünde ibermek arkaly bu mowzukda giňeldip bilersiňiz - berk talap edilmeýär, ýöne käwagt peýdaly bolup biler.

Iň soňky bellik hökmünde konfigurasiýa faýllarynyň rugsatlarynyň iň pes derejede bolmalydygyny ýadyňyzdan çykarmaň (köp halatda 0600). Bu makala hakda pikirleriňizi diňlemäge sabyrsyzlyk bilen garaşýarys. Aşakdaky formany ulanyp bize bellik goýup bilersiňiz.