Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / xtrabackup / 14 сообщений из 14, страница 1 из 1
25.02.2016, 15:33
    #39178935
saifuddin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
Доброго времени суток.
Создал два скрипта для создания backup и для его закачки. Все отработало норм. Теперь. нужно усложнить задачу поставить шифрование. Тут и проблема.

первый скрипт:
#!/bin/bash
rm -r /root/dumpdb/*
xtrabackup \
--defaults-file=/etc/mysql/my.cnf \
--datadir=/var/lib/mysql \
--target-dir=/root/dumpdb \
--user=root \
--password="test" \
--compress-chunk-size=64K \
--compress-threads=2 \
--compress \
--encrypt=AES256 \
--encrypt-key="A1EDC73815467C083B0869508406637E" \
--backup

второй скрипт:
#!/bin/bash


xtrabackup \
--prepare \
--target-dir=/root/dumpdb/ \
--decrypt=AES256 \
--encrypt-key="A1EDC73815467C083B0869508406637E" \
--datadir=/var/lib/mysql

при вызове второго скрипта выдается ошибка:
Error: --decrypt and --apply-log are mutually exclusive
что означает что они являются взаимоисключающими. Но у меня не вызывается --apply-log, откуда он тут появился и что сделать нужно, чтобы все же второй скрипт отработал?
...
Рейтинг: 0 / 0
25.02.2016, 15:46
    #39178976
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
saifuddin,

xtrabackup какой версии ?
...
Рейтинг: 0 / 0
25.02.2016, 15:58
    #39179001
saifuddin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
2.3
...
Рейтинг: 0 / 0
25.02.2016, 16:17
    #39179051
saifuddin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
установил 2.4 то же самое
...
Рейтинг: 0 / 0
25.02.2016, 16:21
    #39179057
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
Не знаю как это объяснить, но в списке опций версии 2.3 я вообще не вижу опций --encrypt, --encrypt-key, --decrypt, --apply-log.

И, насколько я вижу, для шифрования/дешифрования бэкапа существует отдельная утилита xbcrypt .
...
Рейтинг: 0 / 0
25.02.2016, 16:27
    #39179072
saifuddin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
там нет их. Но они есть в innobackupex. А, он считается устаревшим. Короче у меня шифруются файлы и окончание файлов меняется на .xbcrypt. А, расшивровка не происходит.
Сейчас попробую разобраться с той утилитой, что вы прислали.
...
Рейтинг: 0 / 0
25.02.2016, 16:37
    #39179095
saifuddin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
#!/bin/bash

xbcrypt \
--encrypt-algo=AES256 \
--encrypt-key="A1EDC73815467C083B0869508406637E" \
--input=/root/dumpdb/backup-my.cnf.qp.xbcrypt \
--output=/root/dumpdb2/backup-my.cnf.qp

xtrabackup \
--prepare \
--target-dir=/root/dumpdb2/ \
--datadir=/var/lib/mysql


изменил свой второй скрипт. Выходит нужно проходить и каждый файл прописывать для расшифровки. Просто папку не добавить.
...
Рейтинг: 0 / 0
25.02.2016, 16:48
    #39179122
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
saifuddinПросто папку не добавить.Можно сделать цикл по файлам в папке.
Подробности не подскажу, но найти не сложно.
...
Рейтинг: 0 / 0
25.02.2016, 16:53
    #39179127
saifuddin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
#!/bin/bash

cd /root/dumpdb/

for i in `find . -iname "*\.xbcrypt"`; do xbcrypt -d --encrypt-key="A1EDC73815467C083B0869508406637E" \
--encrypt-algo=AES256 < $i > $(dirname $i)/$(basename $i .xbcrypt) && rm $i; done

xtrabackup \
--prepare \
--target-dir=/root/dumpdb/ \
--datadir=/var/lib/mysql

Ошибка:

xtrabackup version 2.4.1 based on MySQL server 5.7.10 Linux (x86_64) (revision id: a2dc9d4)
xtrabackup: cd to /root/dumpdb
xtrabackup: This target seems to be not prepared yet.
InnoDB: Number of pools: 1
InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
xtrabackup: Warning: cannot open ./xtrabackup_logfile. will try to find.
InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
xtrabackup: Fatal error: cannot find ./xtrabackup_logfile.
xtrabackup: Error: xtrabackup_init_temp_log() failed.
...
Рейтинг: 0 / 0
25.02.2016, 16:55
    #39179129
saifuddin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
ls -lh dumpdb/
total 1.4M
-rw-r--r-- 1 root root 389 Feb 25 16:51 backup-my.cnf.qp
drwxr-x--- 2 root root 4.0K Feb 25 16:51 dbtest
drwxr-x--- 2 root root 4.0K Feb 25 16:51 dbtest2
drwxr-x--- 2 root root 4.0K Feb 25 16:51 dbtest3
-rw-r--r-- 1 root root 1.3M Feb 25 16:51 ibdata1.qp
drwxr-x--- 2 root root 4.0K Feb 25 16:51 mysql
drwxr-x--- 2 root root 4.0K Feb 25 16:51 performance_schema
drwxr-x--- 2 root root 4.0K Feb 25 16:51 user
-rw-r--r-- 1 root root 118 Feb 25 16:51 xtrabackup_binlog_info.qp
-rw-r--r-- 1 root root 119 Feb 25 16:51 xtrabackup_checkpoints
-rw-r--r-- 1 root root 664 Feb 25 16:51 xtrabackup_info.qp
-rw-r--r-- 1 root root 565 Feb 25 16:51 xtrabackup_logfile.qp


cat dumpdb/xtrabackup_logfile.qp

qpress10Fxtrabackup_logfileNEWBNEWBj)��G���xtrabkup 1602251$:16:0v�2��B���D��D����
pց ��RB��0�|���Ca��#ހ���!΋�
���NEWBNEW��SGg@��dvgD2~B� B�b���WSREPXidM�d�5唍:�
�gc�A2
�hP�iP�s+��NEWBNEWB
q0&�G��dvh��DXidM�d�5唍:�
� �jc7 "uqqqefwwweee53rrb�rUUttt53("�����"5���7
���M$ #���������,_������(" "d��ENDSENDS
...
Рейтинг: 0 / 0
27.02.2016, 20:48
    #39180636
saifuddin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
И, так прошу помощи.
xtrabackup 2.4
Так же установил: aptitude install qpress
Мне нужно несколько скриптов.
А, именно:
1. Создать полный backup mysql c шифрованием и сжатием
2. Создать инкрементный backup определенной базы данных c шифрованием и сжатием . (не готов)
3. Создать инкрементный backup баз данных c шифрованием и сжатием, тех таблиц, которые изменились
4. Залить backup.

Помогите мне их испарить, чтобы они работали.

1. Создать полный backup mysql

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#!/bin/bash

xtrabackup \
--datadir=/var/lib/mysql \
--user=root \
--password="test" \
--target-dir=/root/full \
--compress \
--compress-threads=4 \
--encrypt=AES256 \
--encrypt-key-file=/root/backups.key \
--backup




3. Создать инкрементный backup баз данных, которые изменинись

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
#!/bin/bash

rm -r /root/incr/*
rm /root/full/xtrabackup_logfile


cd /root/full/
for i in `find . -iname "*\.xbcrypt"`; do xbcrypt -d --encrypt-key-file=/root/backups.key  \
--encrypt-algo=AES256 < $i > $(dirname $i)/$(basename $i .xbcrypt) && rm $i; done

LAST_LSN=$(cat /root/lsns/xtrabackup_checkpoints | grep to_lsn | cut -d'=' -f2)

xtrabackup \
--backup \
--target-dir=/root/full \
--incremental-basedir=/root/incr/ \
--databases-file=/root/bases.list \
--user=root \
--password="test" \
--compress \
--compress-threads=4 \
--encrypt=AES256 \
--encrypt-key-file=/root/backups.key \
--incremental-lsn $LAST_LSN





4. Залить backup.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
#!/bin/bash

cd /root/dumpdb/
for i in `find . -iname "*\.xbcrypt"`; do xbcrypt -d /root/backups.key  \
--encrypt-algo=AES256 < $i > $(dirname $i)/$(basename $i .xbcrypt) && rm $i; done

service mysql stop
innobackupex --decompress /root/dumpdb/
innobackupex --defaults-file=/etc/mysql/my.cnf  --copy-back  /root/dumpdb
#xtrabackup --prepare --target-dir=/root/dumpdb/ --datadir=/var/lib/mysql
#xtrabackup --prepare --target-dir=/root/dumpdb/ --datadir=/var/lib/mysql
chown mysql:mysql -R /var/lib/mysql
chmod 770 -R /var/lib/mysql
service mysql start 

innobackupex --defaults-file=/etc/mysql/my.cnf  --copy-back  /root/dumpdb


Пришлось поставить innobackupex, так как с xtrabackup не запускается. Куча ошибок.

cat /root/bases.list
Код: sql
1.
user.test


cat /root/backups.key
Код: sql
1.
1F644C42F4F4FF407C78CC8B6DD0F444



Ошибки:
запуск 1 скрипта. completed OK!
запуск 3 скрипта. completed OK!
запуск 4 скрипта. completed OK!

Но, стоит изменить значение в таблице и запустить третий скрипт.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
160227 20:34:43 >> log scanned up to (3371075854)
xtrabackup: Generating a list of tablespaces
InnoDB: Allocated tablespace ID 23 for user/profile, old maximum was 0
xtrabackup: using the full scan for incremental backup
xtrabackup: Can't create/write to file '/root/full/ibdata1.meta' (Errcode: 17 - File exists)
xtrabackup: Error: cannot open output stream for ibdata1.meta
[01] xtrabackup: Error: failed to write meta info for ibdata1
[01] xtrabackup: error: failed to initialize page write filter.
[01] xtrabackup: Error: xtrabackup_copy_datafile() failed.
[01] xtrabackup: Error: failed to copy datafile.



Видимо я упустил, что-то из виду. Подскажите в чем проблема...?
...
Рейтинг: 0 / 0
27.02.2016, 21:11
    #39180647
saifuddin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
Изменил первый и третий скрипт.


первый :
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
#!/bin/bash

rm -r /root/full/*

LAST_LSN=$( cat /root/full/xtrabackup_checkpoints | grep to_lsn | cut -d'=' -f2)

xtrabackup \
--datadir=/var/lib/mysql \
--user=root \
--password="test" \
--target-dir=/root/full \
--compress \
--compress-threads=2 \
--extra-lsndir=/root/lsns/ \
--encrypt=AES256 \
--encrypt-key-file=/root/backups.key \
--backup



третий:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
#!/bin/bash

cd /root/full/
for i in `find . -iname "*\.xbcrypt"`; do xbcrypt -d --encrypt-key-file=/root/backups.key  \
--encrypt-algo=AES256 < $i > $(dirname $i)/$(basename $i .xbcrypt) && rm $i; done

for bf in `find . -iname "*\.qp"`; do qpress -d $bf $(dirname $bf) && rm $bf; done

LAST_LSN=$(cat /root/lsns/xtrabackup_checkpoints | grep to_lsn | cut -d'=' -f2)

xtrabackup \
--backup \
--target-dir=/root/full \
--incremental-basedir=/root/incr/ \
--databases-file=/root/bases.list \
--user=root \
--password="test" \
--compress \
--compress-threads=4 \
--encrypt=AES256 \
--encrypt-key-file=/root/backups.key \
--incremental-lsn $LAST_LSN

xtrabackup \
--prepare \
--apply-log-only \
--target-dir=/root/full



теперь третий скрипт постоянно можно запускать, он не ругается на ошибки. Вроде должно работать. Вот только при закачке на сервер выдается старая информация(та, что была сделана в первом скрипте)

Т.е. я запускаю первый скрипт, потом меняю значение в таблице mysql и запускаю третий скрипт, он не подхватывает обновление выходит.
...
Рейтинг: 0 / 0
27.02.2016, 21:13
    #39180648
saifuddin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
да и папка incr/ всегда пуста. Вот в чем проблема выходит. Просто не создаются файлы. Народ жду от вас помощи в этой не легкой для меня задачи.
...
Рейтинг: 0 / 0
28.02.2016, 11:21
    #39180751
saifuddin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
xtrabackup
Всю ночь возился с этими скриптами. Теперь у меня есть полностью рабочий скрипт с полным backup. И, создается инкрементный. Но, не знаю, как объединить их.

первый скрипт.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
#!/bin/bash

rm -r /root/full/*

LAST_LSN=$( cat /root/full/xtrabackup_checkpoints | grep to_lsn | cut -d'=' -f2)

xtrabackup \
--datadir=/var/lib/mysql \
--user=root \
--password="test" \
--target-dir=/root/full \
--extra-lsndir=/root/lsns/ \
--backup

#--compress \
#--compress-threads=2 \



Второй

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
#!/bin/bash
rm -r /root/incr/*

cd /root/full/
#for i in `find . -iname "*\.xbcrypt"`; do xbcrypt -d --encrypt-key-file=/root/backups.key  \
#--encrypt-algo=AES256 < $i > $(dirname $i)/$(basename $i .xbcrypt) && rm $i; done

for bf in `find . -iname "*\.qp"`; do qpress -d $bf $(dirname $bf) && rm $bf; done

LAST_LSN=$(cat /root/lsns/xtrabackup_checkpoints | grep to_lsn | cut -d'=' -f2)

xtrabackup \
--backup \
--target-dir=/root/incr \
--incremental-basedir=/root/full/ \
--databases-file=/root/bases.list \
--user=root \
--password="test" \
--incremental-lsn $LAST_LSN


xtrabackup \
--prepare \
--apply-log-only \
--target-dir=/root/full \
--incremental-lsn $LAST_LSN

#cd /root/full/
#for bf in `find . -iname "*\.qp"`; do qpress -d $bf $(dirname $bf) && rm $bf; done

xtrabackup \
--target-dir=/root/incr \
--incremental-basedir=/root/full \
--incremental-lsn $LAST_LSN \
--prepare


Временно отключил шифрование и сжатие


Запуск полного бэкапа ОК.
du -s ./*
13748 ./full
4 ./incr
изменяем значение в таблице в mysql
запуск инкрементного обновления(второй скрипт) ОК.
Вывод на экране:
Код: sql
1.
2.
3.
4.
xtrabackup: error: The transaction log file is corrupted.
xtrabackup: error: The log was not applied to the intended LSN!
xtrabackup: Log applied to lsn 0
xtrabackup: The intended lsn is 3371094422


======================

du -s ./*

21944 ./full
30920 ./incr
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / xtrabackup / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]