MySQL veritabanının zamanlanmış otomatik yedeklemesini Linux altında nasıl gerçekleştirebilirim?

Genel Bakış: Yedekleme, felaket kurtarmanın temelidir.Sistemin veri kaybına neden olan işletim hatalarını veya sistem arızalarını önlemek için, sabit diskten veya uygulama ana bilgisayar dizisinden veri setinin tamamının veya bir kısmının başka bir depolama ortamına kopyalanması sürecini ifade eder. Bazı web siteleri ve sistemler için veritabanı her şeydir, bu nedenle veritabanının iyi bir yedeği gereklidir!

Yedekleme nedir?

Neden yedekleme?

Afet kurtarma planı yapımı

Depolama ortamı

CD

Bant

Sabit sürücü

Disk dizisi

DAS: Doğrudan bağlı depolama

NAS: ağa bağlı depolama

SAN: Depolama Alanı Ağı

Bulut depolama

Burada, zamanlanmış görevlerin eklenmesi ve kullanılması hakkında konuşmak için depolama ortamı olarak esas olarak yerel diski kullanıyoruz.Temel yedekleme komut dosyaları ve diğer depolama ortamları yalnızca ortam erişim yöntemlerinde farklılık gösterebilir.

1. Disk alanını kontrol edin:

Düzenli bir yedekleme olduğundan, yetersiz alan nedeniyle yedekleme hatası ve veri kaybının sonuçlarını önlemek için yeterli alana sahip bir disk alanı seçmek gerekir!

Geçerli diske depolaması en kolay olanıdır, ancak en az önerilenidir; sunucunun birden fazla sabit diski vardır, en iyisi yedeklemeyi başka bir sabit diskte depolamaktır; mümkünse daha iyi ve daha güvenli bir depolama ortamı seçin;

2. Bir yedekleme dizini oluşturun:

Yukarıdaki komutu / home altındaki alanın yeterli olduğunu görmek için kullandık, bu nedenle yedek dosyasını / home içine kaydetmeyi düşünebiliriz;

cd / ev

mkdir yedekleme

cd yedekleme

3. Bir yedek Kabuk komut dosyası oluşturun:

Aşağıdaki komuttaki VeritabanıAdı'nın gerçek veritabanı adıyla değiştirildiğini unutmayın;

Elbette gerçek adlandırma kurallarını da kullanabilirsiniz!

vi bkDatabaseName.sh

Aşağıdakileri yazın / yapıştırın:

#! / bin / bash

/ usr / local / mysql / bin / mysqldump -uusername -ppassword VeritabanıAdı > / home / backup / DatabaseName _ $ (tarih +% Y% m% d_% H% M% S) .sql

Yedeği sıkıştırın:

#! / bin / bash

/ usr / local / mysql / bin / mysqldump -uusername -ppassword VeritabanıAdı | gzip > / home / backup / DatabaseName _ $ (tarih +% Y% m% d_% H% M% S) .sql.gz

Not:

Kullanıcı adını gerçek kullanıcı adıyla değiştirin;

Parolayı gerçek parolayla değiştirin;

VeritabanıAdı'nı gerçek veritabanı adıyla değiştirin;

4. Çalıştırılabilir izinler ekleyin:

chmod u + x bkDatabaseName.sh

Yürütülebilir izinler ekledikten sonra, komut dosyasında herhangi bir hata olup olmadığını ve normal şekilde kullanılıp kullanılamayacağını görmek için önce onu çalıştırın;

./bkDatabaseName.sh

5. Zamanlanmış bir görev ekleyin

Crontab'ı algıla veya yükle

Crontab'ın kurulu olup olmadığını onaylayın:

Crontab komutunu çalıştırırsanız ve rapor komutu bulunmazsa, bu kurulu olmadığı anlamına gelir

# crontab

-bash: crontab: komut bulunamadı

Crontab kurulu değilse, önce onu kurmanız gerekir.Lütfen belirli adımlara bakın:

CentOS altında zamanlanmış görev programı crontab'ı kurmak için yum komutunu kullanın

CentOS sistem diskinden crontab yüklemek için rpm komutunu kullanın

Zamanlanmış bir görev ekle

Bir emrin yerine getirilmesi:

crontab -e

Şu anda, tıpkı vi düzenleyiciyi kullanmak gibi, zamanlanmış görevi düzenleyebilirsiniz.

Aşağıdakileri girin ve kaydedin:

* / 1 * * * * /home/backup/bkDatabaseName.sh

Özellikle ne anlama geliyor?

Bu, "/home/backup/bkDatabaseName.sh" kabuk komut dosyasının her dakika çalıştırıldığı anlamına gelir.

Örneğin:

/ Etc / crontab'ı değiştirin

#vi / etc / crontab

013 * * * root / home / backup / bkDatabaseName.sh

Her gün saat 3'te yedekleme yapmak anlamına gelir

Düzenleme sayfasından çıkın: çıkmak için ESC'ye tıklayın, ardından ": wq" seçeneğine tıklayın w, çıkmak için q yazın.

Örneğin: her Pazartesi öğlen 12'de bir kez koşun

vi / etc / crontab Sonra: Son satırda, 012 * 1 * root run-parts /home/abckup.sh

6. Test görevinin yürütülüp yürütülmediği

Çok basit, dosyanın bir dakika sonra oluşturulup oluşturulmadığını görmek için "ls" komutunu birkaç kez çalıştıralım!

Görev yürütme başarısız olursa, aşağıdaki komutla görev günlüğünü görüntüleyebilirsiniz:

# tail -f / var / log / cron

Çıktı aşağıdakine benzer:

30 Eyl 14:01:01 bogon run-parts (/etc/cron.hourly): 0anacron başlatılıyor

30 Eylül 14:01:01 bogon çalışma bölümleri (/etc/cron.hourly): 0anacron bitti

30 Eylül 15:01:01 bogon CROND: (kök) CMD (run-parts /etc/cron.hourly)

30 Eylül 15:01:01 bogon run-parts (/etc/cron.hourly): 0anacron başlıyor

30 Eylül 15:01:02 bogon çalışma bölümleri (/etc/cron.hourly): 0anacron bitti

30 Eyl 15:50:44 bogon crontab: (kök) DÜZENLEMEYE BAŞLA (kök)

30 Eylül 16:01:01 bogon CROND: (kök) CMD (run-parts /etc/cron.hourly)

30 Eylül 16:01:01 bogon run-parts (/etc/cron.hourly): 0anacron başlıyor

30 Eylül 16:01:01 bogon çalışma bölümleri (/etc/cron.hourly): bitmiş 0anacron

30 Eyl 16:15:29 bogon crontab: (kök) END EDIT (kök)

Crontab biçimi

1. sütundaki dakika 1 59

Sütun 2 saat 1 23 (0, gece yarısı anlamına gelir)

3. Sıra 1 31

4. sütun 1. ay 12

Beşinci sütun haftası 0 6 (0, Pazar anlamına gelir)

6. sütunda çalıştırma komutu

Aşağıdaki crontab formatıdır:

Çalıştırılacak günün saati haftanın ay günü komutu

Aşağıda crontab dosyası girişlerine ilişkin bazı örnekler verilmiştir:

3021 * * * / usr / local / apache / bin / apachectl restart

Yukarıdaki örnek, apache'yi her gece 21: 30'da yeniden başlatmak anlamına gelir.

454 1,10,22 * * / usr / local / apache / bin / apachectl restart

Yukarıdaki örnek, apache'nin her ayın 1, 10 ve 22 günleri 4: 45'te yeniden başlatılması anlamına gelir.

101 * * 6,0 / usr / local / apache / bin / apachectl restart

Yukarıdaki örnek, apache'nin her Cumartesi ve Pazar 1: 10'da yeniden başlatılması anlamına gelir.

0,3018-23 * * * / usr / local / apache / bin / apachectl restart

Yukarıdaki örnek, apache'nin her gün 18:00 ile 23:00 arasında her 30 dakikada bir yeniden başlatılması anlamına gelir.

023 * * 6 / usr / local / apache / bin / apachectl yeniden başlatma

Yukarıdaki örnek, apache'nin her Cumartesi 23: 00'da yeniden başlatılması anlamına gelir.

0 * / 1 * * * / usr / local / apache / bin / apachectl restart

Apache'yi her saat yeniden başlatın

023-7 / 1 * * * / usr / local / apache / bin / apachectl restart

Apache'yi her saat 23: 00-07: 00 arasında yeniden başlatın

0114 * mon-wed / usr / local / apache / bin / apachectl restart

Apache'yi her ayın 4'ünde ve pazartesiden çarşambaya her saat 11'de yeniden başlatın

04 1 jan * / usr / local / apache / bin / apachectl restart

Apache'yi 1 Ocak'ta 4'te yeniden başlatın

Sunflower Control A2 ile, evde internetiniz varsa veya yoksa şirketinizin bilgisayarını uzaktan kontrol edebilirsiniz.
önceki
Bu zarif NIKE Air VaporMax çifti çok iyi görünüyor mu? Ama aslında bir Aşil topuğuna sahip!
Sonraki
"Avenger 4" tamamlandı! Sıradaki "Spider-Man: Far From Home" u izleyin!
Qualcomm, 5G'nin ilk yılında MWC2019'daki her şeyi birbirine bağlıyor
Eğitim Bakanı Chen Baosheng, geçen yıl iki oturumda bu sözü verdi, şimdi nasıl gidiyor?
HP Star serisi 14 ince ve hafif dizüstü bilgisayar resmi olarak piyasaya çıktı: 4899 yuan'dan başlayan fiyatlarla
Adidas UltraBOOST 3.0 siyah modeli de sizi böyle şaşırtabilir
Yeni film "Deadpool", "Thor 3" yönetmenini başrolde oynamaya davet ediyor, bu biraz da olsa bir geçiş!
Meizu Note9 haberi verdi: Çin'in ilk Snapdragon 675 cep telefonu "airdrop" yapmak üzere
Zhang Yuning, Süper Lig'in ilk golünü attı, Swee, Guoan'a 0: 4 kaybetti ve sezonun ilk yenilgisini yaşadı.
Yönetim mesleği hacklendi mi? Wuhan, umumi tuvalet yönetimi gereksinimlerine yanıt veriyor
Bir cep telefonu emülatörü kullanırken en çok hangi oyunları oynamayı seviyorsunuz?
ELK + GPE izleme ve erken uyarı sistemini sıfırdan oluşturun
Gişe rekorları kıran filmleri çekmek bir hayal değil: OPPO R15 AI akıllı kamera özel değerlendirmesi
To Top