06.11.2020

Обслуживание ИБ на PostgreSQL с использованием 1С-Обновлятора

 

Обслуживание ИБ на PostgreSQL с использованием 1С-Обновлятора


Самый ценный ресурс в нашей жизни - время, поскольку он не возобновляем. И вот с целью экономии этого ресурса предлагаю быстрое, доступное и безопасное решение проблемы обслуживания информационных баз PostgreSQL на платформе Windows средствами программы 1С-Обновлятор от Владимира Милькина. 


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

  • ежедневное обслуживание - делаем vacuum analyze перед началом рабочего дня, но после ночного резервного копирования. Так как эта операция безобидная, то блокировать и выгонять пользователей из ИБ не будем, не беда, если кто-то в это время захочет поработать. У меня эта операция начинается в 5:00 утра, кроме воскресенья. Само собой разумеется, что все действия журналируются, и по окончании операции будет сформировано письмо системному администратору.

  • еженедельное обслуживание в ночь с субботы на воскресенье - делаем vacuum full и reindex. Поскольку эта операция серьезная, перед началом нужно сделать следующее:

    • завершим все текущие сеансы пользователей;

    • заблокируем новые сеансы и регламентные задания;

    • сделаем резервную копию ИБ.

По окончании vacuum full и reindex все разблокируем и отошлем отчет с логом по почте.


Подготовительные  настройки

Делаем эти настройки, если еще не сделали ранее:

  1. Устанавливаем 1С Обновлятор

  2. Покупаем и активируем лицензию. В бесплатной версии вы не сможете произвести пакетную обработку больше трех ИБ, не будут работать уведомления и запуск задач по расписанию. Очень рекомендую купить лицензию, она стоит недорого.

  3. Настраиваем уведомления: Настройки программы -> Уведомления

  4. Поскольку скрипт vacuum_full_reindex предполагает резервное копирование, для каждой ИБ, которая будет обслуживаться, нужно настроить параметры архивирования. Для этого во вкладке "Базы"  нужно сделать следующее:

    1. встаньте на нужную базу, откройте свойства выделенной базы кнопкой "Свойства базы";

    2. в открывшемся окне свойств базы во вкладке ""Настройка" и в подвкладке "Общие" в строке ""СУБД" нажмите на ссылку "<выбрать сервер...>."

    3. при необходимости добавьте сервер, введите его параметры

    4. в окне свойств базы во вкладке "Настройка" и в подвкладке "Архивация" в группе "Куда" настройте путь для архивации этой базы, в группе "Что" поставте галочку "Включить sql архив", параноики могут поставить галочку "Дополнительно делать dt выгрузку"

  5. Параметры архивирования необходимо настроить для каждой ИБ, которую вы будете обслуживать.


Настройки скриптов обслуживания

  1. Переходим во вкладку "Скрипты" и создаем скрипт vacuum_analyze, копируем код. Не забываем прописать в PGBIN - путь до вашего PostgreSQL, а также логин и пароль к БД. Должно получиться примерно так:

  1. Не забываем выбрать базы для запуска и затем сохранится. Для особо ленивых есть кнопочка "Перенести сюда отметки из основного списка". Это просто шедевр, я без иронии, очень удобно, особенно если у вас около полусотни ИБ.

  2. Аналогично создаем и сохраняем скрипт "vacuum_full_reindex". Не забываем поставить галочки "Делать резервную копию" и "Разблокировать"



Настройка запуска по расписанию

  1. Создаем задачу "Очистка баз ежедневная" примерно с такими параметрами. В строке "Операция" в выпадающем списке выбираем "Запуск скрипта" и выбираем нужный скрипт.

  1. Аналогично создаем задачу "Очистка и индексация еженедельная" с такими параметрами. 

  1. В конечном итоге будем иметь следующее: 



Отчеты и уведомления


Если уведомления настроены, то по окончании работы скрипта будет высылаться письмо примерно вот такого содержания:

 


26.06.2017

Установка Drush с Composer на Ubuntu 16

Для начало все как обычно:
$ apt-get update
$ apt-get install zip unzip


$ apt-get install curl php7-cli git

Далее:
$ curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

И наконец ставим  Drush:

$ composer global require drush/drush

Все. Далее можно пользоваться. Если возникнут сложности с правами дотупа, то сделать вот так:


Add "www" group and add your user to this group:

$ sudo groupadd www
$ sudo usermod -a -G www [user]

logout/login

Set ownership and write permissions:
$ sudo chown -R root:www /var/www
$ sudo chmod 2775 /var/www
$ find /var/www -type d -exec sudo chmod 2775 {} +
$ find /var/www -type f -exec sudo chmod 0664 {} +

16.06.2017

Самые необходимые модули Drupal

Drupal 7

Views
Chaos tool suite (ctools)
BackUp and Migrate
CCK
IMCE
Transliteration
Admin Menu
CKEditor
Captcha
ReCaptcha
Token
Colorbox
Localization update
Module Filter
Image Resize Filter  http://webcoder.kz/pokaz-izobrazheniy-cherez-colorbox-i-imce
Sweaver


1. Filebrowser
Установка: Меню администрирования -> Содержимое -> Добавить содержимое -> Directory listing
Модуль, позволяющий создавать страницу с менеджером файлов для заливки или выгрузки файлов. Предлагаю использовать в сборке для быстрого доступа к CSS файлу для темизации.
2. Iconbox
Настройки: Меню администрирования -> конфигурация -> Iconbox
Позволяет создавать красивые блоки с иконками и текстом с заливкой фона (выбор цвета), выбором формы иконки (круг, квадрат), выбором цвета иконки, выбор самих иконок от Font Awesome. Сами иконки от Font Awesome можно вставлять в текст посредством тега <i class="fa fa-<название иконки> fa-3x"></i>. Где 3x - размер иконки (можно варьировать). Также иконки вставляются через шорткоды (если вы включите соответствующие модули). Полный список иконок: http://fontawesome.io/icons/.
3. WOWJS
Настройки: При включенном модуле появляется в настройках блока.
Большое количество анимационных эффектов для элементов сайта.
4. BlockAnimate
Настройки: При включенном модуле появляется в настройках блока.
Применение эффектов анимации к блокам
5. Block Class
Настройки: При включенном модуле появляется в настройках блока.
Добавление классов CSS к блокам для темизации.
6. Browscap Block
Настройки: При включенном модуле появляется в настройках блока.
Управление видимостью блока на мобильных устройствах. Если после включения модуля Browscap в админке появится сообщение о неполадках, необходимо добавить в самый низ файла settings.php следующую строчку:
ini_set('memory_limit', '-1');
Файл settings.php находится в каталоге sites/default основного каталога сайта. Перед его редактированием необходимо разрешить его перезапись, изменив права. После перезаписи вернуть исходные настройки.
7. Floating Block
Настройки: Меню администрирования -> Конфигурация -> Плавающий блок
Плавающие блоки на сайте. Через настройки модуля указывается ID или класс блока, а также его расположение. Это позволяет зафиксировать блок, и он будет оставаться на данном месте в окне браузера при скроллинге.
8. JQuery Coutdown Timer
Настроки: При включенном модуле появляется блок в списке блоков (Меню -> Структура -> Блоки)
Таймер обратного отсчета
9. Icon API: Menu
Настройки: При включенном модуле появляются в настройках меню
Добавляет иконки Font Awesome к пунктам меню.
10. Node Class
Настройки: При включенном модуле появляется при редактировании или создании материала
Возможность добавить классы к создаваемому материалу.
11. Parallax Background
Настройки: Меню администрирования -> Конфигурация -> Parallax Background
К любому элементу на сайте можно добавить эффект параллакса фона. В настройках необходимо установить ID элемента.
12. Scroll to top
Настройки: Появляется при включенном модуле. Дополнительные настройки через Меню администрирования -> Конфигурация -> Прокрутка наверх
Кнопка плавной прокрутки вверх сайта.
13. Bootstrap 3 Shortcodes
Добавление шоркодов ко всем элементам. Шорткоды - это красивые элементы для оформления контента (выделение цитат, линии, выделение частей текста цветом и др.). Позволяют сделать контент более читабельным, структурированным, облегчают восприятие текста. Список доступных шорткодов на http://github.com/filipstefansson/bootstrap-3-shortcodes
14. CKEditor Widgets / CKEditor Bootstrap / CKEditor Block
Установка и настройка: Меню администрирования -> Конфигурация -> CKEditor Widgets, CKEditor, Форматы текста
CKEditor Widgets добавляет кнопку на панель CKEditor для выбора и применения дополнительных виджетов (разные варианты оформления контента в виде 2-3 колоночных шаблонов). CKEditor Bootstrap добавляет несколько кнопок на панель CKEditor для быстрого добавления в текст некоторых элементов Bootstrap. CKEditor Block позволяет вставлять блоки drupal'а прямо в текст.
15. XML sitemap
Карта сайта. При включенном модуле нужно указать для каждого типа материала, нужно ли или нет его включать в карту сайта. Сделать это можно через Меню администрирования -> Структура -> Типы материалов.
16. Yandex.Metrics
Установка: Меню администрирования -> Конфигурация -> Yandex.Metrix
Установка счетчика Яндекс.Метрики на сайт.
17. Webform
Настройка: Меню администрирования -> Содержимое -> Добавить содержимое -> Webform
Создание форм (подписка, заказ, обратный звонок и т.п.).
18. Scroll to destination anchors
Настройка: Работает при включенном модуле
Плавный скролллинг до анкоров. Создавайте в пунктах меню анкорные ссылки через модуль Void Menu (включен в сборку) и делайте плавный скроллинг до анкоров на странице.
19. Panels
Настройка: Меню администрирования -> Структура -> Панели
Позволяет легко создавать страницы с любой произвольной структурой.
20. Metatag
Настройка: Меню администрирования -> Конфигурация -> Мета-тег
Установка метатегов сайта - заголовок, описание, ключевые слова.
21. Content Access
Настройка: Меню администрирования -> Структура -> Типы материалов -> *Тип материала* -> Изменить -> Контроль доступа
Закрывает доступ к материалам сайта для определенных ролей пользователей. Модуль добавлен в сборку для работы в связке с модулем Filebrowser.
22. CKEditor (+IMCE) (нет в старой версии сборки)
Настройка: Меню администрирования -> Конфигурация -> CKEditor
Удобный визивиг редактор для создания и редактирования контента (с файлбраузером IMCE).
22. Exclude node title
Настройка: При включенном модуле появляется в настройках страницы при создании или редактировании
Позволяет запретить вывод системного заголовка страницы.
23. Global Redirect
Полезный модуль для поисковой оптимизации. Рекомендуется просто включить и оставить настройки по умолчанию.

08.06.2017

Python + Notepad ++

Как подружить Python с Notepad ++

  1. Скачивается Notepad ++ Portable (можно прям с флешки запускать)
  2. Plugins -> NppExec -> Execute…
  3. в окошке пишем python +i $(FILE_NAME)
  4. тискаем Save…, сохраняем
  5. Опять Plugins -> NppExec и ставим галочки напротив Save file on execute и Follow $(CURRENT_DYRECTORY)
  6. Еще один маленький шаг (но очень важный и приятный) настройка кодировки в консоли (в настройках идем в Plugins -> NppExec -> Consol Output… )

ВСЕ! 
Редактируем код, тискаем Ctrl+F6 и радуемся отчету в нижней части экрана

07.06.2017

Пример удаления всех материалов с типом article:
drupal_set_time_limit(600);
$nids = db_select('node', 'n')
  ->fields('n', array('nid'))
  ->condition('n.type', 'article')
  ->execute()
  ->fetchCol();
foreach ($nids as $nid) {
  node_delete($nid);
}
drupal_set_message('Удалено ' . count($nids) . ' нод');
Код можно выполнить с помощью Devel, по адресу devel/php

27.03.2017

Обновление PostgreSQL

Простое обновление PostgreSQL просто

service postgresql-9.3 stop
chkconfig postgresql-9.3 off

sudo rpm -ivh http://1c.postgrespro.ru/keys/postgrespro-1c-centos94.noarch.rpm
sudo yum makecache
sudo yum install postgresql-pro-1c-9.4

и стартуем новую версию

service postgresql-9.4 start
chkconfig postgresql-9.4 on

02.11.2016

Ошибка RDP: Удаленный сеанс отключен, поскольку для данного компьютера отсутствуют клиентские лицензии удаленного рабочего стола


Ошибка RDP: Удаленный сеанс отключен, поскольку для данного компьютера отсутствуют клиентские лицензии удаленного рабочего стола

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

Для удаления лицензии RDP с клиентского компьютера, откройте ветку реестра

HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing

и удалите все подразделы.

После этого повторите подключение к серверу RDP. 

При первом подключении запустите клиент «от имени Администратора».

25.10.2016

Шпаргалка по SQL Server Management Studio. Восстановление базы данных (либо копирование сохраненной резервной копии в пустую базу данных)

1. Восстановление базы данных (либо копирование сохраненной резервной копии в пустую базу данных)


Сначала неплохо бы создать пустую БД.

Затем слева, в обозревателе объектов (Object Explorer), раскрываем вкладку «Базы данных» (Server Oblects), находим в списке базу данных из которой (или в которую) необходимо восстановить данные, кликаем по ней правой кнопкой мыши, затем в появившемся контекстном меню выбираем «Задачи» (Tasks) — «Восстановить» (Restore) — «База данных…» (Database…)

Запустится мастер восстановления базы данных (Restore Database). Выбираем базу источник (Source for restore), при этом мастер попробует автоматически подобрать последовательность файлов резервных копий для восстановления базы на текущий момент времени.

Если же требуется загрузить данные из конкретного файла или устройства резервного копирования, то необходимо установить соответствующий переключатель в положение «Устройство» (From device) и вручную указать источник для восстановления.

Затем необходимо выбрать базу данных назначения (Destination for restore), т. е. ту информационную базу в которую будут загружаться данные. Эта может быть как база с которой делалась резервная копия, так и любая другая база данных, зарегистрированная на текущем экземпляре SQL Server.

Нажав кнопку «Временная шкала…» (Timeline) можно указать время на которое необходимо восстановить данные. При имеющейся копии журнала транзакций время восстановления можно выбрать с точностью до секунды (или имеющегося checkpoint’а в журнале транзакций).

Очень важно (!) также помнить о том, что если восстановление данных осуществляется в информационную базу отличную от той с которой производилось резервное копирование (т. е. необходимо скопировать базу данных) то на вкладке «Файлы» (Files) необходимо указать путь к файлам этой информационной базы.
На вкладке «Параметры» (Options) можно указать дополнительные параметры резервного копирования. В частности:
  • Флаг «Перезаписать существующую базу данных (WITH REPLACE)» (Overwrite the existing database) указывает, что операция восстановления перезапишет файлы любой базы данных, в настоящее время использующей имя, указанное в качестве базы данных назначения.
  • Флаг «Сохранить параметры репликации (WITH KEEP_REPLICATION)» (Preserve the replication settings) сохраняет настройки репликации при восстановлении опубликованной базы данных на сервере, отличном от сервера, на котором была создана база данных. Этот параметр имеет значение, только если во время создания резервной копии проводилась репликация базы данных.
  • Флаг «Ограничение доступа к восстановленной базе данных (WITH RESTRICTED_USER)» (Restrict access to the restored database) ограничит доступ к базе данных, за исключением пользователей с правами db_ownerdbcreator или sysadmin. Данный параметр имеет смысл использовать, например, если необходимо последовательно восстановить базу из нескольких файлов резервных копий, и доступ пользователей необходимо ограничить до завершения всех операций по восстановлению данных.
  • Если оставить флаг «Создание резервной копии заключительного фрагмента журнала перед восстановлением» (Take tail-log backup before restore) то будет создана резервная копия заключительного фрагмента журнала транзакций. Если для точки во времени, выбранной в окне «Временная шкала резервного копирования» (Backup Timeline) требуется резервная копия заключительного фрагмента журнала, этот флажок будет установлен и снять его будет нельзя.
  • Флаг «Закрыть существующие соединения» (Close existing connections option) переводит базу данных в однопользовательский режим перед началом выполнения процедуры восстановления, а затем возвращает в многопользовательский режим после ее завершения.
  • Ну и наконец, флаг «Выдавать приглашение перед восстановлением каждой резервной копии» (Prompt before restoring each backup) указывает, что после восстановления каждой резервной копии будет выводиться диалоговое окно с вопросом, нужно ли продолжать последовательность восстановления. Этот параметр позволяет приостанавливать последовательность восстановления после восстановления каждой резервной копии. Он будет полезен, например, когда нужно поменять ленты в устройстве, если на сервере имеется только одно ленточное устройство.

Когда все необходимые параметры установлены нажимаем «ОК» для запуска процесса восстановления базы данных. После того, как все операции по восстановлению будут завершены увидим соответствующее уведомление.

 2. Просмотр информации о событиях резервного копирования и восстановления для базы данных

Для того чтобы узнать, когда производилось создание резервных копий конкретной базы данных, а также восстановление базы данных из резервной копии, можно воспользоваться стандартным отчетом «События резервного копирования и восстановления» (Backup and Restore Events). Для формирования данного отчета необходимо в Обозревателе объектов (Server Oblects) кликнуть правой кнопкой мыши по соответствующей базе данных, в контекстном меню выбрать «Отчеты» (Reports) — «Стандартный отчет» (Standart Reports) — «События резервного копирования и восстановления» (Backup and Restore Events).

Сформировавшийся отчет содержит в себе следующие данные:
  • Среднее время, затрачиваемое на операции резервного копирования (Average Time Taken For Backup Operations)
  • Успешные операции резервного копирования (Saccessful Backup Operations)
  • Ошибки операции резервного копирования (Backup Operation Errors)
  • Успешные операции восстановления (Saccessful Restore Operations)

Для просмотра данной информации необходимо раскрыть соответствующую группировку в отчете.