среда, 26 июня 2013 г.

Oracle Weblogic. Как запустить AdminServer с помощью wlst. How to start AdminServer using wlst.

Запуск AdminServer с помощью wlst. Starting AdminServer using wlst.


Иногда возникает необходимость запуска Oracle Weblogic AdminServer с помощью wlst, например, для его запуска в фоновом режиме.
Ниже я приведу шаги, которые нужно для этого выполнить на примере ОС Windows.
Разница с Linux/Unix будет только в запуске wlst.sh вместо wlst.cmd.

1. NodeManager должен быть уже запущен

В Windows он устанавливается как Windows Service, соответственно должен стартовать у вас автоматически.
Руководство по установке можно найти в Oracle® Fusion Middleware Installation Guide for Oracle WebLogic Server 11g Release 1 (10.3.6):
http://docs.oracle.com/cd/E23943_01/doc.1111/e14142/postins.htm#BABFCGCI

2. Переходим в каталог:
C:\oracle\Middleware\Oracle_IDM1\common\bin
C:\oracle\Middleware - каталог Middleware Home.
Oracle_IDM1 - каталог с прикладным ПО Oracle.

2. Запускаем wlst.cmd

3. Выполняем команду:
nmConnect('weblogic', 'Pass123', '192.168.1.2', '5556', 'IDMDomain','C:/Oracle/Middleware/user_projects/domains/IDMDomain','ssl')
weblogic - имя администратора Weblogic-домена
Pass123 - пароль администратора Weblogic-домена
192.168.1.2 - адрес, который слушает NodeManager
5556 - порт, на котором слушает NodeManager
IDMDomain - название Weblogic-домена
C:/Oracle/Middleware/user_projects/domains/IDMDomain - каталог Weblogic-домена
ssl - тип NodeManager

4. Выполняем команду для старта AdminServer
nmStart("AdminServer")


Полезная литература:


1. Oracle® Fusion Middleware Managing Server Startup and Shutdown for Oracle WebLogic Server 11g Release 1 (10.3.6)
http://docs.oracle.com/cd/E23943_01/web.1111/e13708/overview.htm#i1070224
Раздел "Starting an Administration Server Using WLST and Node Manager"

2. Oracle® Fusion Middleware Oracle WebLogic Scripting Tool 11g Release 1 (10.3.6)
http://docs.oracle.com/cd/E23943_01/web.1111/e13715/manage_servers.htm#WLSTG166
Раздел "Using WLST and Node Manager to Manage Servers"

3. Oracle® Fusion Middleware Node Manager Administrator's Guide for Oracle WebLogic Server11g Release 1 (10.3.6)
http://docs.oracle.com/cd/E23943_01/web.1111/e13740/overview.htm#NODEM127
Раздел "How Node Manager Starts an Administration Server"

вторник, 18 июня 2013 г.

Oracle Database: How to calculate the actual size of a table. Как вычислить размер таблицы в базе данных Oracle

How to calculate the actual size of a table. Как вычислить размер таблицы в базе данных Oracle

Иногда возникает необходимость вычислить размер таблицы в БД Oracle.
Как это сделать?

1. Скомпилируйте следующую функцию в своей БД:

CREATE OR REPLACE FUNCTION
  SYS.RAZMER_TABLICY_RAW(pNazvanie in varchar, pOwner in varchar2)
return number
is
  val number(16);
  sz number(16);
begin
  sz := 0;
  --Определим размер сегментов данных таблицы
  --Calculate size of table data segments
  select
    sum(t.bytes) into val
  from
    dba_segments t
  where
    t.segment_name = upper(pNazvanie)
  and
    t.owner = upper(pOwner);
  dbms_output.put_line('size of table data segments = ' || val);
  sz := sz + nvl(val,0);

  --Определим размер сегментов индексов таблицы
  --Calculate size of table indexes segments
  select
    sum(s.bytes) into val
  from
    dba_indexes t
  inner join
    dba_segments s
  on
    t.index_name = s.segment_name
  where
    t.table_name = upper(pNazvanie)
  and
    t.owner = upper(pOwner);
  dbms_output.put_line('size of table indexes segments = ' || val);
  sz := sz + nvl(val,0);

  --Определим размер blob-полей в таблице
  --Calculate size of table blob segments
  select
    sum(s.bytes) into val
  from
    dba_lobs t
  inner join
    dba_segments s on t.segment_name = s.segment_name
  where
    t.table_name = upper(pNazvanie)
  and
    t.owner = upper(pOwner);
  dbms_output.put_line('size of table blob segments = ' || val);
  sz := sz + nvl(val,0);

  return sz;


end razmer_tablicy_raw;

2. Выполните следующий именованный блок:

pnazvanie - название таблицы
powner - название схемы-владельца таблицы

declare
  result number;
begin
  --Call the function
  result := sys.razmer_tablicy_raw(pnazvanie => 'recon_account_oldstate',
                                   powner => 'dev_oim');
  dbms_output.put_line('table size = ' || result || ' bytes');     
  dbms_output.put_line('table size = ' || result/1024 || ' kb');
  dbms_output.put_line('table size = ' || result/1024/1024 || ' Mb');                            
end;