ALTER DATABASE DATAFILE 'pelna_sciezka_do_pliku' RESIZE 500M;
Pokazywanie postów oznaczonych etykietą oracle - administracja. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą oracle - administracja. Pokaż wszystkie posty
piątek, 13 listopada 2009
ORA-01658: unable to create INITIAL extent for segment in tablespace string
Brakło miejsca przy rozszerzaniu pliku należącego do przestrzeni tabel (TABLE SPACE). Jeżeli została użyta opcja opcja AUTOEXTEND (przy tworzeniu takiego plikunp. ALTER DATABASE DATAFILE 'pelna_sciezka_do_pliku' AUTOEXTEND ON NEXT 10M;) - to prawdopodobnie zabrakło miejsca na partycji, w której znajduje się powyższy plik. W przeciwnym razie powodem jest przekroczenie rozmiaru pliku (gdy nie używamy opcji AUTOEXTEND) - wtedy musimy ręcznie zwiększyć jego rozmiar, np. tak:
Etykiety:
oracle - administracja,
oracle - problemy
poniedziałek, 9 listopada 2009
Jak sprawdzić z skąd instancja Oracle'a wzięła parametry startowe?
Z którego typu parametrów uruchomieniowych korzysta twoja instancja? Zmieniłeś je w PFILE'u a instancja dalej się uruchamia ze starymi ustawieniami - więc zapewne jest to SPFILE? Nie chcesz zgadywać?
Uruchamiamy konsolę:
I już wiemy.
Ogólnie zasada jest taka - wartość value = NULL oznacza, że baza nie korzysta z określonego typu pliku inicjalizacyjnego. Jeżeli w obydwu przypadkach wartość kolumny VALUE jest NULLem - to baza danych używa PFILE.
Możemy też łatwo znaleźć lokalizację pliku za pomocą:
lub
Uruchamiamy konsolę:
sqlplus / as sysdba
SELECT DECODE (value, NULL,'PFILE', 'SPFILE') "Init File Type" FROM v$parameter WHERE name = 'spfile';
I już wiemy.
Ogólnie zasada jest taka - wartość value = NULL oznacza, że baza nie korzysta z określonego typu pliku inicjalizacyjnego. Jeżeli w obydwu przypadkach wartość kolumny VALUE jest NULLem - to baza danych używa PFILE.
Możemy też łatwo znaleźć lokalizację pliku za pomocą:
select value from v$parameter where name like 'spfile';
lub
SHOW PARAMETER SPFILE;
Etykiety:
oracle,
oracle - administracja,
oracle - pfile,
oracle - spfile
środa, 19 sierpnia 2009
Oracle - jak włączyć tryb ARCHIVELOG?
Domyślnie po instalacji tryb archiwizowania redo logów jest wyłączony co oznacza, że w momencie zapełnienia wszystkich wolumenów redo logów następuje ich rotacja - najstarszy redo log jest czyszczony a następnie zrzucane do niego wykonane transakcje.
Żeby nie stracić tych informacji warto włączyć tryb archivelog (to nie jedyny powód dla którego warto to zrobić - o tym następnym razem).
Włączę konsolę oracle'a:
Teraz w konsoli sprawdźmy w jakim trybie są archiwizacja redo logów:
Teraz włączę archivelogi. W tym celu należy na początek wyłączyć bazę danych:
Teraz zamontujemy bazę - nie będzie ona jeszcze dostępna z zewnątrz.
Możemy ustawić tryb pracy z archiwizowaniem redo logów:
Następnie otwieramy bazę danych:
Sprawdźmy czy się udało:
Jak najbardziej.
Zobaczmy czy działa proces archiwizacji redo logów (arch):
Jak widać nie działa. W celu uruchomienia go ręcznie można użyć komendy:
Zobaczmy w widoku procesów oracle czy działa jakiś archiwizator:
Działają dwa. Czyli ok.
Teraz należałoby ustawić automatyczny start procesów archiwizacji. Musimy to zrobić w pliku init.ora. Należy dodać poniższe linijki:
Ważne! Żeby wykonywać te polecenia muszę być zalogowany z uprawnieniami SYSDBA lub SYSOPER.
Żeby nie stracić tych informacji warto włączyć tryb archivelog (to nie jedyny powód dla którego warto to zrobić - o tym następnym razem).
Włączę konsolę oracle'a:
$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Aug 19 07:33:05 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
SQL>
Teraz w konsoli sprawdźmy w jakim trybie są archiwizacja redo logów:
SQL> select log_mode from v$database;
LOG_MODE
------------
NOARCHIVELOG
Teraz włączę archivelogi. W tym celu należy na początek wyłączyć bazę danych:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
Teraz zamontujemy bazę - nie będzie ona jeszcze dostępna z zewnątrz.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 268435456 bytes
Fixed Size 1258364 bytes
Variable Size 243272836 bytes
Database Buffers 20971520 bytes
Redo Buffers 2932736 bytes
Database mounted.
Możemy ustawić tryb pracy z archiwizowaniem redo logów:
SQL> alter database archivelog;
Database altered.
Następnie otwieramy bazę danych:
SQL> alter database open;
Database altered.
Sprawdźmy czy się udało:
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
Jak najbardziej.
Zobaczmy czy działa proces archiwizacji redo logów (arch):
SQL> show parameter log_archive_start
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_start boolean FALSE
Jak widać nie działa. W celu uruchomienia go ręcznie można użyć komendy:
SQL> alter system archive log start;
System altered.
Zobaczmy w widoku procesów oracle czy działa jakiś archiwizator:
SQL> select * from v$archive_processes;
PROCESS STATUS LOG_SEQUENCE STAT
---------- ---------- ------------ ----
0 ACTIVE 0 IDLE
1 ACTIVE 0 IDLE
2 STOPPED 0 IDLE
3 STOPPED 0 IDLE
Działają dwa. Czyli ok.
Teraz należałoby ustawić automatyczny start procesów archiwizacji. Musimy to zrobić w pliku init.ora. Należy dodać poniższe linijki:
log_archive_dest = /var/lib/oracle/archivelog/
log_archive_format = %S.arc
log_archive_start = true
Ważne! Żeby wykonywać te polecenia muszę być zalogowany z uprawnieniami SYSDBA lub SYSOPER.
Etykiety:
oracle,
oracle - administracja,
oracle - archivelog,
oracle xe
Subskrybuj:
Posty (Atom)
