ASM
ASM Metadata and Internals by Luca Canali
ASM Support Guy
Backup, recovery, standby-DataGuard & RMAN
186137.1 How To Recover Using The Online Redo Log
Graceful Switchover and Switchback by Lawrence To – исторический документ для версий Oracle 7.3-8.0, описывается ещё неавтоматизированный функционал Standby, впоследствии оформленный в Data Guard.
333749.1 Alternative for standby/dataguard in standard edition – метод создания (из любого backup: RMAN/MANUAL/HOT/COLD..) и наката копии боевой БД (mounted, не standby) с использованием SQL> recover database using backup controlfile until cancel. При этом можно на время открывать эту копию БД в режиме READ ONLY, добавлять файлы данных. Лог файлы придётся копировать вручную либо периодически восстанавливать из RMAN backup.
371556.1 How move tablespaces across platforms using Transportable Tablespaces with RMAN
1015544.102 ORA-01194: When Opening Database After Restoring Backup подробное объяснение ORA-01194 во время выполнения ALTER DATABASE OPEN и всех необходимых условий:
SQL> SELECT DISTINCT (TO_CHAR (CHECKPOINT_CHANGE#)) FROM V$DATAFILE_HEADER; SQL> SELECT DISTINCT (FUZZY) FROM V$DATAFILE_HEADER; SQL> SELECT DISTINCT (STATUS) FROM V$BACKUP; SQL> SELECT OPEN_RESETLOGS from V$DATABASE;
Answers To FAQ For Restoring Or Duplicating Between Different Versions And Platforms [ID 369644.1] – полезный документ, освещены след.вопросы backup/recovery:
1) Можно ли и как восстановить (restore) или дублировать (duplicate) бэкап предыдущей версии Oracle на последующую (например, 10.2 -> 11.2) с использованием rman?
2) Можно ли и как восстановить или дублировать бд между различными патчсетами (patchset levels)?
3) Можно ли и как восстановить или дублировать бд между различными версиями ОС?
4) Можно ли и как восстановить или дублировать бд между различными по битности версиями Oracle (32 bit or 64 bit)?
5) Можно ли восстановить бэкап более поздней на более раннюю версию Oracle?
6) Можно ли и как восстановить или дублировать RMAN backup между разными платформами?
CBO
Understanding System Statistics
377847.1 Unsafe Peeked Bind Variables and Histograms
728004.1 How ORACLE CBO Calculate Join Cardinality with Join Elimination Filter? 68992.1 Predicate Selectivity в статье объясняется, как CBO вычисляет избирательность (selectivity) для различных типов условий запросов (predicates)
Optimizer Cost Based Query Transformation [ID 1082127.1]
Oracle Internals
Steve Adams
X$ tables by Yong Huang
http://www.orafaq.com/wiki/X$_Table
A Guide to the bbed Block Browser and EDitor
Общие вопросы администрирования (DBA)
15390.1 How to Determine and Change DB_NAME or ORACLE_SID 260192.1 Changing WE8ISO8859P1/ WE8ISO8859P15 or WE8MSWIN1252 to (AL32)UTF8 564989.1 How To Truncate a Background Trace File Without Bouncing the Database 330239.1 Memory Notification: Library Cache Object Loaded Into Sga как ограничить (избавиться) количество сообщений в alert.log и udump директории, установив параметр _kgl_large_heap_warning_threshold (KGL heap size warning threshold)
Connectivity
CRS
259301.1 CRS and 10g Real Application Clusters
265769.1 Troubleshooting CRS Reboots
283684.1 How to Change Interconnect/Public Interface IP Subnet in a 10g Cluster
276434.1 Modifying the VIP or VIP Hostname of a 10g Oracle Clusterware Node
Database option, editions
305360.1 Data Guard and Oracle Standard Edition
266728.1 10G: ORA-6512 AT SYS.OLAPIHISTORYRETENTION on Standard Edition
421191.1 Complete checklist for manual upgrades of Oracle databases from anyversion to any version on any platform (documents only from 7.3.x>>8.0.x>>8.1.x>>9.0.x>>9.2.x>>10.1.x>>10.2.x>>11.1.x) ссылки на описания возможных сценариев обновлений БД, включая миграцию 32-bit -> 64-bit
Enterprise Manager DBConsole, agents
548928.1 Agent Startup Troubleshooting guide
Master Note for Enterprise Manager Configuration Assistant (EMCA) in Single Instance Database Environment [ID 1099271.1] описывает работу с EMCA, включая ручное (без использования emca) удаление DBConsole
I/O
237299.1 How To Check if Asynchronous I/O is Working On Linux. Oracle Server – Version: 9 to 11
Installation, update and patching
Werner Puschitz – Oracle 9i, 10g(32-bit/64-bit) on Linux x32/x32_64 installation & configuration for performance. Один из лучших сайтов по теме, много полезной информации по конфигурации Linux.
187242.1 Applying Patch Sets / Interim Patches with Physical Standby Database in Place
421308.1 Requirements For Installing Oracle10gR2 On RHEL/OEL 5 (x86_64)
225349.1 Implementing Address Windowing Extensions (AWE) or VLM on Windows Platforms
394956.1 Configuring Oracle ASMLib on Multipath Disks on Linux
244241.1 Rolling Patch – OPatch Support for RAC – описаны методы работы утилиты opatch в кластерном окружении, включая условия использования rolling patch.
Objects
77635.1 How to Determine Real Space used by a Table (Below the High Water Mark)
205260.1 How To Determine The Amount of Space Used by an IOT
66431.1 LOBS – Storage, Redo and Performance Issues
198160.1 Summary note to LOB’s/BLOB’s/CLOB’s/NCLOB’s and BFILES
OS utilities
244733.1 Calling Unix Shell Scripts From a Java Stored Procedure
SQL*Net
336836.1 TNS-01103 When Trying to Start the Listener – об особенностях систаксиса файлов конфигурации LISTENER.ORA:
Проверьте файл listener.ora [а также все прочие конфигурационные файлы SQL*Net - sqlnet.ora, tnanames.ora,...] и убедитесь, что в первом стобце слева располагаются только такие слова как имя listener‘а, sid_list и параметры такие как tracing [т.е. названия сущностей]. Вся остальная информация должна располагаться по крайней мере после одного пробела, не табуляции
В конфигурационных файлах SQL*Net продолжение предыдущей строки отмечается пробельными символами в начале следущей
Если первый символ непробельный — это начало новой сущьности. Т.е. старая не окончена, а новая ошибочна
Безопасность
Oracle password cracker – забавная PL/SQL процедура для проверки паролей пользователей и ролей. Не всесильная, но простая в использовании и полезная.
NLS
Как определить активную кодовую страницу сессии Windows ? c:> reg query HKLM\System\CurrentControlSet\Control\Nls\Codepage /v ACP
и, соответственно, значение NLS_LANG:
reg query HKLM\SOFTWARE\ORACLE /v NLS_LANG reg query HKLM\Software\Oracle\Home0 /v NLS_LANG
Прочие интересные ссылки, документы, скрипты
The Secrets of Oracle Row Chaining and Migration – кроме красочной статьи о миграции строк, на сайте много полезной информации
186531.1 HOW TO SELECT FROM A TABLE EXCLUDING LOCKED ROWS удобная функция для выбора (обновления) ограниченного количества незаблокированных строк. Обсуждение, сравнение с FOR UPDATE SKIP LOCKED.
215187.1 SQLTXPLAIN.SQL – Enhanced Explain Plan and related diagnostic info for one SQL statement
SQL
Статья Скота Стефенса (плюс перевод), объясняющая различие результатов запросов
SQL> select ename from emp where empno not in (select mgr from emp); SQL>select ename from emp e where not exists (select 0 from emp where mgr = e.empno);
Oracle Tip: Understand how NULLs affect IN and EXISTS
Советы Oracle: Как NULL-значения влияют на оценку предикатов IN и EXISTS
Nulls: Nothing to Worry About отличная статья Lex de Haan и Jonathan Gennick
, расширяющая предыдущую тему про понятие NULL в ANSI SQL и трёхзначную логику, в частности, наглядно иллюстрирующая для чего запрос
SQL> select max(num) from (select 1 as num from dual where 1 = 2);
возвращает пустую строку
PL/SQL
DBMS_METADATA Across Database Links
SQL> SELECT dbms_metadata.get_ddl('PROCOBJ','YOURJOBNAME', 'YOURJOBOWNER') from dual;
Oracle Support links
Quick Reference to Patchset Patch Numbers [ID 753736.1]
ORA-600 Lookup Error Categories [ID 175982.1]
Interpreting HANGANALYZE trace files to diagnose hanging and performance problems [ID 215858.1] – запуск, уровни (hanganalyze levels) и разделы трейса
Oracle Text
text_index_status.sql – List all Oracle Text (formerly interMedia Text) Indexes by owner [ID 187905.1] – как получить список индексов со статусами
select idx_owner,idx_name,idx_table,idx_text_name,idx_docid_count,idx_status from ctxsys.ctx_indexes group by idx_owner,idx_name,idx_table,idx_text_name,idx_docid_count,idx_status /
IDX_STATUS column in CTXSYS.DR$INDEX – физические значения статусов
RAC
Oracle RAC: finding the Resource Master – определения, скрипты, управление
Ошибки
ORA-1555
Причины, анализ, методы разрешения, включая описание GV$UNDOSTAT и об анализе ошибки в RAC окружении: 389554.1 ORA-1555 Using Automatic Undo Management – How to troubleshoot
269814.1 ORA-01555 Using Automatic Undo Management – Causes and Solutions
Bug 10389818: SSKGXPRRGN, INVALID HEADER ON UPDATE MESSAGE TOSSING BAD MUPD MSG Oracle 10.2.0.4 RAC OEL 5.1 x86_64, в каталоге udump трейс файлы вида:
SSKGXPRRGN, invalid header on update message magic 0x47464544 t1 0x43424140 t2 0x0 index 0x4b4a SKGXPGPID 0x7fffacd309d8 Internet address 10.0.1.1 UDP port number 11630 tossing bad MUPD msg bad update to SKGXPGPID 0x2aaaac83fc64 Internet address 10.0.1.2 UDP port number 42626 bad update from SKGXPGPID 0x7fffacd30798 Internet address 10.0.1.1 UDP port number 11630 header:START MEMORY DUMP, 0x7fffacd30768, for 48 bytes
в alert.log ошибок нет
ORA-08104 / ORA-08106
ORA-08104: this index object 15634 is being online built or rebuilt -- object_id ORA-08106: cannot create journal table SCOTT.SYS_JOURNAL_15634 -- object_id SQL> begin 2 if dbms_repair.online_index_clean(15634) then null; 3 end if; 4 end; 5 /
Bug 3805539: ORA-8106 AFTER FAILED ALTER INDEX REBUILD ONLINE, SMON SLOW IN CLEANING UP
http://www.dbaglobe.com/2010/10/how-to-reslove-ora-08104-this-index.html
FAL[server]: FAL archive blocked because of KCRR_LOCK_BUSY, will try later
служебное сообщение о блокировки записи в controlfile, определяемое установкой недефолтного значения параметра, например: log_archive_trace = 71
ORA-0311
документ MOS DIAGNOSING ORA-3113 ERRORS [ID 1020463.6]
Частный случай: Linux x86_64, Oracle 11.1.0.7, стабильная ошибка при выполнении конкретного запроса:
SQL> SELECT empno, ... SELECT empno, * ERROR at line 1: ORA-03113: end-of-file on communication channel
Core Dump’ов и записей в alert.log нет, SQL трейс показывает получение от пользовательской сессии сигнала ORA-01013 : user requested cancel of current operation
ERROR #1:err=1013 tim=1332419144016887
SQL*Net Client trace:
nserror: nsres: id=0, op=68, ns=12535, ns2=12609; nt[0]=0, nt[1]=0, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0 nsrdr: error exit nsfull_pkt_rcv: nsctxrnk=0 nsfull_pkt_rcv: error exit nioqrc: wanted 1 got 0, type 0 nioqper: error from nioqrc nioqper: ns main err code: 12535 nioqper: ns (2) err code: 12609
ORA-03113 TNS-12535 and TNS-12609 Errors Using TAF W Send/Recv Timeout Parameters [ID 782914.1] – причиной являются установленые в клиентском sqlnet.ora параметры:
SQLNET.SEND_TIMEOUT
SQLNET.RECV_TIMEOUT
проявление ошибки зависит также от версии Oracle | SQL*Net Client – попробовать обновить
ORA-12805: parallel query server died unexpectedly
может вызываться Bug 7111619 PQ slaves may get stuck or abort, при этом PX slave на соседней ноде ожидает IPC send completion sync длительное время (до 300 секунд), workaround:
SQL> alter system set parallel_force_local = true;
How to Diagnose ORA-12805 Parallel Query Server Died Unexpectedly Error [ID 1348002.1]
ORA-00932 для столбцов типа LONG
SQL> select * from user_views where text like '%SSS%'; select * from dba_views where text like '%SSS%' * ERROR at line 1: ORA-00932: inconsistent datatypes: expected NUMBER got LONG SQL> set serveroutput on SQL> BEGIN 2 FOR r IN (SELECT * FROM user_views) LOOP 3 IF lower(r.text) LIKE '%SSS%' THEN 4 DBMS_OUTPUT.PUT_LINE( 5 'view ' || r.view_name 6 ); 7 END IF; 8 END LOOP; 9 END; 10 / view MONITOR_VIEW1 view MONITOR_VIEW2 PL/SQL procedure successfully completed.
tbd

