среда, 6 января 2016 г.

(RHEL 7 RemoveIPC=yes) = Database crush

ERROR
======

ORA-27157: OS post/wait facility removed
ORA-27300: OS system dependent operation:semop failed with status: 43
ORA-27301: OS failure message: Identifier removed
ORA-27302: failure occurred at: sskgpwwait1

CAUSE
======


If RemoveIPC=yes is configured for systemd, interprocess communication (IPC) is terminated for a non-system user's processes when that user logs out. This setting, which is intended for laptops, can cause software problems on server systems. For example, if the user is a database software owner such as oracle for Oracle Database, this configuration can cause database installation to fail or database services to crash.



source: https://docs.oracle.com/cd/E52668_01/E67200/html/section-t51_kcn_f5.html

SOLUTION
=========

Workaround:

1. Set RemoveIPC=no in /etc/systemd/logind.conf
2. Reboot the server or restart systemd-logind as follows:
# systemctl reboot
OR 
# systemctl daemon-reload
# systemctl restart systemd-logind

понедельник, 24 августа 2015 г.

wget.sh Unable to establish SSL connection

I had error during downloading Oracle distribution from support.oracle.com using Wget utility.
wget.sh script generates on support.oracle.com site for certain download after click on WGET Options link.


Problem    


sh wget.sh

tail -100f  wgetlog-08-24-15-04:52.log:

 ...
Resolving updates.oracle.com (updates.oracle.com)... 141.146.44.51
Connecting to updates.oracle.com (updates.oracle.com)|141.146.44.51|:443... connected.
Unable to establish SSL connection
...



Solution


We must explicitly define security protocol for HTTPS connections.
For every call of WGET utility in wget.sh file add following attribute
  
  • --secure-protocol=TLSv1

Example (wget.sh,  line 40):

SSO_RESPONSE=`$WGET --secure-protocol=TLSv1 --user-agent="Mozilla/5.0" https://updates.oracle.com/Orion/Services/download 2>&1|grep Location`    

четверг, 25 июня 2015 г.

Oracle loopback dblink

Можно использовать глобальное имя базы данных как loopback dblink.
Глобально имя можно узнать из таблицы GLOBAL_NAME

select * from GLOBAL_NAME
Предположим глобальное имя базы данных - ORCL,
тогда можем обратится по loopback dblink-у в ту же базу:
select * from user_tables@ORCL

вторник, 23 июня 2015 г.

RMAN Block Compression for Backup Sets

RMAN использует два типа компрессии блоков  при создании наборов резервых копий (Backupset).
  • Unused Block Compression (Поддерживает резевное копирование на диск и  Oracle Secure Backup)
  • Null Block Compression (Все виды)
Хотя технология и называется "Block Compession" на самом деле RMAN ни чего не зжимает, а просто не включает не используемые блоки в backupset. Данная технология может применяться только для локально-управляемых табличных пространств (Locally Managed Tablespaces).

Unused Block Compression


При компрессии неиспользуемых блоков, RMAN не проверяет каждый блок. Вместо этого RMAN читает битовые карты, которые показывают какие блоки используются в данных момент, а затем читает только выделенные блоки.
Компрессия неиспользуемых блоков включается автоматически при выполнении следующих 5 условий:
  1. Инициализационный параметр COMPATIBILE 10.2 или выше
  2. Нет гаранитированных точек восстановления в данных момент (guaranteed restore points)
  3. Файл данных локально управляемый
  4. Файл данных входит в полное резервное копирование или инкрементальное 0-ого уровня
  5. Набор резервных копий создается на диске или в Oracle Secure Backup

Null Block Compression


Во время данного вида компрессии проверяется каждый блок на предмет наличия в нем данных сейчас или когда-либо. Блок который никогда не содержал в себе данных не включается в резервную копию. Блок который содержал или содержит данные - включается в резервную копию.

Данная статья является вольным перевод официальной документации:

четверг, 11 июня 2015 г.

RMAN-20020: database incarnation not set

PROBLEM


rman target / catalog rman@RMAN_CATALOG
RMAN> register database;

starting full resync of recovery catalog
full resync complete
database registered in recovery catalog
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03008: error while performing automatic resync of recovery catalog
RMAN-20020: database incarnation not set

SOLUTION   


$rman target / catalog rman@RMAN_CATALOG
RMAN> unregister database;
RMAN> register database;

 

понедельник, 8 июня 2015 г.

ORA-14758: Last partition in the range section cannot be dropped

Error


При попытке удалить партицию  возникает ошибка

Команда:
alter table HISTORY drop partition P134;
Ошибка:
ORA-14758: Невозможно удалить последнюю секцию в таблице, секционированной диапазонным методом

Информация из трэйс файла:
*** 2015-06-08 01:00:03.951
*** SESSION ID:(197.64584) 2015-06-08 01:00:03.951
*** CLIENT ID:() 2015-06-08 01:00:03.951
*** SERVICE NAME:(SYS$USERS) 2015-06-08 01:00:03.951
*** MODULE NAME:(DBMS_SCHEDULER) 2015-06-08 01:00:03.951
*** CLIENT DRIVER:() 2015-06-08 01:00:03.951
*** ACTION NAME:(CUSTOM_HOUSEKEEPER_JOB) 2015-06-08 01:00:03.951

ORA-12012: ошибка при автоисполнении задания "ZABBIX"."CUSTOM_HOUSEKEEPER_JOB"
ORA-14758: Невозможно удалить последнюю секцию в таблице, секционированной диапазонным методом
ORA-06512: на "ZABBIX.ZBX_HOUSEKEEPER", line 11
ORA-06512: на "ZABBIX.ZBX_HOUSEKEEPER", line 61
ORA-06512: на "ZABBIX.ZBX_HOUSEKEEPER", line 67

Solution

Сбросить интервал, удалить партицию, установить интервал
alter table HISTORY set interval();
alter table HISTORY drop partition P134;
alter table HISTORY set interval(5000);

Links

Doc ID: 1526571.1

понедельник, 5 августа 2013 г.

ORA-16714 in Data Guard environment

There are inconsistent properties in Data Guard configuration

Error messages:

  • ORA-16792: configurable property value is inconsistent with database setting
  • ORA-16714: the value of property DbFileNameConvert is inconsistent with the database setting
  • ORA-16714: the value of property LogFileNameConvert is inconsistent with the database setting

Solution:

DGMGRL:

edit database cebs_stby set property DbFileNameConvert='/u02,+CEBS_DATA1'; edit database cebs_stby set property LogFileNameConvert='/u01,+CEBS_FRA';

SQL*PLUS:

alter system set Db_File_Name_Convert = '/u02' , '+CEBS_DATA1' scope=spfile; alter system set Log_File_Name_Convert = '/u01' , '+CEBS_FRA' scope=spfile;
Finally reboot database and warning should disappear.