Grudzień « 2010 « Różności …

Różności …

31 grudnia 2010

PL/SQL – przykład prostych procedur

Zaszufladkowany do: Skrypty SQL i PL/SQL — Jacek @ 09:47
create or replace procedure sfis_owner.wsp_kwadratow(numer varchar)
CURSOR id_obszaru IS
select obsz_id from sfis_owner.fis_obszary where obsz_kod like numer||'%' and obsz_rodzaj_obszaru='FAO';
dbms_output.put_line('Podany numer ' || numer);
FOR rekord IN id_obszaru LOOP
-- trzeba ustawic 'set serveroutput on' na kliencie
DATA TYPE: composite (nested table of numbers):
create or replace procedure sfis_owner.wsp_kwadratow(numer varchar)
sid_obszarow num_arr_type;
CURSOR id_obszaru IS
select obsz_id from sfis_owner.fis_obszary where obsz_kod like numer||'%' and obsz_rodzaj_obszaru='FAO';
sid_obszarow := num_arr_type();
dbms_output.put_line('Podany numer ' || numer);
FOR rekord IN id_obszaru LOOP
-- trzeba ustawic 'set serveroutput on' na kliencie
-- dbms_output.put_line(rekord.obsz_id);
sid_obszarow(sid_obszarow.Count) := rekord.obsz_id;
Dbms_Output.put_line(sid_obszarow.Count || ' ' || sid_obszarow(sid_obszarow.Count));
Odwołania do wartości nested table of numbers:
create or replace procedure sfis_owner.wsp_kwadratow(numer varchar)
sid_obszarow num_arr_type;
CURSOR id_obszaru IS
select obsz_id from sfis_owner.fis_obszary where obsz_kod like numer||'%' and obsz_rodzaj_obszaru='FAO';
sid_obszarow := num_arr_type();
dbms_output.put_line('Podany numer ' || numer);
FOR rekord IN id_obszaru LOOP
-- trzeba ustawic 'set serveroutput on' na kliencie
-- dbms_output.put_line(rekord.obsz_id);
sid_obszarow(sid_obszarow.Count) := rekord.obsz_id;
Dbms_Output.put_line(sid_obszarow.Count || ' ' || sid_obszarow(sid_obszarow.Count));
dbms_output.put_line('Koniec petli 1');
nr1 := sid_obszarow.Count;dbms_output.put_line('nr1: ' || nr1);
FOR X IN 1..nr1 LOOP
dbms_output.put_line(X || ' ' || sid_obszarow(X));
Kasowanie wartości nested table of numbers:
create or replace procedure sfis_owner.wsp_kwadratow(numer varchar)
sid_obszarow num_arr_type;
CURSOR id_obszaru IS
select obsz_id from sfis_owner.fis_obszary where obsz_kod like numer||'%' and obsz_rodzaj_obszaru='FAO';
sid_obszarow := num_arr_type();
dbms_output.put_line('Podany numer regionu: ' || numer);
FOR rekord IN id_obszaru LOOP
-- trzeba ustawic 'set serveroutput on' na kliencie
-- dbms_output.put_line(rekord.obsz_id);
sid_obszarow(sid_obszarow.Count) := rekord.obsz_id;
--Dbms_Output.put_line(sid_obszarow.Count || ' ' || sid_obszarow(sid_obszarow.Count));
--dbms_output.put_line('Koniec petli 1');
nr1 := sid_obszarow.Count;
--dbms_output.put_line('nr1: ' || nr1);
FOR X IN 1..nr1 LOOP
dbms_output.put_line(X || ' ' || sid_obszarow(X));
-- kasujemy rekord nr 5 
FOR X IN 1..nr1 LOOP
-- trzeba sprawdzić czy rekord istnieje bo w przeciwnym wypadku wywali błąd 
dbms_output.put_line(X || ' ' || sid_obszarow(X));

30 grudnia 2010

Aktualizacja wordpressa

Zaszufladkowany do: Informatyka - pozostałe — Tagi: — Jacek @ 14:02

Usunąć pliki:

  • Usunąć szystkie pliki .php z katalogu głównego poza wp-config.php
  • Z katalogu: /wp-includes/ wszystko poza katalogiem /languages/
  • Z katalogu: /wp-admin/ wszystko
  • Z katalogu /wp-content/ plik index.php

Wgrać pliki:

  • Najpierw wgrywamy katalogi /wp-includes/ oraz /wp-admin/ w całości na serwer.
  • Do katalogu /wp-content/ plik /wp-content/index.php
  • Na koniec wgrywamy wszystkie pliki (nie foldery!) z katalogu głównego.


Na koniec odpalamy skrypt aktualizujący aby zaktualizować bazę..

Tą fajną recepturkę, znalazłem na tym blogu.

Sprawdzenie nextgen

W przypadku nextgen gallery – może być konieczna aktualizacja kodu – bo google chrome ma jakąś zimę przy slideshow.
Trzeba zmienić kod w: “nextgen-gallery/shutter/reloaded.js”

1) On line 154 that starts with “D.innerHTML”, remove the src attribute from the img element.
2) Right after the same D.innerHTML statement, type:
document.getElementById(“shTopImg”).src = shutterLinks[ln].link;

Insze inszości nie dotyczące aktualizacji.

Aby ustawić odpowiednie tło wokół thumbnails w nextgen trzeba w css dodać:
.ngg-galleryoverview {
overflow: hidden;
margin-top: 10px;
width: 100%;
display:block !important;

29 grudnia 2010

Gdynia – Pustoivannie – Dniepropietrowsk – Żulice – Gdynia

Zaszufladkowany do: Podróże,Zdjęcia — Tagi: , — Jacek @ 18:56

Parę fotek z Ukrainy (początek lipca 2010 roku).

28 grudnia 2010

Oracle installation notes (K1)

Zaszufladkowany do: Bazy danych,Oracle — Tagi: — Jacek @ 13:11

You can install and run multiple versions of Oracle on a single-server machine. AllOracle products use a directory referred to by the environment or system variable ORACLE_HOME to find the base directory for the software they will use.

A rolling upgrade allows you to bring down some of the nodes of the cluster, upgrade their software, and then bring them back online as part of the cluster.

Online transaction processing (OLTP) systems usually have a larger number of users performing smaller transactions, while data warehouses usually have a smaller number of users performing larger queries.

With Automatic Storage Management (ASM), introduced in Oracle Database 10g, you can add additional disk space or take away disks without interrupting database service.

The Automatic Workload Repository (AWR), first available in Oracle Database 10g, maintains a history of workload and performance measurements, which are used by the Automatic Database Diagnostic Monitor (ADDM) to spot performance anomalies. You can also use AWR to track ongoing changes in workload.

Oracle Database Configuration Assistant
Tworzenie ze skryptów: The Oracle software CD-ROM also includes a sample scriptcalled BUILD_DB.SQL

A version of Oracle Net runs on the client machine and on the database server, andallows clients and servers to communicate over a network using virtually any popularnetwork protocol.
Local name resolution – TNSNAMES.ORA
Oracle Names service -  przestarzały 9i
Oracle Internet Directory – Lightweight Directory Access Protocol (LDAP). Oracle Internet Directory (OID) is a part of FusionMiddleware. The OID is also used for a variety of other purposes, such as enabling single sign-on for the Oracle Application Server Portal.
Host naming

These name resolution options are not mutually exclusive. For example, you can use Oracle Internet Directory and local name resolution (TNSNAMES.ORA files)together. In this case, you specify the order Oracle should use in resolving names inthe SQLNET.ORA file.

Oracle Net requires several configuration files. The default location for the files usedto configure an Oracle Net network are as follows:
• On Windows, ORACLE_HOME\net80\admin for Oracle8
and ORACLE_HOME\network\ admin for Oracle8i and more current releases
• On Unix, ORACLE_HOME/network/admin

Youcan place these files in another location, in which case youmu st set an environment or system variable called TNS_ADMIN to the nondefault location.
The files that form a simple Oracle Net configuration are as follows:
LISTENER.ORA –  Contains details for configuring the Oracle Net Listener, such as which instances or services the Listener is servicing.
TNSNAMES.ORA –  Decodes a service name into a specific machine address and Oracle instance for the connection request.
SQLNET.ORA – Provides important defaults and miscellaneous configuration details. Default domain name for your network.
LDAP.ORA - For Oracle8i and later releases, the LDAP.ORA file contains the configuration information needed to use an LDAP directory, such as the Oracle Internet Directory.

The SPFILE can also be kept on a shared disk, so that it can be used to initialize multiple instances in an Oracle Real Application Clusters configuration.

Start bazy danych:
- start instancji - Oracle reads the instance initialization parameters from the SPFILE or INIT.ORA file on the server. Oracle then allocates memory for the System Global Area and starts the background processes of the instance. At this point, none of the physical files in the database have been opened, and the instance is in the NOMOUNT state.
- montowanie bazy danych –  The instance opens the database’s control files. At this point, only the control files are open. This is called the MOUNT state.
- otwarcie bazy danych –  The instance opens the redo log files and datafiles using the information in the control file.

Zamknięcie bazy danych
- zamknięcie bazy –  Oracle flushes any modified database blocks that haven’t yet been written to the disk from the SGA cache to the datafiles. Oracle also writes out any relevant redo information remaining in the redo log buffer. Oracle then checkpoints the datafiles, marking the datafile headers as “current” as of the time the database was closed, and closes the datafiles and redo log files.
- odmontowanie bazy - Oracle updates the relevant entries in the control files to record a clean shutdown and then closes them. At this point, the entire database is closed; only the instance remains.
- zamknięcie instancji - The Oracle software stops the background processes of the instance and frees, or deallocates, the shared memory used for the SGA.

The matchmaker that arranges marriages between Oracle clients and server processes is called the Oracle Net Listener. The Listener detects an incoming request and introduces the requesting client to an Oracle server process. The Listener steps out of the way and lets the client and server communicate directly.

Multi-Threaded Server (MTS) in Oracle7, known as the shared server since Oracle9i. Shared servers allow the Oracle instance to share a set of server processes across a larger group of users. Dispatchers - Clients directly connect to their dispatchers instead of to a server. The dispatchers accept requests from clients and place them in a request queue, which is a memory structure in the SGA. Shared servers - The shared server processes read from the request queue, process the requests, and place the results in the response queue for the appropriate dispatcher.

Program Global Area (PGA) - state information contains information about the SQL statements executed by the session. When youu se a dedicated server, this state is stored in the private memory used by the dedicated server. If you’re using the shared servers, however, any server can work on behalf of a specific client. The session state cannot be stored in the PGA of the shared server process. All servers must be able to access the session state because the session can migrate between different shared servers. For this reason, Oracle places this state information in the System Global Area (SGA). By default, the memory for the shared server session state comes from the shared pool (z SGA). Alternatively, you cou ld also configure something called the large pool as a separate area of memory for shared servers. Oracle Database 11g introduced automated memory management of the SGA and PGA size by default when you set the MEMORY_TARGET initialization parameter.

MTS można sprawdzić w:
- V$SHARED_SERVER_MONITOR - This view contains dynamic information about the shared servers, such as highwater marks for connections and how many shared servers have been started and stopped in response to load variations.
- V$CIRCUIT - Youcan think of the route from a client to its dispatcher and from the dispatcher to the shared server (using the queues) as a virtual circuit. This view details these virtual circuits for user connections.

Data Manipulation Language (DML)
System Change Number (SCN) - A key factor in preserving database integrity is an awareness of which transaction came first. For example, if Oracle is to prevent a later transaction from unwittingly overwriting an earlier transaction’s changes, it must know which transaction began first.
Rollback segments –  Rollback segments are structures in the Oracle database used to store “undo” information for transactions, in case of rollback. When a transaction starts changing some data in a block, it first writes the old image of the data to a rollback segment. A rollback segment is not the same as a redo log. The redo log is used to log all transactions to the database and to recover the database in the event of a system failure, while the rollback segment provides rollback for transactions and read consistency. Blocks of rollback segments are cached in the SGA just like blocks of tables and indexes. In Oracle9i, youhad the option of specifying automatic management of all rollback segments through the use of an undo tablespace.

The server process copies the old image of the employee data about to be changed to a rollback segment and to a redo seqment. The rollback segment changes are part of the redo. This may seem a bit odd, but remember that redo is generated for all changes resulting from the transaction.

Oracle can do one of two things to get the changes into the database on the disk:
• Write all the database blocks the transaction changed to their respective datafiles.
• Write only the redo information, which typically involves much less I/O than writing the database blocks. This recording of the changes can be replayed to reproduce all the transaction’s changes later, if they are needed due to a failure.
To provide maximum performance without risking transactional integrity, Oracle writes out only the redo information.

In Oracle9i, rollback segments were also used to implement a feature called Flashback Query. Remember that rollback segments are used to provide a consistent image of the data in your Oracle database at a previous point in time. With Flashback Query, you can direct Oracle to return the results for a SQL query at a specific point in time.
• Flashback Database, to roll back the entire database to a consistent state
• Flashback Table, to roll back a specific table
• Flashback Drop to roll back a DROP operation
• Flashback Versions Query, to retrieve changes to one or more rows

Oracle notki, performance, system tuning

Zaszufladkowany do: Bazy danych,Oracle — Tagi: — Jacek @ 12:50

System tuning
- how to size redo_logs aby nie przełączały się co 2 sekundy
fast_start_mttr_target (10g)
- pga_aggregate_target (9i)

program global area - zastepuje: sort_area_size, hash_area_size, bitmap_merge_area_size, create_bitmap_area_size

16% całej pamięci na OLTP
40% całej pamięci na data warehouse

- pinning packages in memory
- statspack

należy ustawić statistics_level = Typical|All
show parameter statistics_level

i badać widkoki:
select shared_pool_size_for_estimate, shared_pool_size_factor,est_lc_time_saved from v$shared_pool_advice;
pierwsza kolumna to MB
można ustawić na ostatnią wartość

alter system set shared_pool_size=124m scope=spfile;
shutdown immediate;

show parameter share_pool_size


SQL tuninig
- indexes
- oracle optimizer
- explain plan – co zrobi baza przy wykonaniu czegos ale tak naprawde nie bedzie tego wykonywala
- hins – into individual statements
- stored outlines – save an execution path for a execution statement

Oracle notki, latches, locks

Zaszufladkowany do: Bazy danych,Oracle — Tagi: — Jacek @ 12:46

latches dają exclusive access do obiektu
locks – concurrent access but only one can write at the time
simple objects (np. buffer cache)
compound object (table)

locks dla simple objects:
- exclusive – session needs to modify a simple object
- shared – session needs to view an object
- null – if session caches info about an object – null locki is placed on it – it acts like a trigger in case an object is invalidated

tylko dla compound
- sub shared – shared locks on some rows in a table (np w przypadku utworzenia kursora)
- sub exclusive – session need an exclusive lock on a part of an object
- shared sub-exclusive lock – shared lock on a whole table and an exclusive lock on a part of a table

dictionary views:
dba_locks – session id who is holding a lock, type of lock, what mod the lock is in, whether it is blocking another session for access
dba_dml_locks – data manipulation language locks
dba_ddl_locks – data dictionary language locks
dba_blockers – show which sessions are blocking other sessions
dba_waiters – show which sessions are waiting for resources

select * from dba_tables
tam jet init_trans i max_trans
buffer cache – tu trzymane bloki z transakcji

select event, total_waits, average_wait from v$system_event where wait_class != ‘Idle’;

V$session_event – describes events since the session has started up

V$session_wait – check what sid is of the user which is haveing problems

select event, seconds_in_wait, state
from v$session_waits
where sid=142;

select * from v$session;

blocking_session, blockin_instance
select row_wait_obj#, row_wait_block#, row_wait_row#, blocking_session from v$session where sid=142;

w dba_objects sprawdzam czego dotyczy ten object
select owner, object_name from dba_objects where object_id=51161;

select * from v$session

śledzenie sesji
alter session set events ’10046 trace name context forever, lever 8′;

wyłączenie śledzenia sesji
alter session set events ’10046 trace name context off’;

potem do userdump directory i sprawdzenie co się dzieje.
aby to działało to trzeba mieć time_statistics ustawione na true

show paramete timed_statistics;
db file sequential read – indexes
db file scattered read - full table scans
direct path read/write – extensive sort – not enough memory
buffer busy wait – you should tune your sql statements

Oracle notki, Net Services

Zaszufladkowany do: Bazy danych,Oracle — Tagi: — Jacek @ 12:35

select * from dba_ts_quotqs;
grant unlimited tablespace to scott; – przyznanie nieograniczonej przestrzeni tabel
sprawdzenie jakie przywileje ma Scott:
select privilege from dba_sys_privs where grantee=’SCOTT’;

select * from dba_profile;

———————- NET SERVICES ———————-

sqlplus scott@host:1521/orcl
po ustawieniu zmiennej TNS_ADMIN – tam pliki net
listener.ora – konfiguracja listenera
tu można ustawić shared server zamiast dedicated server
sqlnet.ora – tu różne rzeczy – nameing, authentication

NTS – windows authentication

tnsnames.ora – używany tylko, jeżelu używa się metody local naeming

na kliencie:
nameing methods
on modyfikuje sqlnet.ora i dodaje NAMES.DIRECTORY_PATH = (EZCONNECT, TNSNAMES)

aby zmodyfikować tns to: netca
a potel local net service name configuration
set trc_level support
set log_directory c:\oratrc
set log_file mylog.log

RAC – wiele instancji w jednej bazie
netca – konfiguracja net – graficzna
select * from all_services;
distributed query – zapytuje wiecej niż jedna baze danych
sqlplus / as sysdba

sql> create public database link orcl2
connect to scott identified by tiger
using ‘orcl2′ (tu nazwa na której nasłuchuje listener)

sql> select sysdate from dual@orcl2;
select * from dba_db_links;
col db_link format a20
col username format a15
col host format a12

w tnsnames.ora można zdefiniować w jakim modzie będzie pracował serwar shared or dedicated
defoult’owe pasło dla sys is “change_on_install”
delfoul’owe paseło dla system is “manager”


aby uruchomić funkcje sprawdzające hasło:

select text from dba_source;

Oracle notki, packages

Zaszufladkowany do: Bazy danych,Oracle — Tagi: — Jacek @ 12:32

Pomaga w organizacji kodu.
Składają się ze specyfikacji (SPEC) i kodu (BODY). Body można zaszyfrować (wrap function)

Common packages:

commit, rollback, round
select round(3.14) from dual;
select sys.standard.round(3.14) from dual;
desc sys.standard; – opis danego package


exec dbms_stats.gather_table_stats(‘SCOTT’,'PERSON’);
select table_name, to_char(last_analyzed,’hh23:mi’) analyzed
from user_tables where table_name=’PERSON’;

(dbms_job – oracle 9)

grant create job to scott;
select snap_id,to_char(snap_time,’dd-mm-yyyy hh24:mi:ss’) from stats$snapshot
select text from dba_source where name=’MISC’;

Kompilacja obiektów w schemacie
SQL> dbms_utility.compile_schema(‘SCOTT’);


SELECT tablespace_name,status,CONTENTS FROM dba_tablespaces;
show parameter undo
SELECT file_name FROM dba_data_files;
SELECT file_name, bytes FROM dba_data_files WHERE tablespace_name=’UNDOTBS1′;
SELECT DISTINCT owner,tablespace_name, bytes, status FROM dba_undo_extents WHERE status = ‘ACTIVE’;
SELECT DISTINCT owner,tablespace_name, bytes, status FROM dba_undo_extents;

Oracle notes – PL/SQL basics

Zaszufladkowany do: Bazy danych,Oracle,PL/SQL,SQL — Tagi: — Jacek @ 12:16

PL/SQL Procedural Language SQL
anonymous blocks – bez nazwy
procedures/functions – stored in data dictionary
packages – zgrupowane procedury i funkcje

Data Types
- scalar (binary_integer, integer, string …)
- composite (nested tables, varrays, record …)

r employees%rowtype;

nested tables of numbers:

TYPE – określamy jakiego jest typu
linia 5 – konstruktor –  przypisujemy konstruktor do zmiennej (na razie on nie istnieje)
tworzymy go przez extend. W lini 7 tworzenie slotu dla zmiennych.

- reference – procedury mogą odwoływać się do refcursors.

Anonymous blocks:

od DECLARE do BEGIN – deklarujemy zmienne
:=” (przypisanie wartości)
anchor data type – można przypisać typ danych do zmiennej na podstawie tabeli (linia 6)


tu są nasze procedury
select * from user_source;
select text from user_source where name = ‘nazwa_procedury’;

Zamiast DECLARE (jak w anoymouns blocks) jest AS. Pomiędzy AS a BEGING deklarujemy zmienne.
Wywołanie takiej procedury:
SQL> give_raises(1.5);
SQL> /
exec give_raises(1.5);

CURSOR – to jest SELECT wewnątrz bloku PL/SQL który może zwrócić dużą liczbę rekordów.
Jeżeli SELECT może mieć więcej niż jeden wynik trzeba używać CUROSR’ów.

CURSOR – deklaracja kursora – i następnie SELECT
Cursor zostaje wykonane w kodzie (po BEGIN)
rec – nazwa zmiennej IN in nazwa kursora
count – metoda należąca do nested tables … count równe 1,2,3 …

Te wartości które mamy w tablicy możemy przkazać np do innej procedury.

Cursor teraz zawiera employee_id, hire_data
Aby zrobic updaty na cursorze  trzeba go zrobic FOR UPDATE
WHER CURRENT OF EMP_CUR – praca na aktualnych danych w kursorze



crate or replace procedure add_emp(eid number, last varchar2, first varchar2, email varchar2, hire_date date)
hire_date_excepition exception;
email_exception exception;
if hire date > sysdate then
raise hird_date_exception;
end if;
if email is not null and email not like ‘%@%.%’ then
raise email_exception;
end if;

— jakis kod dodajacy pracownika

when hire_date_exception then
dbms_output.put_line(‘wrong date’);
when email_exception then
dbms_output.put_line(‘wrong email format’);

exception – tu się zaczyna blok exception
Wywołujemy procedurę:

exec add_emp(500,’Joe’,'Jule’,'’,sysdate + 2)

i zwraca błąd, że jest zła data.

Oracle notki – export, import, DataPump, SQL Loader

Zaszufladkowany do: Bazy danych,Oracle — Tagi: — Jacek @ 12:07


transportable tablespaces – importuje sie tylko metadane, a potem kopiuje pliki

DataPump (10g)

SQL Loader

exp scott tables=person,cities log=log.txt grants=n

transportable tablespaces
alter tablespace users read only;
alter tablespace data read only;
exp sys/sys tablespaces=users,data transportable_tablespace=y
skopiowac dane pliki miedzy systemami

DataPump (10g)

select directory_path from dba_directories where directory_name=’DATA_PUMP_DIR’;
expdp scott/tiger dumpfile=data_dump_dir:info.dmp nologfile=y tables=person,cities

select * from dba_datapump_jobs;
sql> create directory dp as ‘c:\expimp’;
sql> grant read,write od directory dp to public;
sql> grant exp_full_database to scott;

expdp scott/tiger full=y dumpfile=dp:full%u.dmp logfile=dp:full.log job_name=full_export

w trakcie trwania exportu mozna wcisnac CTR+C aby wejsc w tryb interaktywny i mozna dac np.: exit_client (export idzie w tlo i trwa nadal)

expdp scott/tiger full=y estimate_only=y logfile=dp:estimate_full.log job_name=estimate_full_export

SQL Loader

tworze plik: person.ctl
load data
infile ‘c:\data.txt’
into table person2
fileds terminated by “:” optionally enclosed by ‘”‘

potem uruchamiam komende:
sqlldr scott/tiger contro=person.ctl
tworze plik: person2.ctl

load data infile ‘c:\data.txt’ replace into table person2
(pid position (01:02) integer external,
first position (03:10) char,
last position (10:20) char)

tworze plik: person3.ctl

load data
infile ‘c:\data.txt’
into table person2
when city=’denver’
fileds terminated by “:” optionally enclosed by ‘”‘

Oracle notki, constraints, sequences, views

Zaszufladkowany do: Bazy danych,Oracle,PL/SQL,SQL — Tagi: — Jacek @ 11:56
alter table person add constraint pk_person primary key(id);
compound primary key – złożony – na więcej niż jednej kolumnie.
create table citeis(city varchar(30), state char2(2), constraint pk_cities primary key(city,state));
obydwie kolumny będą widziane jako NOT NULL – ale to wcale nie znaczy że są primary_keys

select * from USER_CONSTRAINTS;
select * from DBA_CONSTRAINTS;

aby dowiedzieć się jakie są naprawdę constraints nałożone na daną tebelę.
select * from USER_CONS_COLUMNS;
select * from DBA_CONS_COLUMNS;

aby sprawdzić na jakich kolumnach są nałożone constraints.
select constraint_name, column_name, position
where constraint_name in(select constraint_name from user_constraints where table_name = ‘CITIES’);

sprawdzenie domyśnej tablespace:
slect default_tablespace from user_users;
slect default_tablespace from dba_users;

create table as statement
create table COLORADO_PERSON as select * from PERSON where st = ‘CO’;

select * from USER_TAB_COLUMNS; – aby dowiedzieć się jak są zdefiniowane kolumny w danej tabeli;


taki sam jak primary key ale dozwolone są NULL
alter table PERSON add constraint UK_PERSON_USERNAME unique(USERNAME);
alter table PERSON add constraint ck_person_gender check(gender in(‘M’,'F’));

FOREIGN CONSTRAINT – pozwala znaleźć releacje pomiędzy dwoma tablicami

jedna tablica to child druga to parent
dodajemy foreign constraint to child table:
alter table person add constraint fk_person_cities foreign key(city,state) references cities(city, state);

tabela cities jest tu tabelą parent i tu są zdefiniowane miasta i stany. Przy próbie wpisu to tabeli person miasta i stanu którego nie ma w tabeli cities otrzymamy błąd.

select a.constraint_name, constraint_type, column_name, r_constraint_name
from user_constraints a, user_cons_clumns b
where a.constraint_name = b.constraint_name
and a.table_name = ‘PERSON’;

Wyłączenie danego CONSTRAINT:
alter table PERSON disable constraint fk_person_cities;
alter table PERSON enable constraint fk_person_cities;

alter table users add constraint fk_users_person
foreign key(username) references person(username)
deferrable initially deferred;


autoincrement, przechowuje liczby
create sequence username_seq start with 10 increment by 1;
select * from user sequences;
update users set id = username_seq.nextval;
select username_seq.currval from dual;


create or replace view person_view(name) as
select last || ‘,’ || first
from person
order by last, first;
create or replace view person_view as
select last,first,city,st
from person
order by last,first;

W drugim wypadku kolumny dokładnie odpowiadają nazwom kolumn w tabeli dlatego ten widok można wykorzystać do updateowania tabeli.

select * from USER_VIEWS;
select * from DBA_VIEWS;
select * from DBA_OBJECTS;

Oracle notki

Zaszufladkowany do: Bazy danych,Oracle — Tagi: — Jacek @ 11:52
sql> alter system suspend; zabrania wprowadzania danych
sql> alter system resume – powrót do normalnego stanu
V$PARAMETER – tabela z parametrami – można sprawdzić czy jest system modificable;
sql> alter system set background_dump_dest=’c:\oracle’;
sql> alter system set audit_file_dest=’c:\oracle’ scope=spfile; zmiana tylko w spfilu i uwzględniona po ponownym uruchomieniu.
sql> alter system set user_dump_dest=’c:\oracle’ scope=memory; zmiana tylko na daną chwilę, po ponownym uruchomieniu wszystko wróci do normy.
V$SYSTEM_PAREMETER2 – dotyczą danej instancj
V$PAREMERER2 – dotyczą danej sesji
alter session set statistics_level=basic; – dotyczy tylko danej sesji, pozostałe sesje pozostaną niezmienione
V$SPPARAMETER – ustawinia dla pliku spfile;
V$OBSOLETE_PARAMETER –  przestarzałe parametry – raczej nie powinny być ustawiane w plikach inicjalizacyjnych.
select * from v$obsolete_parameter where isspecified=’TRUE’;

Oracle notki, startup, shutdown.

Zaszufladkowany do: Bazy danych,Oracle — Tagi: — Jacek @ 11:50
Połączenie bez podawania loginu i hasła:
# sqlplus / as sysdba
to jest autentykacja wg systemu operacyjnego. To jest możliwe bo użytkownik należy do grupy DBA.
UNMOUT – instance started (background processes + memory structures)
w ORACLE_HOME/dbs oracle szuka: spfilsSID.ora potem spfile.ora potem initSID.ora
status: STARTED
sql> alter database mount;
MOUNT – instance is associated with database
tu wczytywane są control files. W control filach informacje o plikach bazodanowych, redologach
sql> alter database open;
OPEN – datafiles i redologs are open.
sql> show parameter control_files
sql> slect status from v$instance;
sql> startup pfile=’lokalizacja’
sql> startup restrict
tylko uprzywilejowani użytkownicy mogą się zalogować do bazy
sql> show user – aby sprawdzić jako kto jestem zalogowany
shutdown = shutdown normal – czeka na zamknięcie każdej sesji
shutdown transactional – czeka na zakończenie transakcji
shutdown immediate – kończy każdą sesję
shutdown abort – przy uruchamianiu konieczne jest recovery (apply redologs to database)

Oracle notki – struktura fizyczna i logiczna

Zaszufladkowany do: Bazy danych,Oracle — Tagi: — Jacek @ 11:41
instance – collection of background processes and memory structures
database – collection of files that contain your data
RAC – real application cluster – wiele instancji pisze do tej samej bazy danych. Jeżeli jedna instancja pada – druga przejmuje jej rolę.
sql> show parameter db_name
sql> show paremeter instance_name
sql> show paremeter db_block_size
w przypadku data warehouse – big rows – wtedy usawia się blocksize na 32K a nie na 8K
Memory structures:
SGA – system global area
BUFFER CACHE – store datablocks – jeżeli później zada się takie samo zapytanie sql to dane pójdą z cache’u – improve performance
i tu tylko datablocks przechowywane takie jak domyślny blocksize (procesy: CKPT-zmienia nagłówki plików występuje wtedy gdy DBW zapisuje dane
do pliku lub gdy log writer zapisuje redo log lub występuje co pewien czas, DBW0-database writer-zapisuje informacje w blokach
z buffer cache do datafile)
LOG BUFFER – zapamiętuje zmiany zrobione w bazie danch – a potem te zmiany są zapisywane do REDO LOGów a potem do ARCHIVE LOGów.
To wszystko jes robione aby było możliwe recovery. (procesy: LGWR – log writer – zapisuje z log buffer do redo logs, ARC0 – archiving process -
zapisuje redo logi do archive logów)
SHARED POOL – tu przechowywane są wyrażenia SQL. Tutaj też przechowywane są DATA DICTIONARY INFORMATION – opis jakie tabele, użytkownicy itd.
STREAMS POOL – używa się, jeżeli jest wiele serwerów na których jest baza danch.
LARGE POOL – przechowuje informacje o backupach i restorach i SHARED SERVER INFORMATION – jeżeli jest kilka procesów pobierających te
same informacje.
KEEP POOL – tu można przechować np. wartości określonej tabeli i trzymać tak długo jak się da.
RECYCLE POOL – jeżeli np. chcemy przeskanować całą tabelę a nie chcemy aby ta operacja zżarła całą dostępną pamięć – dane wtedy nie są trzymane
w buffer cache.
2K BUFFER – to są buffer cache dla tabel o innych blocksize
PMON – process monitor – zarezerwowany dla procesów userów, jeżeli sesja zerwana to czyści zasoby.
SMON – system monitor – instance recovery
SERVER PROCESS – odpowiedzialny za pobieranie danych z bazy danych – każdy z procesów ma przydzieloną pamięć PGA – PROGRAM GLOBAL AREA – informacje dotyczące sesji jak zmienne
DEDICATED SERVER ENVIRONMENT – jeden server process odpowiada jednemu user process
database files – .dbf
redo log files – .log
dobrze jest aby w każdej grupie był więcej niż jeden redolog file na wypadek awarii któregoś!!!! warto aby drugi redolog był na ososbnym dysku!!!!
skrypt: add_redolog_file.sql
po dodaniu mają status invalid.
należy wykonać alter system switch logfile; – aby oracle przeszedł do następnego logu – należy wykonać tyle razy ile nowych logów dodanych aby przeszło przez wszystkie
undo tablespace – .dbf – używana do rolling back information np na wypadek usunięcia danych których nie chciałem
spfile – server parameter file lun init file initialization file
sql> show parameter spfile
jeżeli VALUE w tym zapytaniu będzie puste to znaczy, że używam starego init.file
pliki spfile i init są przechowywane w ORACLE_HOME/dbs
alert log i trace files
sql> show parameter background_dump_dest
control files .ctl
czytane przez instancję, kiedy baza danych startuje
zawierają informacje o fizycznej strukturze bazy danych
dobrze jest mieć 3 controlfile na różnych dyskach!!!!
controlfiles to dokładnie kopie siebie samych. w wypadku awarii trzeba skopiować dobry controlfile na zły i uruchomić instancję
backup files
system tablespace – data dictionary
sysaux tablespace – auxiliary purporse
undo tablespace – potrzebne do rollbacku
temp tablespace – używane do sortowania danych w wypadku gdy nie mamay dosyć RAMu
table segment
index segment
temporary segment
Jeżeli tworzę np tabelę to oracle rezerwuje segment. Jeżeli segment zostanie wypełniony to oracle rezerwuje następną przestrzeń zwaną EXTENT. Extent to kilka kolejnych bloków bazy danych.

Oracle notki

Zaszufladkowany do: Bazy danych,Oracle — Tagi: — Jacek @ 11:37
instalacja oracle 11gr2 na fed1
nie można było uruchomić bazy danych
skopiowałem orahome/base/admin/orcl/pfile/init.ora.8883224234 do base/db11gr2/dbs/initfed1orcl.ora
przy uruchomianiu dostałem komunikaty:
ORA-00845 MEMORY TARGET not supported on this system
ORA-00845: MEMORY_TARGET not supported on this system
Problem Description
While creating a startup database using dbca the database creation GUI gives error message in a pop up window,
ORA-00845: MEMORY_TARGET not supported on this system
from where you can ignore the error message.
The similar scenario also occur whenever you try to start your database then startup shows error message like below.
ORA-00845: MEMORY_TARGET not supported on this system
Cause of the Problem
•Starting from Oracle 11g the automatic memory management feature is now defined with parameter MEMORY_TARGET and MEMMORY_MAX_TARGET.
•On linux file system the shared memory need to be mounted on /dev/shm directory on the operating system.
•And the size of /dev/shm needs to be greater than MEMORY_TARGET or MEMMORY_MAX_TARGET.
•The AMM (Automatic Memory Management) now in 11g manages both SGA and PGA together by MMAN process.
•The MEMORY_TARGET parameter in 11g comes for (SGA_TARGET+PGA_AGGREGATE_TARGET) which was in 10g.
•And MEMORY_MAX_TARGET parameter in 11g comes instead of SGA_MAX_TARGET parameter which was in 10g.
•The ORA-00845:can arises for the following two reasons on linux system.
1)If the shared memory which is mapped to /dev/shm directory is less than the size of MEMORY_TARGET or MEMORY_MAX_TARGET.
2)If the shared memory is not mapped to /dev/shm directory.
Solution of the Problem
Make sure /dev/shm is properly mounted. You can see it by,
#df -h or #df -k command.
The output should be similar like
$ df -k
Filesystem            Size  Used Avail Use% Mounted on
shmfs                 1G    512M 512M  50% /dev/shm
We see here for /dev/shm we have assigned 1G memory. Now if you set MEMORY_TARGET more than 1G then above ORA-845 will arise. For example if you have MEMORY_TARGET or MEMORY_MAX_TARGET set to 12G then you can mount shared memory to 13g like below.
As a root user,
# mount -t tmpfs shmfs -o size=13g /dev/shm
In order to make the settings persistence so that it will affect after restarting machine add an entry in /etc/fstab similar to the following:
shmfs /dev/shm tmpfs size=13g 0
# mount -t tmpfs shmfs -o size=13g /dev/shm
przy kolejnym sql>startup otrzymałem błąd:
ORA-01102:cannot mount database in EXCLUSIVE mode
The Oracle docs note this on the ora-01102 error:
ORA-01102 cannot mount database in EXCLUSIVE mode
Cause: Some other instance has the database mounted exclusive or shared.
Action: Shut down the other instance or mount in a compatible mode.
ORA-01102 occurs when you are mounting (opening) a database, typically because another instance is already opened in parallel (exclusive) mode.
To resolve ORA-01102, you should try opening the base, which causing the error, in parallel mode after shutting down other instances.  If these steps leave ORA-01102 unresolved, you may need to try restarting OracleService<SID>
Oracle DBA Forums contains a good explanation of  how ORA-01102 may also be thrown under false pretenses:
Chris Pena asked what the following error regards
SQL> startup force pfile=’/apps/oracle/product/10.2.0/db_1/dbs/inittest01.ora’
ORACLE instance started.
Answer (by Burleson):
The docs note:
ORA-01102: cannot mount database in exclusive mode
Cause: An instance tried to mount the database in exclusive mode, but some other instance has already mounted the database in exclusive or parallel mode.
Action: Either mount the database in parallel mode or shut down all other instances before mounting the database in exclusive mode.
The ORA-01102 is a “false” error in this regard (assuming that you are not using data guard), and this note may be helpful:
database is started in EXCLUSIVE mode by default. Therefore, the
ORA-01102 error is misleading and may have occurred due to one of the
following reasons:
- there is still an “sgadef<sid>.dbf” file in the “ORACLE_HOME/dbs”
- the processes for Oracle (pmon, smon, lgwr and dbwr) still exist
- shared memory segments and semaphores still exist even though the
database has been shutdown
- there is a “ORACLE_HOME/dbs/lk<sid>” file
The “lk<sid>” and “sgadef<sid>.dbf” files are used for locking shared memory.
It seems that even though no memory is allocated, Oracle thinks memory is
still locked. By removing the “sgadef” and “lk” files you remove any knowledge
oracle has of shared memory that is in use. Now the database can start.
Verify that the database was shutdown cleanly by doing the following:
1. Verify that there is not a “sgadef<sid>.dbf” file in the directory
% ls $ORACLE_HOME/dbs/sgadef<sid>.dbf
If this file does exist, remove it.
% rm $ORACLE_HOME/dbs/sgadef<sid>.dbf
2. Verify that there are no background processes owned by “oracle”
% ps -ef | grep ora_ | grep $ORACLE_SID
If background processes exist, remove them by using the Unix
command “kill”. For example:
% kill -9 <Process_ID_Number>
3. Verify that no shared memory segments and semaphores that are owned
by “oracle” still exist
% ipcs -b
If there are shared memory segments and semaphores owned by “oracle”,
remove the shared memory segments
% ipcrm -m <Shared_Memory_ID_Number>
and remove the semaphores
% ipcrm -s <Semaphore_ID_Number>
NOTE: The example shown above assumes that you only have one
database on this machine. If you have more than one
database, you will need to shutdown all other databases
before proceeding with Step 4.
4. Verify that the “$ORACLE_HOME/dbs/lk<sid>” file does not exist
5. Startup the instance
faktycznie w katalogu base/db11gr2/dbs
był plik lkORCL, który usunąłem po wcześniejszym zamknięciu bazy danych
przy kolejnym
sql> startup
dostałem błąd:
ORA-00205: Error in identifying control file, check alert log for more info
ale baza się otworzyła tylko nie zamontowała.
sprawdzam gdzie jest alert log:
sql> show parameter dump_dest
i szukam user_dump_dest
w logu jest komunikat:
ORA-00210: cannot open the specified control file
ORA-00202: control file:
ORA-27086: unable to lock file – already in use
zrobiłem kopię obu control files i skasowałem oryginały a potem znowu skopiowałem kopie pod oryginalne nazwy.
to rozwiązało problem i baza się uruchamia ale teraz wszystkie pliki dbf są zablokowane.
trzeba było wykasować plik base/db11gr2/dbs/lkORCL i przeładować system i wykonać komendę zaraz po uruchomieniu:
# mount -t tmpfs shmfs -o size=4g /dev/shm
instaluje oracle na winxp3
global databse name xp3orcl.winxp3
sid: xp3orcl
netca – oracle network configuration assistant
dbca – oracle database configuration assistant

Oracle notki – installation.

Zaszufladkowany do: Bazy danych,Oracle,PL/SQL,SQL — Tagi: — Jacek @ 11:29
database configuration assistant:
c:> dbca (w windowsach)
aby zapisać konfigurację bazy danych w windowsach i ewentualnie puszczać tworzenie instancji automatycznie:
c:\database> setup -record -destinationFile c:\database\basic.rsp (jest to tzw. response file)
uruchomi się instaler, ale na samym końcu nie nalży instalować tylko dać cancel
c:\database> setup -silent -responseFile c:\\database\basic.rsp
tworzenie bazy danych od podstaw:
najpierw należy stworzyć serwis:
oradim -new -sid test
potem należy utworzyć plik inittest.ora
CONTROL_FILES = (“c:\oracle\ctrlfiles\control01.ctl”, “c:\oracle\ctrlfiles\control02.ctl”, “c:\oracle\ctrlfiles\control03.ctl”)
BACKGROUND_DUMP_DEST = c:\oracle\product\10.2.0\admin\bdump
USER_DUMP_DEST = c:\oracle\product\10.2.0\admin\udump
DB_FILES = 1000
SHARED_POOL_SIZE=75m  (jest używane do przechowywanie poleceń sql)
potem uruchamiamy
sqlplus / as sysdba
sql> startup nomount pfile=’c:\oracle\product\10.2.0\db_1\database\inittest.ora’
pfile to parameter file
potem należy stworzyć plik do utworzenia samej bazy danych: create.sql
– create.sql
DATAFILE ‘c:\baza\system01.dbf’ SIZE 325M REUSE          (reuse – znaczy, że jeżeli plik już jest to zostanie nadpisany)
SYSAUX DATAFILE ‘c:\baza\sysaux01.dbf’ SIZE 300M REUSE
UNDO TABLESPACE “UNDO” DATAFILE ‘c:\baza\undo01.dbf’
logfile ‘c:\baza\redo01.log’ size 100m reuse,
‘c:\baza\redo02.log’ size 100m reuse,
‘c:\baza\redo03.log’ size 100m reuse;
sql> @create.sql

Oracle – notki, SQL, PL/SQL

Zaszufladkowany do: Bazy danych,Oracle,PL/SQL,Programowanie,SQL — Tagi: , , — Jacek @ 11:16
sql> host – aby dostać się do promptu hosta
c:> echo %oracle_sid% lub echo $oracle_sid$
c:> exit
po zalaogowaniu można wydać komendę:
sql> define
i wyświetlą się parametry informujące o tym jako kto jesteśmy podłączeni
będąc podłączonym można podłączyć się jako inny user
sql> connect sys as sysdba
Sprawdzenie jakie tabele są w schemacie użytkownika:
sql> select table_name from user_tables;
sql> desc ps$ (opis tabeli)
sql> set pagesize 200
sql> / (ponowne uruchomienie polecenia z buforu)
sql> l lub list – wyswietla to co jest w buforze
w buforze jest tylko ostatnie polecenie
jeżeli chcemy coś zmienić w buforze:
sql> 2
podajemy numer linii w której chcemy zrobić zmianę
sql> c/name/surename
i określamy (c – change) co na co chcemy zamienić
SQL – Structured Query Language
określenie w jakim formacie ma zostać wyświetlana data;
sql> alter session set nls_date_format=’mm/dd/yyyy’;
można określić jak inne dane mają być wyświetlane:
sql> col sal fromat $999,999.00
sql> col ename heading ‘Employee|Name’
Jeżeli chcemy coś dodać do bufora:
sql> 1
sql> a ,nazwisko
aby format danej kolumny był taki jak jakiejś innej można:
sql> col comm like sal heading “Commision”
aby kolumna była szersza:
sql> col job format a15
wyszyszczenie formatowania:
sql> col comm clear
sql> clear columns
jeżeli chcemy zachować ostatnią komendę z bufora:
sql> save plik.sql
sql> @plik.sql
zapis wyników:
sql> spool plik.txt
sql> spool off
sql> host
c:> type plik.txt
c:> exit
sql> spool plik.txt append
można robić zmiany bufora w edytorze:
i wyświetlić/zdefiniować edytor
define _editor
define _editor=c:\notepad
Jeżeli chcemy wstawić zmienną do zapytania
… where job=’&p’
sql> undefine p
aby wyświetlać po stronie:
sql> set pause on
sql> set pagesize 35
Plik z ustawieniami środowiska startowy:
tam trzeba umieścić plik:
sql> help index
sql> help define
zmiana hasła
sql> passw user1
Na serwerze aplikacji można uruchomić isqlplus, który pozwala na dostęp do bazy danych przez przeglądarkę internetową:
c:> isqlplusctl start
potem w przeglądarce

Miejsca, które odwiedzę :-)

Zaszufladkowany do: BLOG — Tagi: — Jacek @ 10:41

Tinto, Hiszpania

Ognista ciecz to hiszpańska rzeka Tinto, mająca długość 100 kilometrów i płynąca na terenie Andaluzji. Swą nietypową barwę zawdzięcza dużej zawartości minerałów metali ciężkich (np. żelaza). Jej pH wynosi 2, co oznacza, że jest bardzo kwaśna, wręcz żrąca! Płynie w okolicy miast: Valverde del Camino, La Palma del Condado, Moguer, Palos de la Frontera i Huelva.

Oko Afryki (Kalb ar-Riszat), Mauretania

Niesamowitą formację, nazywa się Okiem Afryki ze względu na jej charakterystyczny kształt. Kalb ar-Riszat znajduje się na Saharze, na terenie Mauretanii. Wygląda jak krater i rzeczywiście, badania wykazały, że jest to niedoszły wulkan.

Oracle (i)

Zaszufladkowany do: Oracle — Jacek @ 09:05

Oracle 11gR2 EE with RAC, Partitioning, Spatial (active/active)

Zarządzanie procesami biznesowymi:
Oracle Unified Business Process Management Suite. (active/active)

Repozytorium dokumentów:
Oracle Universal Content Management.

Oracle WebLogic Portal.

Infrastruktura cache:
Oracle Coherence EE

Oracle BPM Suite:

  • Oracle WebCenter Suite
  • Oracle Universal Content Management

Oracle WebCenter Suite:

  • Oracle WebCenter Services
  • Oracle WebCenter Interaction
  • Oracle WebLogic Portal
  • Oracle WebCenter Suite Spaces Component

BPEL – Business Proces Execution Language

27 grudnia 2010

Oracle Architecture (K1)

Zaszufladkowany do: Bazy danych,Oracle — Tagi: — Jacek @ 11:17

The term database refers to the physical storage of information, and the
term instance refers to the software executing on the server that provides access to
the information in the database.

Oracle’s database structures include tablespaces, control files, redo log files, archived
logs, block change tracking files, Flashback logs, and recovery backup (RMAN) files.

tablespace is a logical structure. Each tablespace is composed of physical structures called datafiles.
Oracle9i introduced the concept of Oracle Managed Files (OMFs), which enable
your database to automatically create, name, and delete, where appropriate, all the
files that make up your database.

The control file contains locations for other physical files that form the database: the
datafiles and redo log files.
It also contains key information about the contents and
state of the database, including:
• The name of the database
• When the database was created
• Names and locations of datafiles and redo log files
• Tablespace information
• Datafile offline ranges
• The log history and current log sequence information
• Archived log information
• Backup set, pieces, datafile, and redo log information
• Datafile copy information
• Checkpoint information

Datafiles contain the actual data stored in the database, the tables and indexes that
store data, the data dictionary that maintains information about these data structures,
and the rollback segments used to implement concurrency.

The first block of each datafile is called the datafile header (checkpoint structure).
From a physical point of view, a datafile is stored as operating system blocks.
From alogical point of view, datafiles have three intermediate organizational levels:
datablocks, extents, and segments. An extent is a set of data blocks that are contiguouswithin
an Oracle datafile. A segment is an object that takes up space in an Oracledatabase,
such as a table or an index that is composed of one or more extents.
OracleDatabase 10g added a Segment Advisor that greatly simplifies reclaiming
unusedspace in current database versions.

Redo log files contain a “recording” of the changes made to the database as a
resultof transactions and internal Oracle activities. In addition, redo log files are used
for “undo” operations when a ROLLBACK statementis issued.
If you do decide to suppress redo logging for certain operations, you would
include theNOLOGGING keyword in the SQL statement (index creation, podczas
odtwarzania nie będzie utworzony – trzeba będzie utworzyć go ponownie).
In addition tousing the NOLOGGING keyword in certain commands, you can also mark
a tableor an entire tablespace with the NOLOGGING attribute. This will suppress redoinformation
for all applicable operations on the table or for all tables in thetablespace.
Oracle writes synchronously to all redo log members.
LOG_ARCHIVE_START = TRUE (w initialization file, do 10g)

An Oracle instance can be defined as an area of shared memory and a collection of
background processes.
The area of shared memory for an instance is called the SystemGlobal Area, or SGA.
Oracle Database 10g introduced Automatic Shared Memory Management (ASM).
Whenever the MEMORY_TARGET (new to Oracle Database11g) or SGA_TARGET initialization
parameter is set, the database automatically distributesthe memory among various SGA
components providing optimal memory management.

The database buffer cache holds blocks of data retrieved from the database.

The shared pool caches various constructs that can be shared among users. Forexample, SQL queries
and query fragments issued by users and results are cached sothey can be reused if the same statement
is submitted again. PL/SQL functions arealso loaded into the shared pool for execution.
The sharedpool is also used for caching information from the Oracle data dictionary, which isthe
metadata that describes the structure and content of the database itself.

The redo log buffer caches redo information until it is written to the physical redolog files stored on a disk.

Large pool provides memory allocation for various I/O server processes, backup, and recovery,
and provides session memory where shared servers and Oracle XA for transactionprocessing are used.

Java pool provides memory allocation for Java objects and Java execution, including datain the
Java Virtual Machine in the database.

Streams pool provides memory allocation used to buffer Oracle Streams queued messages in the SGA
instead of in database tables and provides memory for capture and apply.

Dynamic initialization parameters available for these pools include LARGE_POOL_SIZE, JAVA_POOL_SIZE,
and STREAMS_POOL_SIZE. These are automatically setif MEMORY_TARGET or SGA_TARGET is specified.

The PGA (Process Global Area) consists of session memory and a private SQL area. Thememory amount can
be controlled by setting the PGA_AGGREGATE_TARGET initializationparameter. (automatyczne zarządzanie
od 10g) As of OracleDatabase 11g, PGA memory allocation is automatically tuned along with the SGA memory
allocations by setting MEMORY_TARGET.

Background Processes:

Database Writer (DBWn)
Writes database blocks from the database buffer cache in the SGA to the datafileson disk.

Log Writer (LGWR)
Writes the redo information from the log buffer in the SGA to all copies of thecurrent redo
log file on disk.

System Monitor (SMON)
SMON performscrash recovery when the instance is started after a failure and coordinates
andperforms recovery for a failed instance when youhave more than one instanceaccessing
the same database, as with Real Application Clusters. SMON alsocleans up adjacent pieces of
free space in the datafiles by merging them into onepiece and gets rid of space used for sorting
rows when that space is no longer needed.

Process Monitor (PMON)
Watches over the user processes that access the database.

Archiver (ARCn)
Reads the redo log files once Oracle has filled them and writes a copy of the usedredo log files
to the specified archive log destination(s).

Checkpoint (CKPT)
Updates datafile headers whenever a checkpoint is performed.

Recover (RECO)
Automatically cleans up failed or suspended distributed transactions.

Optional background processes used when shared server configurations aredeployed.

Global Cache Service (LMS)
Manages resources for Real Application Clusters and interinstance resourcecontrol.

Job Queue
Provides a scheduler service used to schedule user PL/SQL statements or proceduresin batch.

Queue Monitor (QMNn)
Monitors Oracle Streams message queues with up to 10 monitoring processessupported.

Automatic Storage Management (ASM) processes
RBAL coordinates rebalancing of activities for disk groups. ORBn performs theactual rebalancing.
ASMB provides communication between the database andthe ASM instance.

The Data Dictionary
A set of metadata that describes the data structureincluding table definitions and integrity constraints.

Starsze wpisy »

Strona startowa: