Antynet.pl protestuje przeciwko podpisaniu przez Polskę umowy ACTA.
Dlaczego? Dlatego.

LINUX MAIL, MAILX

Ściąga Admina Komentarze (0) »

mail #read
mail -f #read from mbox file

? | l #list commands

z+ #screen forward
z- #screen backward
= #show nr of current message
+ #next message
- #previous message
$ #last message
h #show headers of all
to * #as above, different format

si #size current message
p #print current message
p 3 #print 3-rd message
f *#list all mails with headers
h #list 18 mails with headers

d #delete current message
d 3-5 #delete messages from 3 to 5
u #undelete message
U #set message as unread

q #save and exit
x #exit without save

fo #list directories

mail -s “[title]” #send
set #list parameters

ORACLE FLASHBACK

Oracle Komentarze (0) »

FLASHBACK DEPEND ON UNDO DATA

-conditions:
UNDO_MANAGEMENT=AUTO
UNDO_RETENTION=900 #(in seconds 900 equal 15min, if value is extended UNDO tablespace will be increased also)
only for DML because FLASHBACK use data directory, but DDL cause ORA-01466
only for DELETE because TRUNCATE are not write in UNDO tablespace
recover delete rows:

INSERT INTO [table] (SELECT * FROM [table] AS OF TIMESTAMP TO_TIMESTAMP(’2008-01-01 10:00:00′,’YYYY-MM-DD HH24:MI:SS’) MINUS SELECT * FROM [table];

recover table:
FLASHBACK TABLE [table] TO TIMESTAMP TO_TIMESTAMP(’2008-01-01 10:00:00′,’YYYY-MM-DD HH24:MI:SS’);
SELECT versions_xid FROM [table] VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP ( ‘2008-01-01 08:00:00′,’YYYY-MM-DD HH24:MI:SS’) and to_timestamp ( ‘2008-01-01 08:10:00′,’YYYY-MM-DD HH24:MI:SS’);
SLECT * FROM flashback_transaction_query WHERE xid = HEXTORAW (’[above']);

FLASHBACK DEPEND ON FLASHBACK LOGS

- conditions:
SELECT log_mode,flashback_on FROM V$DATABASE;
ARCHIVELOG mode is necessary, in parameter LOG_ARCHIVE_DEST_n

DB_RECOVERY_FILE_DEST #init param for flashback logs space

DB_RECOVERY_FILE_DEST_SIZE #init param for flasback logs size
DB_FLASHACK_RETENTION_TARGET #init param for flashback log time store
STARTUP MOUNT

ALTER DATABASE FLASHBACK ON

recovery:

STARTUP MOUNT
FLASHBACK DATABASE TO TIMESTAMP SYSDATE-1 | TO TIMESTAMP to_timestamp(’2009-09-28 11:00′,’yyyy-mm-dd hh24:mi’) | TO SCN [scn#];
* ALTER DATABASE OPEN READ ONLY;
* check data by SELECT command
* SHUTDOWN IMMEDIATE;
* STARTUP MOUNT;
* ALTER DATABASE OPEN RESETLOGS;
futhermore:
SELECT estimated_flashback_size FROM v$flashback_database_log; #estimate size for flashback logs in Bytes
DB_FLASHBACK_RETENTION_TARGET #estimate depends on present load

SELECT oldest_flashback_scn, oldest_flashback_time FROM v$flashback_database_log; #oldest point which recovery is possible (if you want to chec, delete oldest flashback log and oldest point will change)
SELECT * FROM v$flash_recovery_area_usage;
SELECT * FROM v$recovery_file_dest;

SELECT SCN_TO_TIMESTAMP(10213123) FROM DUAL;


RECYCLEBIN

- delete table:
DROP TABLE [table_name]
- check “recyclebin”
SHOW RECYCLEBIN
- recover
FLASHBACK TABLE [table_name] TO BEFORE DROP;
- delete without “recyclebin”
DROP TABLE [table_name] PURGE;
- purge “recyclebin”
PURGE TABLE [table_name];
PURGE TABLESPACE [ts_name];
PURGE TABLESPACE [ts_name] USER [user];
PURGE RECYCLEBIN
PURGE DBA_RECYCLEBIN;

LINUX CRYPTSETUP

Bez kategorii Komentarze (0) »

create:

cryptsetup –verbose –verify-passphrase luksFormat /dev/sda1

open:

cryptsetup luksOpen /dev/sda1 usb

format:

mkfs.ext2 /dev/mapper/usb

mount:

mount /dev/mapper/usb /usb

umount:

umount /usb

close:

crypsetup luksClose usb

on disk

cryptsetup luksFormat [partition]
cryptsetup luksOpen [partition] [name]
mkfs.ext4 /dev/mapper/[name]
mount /dev/mapper/[name]
cryptsetup luksClose [name]


start during boot:
cryptsetup luksDump /dev/mapper/vg_euplnb1001-lv_01 |grep UUID >> /etc/crypttab

/etc/crypttab

[name] /dev/disk/by-uuid/220ec734-ccbd-497a-8632-eae4f28608ae none luks

/etc/fstab

/dev/mapper/[name] /mnt/[mount_point] ext4 defaults 0 0

LINUX TCPDUMP

Bez kategorii Komentarze (0) »
tcpdump -XXnve -i eth1 ‘arp [7]==2′ -s0

#read data with header in ASCI and HEX – use option -XX, which 8-th byte in ARP header will be 2(DEC) – count from 0 to 7, means answer on ARP broadcast

tcpdump -XXnve -i eth1 ‘tcp [13]==18′ -s 0

#read data as above, which 14th byte in TCP header:

18(DEC) = 12 (HEX) = 00010010(BIN) means set flags SYN and ACK, C|E|U|A|P|R|S|F where letters mean flags in bits code0 0 0 1 0 1 1 0 means set flag ACK,RST,SYN - 22(DEC) and 16(HEX)

describe TCPDUMP output

ARP answer on  broadcast:
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes12:55:53.464953 00:c0:a8:fe:6f:f2 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: arp who-has 192.168.1.212 tell 192.168.1.240x0000:  ffff ffff ffff 00c0 a8fe 6ff2 0806 0001  ..........o.....0x0010:  0800 0604 0001 00c0 a8fe 6ff2 c0a8 0118  ..........o.....0x0020:  0000 0000 0000 c0a8 01d4 0000 0000 0000  ................0x0030:  0000 0000 0000 0000 0000 0000            ............

Description in order:
1w/8k/1-4 means 1 row/8 column/position form 1 to 4:

1w/1k/1-...1w/3k/-4 destination MAC1w/4k/1-...1w/6k/-4 source MAC1w/7k/1-4  typ ramki: 0806 - ARP; 0800 - IP; 8035 - reverse ARP; 8137 - IPX------------------------START IP protocol----------------------------------------------1w/8k/1-4  device address type: 0001 - Ethernet2w/1k/1-4  protocol address type: 0800 - IP2w/2k/1-2  length device address in Btes2e/2k/3-4  length proctocol address in Bytes2w/3k/1-4  operation: 0001 - question; 0002 - answer2w/4k/1-...2w/6k/-4 sender MAC2w/7k/1-...2w/8k/-4 sender IP3w/1k/1-...3w/3k/-4 recipient MAC3w/4k/1-...3w/5k/-4 recipient IP

send 1 tcp packet with flags SYN,ACK,RST and data “ABC” which means 3 Bytes from file “wy” by hping3:
hping3 192.168.1.253 -S -A -R -E wy -d 3 -c 1

we receive:

ROUTER:/# tcpdump -XXnve -i eth1 'tcp [13]==22' -s0 and host 192.168.1.4tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes13:30:10.508842 00:0c:76:e7:f1:d3 > 00:30:4f:23:b8:4e, ethertype IPv4 (0x0800), length 60: IP (tos 0x0, ttl  64, id 57585, offset 0, flags [none], length: 43) 192.168.1.4.2029 > 192.168.1.253.0: SR [tcp sum ok] 1842019365:1842019368(3) ack 2138831316 win 512 [RST ABC]0x0000:  0030 4f23 b84e 000c 76e7 f1d3 0800 4500  .0O#.N..v.....E.0x0010:  002b e0f1 0000 4006 158a c0a8 0104 c0a8  .+....@.........0x0020:  01fd 07ed 0000 6dca fc25 7f7b f9d4 5016  ......m..%.{..P.0x0030:  0200 ba09 0000 4142 4300 0000            ......ABC...----------------------------------------------------------------------------------------1w/1k/1-...1w/3k/-4 destination MAC1w/4k/1-...1w/6k/-4 source MAC1w/7k/1-4  typ ramki: 0806 - ARP; 0800 - IP; 8035 - reverse ARP; 8137 - IPX------------------------START IP protocol----------------------------------------------1w/8k/1   wersja protokołu1w/8k/2   header length in Bytes1w/8k/3-4  TOS type2w/1k/1-4  whole length hader plus data2w/2k/1-4  datagram ID2w/3k/1   fragmentation sign2w/3k/2-4  shift2w/4k/1-2  TTL field2w/4k/3-4  protocol type: 06 - TCP; 17 - UDP; 01 - ICMP;2w/5k/1-4  control sum header2w/6k/1-...2w/7k/-4 sender IP2w/8k/1-...3w/1k/-4 recipient IP------------------------START TCP protocol---------------------------------------------3w/2k/1-4  source port3w/3k/1-4  destination port3w/4k/1-...3w/5k/-4 output data order nr3w/6k/1-...3w/7k/-4 input data order nr3w/8k/1-2  header length3w/8k/3-4  cody bits: 02 - SYN; 12 - SYN,ACK; 16 - SYN,ACK,RST4w/1k/1-4  input data window4w/2k/1-4  header control sum4w/3k/1-4  pointer data------------------------START data----------------------------------------------------4w/4k/1-  dane 41,42,43 in ASCI means ABC

LINUX POSTFIX

Bez kategorii Komentarze (0) »
#################################################################
# USTAWIENIA GLOWNE #
#################################################################

command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix

# komunikat wyswietlany po polaczeniu z postfixem
smtpd_banner = $myhostname ESMT

mail_name = Microsoft (5.0.2195.5329)
# jw wieksze zmiany w zrodle w plik_postfix/src/bounce/bounce_notify_until.c

# setgid_group = postdrop

# FQDN maszyny
myhostname = [domena]
# FQDN dla poczty wychodzacej taka jak hostname to co bedzie w polu
myorigin = [domena]
# FQDN bez nazwy hosta
mydomain = [domena]
#dla jakich domen serwer bedzie dostarczal poczte lokalnie, poczta przychodzaca akceptowana wylacznie na te domeny
mydestination = [domena],localhost.localdomain, localhost
# adresy sieci,dla ktorych serwer poczty bedzie wykonywal relay, z ktorych bedzie mozna przekierowac poczte(relay)
mynetworks = 127.0.0.0/8
# domyslnie postfix przetwarza poczte od klientow z mynetworks oraz od klientow z relay_domains moze byc /plik w ktorym beda te domeny, dla innych lokalizacji pop-before-smtp lub pop-before-smtp
relay_domains = [domena]

# listy baz aliasow calkowicie kontrolowane przez postfixa
alias_database = hash:/etc/aliases
# lista baz aliasow type:name tutaj typ – hash a name – sciezka do pliku
alias_maps = hash:/etc/aliases
# o skladni [nazwa:wartosc] gdzie nazwa – nazwa alisu a wartosc – adres,forward na dany adres,
#wartosc – |komenda – na przyklad przekazanie do procmaila,
#wartosc – :include:/plik – mail wysylany do adresatow w plik,
#wartosc = /plik – mail wpisywany do pliku gdy /plik/ to typ Maildir

# allow_mail_to_commadns = alias, forward #aby powyzsze komendy mogly byc wykonane nalezy dopisac jeszcze include
# allow_mail_to_files = alias, forward #aby powyzsze komendy mogly byc wykonane nalezy dopisac jeszcze include

# mailbox_command = procmail -a “$EXTENSION”
# obrabianie maili przez procmaila

mailbox_size_limit = 51200000
message_size_limit = 20480000
inet_interfaces = all

# ilosc wolnego miejsca na dysku w systemie plikow kolejek ktorego postfix nie moze przekroczyc, nie bedzie wariowal po zapelnieniu dysku a jedynie odsylal wiadomosci
queue_minfree = 40000000

# notify clases
#ustalamy jakie komunikaty bede kierowane na adres postmaster@domena parametry ponizej
#bounce #wysyla postmasterowi kopie niedostarczonej poczty
#2bounce
#delay #inf o opoznionej poczcie
#policy #inf o odrzuconych zadaniach przez postfix np przez filtry
#protocol #inf o wywolaniu niezaimplementowanych komend
#resource #inf o poczcie nie wyslanej z powodu klopotow z zasobami serwera
#software #inf o poczcie nie wyslanej z powodu klopotow programowych

#relayhost =
#disable_dns_lookups = yes #logowanie IP a nie nazw
#sender_canonical_maps = hash:/plik #mapowanie uzytkownikow z /plik [user user_po_zmapowaniu] i postmap /plik
#relocated_maps = hash:/plik #wysylanie nadawcy maila odpowiedzi od razu z /plik [user "user zmienil adres na user@wp.pl"]
#home_mailbox #ustawienie typu skrzynki pocztowej domyslnie /var/mail/user gdy Maildir/ to kazdy mail w innym pliku
#default_proces_limit #kontrola procesow domyslnie 100
#initial_destination_concurrency #liczba polaczen do zdalnego hosta
#default_destination_concurrency_limit #max ilosc poloczen > liczby procesow
#local_destination_concurrency_limit #ilosc jednoczesnych maili do jednego uzytkownika
#queue_run_delay #czestotliwosc z jaka skanuje kolejke deferred w poszukiwaniu poczty do wyslania domyslnie 1000s
#maximal_queue_lifetime #jak dlugo ma byc przechowywana poczta ktorej nie udalo sie wyslac np 5s to 5 sekund 5d to 5 dni
#minimal_backoff_time #min czas przez jaki wiadomosc nie bedzie przetwarzana po nieudanej probie dostarczenia
#maximal_backoff_time #max jw
#qmgq_message_recipient_limit #dlugosc listy niedostepnych hostow
#line_length_limit #max dlugosc lini tekstu po przekroczeniu ktorej linia zostanie podzielona
#header_size_limit #max dlugosc naglowka
#extract_recipient_limit #ile adresow odbiorcy zostanie wyluskanych z naglowka
#bounce_size_limit #ile bajtow wiadomosci zostanie zwrocone gdy przekroczy sie wartosc powyzej
#qmgr_message_recipient_limit #liosc struktur adresow odbiorcy w pamieci
#qmgr_message_active_limit #max liczba maili w kolejce active
#duplicate_filter_limit #ilosc adresow odbiorcy pamietanych przez local i cleanup
#always_bcc = user@linux.pl #kopia kazdego maila zostanie wyslana do user@linux.pl
#command_time_limit #czas oczekiwania na |polecenie z pliku aliasow
#usluga_time_limit #czas transportu maila przez program pipe do polecenia
#luser_relay = admin@linux.pl #przechwytywanie poczty dla uzytkownikow ktorzy nie istnieja w systemie
# debug_peer_list = 1.2.3.4 #?do logow

#################################################################
# WIRTUALNE DOMENY #
#################################################################

# virtual_maps = hash:/plik #w /plik wpisuje sie w pierwszej lini [linux.pl cokolwiek] a w nastepnych [userwirt@linux.pl user
#to znaczy ze mail dla usrewirt trafia do user
#wydac komende postmap /plik

# transport_maps = hash:/plik #w /plik wpisujemy [linux.pl virtual] co oznacza ze domena linux.pl jest obslugiwana wirualnie
# virtual_mailbox_base = /home/virtuals #lokalizacja wirualnych skrzynek /home/virtuals – podstawa
# virtual_mailbox_maps = hash:/plik #tablica dopasowania /plik wpisuje sie [user@linux.pl /sciezka] to dla danego usera sciezka to /home/virtuals/sciezka
# virtual_uid_maps = hash:/plik #w /plik wpisujemy user@linux.pl 505
# virtual_gid_maps = static:1000 #dla kazdego uzytkownika zostanie uzyty gid=1000

# virtual_maps = hash:/etc/postfix/virtual
# virtual_mailbox_base = /home/virtuals
# virtual_mailbox_maps = hash:/

#################################################################
# BEZPIECZENSTWO #
#################################################################

smtpd_helo_required = yes
smtpd_recipient_limit = 50
# max liczba wysylanych na raz wiadomosci

strict_rfc821_envelopes = yes

smtpd_delay_reject = no
# gdy yes to restrykcje sprawdzane dopiero po otrzymaniu adresu odbiorcy

smtpd_error_sleep_time = 3
# czas na jaki przerywa dzialanie serwer jesli powstanie blad w sesji SMTP domyslnie 5s

smtpd_soft_error_limit = 3
# liczba bledow sesji SMTP po przekroczeniu ktorej serwer zerwie polaczenie domyslie 10s

smtpd_hard_error_limit = 5
# po ilu bledach polaczenie zostanie przerwane domyslnie 100

# smtpd_sender_restrictions = #sprawdzane poczty na podstawie adresu odbiorcy listu (from)
# reject_unknown_client #odrzucenie ip ktorego nie ma w DNS
# reject_unknown_sender_domain #odrzuca mail jesli po @ nie ma wpisu w DNS
# reject_unknown_recipient_domain #
# reject_invalid_hostname #
# reject_non_fqdn_hostname #odrzuca mail jesli czesc po @ nie jest pelna
# check_sender_access hash:/plik #przeszukuje /plik ktory zawira co zrobic np heniek@ reject lub heniek@wp.pl ok lub wp.pl reject
#aby dzialalo wpisac postmap /plik aby utworzyc /plik
.db
# reject_non_fqdn_sender

smtpd_sender_restrictions = reject_unknown_client, reject_unknown_sender_domain, reject_invalid_hostname,reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_rbl_client dynamic.dnsbl.rangers.eu.org, reject_rbl_client spam.dnsbl.rangers.eu.org, check_relay_domains

# smptd_recipient_restrictions = #dla adresu odbiorcy listu, na podstawie adresu nadawcy listu(rcpt to)
# reject_non_fqdn_recipient #odrzuc list jezeli adres odbiorcy nie jst pelny
# reject_unknown_recipient_domain #odrzuc jezeli adres docelowy nie istnieje w DNS
# check_recipient_access hash:/plik #przeszukuje plik podany jako argument i na jego podstawie decyduje czy wyslac list
# permit_auth_destination #przyjmij mail jesli nasz serwer jest jego celem lub adres przeznaczenia zawiera sie w zmiennaj $relay_domains
# reject_unauth_destination #jw tylko odrzuc list jezeli nasz serwer nie jest jego celem …
# check_relay_domains #jesli ip ktory wysyla pasuje do relay_domains lub celem jest ip z relay_domains to przyjmij, w przeciwnym wypadku odrzuc
# reject_rbl_client /plik_z_lista_rbli #
# reject_unknown_hostname
# reject_non_fqdn_hostname

smtpd_recipent_restrictions = reject_unknown_recipient_domain, reject_non_fqdn_recipient, reject_unauth_destination, check_relay_domains

# smtpd_client_restrictions = #dla hosta laczacego sie z serwerem, sprawdzenie komputera z ktorego wysylana jest wiadomosc
# check_sender_access regexp:/etc/postfix/bany, #
# permit_mynetworks, #pozwolenie dla hostow ujetych w zmiennej $mynetworks
# reject_unknown_client, #odrzucenie ip ktorego nie ma w DNS
# check_helo_access hash:/etc/postfix/helo.access, #
# check_client_access hash:/plik, #sprawdaz ip/nazwe kompa w /plik i pisze co z nim robic np 192.168.1.15 OK
# check_client_access cidr:/plik #baza cidr w /plik pozwala na blokowanie zakresow ip np dla korei i chin z www.okean.com
# permit #dwa zachowania gdy na koncu gdy powyzsze reguly nie pasuja
# reject

smtpd_client_restrictions = reject_unknown_client, reject_rbl_client dynamic.dnsbl.rangers.eu.org, reject_rbl_client, spam.dnsbl.rangers.eu.org

# smtpd_helo_restrictions = #helo $hostname
# reject_unauth_pipelining #gdy serwer smtp ktory wysyla do nas maila nie czeka na odpowiedz to go odrzuc
# reject_invalid_hostname #
# permit_mynetworks, #
# check_helo_access hash:/plik #/plik zawiera [ REJECT you aren't me
# localhost REJECT you aren't me]
# reject_rbl_client /plik #lista rbli

smtpd_helo_restrictions = reject_invalid_hostname, reject_invalid_hostname, check_helo_access hash:/etc/postfix/helo_access

mailbox_command = /usr/bin/procmail

content_filter=smtp-amavis:[127.0.0.1]:10024

#################################################################
# DODATKOWE #
#################################################################
#apt-get install pflogsumm
#polecenie pflogsumm.pl -e -d yesterday /var/log/mail.log
#dodatkowo polecenie postsuper
#dodatkowo mailq pokazuje kolejke
#dodatkowo postcat /var/spool/postfix/deferred/0/0/plik |more pokazuje skolejkowana wiadomosc

ORACLE STATISTICS

Oracle Komentarze (0) »

exec DBMS_STATS.GATHER_SCHEMA_STATS(’[username]‘, cascade=>TRUE);
exec #dla tabeli wraz z indeksami DBMS_STATS.GATHER_TABLE_STATS(’[username','[table_name]‘,cascade=>TRUE); #dla całego schematu wraz z indeksami

TIMED_STATISTICS = TRUE


SELECT last_analysed FROM DBA_TABLES – data zbierania statystyk

EXPLAIN PLAN
$oracle_home/rdbms/admin/utlxplan.sql – tworzy tabelę PLAN_TABLE dla generowania planów poprzedzonych:
EXPLAIN PLAN SET STATEMENT_ID = ‘[nazwa]‘ FOR SELECT …

TRACE
TIMED_STATISTICS TRUE
ALTER SESSION SET SQL_TRACE = TRUE – generacja pliku śladu dla zapytań(obciąża bazę),
który będzie znajdował się w katalogu;
show parameter UDUMP; (USER DUMP DEST) #uruchomiony przez usera
show parameter BDUMP; (BACKGROUND DUMP DEST) #uruchomiony przez proces tła
MAX_DUMP_FILE_SIZE #max rozmiar pliku
[instance_name]_[process_name]_[process_id].trc #tracefile format

włączenie:
ALTER SESSION SET EVENTS ‘10046 trace name context forever, level 8′

  • level 0 #wyłączone
  • level 1 #default
  • level 4 #default + bind variable values
  • level 8 #default + wait event information
  • level 12 #level 4 + level 8

wyłączenie:
ALTER SESSION SET EVENTS ‘10046 trace name context off’

włączenie dla innego usera;
ORADEBUG SETOSPID [nr z v$process];
ORADEBUG UNLIMIT;
ORADEBUG EVENT 10046 TRACE NAME CONTEXT FOREVER, LEVEL8;
wyłączenie dla innego usera:
ORADEBUG EVENT 10046 TRACE NAME CONTEXT OFF;

in 10g is available package DBMS_MONITOR:
- SESSION LEVEL
- turn on (level 8)
exec DBMS_MONITOR.SESSION_TRACE_ENABLE(
session_id => [sid],
serial_num => [serial],
waits => TRUE,
binds => FALSE);
- turn off:
exec DBMS_MONITOR.SESSION_TRACE_DISABLE(
session_id=> [sid],
serial_num=> [serial]);
- check:
SELECT sql_trace,sql_trace_waits,sql_trace_binds FROM v$session;
- DATABASE LEVEL
- turn on:
exec DBMS_MONITOR.DATABASE_TRACE_ENABLE(
waits => TRUE,
binds => TRUE,
instance_name > NULL);
- turn off:
exec DBMS_MONITOR.DATABASE_TRACE_ENABLE(
instance_name > NULL);
- check:
SELECT * FROM dba_enabled_traces;
- CLIENT LEVEL
- turn on:
exec DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE(
client_id => ‘client_name’,
waits => TRUE,
binds => FALSE);
- turn off:
exec DBMS_MONITOR.CLIENT_ID_TRACE_DISABLE(client_id => ‘client_name’);
- check:
SELECT * FROM dba_enabled_traces;
- COMPONENT LEVEL (11g)
- turn on :
exec DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE(service_name => ’serv_name’,
module_name => ‘module’,
action_name => ‘action’,
waits => TRUE,
binds => FALSE,
instance_name => NULL);
- turn off:
exec DBMS_MONITOR.SERV_MOD_TRACE_DISABLE(service_name => ’serv_name’,
module_name => ‘module’,
action_name => ‘action’,
instance_name => NULL)
- check:
SELECT * FROM dba_enabled_traces;

TKPROF
! tkprof czyta pliki do 2GB
jeżeli plik trace jest większy niż 2GB należy utworzyć plik fifo:
mkfifo [plik_fifo]
wywołać komendę tkprof na pliku fifo:
TKPROF [plik_fifo] [output_file] …
przejść do innej konsoli i wywołać:
cat [plik_trace] > [plik_fifo]

TKPROF [trace_file] [output_file] SORT=([option] if option sort is not set, order is similar as tracefile, many options means that TKPROF sums the value of the options) PRINT=[only with sort opition - limit number of SQL in output file] SYS=[no - dont list SQL executed by SYS user]

options:

PARSE EXEC FETCH
PRSCNT EXECNT FCHCNT number of times
PRSCPU EXECPU FCHCPU CPU time spending
PRSELA EXEELA FCHELA elapsed time spent
PRSDSK EXEDSK FCHDSK number of disk physical reads
PRSQRY EXEQRY FCHQRY number of buffers for consistent read
PRSCU EXECU FCHCU number of buffers for current read
EXEROW FCHROW number of rows processed, fetched
PRSMIS EXEMIS FCHMIS number of library cache misses

example:
tkprof ../db_ora_10196.trc db_ora_10196-1.txt sys=no sort=prsela,exeela,fchela

dobre wyjaśnienie na blogu
podane za Oracle® Database Performance Tuning Guide
10g Release 2 (10.2)
Part Number B14211-03:

CALL Value Meaning
PARSE Translates the SQL statement into an execution plan, including checks for proper security authorization and checks for the existence of tables, columns, and other referenced objects.
EXECUTE Actual execution of the statement by Oracle. For INSERT, UPDATE, and DELETE statements, this modifies the data. For SELECT statements, this identifies the selected rows.
FETCH Retrieves rows returned by a query. Fetches are only performed for SELECT statements.

SQL Trace Statistic Meaning
COUNT Number of times a statement was parsed, executed, or fetched.
CPU Total CPU time in seconds for all parse, execute, or fetch calls for the statement. This value is zero (0) if TIMED_STATISTICS is not turned on.
ELAPSED Total elapsed time in seconds for all parse, execute, or fetch calls for the statement. This value is zero (0) if TIMED_STATISTICS is not turned on.
DISK Total number of data blocks physically read from the datafiles on disk for all parse, execute, or fetch calls.
QUERY Total number of buffers retrieved in consistent mode for all parse, execute, or fetch calls. Usually, buffers are retrieved in consistent mode for queries. Consistent mode czyli spójny tryb wszystkich danych dla SCN z którego pochodzi statement, bufory pochodzące z tego trybu obejmują te z undo, konieczne dla utrzymania stanu z tego samego SCN
CURRENT Total number of buffers retrieved in current mode. Buffers are retrieved in current mode for statements such as INSERT, UPDATE, and DELETE.

SQL Trace Statistic Meaning
ROWS Total number of rows processed by the SQL statement. This total does not include rows processed by subqueries of the SQL statement.

AUTOTRACE
[oracle_home]/sqlplus/admin/plustrce.sql – skrypt do ustawienia roli PLUSTRACE potrzebnej do korzystania z AUTOTRACE
SET AUTOTRACE TRACEONLY | ON EXPLAIN | ON STATISTICS | ON EXPLAIN STATISTICS #bez wyników zapytań
SET AUTOTRACE ON EXPLAIN | ON STATISTICS | ON EXPLAIN STATISTICS #wraz z wynikami zapytań
SET AUTOTRACE OFF

ZBIERANIE STATYSTYK (przestarzałe)
utlbstat.sql – początek (usuwanie tabel zawierających kopie V$ i ponowne odtworzenie i zebranie tam nowych danych
utlestat.sql – koniec (generacja reportu report.txt

STATSPACK
$oracle_home/rdbms/admin/spcreate.sql – uruchamia poniższe skrypty:
$oracle_home/rdbms/admin/spcusr.sql – tworzenie usera PERFSTAT (log w spcusr.lis)
$oracle_home/rdbms/admin/spctab.sql – tworzy tabele (log w spctab.lis)
$oracle_home/rdbms/admin/spckg.sql – tworzy pakiety (log w spcpkg.sql)
EXECUTE STATSPACK.SNAP; – generacja migawki (punktu w którym zbierane są statystyki)
EXECUTE STATSPACEK.STATSPACK_MODIFY_PARAMETERS – zmiana parametrów zbierania migawek
$oracle_home/rdbms/admin/spreport.sql – generuje raport
$oracle_home/rdbms/admin/spauto.sql – generuje joba dla migawek gdzie interwał:
SYSDATE+1 – raz dziennie
SYSDATE+1/48 – raz na 1/2 h
SYSDATE+1/24 – raz na 1 h
$oracle_home/rdbms/admin/sptrunc.sql – usuwanie zawartości wszystkich tabel
$oracle_home/rdbms/admin/sppurge.sql – usuwanie w/g migawek
$oracle_home/rdbms/admin/spdrp.sql – uruchamia poniższe skrypty:
$oracle_home/rdbms/admin/spdtab.sql – usuwa tabele i pakiety
$oracle_home/rdbms/admin/spdusr.sql – usuwa usera PERFSTAT

DBMS_STATS
pakiet służy do zbierania statystyk dla optymalizatora kosztowego wyzwalany przez GATHER_STATS_JOB
SELECT * FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME = ‘GATHER_STATS_JOB’; $oracle_home/rdbms/admin/dbmsstat.sql – specyfikacja pakietu
$oracle_home/rdbms/admin/prvtstat.plb – ciało pakietu

select * from dba_hist_sql_plan where options=’FULL SCAN’ and operation=’TABLE’ and object_owner like ‘%[user]%’;
WordPress - Hosting: Twój hosting - Skórka: N.Design Studio - Spolszczenie: Adam Klimowski.
RSS wpisów RSS komentarzy Zaloguj