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

Сообщения

Показаны сообщения с ярлыком "cmd"

Перемещение ORACLE_HOME с диска на диск (Windows)

Перемещать будем с "C:\\oracle\\product\\12.1.0" в "D:\\oracle\\product\\12.1.0". Экземпляр БД называется DBAX. Заходим на сервера под локальным администратором (по совместительству в группе ora_dba). Экземпляр пока может работать. xcopy  C:\\oracle\\product\\12.1.0 D:\\oracle\\product\\12.1.0 Дожидаемся окончания процесса Открываем первое окно с cmd и выполняем: C:\>set ORACLE_HOME=C:\\oracle\\product\\12.1.0 C:\>set PATH=C:\\oracle\\product\\12.1.0\\OPatch;C:\\oracle\\product\\12.1.0\\bin;%PATH% C:\>opatch version C:\>opatch lsinventory Открываем второе окно с командной строкой: D:\>set PERL5LIB=D:\\oracle\\product\\12.1.0\\perl\\lib D:\>set PATH=D:\\oracle\\product\\12.1.0\\perl\\5.8.3\\bin\\MSWin32-x86-multi-thread;%PATH% D:\>perl %ORACLE_HOME\clone\bin\clone.pl ORACLE_HOME="D:\\oracle\\product\\12.1.0" ORACLE_HOME_NAME="OraDB11gR1_home" ORACLE_BASE="D:\\oracle" Убеждаемся, что: The cloning...

Улучьшения планировщика заданий в Oracle 12c

Планировщик двенадцатого оракла позволяет запускать задания основанные на скриптах (bash/rman). Это особенно удобно в среде RAC, так как расписание будет храниться в едином хранилище, а не в crontab каждого узла. В старых версиях тоже была возможность вызывать внешние скрипты, но для этого требовались определенные танцы с бубном. Сейчас же всё легко и просто. Для создания этих заданий требуются привилегии CREATE JOB, CREATE EXTERNAL JOB и  CREATE CREDENTIAL . 1.  Для начала нужно создать ссылку на учетную запись ОС. С этими правами и будет работать скрипт. BEGIN  DBMS_CREDENTIAL.create_credential(                          credential_name   => 'oracle_os',                          username          => 'oracle',               ...

Импорт схемы БД с удаленного сервера.

Задача: Провести реимпорт данных с удаленного сервера. Задача осложняется слабым каналом, а также версией Oracle - Standart Edition One, которая не поддерживает datapump опции compression = all. Имя схемы передается в качестве параметра (%1) для пакетного файла. rem Считаем, что имя хоста совпадает с именем базы в TNS set rem_hst=REMOTE rem rem_dir - это data_pump_dir на удаленной машине. set rem_dir=oracle\ora11\RDBMS\log rem Login и пароль для net use'a set rem_usr=localhost\dbax set rem_psw=p@S$w0Rd rem Экспорт дампа и архивирование его через wmic. expdp  dbax/ p@S$w0Rd @%rem_hst% dumpfile=%1.dmp schemas=%1 logfile=%1.log reuse_dumpfiles=yes wmic /node:"%rem_hst%" /user:%rem_usr% /password:"%rem_psw%" process call create "zip E:\%rem_dir%\%1.zip E:\%rem_dir%\%1.dmp" rem Копирование с возобновлением в случае падения сети. net use \\%rem_hst%\e$ /user:%rem_usr% %rem_psw% :copy copy \\%rem_hst%\e$\%rem_dir%\%1.zip c:\app\oracle\da...

Проверка идентичности файлов на 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 проверка физической доступности опрашиваемого сер...

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 отдела ООУ наверное до сих пор перебирают файлики своими кривыми ручками.