среда, 15 февраля 2017 г.

Переменна TWO_TASK и LOCAL

Иногда нужно настроить подключение к базе по умолчанию, в виде

sqlplus hr/hr

без указания, к какой базе нужно подключиться.

Для этого нужно установить значение переменной:

TWO_TASK - для Linux систем export TWO_TASK=db

LOCAL - для Windows set LOCAL=db

пятница, 27 января 2017 г.

Полезные команды Linux

cat /etc/issue -- выяснение версии ОС
uname -r -- определение версии ядра
cat /proc/version -- выяснение версии ядра
grep MemTotal /proc/meminfo -- определение общего размера памяти
grep SwapTotal /proc/meminfo -- размер пространства подкачки
df -h -- размер дискового пространства
df -m /tmp -- выяснение доступного объема дискового пространства в каталоге /tmp
cat /etc/sysctl.conf -- отображение настроек ядра
cat /etc/security/limits.conf -- список ограничений командной оболочки
cat /etc/group -- список групп
passwd -- изменение пароля для текущего пользователя
passwd oracle -- изменение пароля для пользователя oracle
umask -- проверка прав по умолчанию, должно быть 0022
cat /etc/oratab -- список каталогов ORACLE_HOME

Таблица только для чтения

В 11 Оракле появилась возможность перевода таблицы в режим READ ONLY. Это делается следующим способом:

ALTER TABLE my_tab READ ONLY;

Чтобы перевести обратно используется команда:

ALTER TABLE my_tab READ WRITE;

В предыдущих версиях можно было использовать триггер для блокировки изменений:

CREATE TRIGGER trgiud_my_tab
BEFORE
INSERT OR UPDATE OR DELETE
ON
my_tab
BEGIN
RAISE_APPLICATION_ERROR (-99999, 'The table is read only');
END;
/

Проверка настроек отображения даты

Столкнулся с такой ситуацией, что в базу в поле DATE записывали дату со временем, а когда вычитывали ее, то получали только дату, без времени. Проблема оказалась на стороне клиента. Для того чтобы проверить настройки вывода даты, нужно выполнить следующий запрос:

SELECT *
   FROM nls_session_parameters
 WHERE parameter like '%DATE%';

Чтобы установить формат отображения даты вместе с временем, нужно выполнить:

ALTER SESSION SET nls_date_format='dd.mm.yyyy hh24:mi:ss';

Поиск блокирующих сессий

Для отображения сессий, которые блокируют другие, нужно выполнить запрос:

select a.username
     , a.program
     , a.sid
     , a.serial#
  from v$session a
  join dba_blockers b
    on a.sid = b.holding_session
/

Аудит коннекшенов

Очень часто для пользователей используются профили, которые задают ограничение на количество ввода неправильного пароля, после чего пользователь блокируется. Поэтому очень важно определить, кто именно заблокировал пользователя, для этого используется следующий запрос:

SELECT CASE
         WHEN dasn.returncode=1017 THEN 'invalid password'
         ELSE 'the account is locked'
       END reason
     , dasn.*
  FROM DBA_AUDIT_SESSION dasn
 WHERE dasn.username='GUBITST'
   AND dasn.returncode IN (1017, 28000)
 ORDER BY dasn.timestamp DESC;

воскресенье, 28 августа 2016 г.

Настройка SSH на Linux

Для проверки, запущен у вас сервер SSH, нужно выполнить:

service sshd status

Если сервер запущен, то появится сообщение:

openssh-daemon (pid 3874) is running

Если серкер не установлен, то это можно сделать с помощью команды:

yum install openssh-server

Для подключения из iOS нужно выполнить следующую командy:

ssh user_name@host_name

или если нам нужно указать специфический потр, то пишем:

ssh -p 22 user_name@host_name

Иногда, нужно узнать, какие же порты открыты. Для этого устанавливаем NMAP:

yum nmap instal

После установки, запускаем следующую команду

nmap -sT -O localhost
которая выводит список открытых портов и кем они используются.