понедельник, 27 сентября 2010 г.

Заметки по ORACLE

0) Подключение под SYSDBA:
1) Изменение пароля для схемы IAMUSER на NEWPASSWD:

ALTER USER IAMUSER IDENTIFIED BY NEWPASSWD;

2) Просмотр активных сессий пользователя IAMUSER:

SELECT * FROM V$SESSION WHERE status='ACTIVE' AND username='IAMUSER';

3) Создание схемы IAMUSER с паролем PASSWD, раздача ей прав (CONNECT, RESOURCE):

CREATE USER IAMUSER IDENTIFIED BY PASSWD DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP";
GRANT "CONNECT" TO IAMUSER;
GRANT "RESOURCE" TO IAMUSER;

4) Несколько консольных команд для работы с Enterprise Manager:

emctl status dbconsole - проверка статуса запуска em
emctl start dbconsole - запуск em

5) Чтобы посмотреть детально значения даты-времени:

TO_CHAR(DATE_FIELD, 'DD.MM.YY HH24:MI')

6) Блокировка или разблокировка пользователя
SQL> ALTER USER username ACCOUNT LOCK;
SQL> ALTER USER username ACCOUNT UNLOCK;

7) Как убить запрос 
SELECT sid, serial#, status, server
FROM v$session
WHERE username = 'JWARD'

ALTER SYSTEM KILL SESSION 'sid, serial'

8) Количество подвисших запросов можно подсмотреть в системной вьюшке:
SELECT COUNT(last_call_et) FROM gv$session WHERE status='ACTIVE' AND last_call_et>=10 AND username IS NOT NULL
Сами же запросы (если есть повод реагировать и шевелиться дальше) выковыриваем более детально так:
SELECT username, machine, last_call_et, (SELECT sql_text FROM gv$sql WHERE sql_id=s.sql_id AND inst_id=s.inst_id) sql_text 
FROM gv$session s 
WHERE 
status='ACTIVE'
AND last_call_et>=10 
AND username IS NOT NULL
 
9. Вывод заблокированных объектов ORACLE:
select     oracle_username || ' (' || s.osuser || ')' username
,  s.sid || ',' || s.serial# sess_id
,  owner || '.' || object_name object
,  object_type
,  decode( l.block
,       0, 'Not Blocking'
,       1, 'Blocking'
,       2, 'Global') status
,  decode(v.locked_mode
,       0, 'None'
,       1, 'Null'
,       2, 'Row-S (SS)'
,       3, 'Row-X (SX)'
,       4, 'Share'
,       5, 'S/Row-X (SSX)'
,       6, 'Exclusive', TO_CHAR(lmode)) mode_held
from       v$locked_object v
,  dba_objects d
,  v$lock l
,  v$session s
where      v.object_id = d.object_id
and        v.object_id = l.id1
and        v.session_id = s.sid
order by oracle_username
,  session_id

9) -- Показывает список пользователей определенных в базе данных
-- и показывает из временные табличные пространства и табличное
-- пространство по-умолчанию 
SET LINESIZE 145
SET PAGESIZE 9999
SET VERIFY   off

COLUMN username             FORMAT a15  HEAD 'Username'
COLUMN account_status       FORMAT a17  HEAD 'Status'
COLUMN expiry_date                      HEAD 'Expire Date'
COLUMN default_tablespace   FORMAT a25  HEAD 'Default Tbs.'
COLUMN temporary_tablespace FORMAT a10  HEAD 'Temp Tbs.'
COLUMN created                          HEAD 'Created On'
COLUMN profile              FORMAT a10  HEAD 'Profile'
COLUMN sysdba               FORMAT a6   HEAD 'SYSDBA'
COLUMN sysoper              FORMAT a7   HEAD 'SYSOPER'

SELECT DISTINCT
       A.USERNAME USERNAME, 
       A.ACCOUNT_STATUS ACCOUNT_STATUS,
       TO_CHAR(A.EXPIRY_DATE, 'DD-MON-YYYY HH24:MI:SS') EXPIRY_DATE,
       A.DEFAULT_TABLESPACE DEFAULT_TABLESPACE,
       A.TEMPORARY_TABLESPACE TEMPORARY_TABLESPACE,
       TO_CHAR(A.CREATED, 'DD-MON-YYYY HH24:MI:SS') CREATED,
       A.PROFILE PROFILE,
       DECODE(P.SYSDBA,'TRUE', 'TRUE','') SYSDBA,
       DECODE(P.SYSOPER,'TRUE','TRUE','') SYSOPER
FROM DBA_USERS A, 
     V$PWFILE_USERS  P
WHERE P.USERNAME (+) = A.USERNAME 
ORDER BY USERNAME

Размер и свободное место для всех табличных пространств 
SELECT a.tablespace_name, "Free, MB", "Total, MB" FROM
  (SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024) AS "Total, MB" FROM dba_data_files GROUP BY tablespace_name
  UNION
  SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024) AS "Total, MB" FROM dba_temp_files GROUP BY tablespace_name) a,
  (SELECT tablespace_name, ROUND(SUM(bytes)/1024/1024) AS "Free, MB" FROM dba_free_space GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name (+)
ORDER BY a.tablespace_name;

Комментариев нет:

Отправить комментарий