wtorek, 25 listopada 2014

Automatic Workload Repository (AWR)

Jedno z narzędzi do diagnostyki wydajności Oracle to Automatic Workload Repository (AWR)

Statystyki wydajnościowe, to dane, opisujące np.:
– działanie systemu
– sesje użytkowników,
– zapytania
– serwisów

Zaczynamy 
Tworzymy repozytorium dla istniejącego schematu np. HR lub możemy stworzyć nowy schemat
Repozytorium AWR stanowi podstawę działania wszystkich mechanizmów automatycznego strojenia
bazy danych.
Parametr DBA_HIST_SNAPSHOT to dane o migawkach bazy danych znajdujących się w repozytorium AWR. Zawierają one identyfikator migawki oraz przedział czasowy, którego ona dotyczy. Domyślnie jest to jedna godzina.

Przyznajemy uprawnienia

grant select on V_$SQL to HR;
grant select on V_$SQL_PLAN to HR;
grant execute on dbms_lock to HR;

cdn..

środa, 17 września 2014

Role predefiniowane

CONNECT,
RESOURCE,
DBA,
EXP_FULL_DATABASE,
IMP_FULL_DATABASE
EXECUTE_CATALOG_ROLE,
DELETE_CATALOG_ROLE,
SELECT_CATALOG_ROLE.


nazwa roli CONNECT nazwa przydzielonego uprawnienia
CREATE CLUSTER
CREATE DATABASE LINK
CREATE SEQUENCE  
CREATE SESSION
CREATE SYNONYM
CREATE TABLE
CREATE VIEW

nazwa roli RESOURCE nazwa przydzielonego uprawnienia
CREATE CLUSTER
CREATE INDEXTYPE
CREATE OPERATOR
CREATE PROCEDURE
CREATE SEQUENCE
CREATE TABLE
CREATE TRIGGER
CREATE TYPE
UNLIMITED TABLESPACE

środa, 10 września 2014

Ekstrakt schema

Ekstrakt schema HR struktura (metadane) i dane tzn wykonamy ekstrakt wszystkie obiekty -tabele, uprawnienia...

W skrypcie został użyty mechanizm DROP usunie gdy istnieją tabele, DELETE usunie gdy istnieją rekordy przed wykonaniem instrukcji INSERT


Link: skrypt do pobrania

Płatnik ZUS usunięcie kontekstu

Jeśli nie używamy kontekstu (Płatnika) możemy go usunąć wraz z jego danymi.
Jest to opcja przydatna głównie dla biur rachunkowych, które nie rozliczają się z danym Płatnikiem przez dłuższy czas.
W ten sposób możemy w bezpiecznie usunąć nadmiar danych występujący w naszej bazie SQL. Przed przystąpieniem wykonania skryptu SQL wykonaj backup bazy.
Z poziomu bazy MS SQL  wykonujemy zapytanie gdzie pole ID_PLATNIK oznacza numer Płatnika

SELECT DISTINCT p.id AS IDENTYFIKATOR, p.nazwaskr AS SYMBOL, p.statuspt, p.STATUS_POTW_W_ZUS, pi.NIP, pi.REGON,
pi.PESEL, pi.NAZWASKR AS PI_NAZWASKR, pi.NAZWISKO, pi.IMIEPIERW,
pi.RODZDOK, pi.SERIANRDOK, pi.DATAURODZ, p.idbiurarach
FROM platnik p LEFT OUTER JOIN platn_ident pi
ON (p.id = pi.id_platnik) WHERE pi.status_dane = 'K' OR pi.status_dane IS NULL

go

Gdy już wiemy którego Płatnika możemy usunąć wykonujemy skrypt, w którym ustalamy numer Płatnika

link skrypt do pobrania

sobota, 23 sierpnia 2014

Statspack dla Oracle XE

SQL> connect / as sysdba
 
wywołujemy skrypt @ 
 
SQL> @C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin>spcreate.sql
 
dla linuxa
 
/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/spcreate.sql
 
wprowadzamy hasło
wprowadzamy tablespace SYSAUX
wprowadzamy tablespace TEMP
wybieramy poziom Statspack 
 
SQL> select * from stats$level_description order by snap_level;

 
tworzenie,podglądanie i usuwanie migawek  (snapshot)
 
SQL> connect perfstat/oracle
Connected.
SQL> exec statspack.snap
PL/SQL procedure successfully completed.
SQL> select name, snap_id, to_char(snap_time, 'MM-DD-YYYY:HH24:MI:SS')
  2  "Date/Time" from stats$snapshot, v$database;
 
Przy usuwaniu migawki wybieramy jej ID
 
SQL> @?\rdbms\admin\sppurge;

Notes: prompted to enter low and high snapshot ID
 
Tworzymy raport
 
SQL> @?\rdbms\admin\spreport.sql
 
dla Linuxa
 
SQL> @/u01/app/oracle/product/10.2.0/db_1/rdbms/admin/spreport.sql
 
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 11
Begin Snapshot Id specified: 11

Enter value for end_snap: 21
End   Snapshot Id specified: 21

Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is sp_11_21.  To use this name,
press  to continue, otherwise enter an alternative.

Enter value for report_name: Raport_migawki
 

Interpretacja wyników raportu to osobny temat

piątek, 22 sierpnia 2014

Plik kontrolny - awaria

1.wyeksportować plik SPFILE do pliku tekstowego,
2.zamknąć bazę danych,
3.skopiować istniejący plik kontrolny w nowe miejsce,
4.zmienić parametr CONTROL_FILES w pliku parametrów,
5.utworzyć nowy plik SPFILE ze zmodyfikowanego pliku tekstowego,
6.otworzyć bazę danych.

piątek, 18 lipca 2014

REDO LOG FILES

to pliki dziennika powtórzeń są wykorzystywane w momencie awarii instancji lub bazy danych.
Wszystkie zmiany dokonane w bazie tzn modyfikacje potwierdzone COMMIT lub nie zatwierdzone transakcje są zapisywane do dziennika powtórzeń.

Dodanie pliku do istniejącej grupy:

ALTER DATABASE [nazwa_bazy]
ADD LOGFILE MEMBER plik TO GROUP nr_grupy;


Czyszczenie plików dziennika powtórzeń:

ALTER DATABASE
CLEAR [UNARCHIVED] LOGFILE GROUP nr_grupy;

ALTER DATABASE
CLEAR [UNARCHIVED] LOGFILE plik;


Usunięcie pliku z istniejącej grupy dziennika powtórzeń:

ALTER DATABASE [nazwa_bazy] DROP LOGFILE MEMBER plik;

Usunięcie całej grupy plików dziennika powtórzeń:

ALTER DATABASE [nazwa_bazy] DROP LOGFILE GROUP nr_grupy;

środa, 9 lipca 2014

RMAN klonowanie czyli duplikacja bazy danych

Duplikacja jest kopią bazy ze zmianą identyfikatora DBID. W ten sposób można odtworzyć bazę danych na podstawie pliku backupu oraz archivelogów ż środowiska produkcyjnego na środowisko testowe.

Potrzebny będzie dostęp do

bazy źródłowej (włączony tryb archivelog)
folder, repozytorium składowania kopii (pełny backup)

bazy docelowej


Film instruktażowy



Dokumentacja Oracle 10g -dla zaawansowanych

poniedziałek, 16 czerwca 2014

Tryby pracy instancji Oracle

Tryby uruchomienia instancji

Tryb NOMOUNT -odczytuje parametry pliku (init.ora), inicjalizacja obszaru pamięci SGA,znajduje  pliki kontrolne,otwiera pliki śladu (trace) i pliki ostrzeżeń
Ten tryb wykorzystywany jest do tworzenia bazy danych i plików kontrolnych.

Tryb MOUNT-odczytuje pliki kontrolne
Ten tryb wykorzystywany jest do takich czynności jak:

  • Wykonanie operacji związanych z plikami dziennika powtórzeń (zmiana lokalizacji, tworzenie nowych, usuwanie istniejących).
  • Wykonanie zmiany nazwy lub lokalizacji plików danych.
  • Przełączenie bazy danych w tryb ARCHIVELOG lub NOARCHIVELOG.
  • Wykonanie pełnego backup'u lub niepełnego odtworzenia bazy danych.

Tryb OPEN- odtwarza pozostałe pliki i udostępnia bazy danych użytkownikom
W trybie tym otwierane są pliki dziennika powtórzeń (redo) oraz pliki danych (data files)co sprawia, że baza staje się dostępna dla użytkowników.


Tryby zamykania instancji

Tryb NORMAL -Domyślny tryb zamykania- baza danych zostaje zamknięta dopiero, gdy wszyscy użytkownicy zakończą sesje.

Zawartość bloków buforów danych i dziennika powtórzeń są zapisywane na dysk, dostęp nowych użytkowników do bazy jest blokowany.
 

Tryb TRANSACTIONAL- Użytkownicy odłączani są automatycznie od bazy gdy zakończą aktualne transakcje, dostęp nowych użytkowników do bazy jest blokowany następnie baza jest zamykana.
 

Tryb IMMEDIATE- Kończy wykonanie poleceń SQL i wycofuje nie zatwierdzone transakcje, następnie odłącza użytkowników od bazy.
 

Tryb ABORT-Nie czeka na zakończenie pracy przez użytkowników, nie wycofuje nie zatwierdzonych transakcji. Natychmiast zamyka obszar pamięci SGA i procesy wykonywane w tle. Po wykonaniu trybu ABORT, w momencie startu następuje odtwarzanie instancji. Uwaga tryb ten znajduje zastosowanie, gdy nie można wykonać zamknięcia w innym z wcześniej wymienionych trybów.







czwartek, 5 czerwca 2014

Indeksowanie bazy Płatnika

Indeksowanie,odbudowa indeksów poprawia wydajność pracy bazy Płatnika

Skrypt SQL wygenerowany z SSMS do uruchomienia dla wersji 9 -link


lub wykonaj nast. skrypty SQL

-------------------wykonaj indeksowanie-odbudowa

SELECT  so.name AS TableName, MAX(si.rows) AS rc FROM sysobjects AS so INNER JOIN sysindexes AS si ON OBJECT_ID(so.name) = si.id WHERE so.xtype = 'U' GROUP BY so.name ORDER BY rc desc
DBCC DBREINDEX (DOKUMENT,'',0)
DBCC DBREINDEX (UBEZP_ZUSRCA,'',0)
DBCC DBREINDEX (UBEZP_ZUSRZA,'',0)
DBCC DBREINDEX (UBEZP_ZUSRSA,'',0)
DBCC DBREINDEX (BLAD_DOK,'',0)
DBCC DBREINDEX (UBEZP_ADRES,'',0)
DBCC DBREINDEX (DZIENNIK,'',0)
DBCC DBREINDEX (ZUSZWUA,'',0)
DBCC DBREINDEX (ZESTAW_DOKUM,'',0)
DBCC DBREINDEX (ZUSZZA,'',0)
DBCC DBREINDEX (MIEJSCE,'',0)
DBCC DBREINDEX (ZUSZUA,'',0)
DBCC DBREINDEX (UBEZP_IDENT,'',0)
DBCC DBREINDEX (UBEZPIECZONY,'',0)
DBCC DBREINDEX (UBEZP_INNE,'',0)
DBCC DBREINDEX (ZESTAW,'',0)
DBCC DBREINDEX (BLAD_MIEDZY,'',0)
DBCC DBREINDEX (ARCHIWUM_O,'',0)
DBCC DBREINDEX (ZUSDRA,'',0)
DBCC DBREINDEX (ZUSRCA,'',0)
DBCC DBREINDEX (ZUSRSA,'',0)
DBCC DBREINDEX (ZUSRZA,'',0)
DBCC DBREINDEX (ZUSZCZA,'',0)
DBCC DBREINDEX (ZUSZCNA,'',0)
DBCC DBREINDEX (ZUSZIUA,'',0)
DBCC DBREINDEX (PARAMETRY_PRZEKAZU,'',0)
DBCC DBREINDEX (CERTYFIKAT,'',0)
DBCC DBREINDEX (CZR_ZUSZCNA,'',0)
DBCC DBREINDEX (HISTORIA,'',0)
DBCC DBREINDEX (UPRAWNIENIA,'',0)
DBCC DBREINDEX (LISTA_DZIENNIK,'',0)
DBCC DBREINDEX (UZYTKOWNIK,'',0)
DBCC DBREINDEX (PARAMETRY,'',0)
DBCC DBREINDEX (DOKUMENT_PLATNICZY,'',0)
DBCC DBREINDEX (PARAM_KONF,'',0)
DBCC DBREINDEX (ZUSIWA,'',0)
DBCC DBREINDEX (PLATN_DANEROZL,'',0)
DBCC DBREINDEX (PLATNIK_PARAMETR,'',0)
DBCC DBREINDEX (CRL,'',0)
DBCC DBREINDEX (ZUSZPA,'',0)
DBCC DBREINDEX (PLATN_ADRES,'',0)
DBCC DBREINDEX (OSOBA_PRYWATNA,'',0)
DBCC DBREINDEX (PARAM_PLAT_UZYT,'',0)
DBCC DBREINDEX (PLATN_RACHBANK,'',0)
DBCC DBREINDEX (PLATN_IDENT,'',0)
DBCC DBREINDEX (PLATNIK,'',0)
DBCC DBREINDEX (UBEZP_ZUSRGA,'',0)
DBCC DBREINDEX (UBEZP_ZUSRNA,'',0)
DBCC DBREINDEX (UBEZPIECZONY_ZUS,'',0)
DBCC DBREINDEX (UBEZP_ZUSZSWA,'',0)
DBCC DBREINDEX (UBEZP_KOD_PRACY,'',0)
DBCC DBREINDEX (UBEZP_PODLEGANIE,'',0)
DBCC DBREINDEX (UBEZP_SKLAD,'',0)
DBCC DBREINDEX (UBEZP_SWIAD,'',0)
DBCC DBREINDEX (UBEZP_WYBOR,'',0)
DBCC DBREINDEX (UBEZP_INDSCHEMAT,'',0)
DBCC DBREINDEX (UBEZP_CZLONEK_RODZINY,'',0)
DBCC DBREINDEX (PLATN_IWA,'',0)
DBCC DBREINDEX (PLATN_OBOWIWA,'',0)
DBCC DBREINDEX (PLATN_OBOWOPLSKL,'',0)
DBCC DBREINDEX (PLATN_STATUS,'',0)
DBCC DBREINDEX (PLATN_ZSWA,'',0)
DBCC DBREINDEX (PLATN_HIST,'',0)
DBCC DBREINDEX (PLATNIK_ZUS,'',0)
DBCC DBREINDEX (PLIK_DOKUM,'',0)
DBCC DBREINDEX (POTWIERDZENIE,'',0)
DBCC DBREINDEX (PRZESYLKA,'',0)
DBCC DBREINDEX (SDWI_KODTYTUB,'',0)
DBCC DBREINDEX (SDWI_NAGLOWEK,'',0)
DBCC DBREINDEX (SDWI_UBEZPIECZONY,'',0)
DBCC DBREINDEX (sysdiagrams,'',0)
DBCC DBREINDEX (TMP_OKRESY,'',0)
DBCC DBREINDEX (TMP_TAB,'',0)
DBCC DBREINDEX (TMP_UBEZPIECZENI,'',0)
DBCC DBREINDEX (UBEZP_30KROTNOSC,'',0)
DBCC DBREINDEX (NIEJED,'',0)
DBCC DBREINDEX (CZR_ZUSZCZA,'',0)
DBCC DBREINDEX (DOKROZL_DEKLARACJA,'',0)
DBCC DBREINDEX (DOKROZL_RAPORT,'',0)
DBCC DBREINDEX (ARCH_DZIENNIK,'',0)
DBCC DBREINDEX (ARCHIWUM_I,'',0)
DBCC DBREINDEX (BLAD_PRZETW,'',0)
DBCC DBREINDEX (BLK_ZAA,'',0)
DBCC DBREINDEX (BLK_ZBA,'',0)
DBCC DBREINDEX (BLOKADA,'',0)
DBCC DBREINDEX (IMPORT,'',0)
DBCC DBREINDEX (INFOUDO,'',0)
DBCC DBREINDEX (INFOUDO_UBEZP,'',0)
DBCC DBREINDEX (KODSWPRZ,'',0)
DBCC DBREINDEX (KODTYTUB,'',0)
DBCC DBREINDEX (KOMPLET_DOKROZL,'',0)
DBCC DBREINDEX (KOMUNIKAT,'',0)
DBCC DBREINDEX (ZUSZSWA,'',0)
DBCC DBREINDEX (ZUSZWPA,'',0)
DBCC DBREINDEX (ZUSRGA,'',0)
DBCC DBREINDEX (ZUSRNA,'',0)
DBCC DBREINDEX (WIADOMOSC,'',0)
DBCC DBREINDEX (ZALACZNIK,'',0)
DBCC DBREINDEX (ZAMOWIENIE,'',0)
DBCC DBREINDEX (ZUSZFA,'',0)
DBCC DBREINDEX (ZUSZIPA,'',0)
DBCC DBREINDEX (ZUSZAA,'',0)
DBCC DBREINDEX (ZUSZBA,'',0)


-----------------------------wykonaj indeksowanie -reorganizacja-defrag-------------

SELECT  so.name AS TableName, MAX(si.rows) AS rc FROM sysobjects AS so INNER JOIN sysindexes AS si ON OBJECT_ID(so.name) = si.id WHERE so.xtype = 'U' GROUP BY so.name ORDER BY rc desc
DBCC INDEXDEFRAG ('platnik','DOKUMENT')
DBCC INDEXDEFRAG ('platnik','UBEZP_ZUSRCA')
DBCC INDEXDEFRAG ('platnik','UBEZP_ZUSRZA')
DBCC INDEXDEFRAG ('platnik','UBEZP_ZUSRSA')
DBCC INDEXDEFRAG ('platnik','BLAD_DOK')
DBCC INDEXDEFRAG ('platnik','UBEZP_ADRES')
DBCC INDEXDEFRAG ('platnik','DZIENNIK')
DBCC INDEXDEFRAG ('platnik','ZUSZWUA')
DBCC INDEXDEFRAG ('platnik','ZESTAW_DOKUM')
DBCC INDEXDEFRAG ('platnik','ZUSZZA')
DBCC INDEXDEFRAG ('platnik','MIEJSCE')
DBCC INDEXDEFRAG ('platnik','ZUSZUA')
DBCC INDEXDEFRAG ('platnik','UBEZP_IDENT')
DBCC INDEXDEFRAG ('platnik','UBEZPIECZONY')
DBCC INDEXDEFRAG ('platnik','UBEZP_INNE')
DBCC INDEXDEFRAG ('platnik','ZESTAW')
DBCC INDEXDEFRAG ('platnik','BLAD_MIEDZY')
DBCC INDEXDEFRAG ('platnik','ARCHIWUM_O')
DBCC INDEXDEFRAG ('platnik','ZUSDRA')
DBCC INDEXDEFRAG ('platnik','ZUSRCA')
DBCC INDEXDEFRAG ('platnik','ZUSRSA')
DBCC INDEXDEFRAG ('platnik','ZUSRZA')
DBCC INDEXDEFRAG ('platnik','ZUSZCZA')
DBCC INDEXDEFRAG ('platnik','ZUSZCNA')
DBCC INDEXDEFRAG ('platnik','ZUSZIUA')
DBCC INDEXDEFRAG ('platnik','PARAMETRY_PRZEKAZU')
DBCC INDEXDEFRAG ('platnik','CERTYFIKAT')
DBCC INDEXDEFRAG ('platnik','CZR_ZUSZCNA')
DBCC INDEXDEFRAG ('platnik','HISTORIA')
DBCC INDEXDEFRAG ('platnik','UPRAWNIENIA')
DBCC INDEXDEFRAG ('platnik','LISTA_DZIENNIK')
DBCC INDEXDEFRAG ('platnik','UZYTKOWNIK')
DBCC INDEXDEFRAG ('platnik','PARAMETRY')
DBCC INDEXDEFRAG ('platnik','DOKUMENT_PLATNICZY')
DBCC INDEXDEFRAG ('platnik','PARAM_KONF')
DBCC INDEXDEFRAG ('platnik','ZUSIWA')
DBCC INDEXDEFRAG ('platnik','PLATN_DANEROZL')
DBCC INDEXDEFRAG ('platnik','PLATNIK_PARAMETR')
DBCC INDEXDEFRAG ('platnik','CRL')
DBCC INDEXDEFRAG ('platnik','ZUSZPA')
DBCC INDEXDEFRAG ('platnik','PLATN_ADRES')
DBCC INDEXDEFRAG ('platnik','OSOBA_PRYWATNA')
DBCC INDEXDEFRAG ('platnik','PARAM_PLAT_UZYT')
DBCC INDEXDEFRAG ('platnik','PLATN_RACHBANK')
DBCC INDEXDEFRAG ('platnik','PLATN_IDENT')
DBCC INDEXDEFRAG ('platnik','PLATNIK')
DBCC INDEXDEFRAG ('platnik','UBEZP_ZUSRGA')
DBCC INDEXDEFRAG ('platnik','UBEZP_ZUSRNA')
DBCC INDEXDEFRAG ('platnik','UBEZPIECZONY_ZUS')
DBCC INDEXDEFRAG ('platnik','UBEZP_ZUSZSWA')
DBCC INDEXDEFRAG ('platnik','UBEZP_KOD_PRACY')
DBCC INDEXDEFRAG ('platnik','UBEZP_PODLEGANIE')
DBCC INDEXDEFRAG ('platnik','UBEZP_SKLAD')
DBCC INDEXDEFRAG ('platnik','UBEZP_SWIAD')
DBCC INDEXDEFRAG ('platnik','UBEZP_WYBOR')
DBCC INDEXDEFRAG ('platnik','UBEZP_INDSCHEMAT')
DBCC INDEXDEFRAG ('platnik','UBEZP_CZLONEK_RODZINY')
DBCC INDEXDEFRAG ('platnik','PLATN_IWA')
DBCC INDEXDEFRAG ('platnik','PLATN_OBOWIWA')
DBCC INDEXDEFRAG ('platnik','PLATN_OBOWOPLSKL')
DBCC INDEXDEFRAG ('platnik','PLATN_STATUS')
DBCC INDEXDEFRAG ('platnik','PLATN_ZSWA')
DBCC INDEXDEFRAG ('platnik','PLATN_HIST')
DBCC INDEXDEFRAG ('platnik','PLATNIK_ZUS')
DBCC INDEXDEFRAG ('platnik','PLIK_DOKUM')
DBCC INDEXDEFRAG ('platnik','POTWIERDZENIE')
DBCC INDEXDEFRAG ('platnik','PRZESYLKA')
DBCC INDEXDEFRAG ('platnik','SDWI_KODTYTUB')
DBCC INDEXDEFRAG ('platnik','SDWI_NAGLOWEK')
DBCC INDEXDEFRAG ('platnik','SDWI_UBEZPIECZONY')
DBCC INDEXDEFRAG ('platnik','sysdiagrams')
DBCC INDEXDEFRAG ('platnik','TMP_OKRESY')
DBCC INDEXDEFRAG ('platnik','TMP_TAB')
DBCC INDEXDEFRAG ('platnik','TMP_UBEZPIECZENI')
DBCC INDEXDEFRAG ('platnik','UBEZP_30KROTNOSC')
DBCC INDEXDEFRAG ('platnik','NIEJED')
DBCC INDEXDEFRAG ('platnik','CZR_ZUSZCZA')
DBCC INDEXDEFRAG ('platnik','DOKROZL_DEKLARACJA')
DBCC INDEXDEFRAG ('platnik','DOKROZL_RAPORT')
DBCC INDEXDEFRAG ('platnik','ARCH_DZIENNIK')
DBCC INDEXDEFRAG ('platnik','ARCHIWUM_I')
DBCC INDEXDEFRAG ('platnik','BLAD_PRZETW')
DBCC INDEXDEFRAG ('platnik','BLK_ZAA')
DBCC INDEXDEFRAG ('platnik','BLK_ZBA')
DBCC INDEXDEFRAG ('platnik','BLOKADA')
DBCC INDEXDEFRAG ('platnik','IMPORT')
DBCC INDEXDEFRAG ('platnik','INFOUDO')
DBCC INDEXDEFRAG ('platnik','INFOUDO_UBEZP')
DBCC INDEXDEFRAG ('platnik','KODSWPRZ')
DBCC INDEXDEFRAG ('platnik','KODTYTUB')
DBCC INDEXDEFRAG ('platnik','KOMPLET_DOKROZL')
DBCC INDEXDEFRAG ('platnik','KOMUNIKAT')
DBCC INDEXDEFRAG ('platnik','ZUSZSWA')
DBCC INDEXDEFRAG ('platnik','ZUSZWPA')
DBCC INDEXDEFRAG ('platnik','ZUSRGA')
DBCC INDEXDEFRAG ('platnik','ZUSRNA')
DBCC INDEXDEFRAG ('platnik','WIADOMOSC')
DBCC INDEXDEFRAG ('platnik','ZALACZNIK')
DBCC INDEXDEFRAG ('platnik','ZAMOWIENIE')
DBCC INDEXDEFRAG ('platnik','ZUSZFA')
DBCC INDEXDEFRAG ('platnik','ZUSZIPA')
DBCC INDEXDEFRAG ('platnik','ZUSZAA')
DBCC INDEXDEFRAG ('platnik','ZUSZBA')



-----------------------------wykonaj shrink na bazie----------------------------------



SELECT  so.name AS TableName, MAX(si.rows) AS rc FROM sysobjects AS so INNER JOIN sysindexes AS si ON OBJECT_ID(so.name) = si.id WHERE so.xtype = 'U' GROUP BY so.name ORDER BY rc desc
DBCC SHRINKDATABASE (platnik,0,TRUNCATEONLY)


środa, 4 czerwca 2014

Ograniczenia XE

Lista narzędzi nie występujących w Oracle XE


  • Oracle Real Application Clusters
  • Oracle Spatial
  • Advanced Security Option
  • Oracle Label Security
  • Oracle Partitioning
  • Oracle OLAP
  • Oracle Data Mining
  • Oracle Enterprise Manager
  • Oracle Change Management Pack
  • Oracle Configuration Management Pack
  • Oracle Diagnostic Pack
  • Oracle Tuning Pack
  • Oracle Clusterware
  • Oracle Connection Manager
  • Oracle Names
  • Oracle Streams (Apply process only)
  • Oracle Workflow
  • Messaging Gateway
  • Oracle Data Guard
  • Oracle Fail Safe
  • Ultra Search
  • interMedia
  • Oracle Workspace Manager

poniedziałek, 26 maja 2014

Płatnik przełączanie między bazami

Jeżeli mamy kilka baz Płatnika lub kilka baz archiwalnych które pracują jako robocze to możemy zastosować między przełączanie nimi przy pomocy wcześniej przygotowanych wpisów rejestru
Wystarczy dany wpis wyeksportować do pliku reg. po każdej zmianie połączenia.
Należy pamiętać że do każdego pliku dodajemy linijkę [-HKEY_LOCAL_MACHINE\SOFTWARE\Asseco Poland SA\Płatnik\9.01.001\Baza], która oznacza usunięcie poprzedniego wpisu z rejestru.

przykłady

dla baz MS ACCESS

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Asseco Poland SA\Płatnik\9.01.001\Baza]

[HKEY_LOCAL_MACHINE\SOFTWARE\Asseco Poland SA\Płatnik\9.01.001\Baza]
"Provider"="Microsoft.Jet.OLEDB.4.0"
"Data Source"="C:\\testy9\\Płatnik.mdb"
"Persist Security Info"="False"
"Jet OLEDB:Database Password"="haslo"
"Mode"="ReadWrite"


dla baz MSSQL Server autoryzacja Windows

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Asseco Poland SA\Płatnik\9.01.001\Baza]

[HKEY_LOCAL_MACHINE\SOFTWARE\Asseco Poland SA\Płatnik\9.01.001\Baza]
"Provider"="SQLOLEDB"
"Data Source"="KOMP1\\TESTIT"
"Initial Catalog"="platnik"
"Integrated Security"="SSPI"
"Persist Security Info"="False"
"Use Procedure for Prepare"="1"
"Auto Translate"="True"
"Packet Size"="4096"
"Workstation ID"="KOMP4"


dla baz MSSQL Server autoryzacja SA

 Windows Registry Editor Version 5.00

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Asseco Poland SA\Płatnik\9.01.001\Baza]

[HKEY_LOCAL_MACHINE\SOFTWARE\Asseco Poland SA\Płatnik\9.01.001\Baza]
"Provider"="SQLOLEDB"
"Data Source"="KOMP1\\TESTIT"
"Initial Catalog"="platnik"
"Persist Security Info"="True"
"User ID"="sa"
"Password"="haslo"
"Use Procedure for Prepare"="1"
"Auto Translate"="True"
"Packet Size"="4096"
"Workstation ID"="KOMP4"




czwartek, 15 maja 2014

Parametry startowe bazy

SHOW PARAMETERS wzorzec

Aktualne wartości parametrów w ramach bieżącej sesji

SELECT * FROM V$PARAMETER

Wartości parametrów niezależnie od bieżącej sesji

SELECT * FROM V$SYSTEM_PARAMETER

DBMS_UTILITY.GET_PARAMETER_VALUE

czwartek, 8 maja 2014

Płatnik start skrypt vbs

Po uruchomieniu Płatnika ZUS , system wyświetla nam domyślnie tabele z wszystkimi dokumentami. W przypadku dużej ilości dokumentów w bazie np 200 tys (np dział kadr i płac nie chcą archiwizować dokumentów), można zastosować skrypt, który domyślnie wyświetli nam tabele ubezpieczonych zamiast  tabele z wszystkimi dokumentami ograniczy to spowolnienie wykonywania zapytań przez innych użytkowników do bazy przez co wpłynie to na dostępność i wydajność.

Skrypt startowy Windows 7/XP 32 bit

Dim shell
Sub Run(ByVal sFile)

Const HKEY_CURRENT_USER = &H80000001

strComputer = "."

Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "Software\Asseco Poland SA\Płatnik\9.01.001\Hoover"
strValueName = "Nazwa Elementu"
strValue = "WidokRejestrUbezp"

objRegistry.SetExpandedStringValue HKEY_CURRENT_USER, strKeyPath, strValueName, strValue


Set shell = CreateObject("WScript.Shell")

shell.Run Chr(34) & sFile & Chr(34), 1, false
Set shell = Nothing

End Sub
Run "C:\Program Files\Asseco Poland SA\Płatnik\P2.exe"

piątek, 25 kwietnia 2014

Transakcje Płatnik ZUS

Skrypty

----------------------sprawdzanie planów ad hoc

select objtype ,
count(*) as number_of_plans,
sum(cast(size_in_bytes as bigint))/1024/1024 as size_in_MBs,
avg(usecounts) as avg_use_count from sys.dm_exec_cached_plans
group by objtype


----------------------czyszczenie planów ad hoc

DBCC FREESYSTEMCACHE('SQL Plans')


------------------------włączenie  AD-HOC
np. podczas migracji z bazy Access/MS SQL na MS SQL pojawia nam się komunikat :
„SQL Server blocked access to STATEMENT ad hoc distributed queries...”
 użyjemy zapytania

use master
exec sp_configure 'show advanced options', 1
go
reconfigure
go
exec sp_configure 'Ad Hoc Distributed Queries', 1
go
reconfigure
go
exec sp_configure 'show advanced options', 0
go
reconfigure
go

-------------zwiększenie czasu oczekiwania na wykonanie zapytań
np dla korekty dokumentów -przy dużej ilości przetwarzania

sp_configure 'remote query timeout', 28800
reconfigure
go

środa, 16 kwietnia 2014

Audit schema HR


Skrypty wykonujemy na użytkowniku sys
Po uworzeniu triggera audit na bazie dane z logowania będą zapisywane do tablicy

Polska Wersja skryptu 
Wersja oryginalna znajduje się na stronie

CREATE TABLE stats$rejestracja (
  uzytkownik           VARCHAR2(200)  NULL,
  sesja                NUMBER(8,0)    NULL,
  host                 VARCHAR2(3000) NULL,
  ostatni_program      VARCHAR2(3000) NULL,
  ostatnia_akcja       VARCHAR2(3000) NULL,
  ostatni_modul        VARCHAR2(3000) NULL,
  dzien_zalogowania    DATE           NULL,
  czas_zalogowania     VARCHAR2(3000) NULL,
  dzien_wylogowania    DATE           NULL,
  czas_wylogowania     VARCHAR2(3000) NULL,
  zalogowany_przez_min NUMBER(38,0)   NULL
)
  STORAGE (
    NEXT       1024 K
  )
/


PROMPT CREATE OR REPLACE TRIGGER logon_audit_trigger
CREATE OR REPLACE TRIGGER logon_audit_trigger
AFTER LOGON ON DATABASE
BEGIN
insert into stats$rejestracja values(
   user,
   sys_context('USERENV','SESSIONID'),
   sys_context('USERENV','HOST'),
   null,
   null,
   null,
   sysdate,
   to_char(sysdate, 'hh24:mi:ss'),
   null,
   null,
   null
);
END;
/

PROMPT CREATE OR REPLACE TRIGGER logoff_audit_trigger
CREATE OR REPLACE TRIGGER logoff_audit_trigger
BEFORE LOGOFF ON DATABASE
BEGIN
-- ***************************************************
-- Update the last action accessed
-- ***************************************************
update
stats$rejestracja
set
ostatnia_akcja = (select action from v$session where
sys_context('USERENV','SESSIONID') = audsid)
where
sys_context('USERENV','SESSIONID') = sesja;
--***************************************************
-- Update the last program accessed
-- ***************************************************
update
stats$rejestracja
set
ostatni_program = (select program from v$session where
sys_context('USERENV','SESSIONID') = audsid)
where
sys_context('USERENV','SESSIONID') = sesja;
-- ***************************************************
-- Update the last module accessed
-- ***************************************************
update
stats$rejestracja
set
ostatni_modul = (select module from v$session where
sys_context('USERENV','SESSIONID') = audsid)
where
sys_context('USERENV','SESSIONID') = sesja;
-- ***************************************************
-- Update the logoff day
-- ***************************************************
update
   stats$rejestracja
set
   dzien_zalogowania = sysdate
where
   sys_context('USERENV','SESSIONID') = sesja;
-- ***************************************************
-- Update the logoff time
-- ***************************************************
update
   stats$rejestracja
set
   czas_wylogowania = to_char(sysdate, 'hh24:mi:ss')
where
   sys_context('USERENV','SESSIONID') = sesja;
-- ***************************************************
-- Compute the elapsed minutes
-- ***************************************************
update
stats$rejestracja
 set
zalogowany_przez_min =   
round((logoff_day - logon_day)*1440)
where
sys_context('USERENV','SESSIONID') = sesja;
END;
/

wtorek, 18 marca 2014

Usunięcie użytkownika oramon

Powołany użytkownik oramon - czyli wszystkie obiekty tego użytkownika utworzone w schema
Jak go usunąć z wszystkimi jego zależnościami ?

DROP USER oramon CASCADE;
DROP PUBLIC SYNONYM db_alert;



-- usunięcie powiązanych obiektów


EXECUTE DBMS_IJOB.DROP_USER_JOBS('ORAMON');

-- wyłączenie isusnięcie wszystkich jobs które wykonują się na użytkowniku oramon

{
FOR rec IN (SELECT job FROM sys.dba_jobs WHERE upper(what) LIKE 'ORAMON.%') LOOP
  DBMS_JOB.BROKEN(rec.job, TRUE, SYSDATE);
END LOOP;
}

poniedziałek, 10 lutego 2014

Skrypt bash do Backup'u RMAN (Linux)

Tworzenie skryptu sh

tworzymy plik

touch backuporacle.sh

nadajemy uprawnienia do pliku

chmod 755 backuporacle.sh

edytujemy 

vi backuporacle.sh

wpisujemy

#!/bin/bash
sleep 10
USER=oracle
PASSWD=xxxxx
DBASE=orcl
RMAN=/opt/oracle/product/11.2.0/bin/rman
SCRIPT=/home/oracle/scripts/backuporacle
$RMAN target $DBASE/$PASSWD nocatalog @$SCRIPT


Skrypt RMAN Backup dla urządzenia 1 taśma

run {
allocate channel t1 type 'sbt_tape';
backup database plus archivelog;
backup spfile format 'spfile_%d_%s_%T.bak' tag 'spfile backup';
backup current controlfile format 'ctl_%t_dbid%I.bak' tag 'controfile backup';
release channel t1;
}



dla 4 taśm 

run {
allocate channel tape1 type 'sbt_tape';
allocate channel tape2 type 'sbt_tape';
allocate channel tape3 type 'sbt_tape';
allocate channel tape4 type 'sbt_tape';
backup database;
release channel tape1;
release channel tape2;
release channel tape3;
release channel tape4;
}

czwartek, 9 stycznia 2014

ZUS przerwy technologiczne



Dostępność serwerów ZUS sprawdzamy wchodząc na stronę



Jeśli strona nie wyświetla się oznacza to przerwę technologiczną ZUS


W przypadku gdy jeden z serwerów ZUS nie będzie działał możemy ustawić przekaz elektroniczny dla działającego serwera ZUS :)

Wybieramy z górnego menu Przekaz następnie wybieramy Ustawienia przekazu elektronicznego przechodzimy do zakładki Inne następnie zaznaczamy opcję  przy Użyj tego adresu do wymiany danych z ZUS a w polu obok wpisujemy adres: działającego serwera ZUS

węzły internetowe:

Wrocław http://www.ewd2.wroclaw.zus.pl/
lub
Warszawa http://www.ewd2.warszawa.zus.pl/
 

Aby sprawdzić poprawność wybranego serwera wybieramy z górnego menu Przekaz następnie wybieramy Ustawienia przekazu elektronicznego , na zakładce Ustawienia ogólne powinna być zaznaczona metoda przekazu „Komunikacja automatyczna ZUS pod adresem” z uzupełnionym adresem działającego serwera ZUS zamiast opisu automatyczny wybór