К основному контенту

Сообщения

Сообщения за 2013

Проверка идентичности файлов на 100+ серверах.

Задача: подтверждение идентичности групп файлов на большом количестве серверов. Решение: состоит из 4 файлов, 2 пакетных, текстового (со списком серверов) и файла powershell. 1. основной файл: rem создание необходимых для работы директорий. if not exist log md log if not exist temp md temp rem для всех файлов из servers.txt вызываем файл из п.2 for /f %%i in (server.txt) do start /MIN call robo.cmd %%i   rem ждем пока не отработают все задания сбора статистики :StartLoop ping 127.0.0.1 /n 5 if exist temp\*p.lock GoTo :StartLoop rem на основе файлов отчета по каждому серверу создаем один общий findstr /i "older newer new" log\*.log > log\SOFT_STAT.txt rem вызов сценария powershell. форматирование итогового файла  rem (нужно, чтоб потом загрузить результат в БД) powershell -file replace.ps1 "log\SOFT_STAT.txt" 2. robo.cmd сбор статистики для одного сервера (из списка servers.txt) @echo off rem проверка физической доступности опрашиваемого сер

Использование пакета UTL_MAIL для отправки почтовых сообщений

Пакет UTL_MAIL сильно упрощает процесс отправки сообщений по сравнению с UTL_SMTP. Однако и в десятке, и в 11-ом оракле пакет не установлен по-умолчанию из-за потенциальных уязвимостей. Чтобы установить прогоняем следующие скрипты под sys: @?/rdbms/admin/utlmail.sql @?/rdbms/admin/prvtmail.plb Рекомендуется задавать параметр smtp_out_server виде - mail_server_ip:port на уровне базы. Хотя можно и обойтись простым alter session. Выдаем права на пакет utl_mail пользователю, от которого собираемся отправлять сообщения. Иначе получим: PLS-00201: identifier 'UTL_MAIL' must be declared Проверка работоспособности: EXEC UTL_MAIL.SEND ( SENDER  => 'senders email', RECIPIENTS  => 'recipients email', SUBJECT  => 'subject line', MESSAGE => 'message'); В 11g требуются дополнительные настройки. Ведь даже при выдаче прав попытка вызова utl_mail вернет: ORA-24247: network access denied by access control list (

robocopy. Новый взгляд на копирование файлов

Чрезвычайно полезный и мощный инструмент. Совмещает возможости copy и xcopy одновременно предлагая массу новых возможностей. Из наиболее интересных: /Z - копирование по сети с возобновлением, /MIR - зеркалирование (копирование с одновременным удалением файлов, которых больше нет на источтике), /MT - многопоточное копирование, /XF, /XD - исключения файлов или каталогов из копирования. /R, /W - количесвтво повторов при ошибке и время ожидания между повторами тонкая настройка логирования. /MON:n /MOT:n - realtime мониторинг источника и синхронизация через каждые n изменений (n минут для MOT). Создание службы для организации  realtime  репликации:  sc create "Robocopy-Service" binPath=  ".\robocopy.exe" start=auto

Парсинг документов MS Word на наличие в них изображений

Несколько лет назад приходилось работать со сложным ETL процессом, на одном из шагов которого требовалось определить, есть ли в документе Word изображения или другие, нетекстовые вложения. Производилось все вручную, на глаз, по размеру файла. Скорость выполнения процесса всех устраивала и никому не приходило в голову, погуглить автоматизацию этого унылого процесса. Сегодня решил посмотреть на эти дела, вооружившись новым опытом. Оказывается документ docx представляет собой обычный zip архив, и его содержимое можно посмотреть с помощью команды: uzip -l файл  Изображения находятся в папке /media , следовательно: uzip -l файл | find "/media" А файлы .doc преспокойно конвертируются в .docx c помощью Пакета обеспечения совместимости Microsoft Office для форматов файлов Word, Excel и PowerPoint . А лапти из 5 отдела ООУ наверное до сих пор перебирают файлики своими кривыми ручками.

Системная статистика Линукса внутри Oralce

Отличная возможность запрашивать системную статистику с помощью внешних таблиц:   Создаем в любой Oracle директории файл sar.sh следующего содержания: #!/bin/bash # чтоб дата отображалась в 24-х часовом формате export LC_TIME="POSIX" #точный путь к команде /usr/bin/sar   в подходящей схеме создаем табличку:  CREATE TABLE DBAKS.SAR (   sar_time  VARCHAR2(2255 BYTE),   sar_CPU     VARCHAR2(255 BYTE),   sar_USER  VARCHAR2(255 BYTE),   sar_NICE    VARCHAR2(255 BYTE),   sar_SYS  VARCHAR2(255 BYTE),   sar_IOWAIT  VARCHAR2(255 BYTE),   sar_STEAL   VARCHAR2(255 BYTE),   sar_IDLE    VARCHAR2(255 BYTE) ) ORGANIZATION EXTERNAL   (  TYPE ORACLE_LOADER      DEFAULT DIRECTORY DATA_PUMP_DIR      ACCESS PARAMETERS        ( RECORDS DELIMITED BY NEWLINE PREPROCESSOR DATA_PUMP_DIR:'sar.sh' SKIP 3 FIELDS TERMINATED BY WHITESPACE LDRTRIM MISSING FIELD VALUES ARE NULL )      LOCATION (DATA_PUMP_DIR:'sar.sh')   ) REJECT LIMIT 0 NOPARALLEL NOMONITORING; Аналогично м

При удалении файлов df "не учитывает" освободившееся пространство

После удаления файлов df –h "не обновляется", более того место реально не освобождается. Это происходит от того, что файлы заняты каким-либо приложением. Решение: ls -ld /proc/*/fd/* 2>&1 | fgrep '(deleted)' Или /usr/sbin/lsof | grep deleted lrwx------ 1 root root 64 Sep 15 10:45 /proc/2958/fd/12 -> /tmp/ibSAlc0V (deleted) lrwx------ 1 root root 64 Sep 15 10:45 /proc/2958/fd/5 -> /tmp/ibUpZrp7 (deleted) lrwx------ 1 root root 64 Sep 15 10:45 /proc/2958/fd/6 -> /tmp/ibUmDSgz (deleted) lrwx------ 1 root root 64 Sep 15 10:45 /proc/2958/fd/7 -> /tmp/ibcLKj80 (deleted) lrwx------ 1 root root 64 Sep 15 10:45 /proc/2958/fd/8 -> /tmp/ibubhw0s (deleted) lrwx------ 1 root root 64 Sep 15 10:45 /proc/32645/fd/0 -> /dev/pts/1 (deleted) lrwx------ 1 root root 64 Sep 15 10:45 /proc/32645/fd/1 -> /dev/pts/1 (deleted) lrwx------ 1 root root 64 Sep 15 10:45 /proc/32645/fd/2 -> /dev/pts/1 (deleted) lrwx------ 1 root root 64 Sep

Oracle preintall rpm

Пакет oracle - rdbms - server -* - preinstall -* . rpm  создан для оптимизации работы ОС Linux при работе с БД Oracle . Пакет производит следующие настройки : 1.        Устанавливает необходимые для работы БД rpm -пакеты. 2.        Создает пользователя oracle и группы oinstall и dba 3.        Производит настройки в sysctl . conf , устанавливает необходимые параметры запуска системы и драйверов. 4.        Устанавливает рекомендованные лимиты на использование ресурсов пользователем oracle . 5.        Устанавливает другие необходимые параметры в зависимости от версии ядра ОС. Рекомендуется устанавливать данный пакет непосредственно перед установкой СУБД Oracle на платформах RHEL / OEL . Пакет доступен для скачивания и установки из стандартного репозитория  Oracle Linux. http://docs.oracle.com/cd/E11882_01/install.112/e16763/pre_install.htm 2.1.4 About the Oracle RDBMS Pre-Install and Oracle Validated RPMs If your Linux distribution is Oracle Linux, or

HugePages на серверах БД под Linux

Столкнулись со следующей ситуацией: Снижение объема доступной ОЗУ + увеличение использования swap. При этом PageTable занимали около 200Gb при общем объеме 756Gb. grep PageTables /proc/meminfo Рекомендации  Oracle support “HugePages on Oracle Linux 64-bit (Doc ID 361468.1)”. Использование Huge pages критично для производительности БД Oracle на платформах Linux с большим объемом ОЗУ и SGA . При размере SGA более 8 Gb должны использоваться HugePages . Некоторые из указанных преимуществ: ·          Уменьшение служебных операций с памятью ·          Huge pages не выгружаются в Swap ·          Общее снижение используемой памяти Рекомендации по настройке серверного оборудования HP : Технология Huge page , реализованная в Linux , настоятельно рекомендуется к использованию на DL 980 при работе с БД Oracle . Данная технология способствует наиболее рациональному использованию памяти. Для каждого пользователя, подключающегося к БД, с