Kategori arşivi: ORA-Erros

Yaygın Oracle Hataları, Ora errors

ORA-16006: audit_trail destination incompatible

ORA-16006: audit_trail destination incompatible with database open mode

Bu hatayı databasei read only modda açmak istediğimizde alırız,audit logları açık ve dbye yazılıyorsa hem read-only olup hem db’ye yazamayacağından uyumsuzluk hatası verir.Bu durumda ya auditi kapatacağız(audit_trail=none) ya da auditi OS üzerinde tutacağız. (audit_trail=OS)

 
SQL> startup mount
ORACLE instance started.
Database mounted.

SQL> alter database open read only
  2  /
alter database open read only
*
ERROR at line 1:
ORA-16006: audit_trail destination incompatible with database open mode

Şimdi audit durumunu kontrol edelim ve değiştirelim..

SQL> show parameter audit_trail;
audit_trail                   string           DB

SQL> alter system set audit_trail=none scope=spfile;
System altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount;
ORACLE instance started.
Database mounted.

SQL> alter database open read only;
Database altered.

Ve işlem tamamdır,databaseimiz read-only olarak açıldı..

RAC ORA-00245: control file backup operation failed

RAC ORA-00245: control file backup operation failed

RAC ortamlarda controlfile backup alırken aşağıdaki gibi bir hata alırsak ne yapabiliriz bakalım.

Rman loglarına aşağıdaki gibi yansıyacaktır.

RAC 11gR2 ORA-00245: control file backup operation failed

RMAN-00571: =========================================================== 
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== 
RMAN-00571: =========================================================== 
RMAN-03009: failure of Control File and SPFILE Autobackup command on 
ORA_DISK_1 channel at 18/10/2015 13:34:07
ORA-00245: control file backup operation failed

Alert loga aşağıdaki gibi bir hata basacaktır.

LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2

******************************************************************

Sun Oct 18 18:00:05 2015

Archived Log entry 37833 added for thread 1 sequence 8252 ID 
0xb08b14e7 dest 1:
Sun Oct 18 18:01:50 2015

Errors in file /oracle/app/product/diag/rdbms/ractst/ractst1/trace/ractst1_ora_26854.trc:

ORA-00245: control file backup failed; target is likely on a local file system
Sun Oct 18 18:10:05 2015

Thread 1 advanced to log sequence 8254 (LGWR switch)
  
Current log# 6 seq# 8254 mem# 0: +RECO/ractst/onlinelog/group_6.260.889664983

Şimdi gelelim çözümüne, hata controlfile snapshot backup ının tüm nodların erişebileceği ortak bir alanda tutulmamasından kaynaklanıyor.
Controlfile snapshot’ı nerede tutuluyor bakalım.Bunun için RMAN bağlanıyoruz ve “show all” komutunu çalıştırıyoruz.

-bash-3.2$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Mon Oct 19 11:23:10 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: RACTST (DBID=2948358668)

RMAN> show all;

using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name RACTST are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/app/product/11.2.0.4/db/dbs/snapcf_ractst1.f'; # default

Görüldüğü gibi (son satırda) oracle ın kurulu olduğu dizinde tutuluyor.Tüm nodların erişebileceği ortak bir yer(ASM data dikini) gösterelim.


RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DATA/RACTST/CONTROLFILE/SNAPCF_RACTST1.f';

using target database control file instead of recovery catalog
new RMAN configuration parameters:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DATA/RACTST/CONTROLFILE/SNAPCF_RACTST1.f';
new RMAN configuration parameters are successfully stored

*Bu işlemi tek nodda yapmamız yeterlidir.
*Ben ASM DATA diskini kullandım, tüm nodların erişebildiği file system de olabilir..

Umarım faydalı olur..

Enterprise Manager TimeZone Hatası

Enterprise Manager TimeZone Hatası

Oracle Enterprise manager konsolu başlatırken aşağıdaki gibi bir hata alırsanız ne yapabiliriz beraber bakalım.

Platform:
Win 2012 Server
Oracle 11.2.0.4

Önce oracle sid set edelim ve Enterprise manager consolu start edelim..

C:\Windows\system32>set ORACLE_SID=EPM

C:\Windows\system32>emctl start dbconsole;
https://SVTEST:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control ...
The OracleDBConsoleEPM service is starting...............
The OracleDBConsoleEPM service could not be started.
A service specific error occurred: 2.

Enterprise manager consolun durumunu kontrol edelim.

C:\Windows\system32>emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.4.0
Copyright (c) 1996, 2013 Oracle Corporation. All rights reserved.
https://SVTEST:1158/em/console/aboutApplication
EM Daemon is not running.
------------------------------------------------------------------
Logs are generated in directory D:\oracle\product\11.2.0\dbhome_1/SVTEST_EPM/sysman/log

Mesajda belirtilen dizine gidip log file’ı kontrol edelim, aşağıdaki gibi timezone hatası varsa timezone değerini enterprise config dosyasından yeniden set edeceğiz.

Dosyamız;
D:\oracle\product\11.2.0\dbhome_1\SVTEST_EPM\sysman\log\emdb.nohub

----- Mon Sep 14 15:29:31 2015::heap size used is 384M -----
----- Mon Sep 14 15:29:31 2015::perm size used is 400M -----
----- Mon Sep 14 15:29:31 2015::joptions used are -server -Xmx384M -XX:MaxPermSize=400M -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -----
----- Mon Sep 14 15:29:31 2015::Console Launched with PID 3604 at time Mon Sep 14 15:29:31 2015 -----

D:\oracle\product\11.2.0\dbhome_1\SVTEST_EPM\sysman\emd >
D:\oracle\product\11.2.0\dbhome_1\jdk/bin/java -server 
-Xmx384M -XX:MaxPermSize=400M -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -DORACLE_HOME=D:\oracle\product\11.2.0\dbhome_1 
-Doracle.home=D:\oracle\product\11.2.0\dbhome_1/oc4j -Doracle.oc4j.localhome=D:\oracle\product\11.2.0\dbhome_1\SVTEST_EPM/sysman 
-DEMSTATE=D:\oracle\product\11.2.0\dbhome_1\SVTEST_EPM -Doracle.j2ee.dont.use.memory.archive=true -Djava.protocol.handler.pkgs=HTTPClient 
-Doracle.security.jazn.config=D:\oracle\product\11.2.0\dbhome_1/oc4j/j2ee/OC4J_DBConsole_SVTEST_EPM/config/jazn.xml 
-Djava.security.policy=D:\oracle\product\11.2.0\dbhome_1/oc4j/j2ee/OC4J_DBConsole_SVTEST_EPM/config/java2.policy 
-Djavax.net.ssl.KeyStore=D:\oracle\product\11.2.0\dbhome_1/sysman/config/OCMTrustedCerts.txt-Djava.security.properties=D:\oracle\product\11.2.0\dbhome_1/oc4j/j2ee/home/config/jazn.security.props 
-DEMDROOT=D:\oracle\product\11.2.0\dbhome_1\SVTEST_EPM -Dsysman.md5password=true -Drepapi.oracle.home=D:\oracle\product\11.2.0\dbhome_1 
-Ddisable.checkForUpdate=true -Doracle.sysman.ccr.ocmSDK.websvc.keystore=D:\oracle\product\11.2.0\dbhome_1/jlib/emocmclnt.ks 
-Dice.pilots.html4.ignoreNonGenericFonts=true -Djava.awt.headless=true -jar D:\oracle\product\11.2.0\dbhome_1/oc4j/j2ee/home/oc4j.jar 
-config D:\oracle\product\11.2.0\dbhome_1/oc4j/j2ee/OC4J_DBConsole_SVTEST_EPM/config/server.xml
----- Mon Sep 14 15:29:32 2015::tzOffset for America/Caracas is -270(min), but agent is runnning with tzOffset 180(min)
-----
----- Mon Sep 14 15:29:32 2015::trying again after waiting for 1 sec to account for daylight transition
-----
----- Mon Sep 14 15:29:32 2015::tzOffset for America/Caracas is -270(min), but agent is runnning with tzOffset 180(min)
-----
----- Mon Sep 14 15:29:32 2015::Mismatch detected between timezone in env (America/Caracas) and in D:\oracle\product\11.2.0\dbhome_1\SVTEST_EPM
/sysman/config/emd.properties (America/Caracas). Forcing value to latter.. -----
----- Mon Sep 14 15:29:32 2015::The agentTZRegion value in D:\oracle\product\11.2.0\dbhome_1\SVTEST_EPM/sysman/config/emd.properties 
is not in agreement with what agent thinks it should be.Please verify your environment to make sure that TZ setting has not changed since the 
last start of the agent.
If you modified the timezone setting in the environment, please stop the agent and exectute 'emctl resetTZ agent' and also execute the script 
mgmt_target.set_agent_tzrgn( ,  ) to get the value propagated to repository -----
15/09/14 07:59:33 Error starting ORMI server SVTEST port 5,520: Address already in use: JVM_Bind
15/09/14 07:59:33 Shutting down OC4J...
----- Mon Sep 14 15:31:01 2015::omsRecvDir is set? = 1 -----
----- Mon Sep 14 15:31:01 2015::osname is MSWin32 -----
'isainfo' is not recognized as an internal or external command,
operable program or batch file.
----- Mon Sep 14 15:31:01 2015::heap size used is 384M -----
----- Mon Sep 14 15:31:01 2015::perm size used is 400M -----
----- Mon Sep 14 15:31:01 2015::joptions used are -server -Xmx384M -XX:MaxPermSize=400M -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -----
----- Mon Sep 14 15:31:01 2015::Console Launched with PID 3424 at time Mon Sep 14 15:31:01 2015 -----

Oracle home altında %DB_HOME%\hostname_SID\Sysman\Config\emd.properties
dosyasını açıyoruz.(D:\oracle\product\11.2.0\dbhome_1\SVTEST_EPM\sysman\config\emd.properties)

agentTZRegion değerine databaseden aşağıdaki sorgu sonucu dönen değeri set edip kaydedip çıkıyoruz..

SQL>select timezone_region FROM mgmt_targets WHERE 
target_type = 'oracle_emd' AND target_name like '%SVTEST%';

TIMEZONE_REGION
-------------------
+03:00

emd.properties dosyasında agentTZRegion değerini +03:00 set edip kaydedip çıkıyoruz.
(normalde GMT+2 yiz +1 de yaz saati uygulamasından)

agentTZRegion=+03:00

Şimdi Enterprise manager konsolunu tekrar başlatalım..

C:\Windows\system32>set ORACLE_SID=EPM
C:\Windows\system32>net start OracleDBConsoleEPM
The OracleDBConsoleEPM service is starting..................
The OracleDBConsoleEPM service was started successfully.

Ve konsolumuz açıldı..

Eğer yinede hata devam ediyorsa repository drop create etmeniz daha sağlıklı olacaktır..

drop etmek;

emca -deconfig dbcontrol db -repos drop

yeniden create etmek;

emca -config dbcontrol db -repos create

ORA-01950 no privileges on tablespace

ORA-01950 no privileges on tablespace ‘datamart’
Cause: User does not have privileges to allocate an extent in the datamart tablespace.
Action: Grant the user space resource on the users tablespace.

Usera tablespace üzerinde kota hakkı verilmelidir.Kotayı unlimited verebiliriz, ya da belirli
bir boyuta kadar kullanabilsin diyebiliriz.Unlimited quota app userlara verilmelidir, dikkat edilmeli..

--Belirli bir boyuta kadar kullanabilsin istersek
SQL> alter user user_name quota 100M on datamart;  --100Mb quota verdik.
SQL> alter user user_name quota 1G on datamart;  --1Gb quota verdik.
--Unlimited tablespace kotası vermek istersek.
SQL> alter user user_name quota unlimited on datamart;

Hangi userda ne kadar quota hakkı var kontrol edelim..
max_bytes -1 olması unlimited olduğunu gösterir..

SQL> SELECT username, tablespace_name, bytes/1024/1024 , max_bytes,
decode(max_bytes,-1,'UNLIMITED',max_bytes) quota
from dba_ts_quotas
WHERE username like '%';

ORA-00972 Identifier is too Long

ORA-00972 Identifier is too Long

Oracle isimlendirme kurallarında belirtilen 30 karakteri aşma hatasıdır,isimlendirme yaparken geçmenize izin vermez.

Namig rule’s demişken;

* Nesne isimleri 30 karakteri geçemez.
* Sayı ile başlayamaz.
* _ , $, # dışında özel karakter içeremez..(_ $ # )(a-Z,0-9 alfanümerik)
* Bazı özel keywordleri veremezsiniz, oracle onları kendi için reserve etmiştir.
BETWEEN, DEFAULT, INTO, UPDATE , FLOAT vb.
Tüm reserved listeye bakmak isterseniz;

Select * From V$RESERVED_WORDS; sorgusunu inceleyebilirsiniz..

ORA-01017 Invalid Username/Password

ORA-01017 Invalid Username/Password

Kullanıcı adı ve/veya şifre yanlış giriliyordur, kontrol ediniz.
sec_case_sensitive_logon aktif ise(11G+ sonrası) büyük-küçük harf duyarlıdır,büyük küçük harf ayrımına dikkat ediniz.

SQL> show parameter sec_case_sensitive_logon;

NAME TYPE VALUE
———————————— ———– —–
sec_case_sensitive_logon boolean FALSE

ORA-00942 Table or view does not exist

ORA-00942 Table or view does not exist
ORA-00942: tablo veya görüntü mevcut degil

Sorgulanan tablo veya view bulunamıyor.
İki sebebi olabilir, tablo olmayabilir gerçekten, ya da kullanıcının tabloya erişim yetkisi yoktur.

* Oracle yetki sorunu varsa bunu da tablo yok olarak gösterir güvenlik sebebiyle.

Tabloyu select eden kullanıcıya yetki verirseniz düzelir,doğrudan yetki vermek istemiyorsanız synonim yaratıp ona yetki verebilirsiniz..

Öprneğin; SH kullanıcısı HR kullanıcısının EMPLOYEES tablosuna erişebilmesi için;

SQL> CREATE PUBLIC SYNONYM CALISANLAR FOR HR.EMPLOYEES;

SQL> GRANT SELECT ON CALISANLAR TO SH;

ORA-00600: internal error code, arguments

ORA-00600: internal error code, arguments: [kkslrpl1],[],[]

Oracle buglarından kaynaklanan hatalardır veya yanlış set edilen bir parametreden dolayı alıyor olabilirsiniz.
Spesifik bir hata olmadığı için özel bir çözümü de yoktur.
Yapılması gereken metalinkten hatanın araştırılmasıdır.İlk argüman hatayı ve çözümünü bulmada bize yardımcı olur. (kkslrpl1)