Показаны сообщения с ярлыком oracle. Показать все сообщения
Показаны сообщения с ярлыком oracle. Показать все сообщения

четверг, 26 ноября 2009 г.

Sample Schemas

Oracle® Database
Sample Schemas
10g Release 2 (10.2)
B14198-01

Можно установить через dbca. Скрипт на схему лежит:

$ORACLE_HOME\demo\schema\human_resources

пятница, 20 ноября 2009 г.

Кластерная база

Настройка строки коннекта кластерной базы


В общем виде (из Oracle® Fusion Middleware Service Registry
10g Release 3 (10.3)
E13665-01
Product Documentation, p. 37):

jdbc:oracle:thin:@
(DESCRIPTION=
(ADDRESS= (PROTOCOL=TCP) (HOST=host1) (PORT=1521)
)
(ADDRESS= (PROTOCOL=TCP) (HOST=host2) (PORT=1521)
)
(LOAD_BALANCE=yes)
(CONNECT_DATA= (SERVER=DEDICATED) (SERVICE_NAME=SID)
)
)

Работающая:

jdbc:oracle:thin:@(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=xs1-vip) (PORT=1521))(ADDRESS= (PROTOCOL=TCP) (HOST=xs2-vip) (PORT=1521))(LOAD_BALANCE=yes)(CONNECT_DATA= (SERVER=DEDICATED) (SERVICE_NAME=DEMO)))

Расшифровка:

(DESCRIPTION=
(ADDRESS= (PROTOCOL=TCP) (HOST=xs1-vip) (PORT=1521)
)
(ADDRESS= (PROTOCOL=TCP) (HOST=xs2-vip) (PORT=1521)
)
(LOAD_BALANCE=yes)
(CONNECT_DATA= (SERVER=DEDICATED) (SERVICE_NAME=DEMO)
)
)

понедельник, 16 ноября 2009 г.

Oracle in Unix

Запуск Oracle AS:
/export/home/oracle/product/10.1.3.1/OracleAS_1/opmn/bin/opmnctl status
startall, stopall

Отключение узла (инстанса) кластера RAC:

srvctl stop instance -h
srvctl stop instance -d demo -i demo1

Прим.:
-d - database
-i - instanse

Запуск кластера:

/u01/app/crs/bin/crs_stop -all
/u01/app/crs/bin/crs_start -all
/u01/app/crs/bin/crs_stat

/u01/app/crs/bin/srvctl stop instance -h
/u01/app/crs/bin/srvctl stop instance -d demo -i demo1
- вырубить один из инстансов (инстанс demo1) кластера (кластер demo)

суббота, 14 ноября 2009 г.

SQL

Всякие эскуэльные хитрости

Метасимвол "_" представлеют собой любой одиночный символ:

SELECT last_name
FROM employees
WHERE last_name IN '_o%'

---------
last_name
---------

Kochhar
Lorentz
Mourgos

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


SELECT employee_id, last_name, job_id
FROM employees
WHERE job_id LIKE %SA\_% ESCAPE '\'


------
job_id
------

SA_MAN
SA_REP
SA_REP
SA_REP

суббота, 7 ноября 2009 г.

Полезные оракловые штучки

Посмотреть, какой пользователь заблокировал таблицу

select *
from v$locked_object l, dba_objects o
where l.object_id = o.object_id

Действующие блокировки можно посмотреть в:
select * from DBA_DDL_LOCKS;


Очистить корзину

purge recyclebin (от sys)

Разблокировать юзера

alter user SCOTT account unlock

Creation script is $ORACLE_HOME/rdbms/admin/scott.sql

Узнать, по каким полям связаны таблицы

Если разработчик побеспокоился о связях между таблицами и оформил их в виде соответствующих ограничений ссылочной целостности, то информацию об этих ограничениях можно "подглядеть" в системных представлениях: ХХХХ_constraints, ХХХХ_cons_columns, XXХX_tables (в данном случае тебя должны интересовать внешние ключи).
Где ХХХХ_ нужно заменить на нужный префикс:
1) USER_ - объекты, собственником которых является пользователь (учетная запись), выполняющий запрос.
2) ALL_ - все объекты, доступные данному пользователю
3) DBA_ - вообще все объекты в базе данных (нужны соответствующие привилегии)

Если же разработчик такого "сервиса" не предусмотрел, то никто, кроме самого разработчика, не сможет сказать какие таблицы и как связаны между собой.

EXPLAIN PLAN и AUTOTRACE

EXPLAIN PLAN Usage
DBMS_XPLAN
Очень полезный скрипт explain.sql от товарисчей с oracle-base

cd $oracle_home/rdbms/admin
log into sqlplus as system
run SQL> @utlxplan
run SQL> create public synonym plan_table for plan_table
run SQL> grant all on plan_table to public
exit sqlplus and cd $oracle_home/sqlplus/admin
log into sqlplus as SYS
run SQL> @plustrce
run SQL> grant plustrace to public

Для включения AUTOTRACE (роли plustrace):

To use the AUTOTRACE feature of SQL*Plus, the user must have a PLAN_TABLE in the schema and have PLUSTRACE role granted.

AUTOTRACE configuration is required. Perform the following steps to configure the user for AUTOTRACE:
1. connect sys/change_on_install @$ORACLE_HOME/sqlplus/admin/plustrce.sql
grant plustrace to username;
2. connect username/password @$ORACLE_HOME/rdbms/admin/utlxplan.sql
set autotrace (run sql statement)

пятница, 6 ноября 2009 г.

Конфигурация EM

Второй раз натыкаюсь на одни и те же грабли - указываю порт EM вместо порта лиснера. Горбатого могила исправит.

emca -deconfig dbcontrol db -repos drop
emca -config dbcontrol db -repos create

or

emca -deconfig dbcontrol db
emca -config dbcontrol db -repos recreate

среда, 4 ноября 2009 г.

Установка Oracle Database

Различные проблемы, встретившиеся при установке

1. Запустить только экземпляр, не запуская базу.

Start the instance: sqlplus / as sysdba

[
C:\> sqlplus /nolog
SQL> connect as sysdba
]

После чего можно запустить базу: startup nomount

По-видимому, при установке патча вместе с SHARED_POOL_SIZE и JAVA_POOL_SIZE необходимо также менять переменную SGA_TARGET (до 400M).

Хорошее описание проблемы и решения, но у меня не запустился инстанс через PFILE: тут