Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Инструменты разработчика (http://forum.typo3.ru/forumdisplay.php?f=34)
-   -   Что можно очистить в typo3 (на сервере|в БД) - для создания Бэкапа (http://forum.typo3.ru/showthread.php?t=10364)

Ивано 23.10.2012 12:26

Что можно очистить в typo3 (на сервере|в БД) - для создания Бэкапа
 
Раз в день приходится делать бэкап (копирую папки с сервера, БД - через adminer делаю выгрузку).

Что бы существенно уменьшить вес бэкапа
На сервере копирую все кроме папки typo3temp
В базе данных перед копированием очищаю таблицы sys_log и sys_history
Что еще можно очищать из временных данных и что за таблицы:

cache_extensions
cache_imagesizes
cache_md5params
cache_treelist
cache_typo3temp_log
cf_cache_hash
cf_cache_hash_tags
cf_cache_pages
cf_cache_pages_tags
cf_cache_pagesection
cf_cache_pagesection_tags
cf_extbase_object
cf_extbase_object_tags
cf_extbase_reflection
cf_extbase_reflection_tags
cf_workspaces_cache
cf_workspaces_cache_tags

dmartynenko 23.10.2012 14:02

Чистить кэши = замедлять работу сайта пока кэши снова не наполнятся.

Лучше напишите простенький скрипт-обертку для mysqldump и делайте выгрузку всех таблиц полностью, а *cache* таблиц только как "CREATE TABLE".

К вашему списку я бы добавил cache_pages, и tx_realurl***cache

-=UncleByte=- 23.10.2012 16:24

Обычно самая большая таблица на не нагруженных проектах это cache_extensions - ее записи можно смело выкинуть при бэкапе.

Ивано 23.10.2012 19:53

В общем после очистки БД все начинает весить примерног на 25% меньше...
Это уже хорошо!

Спасибо!

Андрей Аксенов 24.10.2012 12:05

Может так проще:
http://xn--80abcjdogk0b.xn--80afg4bg...hi-sypex-dump/
Как уже писал, БД использует InnoDB, что подразумевает постоянное разрастание размера файла БД... Решить это можно лишь периодическим созданием резервной копии и воссозданием БД из нее...
Может я где-то и ошибаюсь, но других решений не нашел, а вот инструментик для БД хороший...

-=UncleByte=- 24.10.2012 22:10

Цитата:

Сообщение от Андрей Аксенов (Сообщение 34737)
Может так проще:
http://xn--80abcjdogk0b.xn--80afg4bg...hi-sypex-dump/
Как уже писал, БД использует InnoDB, что подразумевает постоянное разрастание размера файла БД... Решить это можно лишь периодическим созданием резервной копии и воссозданием БД из нее...
Может я где-то и ошибаюсь, но других решений не нашел, а вот инструментик для БД хороший...

В принципе для InnoDB есть прекрасные рецепты - http://www.dmitry-dulepov.com/2012/0...tables-in.html

Андрей Аксенов 24.10.2012 23:29

Та же ерунда, вид сбоку... Сервер нужно останавливать, ну так какая разница - конвертить БД несколько раз, или просто зарезервировать и воссоздать?

-=UncleByte=- 25.10.2012 01:40

Сервер в рецепте нужно остановить один раз, далее очистка просто производиться конвертацией таблиц двойной без необходимости остановки. Рецепт, отмечу, предназначен не для переноса, но для работающего сайта.
А SypexDumper - бесспорно замечательный инструмент, сам пользуюсь и всем тут советовал раньше.

dmartynenko 25.10.2012 12:52

А ведь в исходном вопросе речь шла не про чистку как таковую, а про бэкап базы без лишних данных.

Еще раз про мой рецепт подробнее и с примером.
Суть в том, что бы дампить таблицы содержание которых нам в бэкапе не нужно без данных (только структуру), остальные таблицы бэкапить с данными.

Пример bash скрипта для этой цели:

Код:

# юзер базы данных + пароль
USER=user
PASSWORD=pass
CHARSET=cp1251

# куда сохранять бэкапы - желательно за пределами htdocs
BACKUP=/home/userX/dump

date '+%Y-%m-%d %T'
echo "Backup databases to $BACKUP"
   
# делаем выборку списка баз, исключаем не нужные в бэкапе (как минимум information_schema)
for database in `mysql -u $USER -p$PASSWORD -e'SHOW DATABASES;' | grep -v information_schema | grep -v something`;
do
        mkdir --mode=777 $BACKUP/$database
        cd $BACKUP/$database

    for table in `mysql -u $USER -p$PASSWORD $database -e'SHOW TABLES;'`;
    do
            ### exclude empty tables
            if [[ $table == cache_* || $table == tx_realurl_* || $table == tx_tcdirectmail_clicklinks || $table == tx_tcdirectmail_sentlog ]];
                then
                        echo ''
                        echo "mysqldump --opt --no-data -u $USER -p$PASSWORD $database $table > $table.sql;"
                        mysqldump --default-character-set=$CHARSET --opt --no-data -u $USER -p$PASSWORD $database $table > $table.sql
                        date '+%Y-%m-%d %T'
                        echo "gzip --force $table.sql;"
                        gzip --force $table.sql
                        date '+%Y-%m-%d %T'

                ### else full data export
                else
                        echo ''
                        echo "mysqldump --default-character-set=$CHARSET --add-locks --skip-comments --skip-extended-insert --hex-blob --add-drop-table --quick  -u $USER -p$PASSWORD $database $table > $table.sql;"
                        mysqldump --default-character-set=$CHARSET --add-locks --skip-comments --skip-extended-insert --hex-blob --add-drop-table --quick  -u $USER -p$PASSWORD $database $table > $table.sql
                        date '+%Y-%m-%d %T'
                        echo "gzip --fast --force $table.sql;"
                        gzip --fast --force $table.sql
                        date '+%Y-%m-%d %T'
                fi
        done
done

В примере строчки с date и echo только для логгирования работы (можно получать на почту результат cron задания).

В результате в BACKUP папке создается структура папок с названими всех нужных баз данных. В каждой папке для каждой таблицы создается отдельный архив. BACKUP папка скачивается раз в день по расписанию по FTP.

Ивано++ 23.02.2013 18:48

Еще можно очистить

cache_extensions
sys_log
sys_history
tx_realurl_errorlog

+ можно выключить ведение логов для sys_log


Часовой пояс GMT +4, время: 21:00.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot