Сообщения

SQL. Поиск информации по сообщениям

/* Ищем сообщения, в которых есть код по маске */ select *    from MSG m  where m.request_data like '%CODE="19-%08"%'    and m.SENDER_ID = 805    and (m.create_time >= TO_DATE('2020-06-05', 'YYYY-MM-DD')    and m.create_time < TO_DATE('2020-06-06', 'YYYY-MM-DD'))    and QUEUE_NAME = 'TRANSPORT_800000001869'     and RPL_OBJ_NAME = 'PURPOSEFULGRANT_2020_800000001869'; /* 2 вариант */ select id,    create_time,    queue_name as Очередь,    rpl_obj_name as ДополнительнаяИнформация,    seq_number as Номер,    case when dispstatus = 0 then 'Новый' when dispstatus = 1 then 'Отправлен' when dispstatus = 2 then 'Получен' when dispstatus = 3 then 'Обработан' else 'NONE'    end as Статус,    diagnosis as Диагноз   from msg m  where rpl_obj_name like '%1201000002717%'     --and dispstatus < 3  ...

АЦК. Лог загрузки вин-клиента

Лог запуска клиента расположен по пути: \Users\имя пользователя\AppData\Roaming\AZK2\ClientLog\AzkBoot.log

Открытие Файрвола под oracle вызывает ошибку PolKit.NotAuthorizedException.org.fedoraproject.config.firewall.auth

При открытии файрвола под пользователем Oracle возникает ошибка: org.fedoraproject.slip.dbus.service.PolKit.NotAuthorizedException.org.fedoraproject.config.firewall.auth: Решение: Выполняем команды: $ cd /etc/polkit-1/localauthority/50-local.d $  cat > 50-firewall-matthew-access.pkla << EOF Далее заполняем текстом файл: Allow matthew remote access to system-config-firewall] Identity=unix-user:oracle Action=org.fedoraproject.config.firewall.auth ResultAny=yes ResultInactive=yes ResultActive=yes EOF

Windows 2012. ORA-01031: привилегий недостаточно

При попытке создать Oracle Enterprise Manager (OEM) на удаленной виртуальной машине под Windows 2012 возникла ошибка 1: ORA-01031: привилегий недостаточно При подключении по логину(SYS, SYSTEM) и паролю ошибок нет. С учетом что выполнение операций происходит без авторизации, то и возникает данная ошибка. Выполняется проверка пользователя, который запускает команду в ОС, но с учетом того что пользователь выполнил вход под учетными данными active directory, система не считает его пользователем, который входит в группу ora_dba. Об этом, указывает сопутствующая ошибка 2: ORA-12638 : credential retrieval failed error которая возникла из-за попытки запуска команды под доменным пользователем и параметра в файле  sqlnet.ora : SQLNET.AUTHENTICATION_SERVICES= (NTS) NTS - проверка подлинности, которая используется в ОС Microsoft Windows для подключения с помощью аутентификации операционной системы. Т.о. для решения проблемы необходимо войти в систему под локальным пользователем, который...

JAVA + JCP + АЦК

java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext) Возможные причины ошибки: Не установлена JCP в jre Отсутствует  jce_policy-8.zip

Firebird. Установка СУБД в Oracle Linux 6 (с помощью yum)

Изображение
Запускаем установку Firebird: $  yum install firebird У меня возникла ошибка: Transaction Check Error: file /usr/lib64/libib_util.so from install of firebird-2.5.7.27050.0-1.el6.x86_64 conflicts with file from package FirebirdSS-2.5.9.27139-0.amd64 file /usr/lib64/libfbclient.so.2 from install of firebird-libfbclient-2.5.7.27050.0-1.el6.x86_64 conflicts with file from package FirebirdSS-2.5.9.27139-0.amd64 причина ошибки установленный ранее дистрибутив Firebird из rpm Выполняем удаление и повторяется установку: $ sudo rpm -e FirebirdSS-2.5.9.27139-0.amd64 $ sudo yum install firebird Loaded plugins: refresh-packagekit, security, ulninfo Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package firebird.x86_64 0:2.5.7.27050.0-1.el6 will be installed --> Processing Dependency: firebird-arch = 2.5.7.27050.0-1.el6 for package: firebird-2.5.7.27050.0-1.el6.x86_64 --> Processing Dependency: firebird-filesystem for package: firebird-2...

Python. Экранирование спецсимволов

Для экранирования спецсимволов необходимо использовать: .replaceAll("%", "%25") // Процент .replaceAll(" ", "%20") // Пробел .replaceAll("\t", "%20") // Табуляция (заменяем на пробел) .replaceAll("\n", "%20") // Переход строки (заменяем на пробел) .replaceAll("\r", "%20") // Возврат каретки (заменяем на пробел) .replaceAll("!", "%21") // Восклицательный знак .replaceAll("\"", "%22") // Двойная кавычка  .replaceAll("#", "%23") // Октоторп, решетка .replaceAll("\\$", "%24") // Знак доллара .replaceAll("&", "%26") // Амперсанд .replaceAll("'", "%27") // Одиночная кавычка .replaceAll("\\(", "%28") // Открывающаяся скобка .replaceAll("\\)", "%29") // Закрывающаяся скобка .replaceAll("\\*", "%2a") // Зве...

Firebird. Установка СУБД в Oracle Linux 6 (из rpm)

Изображение
Для установка системы управления базой данных (СУБД) Firebird на сервер под управлением Oracle Linux 6.10 необходимо выполнить следующие шаги: Скачать rpm пакет с сайта Firebird ( http://firebirdsql.org/en/firebird-2-5/ ). Прямая ссылка  https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/FirebirdSS-2.5.9.27139-0.amd64.rpm . (где FirebirdSS - Super server) Для скачивания можно использовать команду: $wget  https://github.com/FirebirdSQL/firebird/releases/download/R2_5_9/FirebirdSS-2.5.9.27139-0.amd64.rpm Выполнить команду установки: $ sudo rpm -ivh FirebirdSS-2.5.9.27139-0.amd64.rpm Если возникнут ошибки с отсутствующими компонентами для установки и работы Firebird - необходимо установить их, выполнив команду: $  sudo yum install libncurses.so.5 libstdc++.so.6 Далее повторить установку СУБД (шаг №2) Ошибка с отсутствующими компонентами может выглядеть так: error: Failed dependencies:         libncurses.so.5 is needed by Fireb...

SQL. Очистка записей из связанных таблиц

Дано: Есть 2 таблицы "Сообщения" и "Архив сообщений", вторая содержит только ссылку на первую и дату отправки в архив. Задача:  Почистить сообщения. Решение: Для решения можно было написать 2 скрипта, которые сначала удаляют записи из таблицы "Архив сообщений", а потом из таблицы "Сообщения" (такая очередность обусловлена тем, что в архиве сообщения есть ссылки FK). Выглядеть это будет так: DELETE FROM ARCHIVEMAILUSER WHERE MAIL_ID IN (SELECT ID FROM MAIL WHERE CREATE_DATE >= to_date ('01.01.2022', 'dd.mm.yyyy') AND CREATE_DATE < to_date ('02.02.2022', 'dd.mm.yyyy')); DELETE FROM MAIL WHERE CREATE_DATE >= to_date ('01.01.2022', 'dd.mm.yyyy') AND CREATE_DATE < to_date ('02.02.2022', 'dd.mm.yyyy'); - Но что, делать если связанных таблиц больше? - Использовать PL/SQL! Запрос будет выглядеть следующим образом: --#ORACLE begin for cur in (SELECT id FROM MAIL WHERE CREATE_DA...

Oracle. Импорт схем с исключением больших таблиц

Изображение
Восстановление дампа размером 98 Гб занимает примерно 233 минут (03:53). Довольно длительное время, а с учетом того что схемы ресторятся часто и при этом содержат практически одни и те же данные (дампы за разные даты), то получаем как минимум 2 проблемы: Большой объем схемы, который занимает табличное пространство и дисковое пространство Грустные сотрудники 😞, которые ожидают окончания рестора БД В связи с этим, было решено восстанавливать схемы исключая из них часть таблиц, особенно больших размеров. Логично, что данное решение имеет недостаток - в случае, если понадобятся данные из исключенной таблицы, то придется выполнять доимпорт схемы . Но это не страшно, дабы эти данные бывают нужны в 1 из 10 случаев. После исключения таблиц - время рестора уменьшилось до 100 минут (01:40). Довольно хороший результат 💪 С учетом, что рестор выполняется скриптом (sh), то в коде используется следующая команда: # Импорт таблиц за исключением некоторых, чтобы ускорить рестор (EXCLUDE) $CMD $SYSUSER...

Python. DPI-1047 ошибка с работой Oracle

При запуске python-скрипта возникает ошибка: PS > python test.py File "...\test.py", line 3, in <module> cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help Причина: Отсутствуют необходимые библиотеки Oracle Как решить: Скачиваем instantclient basic для Windows тут Файлы библиотек переносим в каталог с Python (лучше в каталоге venv ): oci.dll ocijdbc21.dll ociw32.dll oramysql.dll orannzsbb.dll oraocci21.dll oraocci21d.dll oraociei.dll orasql.dll

Linux. Ошибка при добавлении сертификата в хранилище cacerts

Используется java - 1.8.0_291 При добавлении сертификата в хранилище: altuser@host-15 security $ /home/altuser/java/jdk1.8.0_291/bin/keytool -import -alias cryptopro -file /home/altuser/sert/cr1.cer -keystore cacerts возникает ошибка: Enter keystore password: keytool error: java.util.MissingResourceException: Can't find resource for bundle sun.security.tools.keytool.Resources, key unknown.size.1 Как оказалось, причина в версии java. Баг исправлялся тут , и тут2  согласно записи для обхода ошибки необходимо использовать другие версии java, а именно: Versions (Unresolved/Resolved/Fixed) JDK 7 JDK 8 7u311 b01 Fixed 8u301 Fixed

Подсветка текста в консоли Windows

 Для подсветки текста в конcоли Window необходимо использовать команду " color ". Но если просто указать: cmd> color 4 то в результате получится, что вся консоль и последующий вывод изменит цвет текста: cmd>  color 4 cmd> Для того, чтобы изменить только часть текста можно использовать подпрограммы в скриптах: :writer set massage=%2 call :color %1 call :echo %2 :color set c=%1& exit/b   :echo for /f %%i in ('"prompt $h& for %%i in (.) do rem"') do (   pushd "%~dp0"& <nul>"%~1_" set/p="%%i%%i  "& findstr/a:%c% . "%~1_*"   (if "%~2" neq "/" echo.)& del "%~1_"& popd& set c=& exit/b ) А уже сам текст и цвет - необходимо передавать как параметры при вызове  :writer cmd>  call :writer 2 "Операция успешно завершена" cmd> " Операция успешно завершена"

SQL. Select c CASE

Для корректировки меню пользователя: UPDATE SYSUSER s  SET s.MENU_ID = (SELECT DISTINCT CASE (SELECT count(1) FROM menu WHERE name ='PlanningMenu') WHEN 1 THEN (SELECT m2.id FROM menu m2 WHERE m2.NAME = 'PlanningMenu') ELSE (SELECT m3.id FROM menu m3 WHERE m3.NAME = 'RootMenu') END FROM menu) WHERE s.USERNAME LIKE 'root';

Linux. Подключение сетевого диска (windows, samba)

Монтирование сетевого диска выполняется командами: root@astra:/mnt/fs_temp# sudo apt-get install cifs-utils Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Предлагаемые пакеты:   winbind НОВЫЕ пакеты, которые будут установлены:   cifs-utils обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 5 пакетов не обновлено. Необходимо скачать 75,9 kБ архивов. После данной операции, объём занятого дискового пространства возрастёт на 236 kB. Пол:1 https://download.astralinux.ru/astra/stable/orel/repository orel/main amd64 cifs-utils amd64 2:6.7-1 [75,9 kB] Получено 75,9 kБ за 6с (12,4 kБ/c) Выбор ранее не выбранного пакета cifs-utils. (Чтение базы данных … на данный момент установлено 221938 файлов и каталогов.) Подготовка к распаковке …/cifs-utils_2%3a6.7-1_amd64.deb … Распаковывается cifs-utils (2:6.7-1) … Настраивается пакет cifs-utils (2:6.7-1) … update-alternatives: используется /usr/lib/x86_64-linux-gnu/c...

СУБД Firebird. Установка на CentOS 7

Важно! При установке командой: [centos@localhost ~]$ sudo yum install firebird возникла проблема при подключении к БД через DBeaver, а именно ошибка: CHARACTER SET WIN1251 is not installed Поэтому для решения проблемы было решено переустановить Firebird и установить superclassic: [centos@localhost ~]$ sudo yum install firebird-superclassic Установка: Устанавливаем репозиторий epel и устанавливаем СУБД: [centos@localhost ~]$ sudo yum install epel-release [centos@localhost ~]$ sudo yum install firebird-superclassic Разрешаем автозапуск службы и запускаем ее: [centos@localhost ~]$ sudo systemctl enable  firebird-superclassic [centos@localhost ~]$  sudo systemctl start  firebird-superclassic Проверяем статус службы: [centos@localhost ~]$ sudo systemctl status  firebird-superclassic [sudo] password for centos: ● firebird-superclassic.service - Firebird Database Server ( SuperClassic )    Loaded: loaded (/usr/lib/systemd/system/firebird-superclassic.service; enab...

mount error(112): Host is down

Изображение
При попытке смонтировать сетевую папку(samba на Oracle linux) на виртуальной машине CenOS 7 возникает ошибка: mount error(112): Host is down Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) Исправляется указанием версии: sudo mount.cifs //dbserver38/distr /mnt/disk -o username=guest,password=,uid=100,iocharset=utf8, vers=1.0

SQL. Вывести информацию по данным в Oracle

Вывести информацию по табличным пространствам: SQL>  select b.tablespace_name, tbs_size SizeMb, a.free_space FreeMb     from (select tablespace_name, round(sum(bytes)/1024/1024 ,2) as free_space        from dba_free_space        group by tablespace_name) a,       (select tablespace_name, sum(bytes)/1024/1024 as tbs_size        from dba_data_files        group by tablespace_name) b      where a.tablespace_name(+)=b.tablespace_name; Вывести 10 самых больших таблиц: SQL>  SELECT * FROM (     SELECT owner, segment_name, bytes/1024/1024 meg     FROM dba_segments     WHERE segment_type = 'TABLE'     ORDER BY bytes/1024/1024 desc)     WHERE rownum <= 10;

ТФФ 33.0. Полный перечень документов альбома ТФФ (Таблица 2)

Для удобства и поиска информации по томам, маркерам и обозначении версии ТФФ. Таблица НЕ  актуальна  -  версия 33.0  - (дата начала действия с 01.01.2022 г.) с 01.01.2023 г действует новая версия ТФФ - версия 34.0 Ссылки на предыдущие версии форматов: ТФФ 32.0 -  https://albafoxx.blogspot.com/2020/01/310-2.html ТФФ 31.0 -  https://albafoxx.blogspot.com/2020/01/310-2.html ТФФ 30.0 -  https://albafoxx.blogspot.com/2019/12/300-2.html ТФФ 29.0 -  https://albafoxx.blogspot.com/2019/05/290-2.html ТФФ 28.0 -  https://albafoxx.blogspot.com/2019/04/2.html Наименование документа (справочника) Маркер Номер версии ТФО документа № тома Казначейское уведомление SU TXSU190101 2 Уведомление (протокол), Информация о непрошедших контроль документах в ППО Федерального казначейства PT TXPT170101 2 Выписка из ли...