← Powrót do listy

Lokalne do chmury: WordPress Migration Full Chain Solutions, Backup danych, Przywracanie bazy danych, itp.

itadol5j

I. Kontekst i główne wyzwania

1. Scena migracji

Środowisko rozwoju lokalnegolocalhost:8081Inny organizator 666.comObejmuje to wdrożenie kontenerowania (Docker) oraz migrację międzyśrodowiskową baz danych.

2. Podstawowe kwestie

  • Pierwsza strona skoki nietypowe: wizyty 666.com Autoskop do localhost:8081ponieważ baza danych zawiera stare nazwy domen.
  • Ryzyko spójności danych: Docker dane kontenera nie są kopii zapasowej, a proces migracji może stracić konfigurację lub dane wtyczki.

II. Analiza przyczyn problemu

  1. Database Old Domain name
    • wp_options Tabela siteurl oraz home pole nie jest aktualizowane.
    • Artykuły, metadane i dane sekwencjonowane (np. menu, małe narzędzia) zawierają zakodowane na stałe stare adresy.
  2. Brak zarządzania danymi dokerów
    • Nieprzyjęcie wolumenu danych lub mysqldump Kompletna kopia zapasowa, pojemniki do bezpośredniego przerobu skutkujące nieodwracalną utratą danych.
  3. Interferencja konfiguracji serwera
    • Przepisy dotyczące zmiany dyrektywy w starym środowisku (np. .htaccessNie oczyszczone.

III. Kompletne rozwiązania łańcuchowe

Etap 1: Backup danych dokerów i migracja

1. Backup bazy danych MySQL Metoda 1: Przyjęcie mysqldump Eksportuj plik SQL
# 导出数据库(容器内操作)  
docker exec dockerwordpress-db-1 mysqldump -uroot -p123456 --hex-blob --default-character-set=utf8mb4 wordpress > /tmp/backup.sql  

# 复制到宿主机  
docker cp dockerwordpress-db-1:/tmp/backup.sql /host/backup.sql  
Metoda 2: Backup MySQL Data Volume
# 备份数据卷(宿主机操作)  
docker run --rm -v mysql_data:/source -v /host/backup:/backup alpine tar czf /backup/mysql_data.tar.gz -C /source .  
2. Importuj bazy danych MySQL do środowiska produkcyjnego
# 导入 SQL 文件(生产环境容器)  
docker cp /host/backup.sql prod-mysql-container:/tmp/backup.sql  
docker exec -i prod-mysql-container mysql -uroot -p123456 wordpress < /tmp/backup.sql  

# 或从数据卷恢复  
docker run --rm -v prod_mysql_data:/target -v /host/backup:/backup alpine tar xzf /backup/mysql_data.tar.gz -C /target  
3. Walidacja integralności danych
# 检查关键表数据  
docker exec prod-mysql-container mysql -uroot -p123456 -e "USE wordpress; SELECT COUNT(*) FROM wp_posts;"  

Faza II: odtworzenie skoków nazw domen

1. Baza danych wymiany zabezpieczeń starych nazw domen Wybór i działanie narzędzia
  • Wtyczka BetterSearchReplace:
    1. Pełna wymiana biblioteki localhost:8081 Tak. 666.comNie wiem.
    2. Zmień maksymalną stronę na 500, przetwarzanie partii dużych stołów.
  • Narzędzie linii poleceń Search- Replace- DB:php srdb.cli.php -h localhost -u root -p 123456 -n wordpress -s "localhost:8081" -r "666.com" -g  
2. Force Update Konfiguracja WordPress
// 在 wp-config.php 中定义绝对域名  
define('WP_HOME', 'https://666.com');  
define('WP_SITEURL', 'https://666.com');  
3. Oczyszczanie pozostałości konfiguracji serwera
  • Usuń starą zasadę orientacji:# .htaccess 中删除旧规则
    RewriteRule ^(.*)$ https://localhost:8081/$1 [R=301,L] # 删除此行

Etap III: Certyfikacja i optymalizacja

  1. Funkcja Uwierzytelnianie
    • Dostęp na stronie głównej:curl -I https://666.com Sprawdź kod statusu 200 Nie 301/302Nie wiem.
    • Sprawdza losowo, czy artykuły, strony, pliki multimedialne URL wskazują na nowe nazwy domen.
  2. Optymalizacja wydajności
    • Konfiguracja zapytania bazy danych Redis lub Memcached cache.
    • Stosowanie docker system prune Oczyszcza obraz nieprawidłowego pojemnika.

Ryzyko operacyjne i obchodzenie środków

Scena ryzykaWydajnośćŚrodki odmowy
Konflikt praw dostępu do bazy danychPakowanie nie powiodło się, podpowiedź logu odrzuconaHarmonizacja grupy użytkowników zwojów danych przed backup 999:999(Domyślny MySQL)
Uszkodzenie oddzielonych danychUkład strony jest mylony lub funkcje wtyczki są nieprawidłoweStosowanie -g Parametry przetwarzania danych seryjnych
Plik kopii zapasowej niekompletnyBrakuje struktury importowanego zegarkaPodwójne kopia zapasowa (SQL + Data Volume) do przywrócenia MD5 Hash

V. Wnioski i procesy standaryzacji

1. Znormalizowany proces migracji

  1. Lokalne wsparcie środowiska:# 备份数据库 + 数据卷  
    docker exec mysql-container mysqldump -uroot -p123456 wordpress > backup.sql  
    docker volume inspect mysql_data > volume_backup.json  
  2. Konfiguracja wstępna środowiska produkcyjnego:
    • Tworzy tę samą wersję kontenera MySQL z wyprzedzeniem, montuje wolumin danych.
  3. Synchronizacja danych przyrostowych:
    • Stosowanie rsync Sync wp-content/uploads .

2. Przykład automatycznych skryptów

#!/bin/bash  
# 备份脚本  
docker exec mysql-container mysqldump -uroot -p123456 wordpress > /backups/wordpress_$(date +%Y%m%d).sql  
tar -czf /backups/mysql_data_$(date +%Y%m%d).tar.gz /var/lib/docker/volumes/mysql_data  

# 恢复脚本  
docker cp /backups/wordpress_20231001.sql prod-mysql-container:/tmp/  
docker exec -i prod-mysql-container mysql -uroot -p123456 wordpress < /tmp/wordpress_20231001.sql  

Długotrwałe mechanizmy monitorowania

  • Monitor dziennika:docker logs -f prod-mysql-container | grep -E "ERROR|WARNING"  
  • Kontrola zdrowia:curl -s https://666.com/health-check | grep "OK"  

VI. Wartość końcowa

Dzięki tej praktyce migracyjnej, "Containerization WordPress 4- step method".:

  1. Standardowe kopie zapasowe: SQL + Podwójne ubezpieczenie woluminu danych.
  2. Rehabilitacja narzędzi: Dane zastępcze bezpieczeństwa w połączeniu z wtyczkami i narzędziami linii poleceń.
  3. Autoryzacja atomowaStopniowe sprawdzanie stron, API, media.
  4. Automatyczne monitorowanieLogi, kontrole zdrowia, regularne testy zwrotne.

Wariant ten mógłby stanowić ogólny wzór dla transportu zastosowań kontenerowych i zmniejszyć progi techniczne wynikające z różnic środowiskowych.