Вход | Регистрация

Информационные технологии :: Администрирование

pg_dump + текущая дата на windows server 2012

pg_dump + текущая дата на windows server 2012
Я
   newbling
 
30.09.16 - 16:16
Доброго времени суток. Не подскажете как задать текущую дату при архивации через консольку?
 
 
   newbling
 
1 - 30.09.16 - 16:21
На данный момент делаю так

cd "адрес постгре\bin"
.\pg_dump.exe -Ft -h адрес сервера -U юзер -c база > адрес архива

cd "адрес 7-зипа\7-Zip"
.\7z.exe a -tzip адрес архива+[ТекущаяДата?].zip адрес архива
del адрес архива
   newbling
 
2 - 30.09.16 - 16:23
всё отрабатывает, но вот текущую дату я никак не могу побороть
   eRik
 
3 - 30.09.16 - 16:38
Есть несколько вариантов, у меня в батнике так:

set now=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%
7z.exe a e:\archive\base1c_%now%.7z e:\config\*.1CD
   Fragster
 
4 - 30.09.16 - 16:49
я себе из-за этого унылого cmd cygwin на сервер поставил
   Fragster
 
5 - 30.09.16 - 16:51
и теперь нормально работает

#!/bin/bash
backupname='(a)'`date +%Y.%m.%d%H.%M.%S`
   newbling
 
6 - 30.09.16 - 16:55
set now=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%

а что за ~-4
   newbling
 
7 - 30.09.16 - 17:10
О, отработало присвоение даты, только вот что-то с кодировокй, надо ещё попробовать chcp 1251 сделать
   eRik
 
8 - 30.09.16 - 17:12
>а что за ~-4
отрезать последние 4 символа
   eRik
 
9 - 30.09.16 - 17:12
*в смысле, взять последние 4
   newbling
 
10 - 30.09.16 - 17:14
(9) ясно, спасибо, сейчас как отработает - по результатам скину готовый код, мб ещё кому понадобится
 
 Рекламное место пустует
   newbling
 
11 - 30.09.16 - 17:22
:: меняем кодировку
CHCP 1251

:: задаём текущую дату
set now=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%

:: делаем дамп средствами pg_dump.exe
cd "АдресГдеЛежит_pg_dump.exe"
.\pg_dump.exe -Ft -h АдресСервераБД -U ЮзерАдминПостгре -c НазваниеБазыВКластере > АдресКудаУпадётДамп

:: архивируем дамп, добавляем дату в название и удаляем незаархивированную версию
cd "Адрес7Зип"
.\7z.exe a -tzip АдресКудаУпадётАрхив%now%.zip АдресГдеЛежитДамп
del АдресГдеЛежитДамп
   newbling
 
12 - 03.10.16 - 16:49
Теперь вопрос как восстановить =D
Пробую

cd "АдресГдеЛежит_pg_restore.exe"
.\pg_restore.exe -h АдресСервераБД -U ЮзерАдминПостгре -c НазваниеБазыВКластере "АдресГдеЛежитДамп"

ну и он ругается на то, что мног опараметров, начиная с "АдресГдеЛежитДамп". Хотя, во всех описаниях именно так.
   newbling
 
13 - 03.10.16 - 16:50
я сейчас пробую делать не -Ft, а Fc - так он сразу его сжимает и вроде ка кв описании позволяет поднимать в ресторе.
   newbling
 
14 - 03.10.16 - 16:58
Хм, по ходу не надо ему -c НазваниеБазыВКластере указывать
   NorthWind
 
15 - 03.10.16 - 17:01
(4) тоже вариант... хотя можно использовать штатный гораздо менее унылый PowerShell и штатный не менее веселый VBS.
   newbling
 
16 - 03.10.16 - 17:02
.\pg_restore.exe -h АдресСервераБД -U ЮзерАдминПостгре "АдресГдеЛежитДамп"

Если так сделаем, то он куда восстановит базу? Там в дампе лежит изначальный адрес что ли?
   newbling
 
17 - 03.10.16 - 17:28
вот так вроде что-то получилось
cd "адрес pg_restore.exe"
.\pg_restore.exe --host хост --port порт --username суперюзер --dbname имя базы --clean --verbose "адрес дампа"
   Fragster
 
18 - 03.10.16 - 17:48
(15) тогда еще повершелла не было. ну и под линупсом работает единообразно почти.
   newbling
 
19 - 04.10.16 - 14:19
(17) пардон, не тот буфер - вот так отработало
.\pg_restore.exe -h хост -p порт -U суперюзер -d имя базы -c -v "адрес дампа"

-с это дропать таблички в найденной базе, я так понимаю это не обязательно, а -v это сообщать подробно что происходит

Дамп же я решил делать в формате -Fc, а ни -Ft. Ft грузит просто плейн текст, который потом архивировать, а -c в формате, подходящем для рестора, но уже ужатом. В сравнении с архивацией 7-зипом получается где-то на 10% толще - не критично. По времени быстрее значительно.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует