9 Kasım 2015 Pazartesi

Oracle PASSWORD EXPIRY ORA-28002 Hatası

Soğuk ıssız hızlı ve öfkeli hayatımdan herkese merhaba. Bugünde siteye yazı yazıyım belki bir girersiniz, reklama tıkrarsınız, site reytinginiarttırırsınız diye beklenti ile sizleri biraz bilgilendireyim istedim.

Oracle veritabanını kullanırken 3-4-5 ay sonra bir bakmışsınız giriş yapılamıyor. Parolanız geçersiz olmuş ve ORA-28002 EXPIRY hatası alıyorsunuz ve bu her 3-4 ayda bir parola expiry olma durumundan sıkıldınız, bu durumu iptal etmek istiyorsunuz. Telaş yapmayın. Sakin olun. Bir kadeh malibu alıp aşağıdaki komutları izleyin ve uygulayın.


[oracle@yedek-ora olddumps]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Mon Nov 9 09:48:21 2015

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


Eğer kullanıcı profilini ve bu profile bağlı kullanıcıların parolalarını limitsiz yapmak isterseniz aşağıdaki komutları uygulayın.

SQL> select profile from DBA_USERS where username = 'SYSTEM';

PROFILE
------------------------------
DEFAULT

SQL> alter profile DEFAULT limit password_life_time UNLIMITED;

Profile altered.


Ayar sonrasında bu profil'in durumunu görmek için;


SQL> select resource_name,limit from dba_profiles where profile='DEFAULT';

RESOURCE_NAME             LIMIT
-------------------------------- ----------------------------------------
COMPOSITE_LIMIT          UNLIMITED
SESSIONS_PER_USER         UNLIMITED
CPU_PER_SESSION          UNLIMITED
CPU_PER_CALL             UNLIMITED
LOGICAL_READS_PER_SESSION     UNLIMITED
LOGICAL_READS_PER_CALL         UNLIMITED
IDLE_TIME             UNLIMITED
CONNECT_TIME             UNLIMITED
PRIVATE_SGA             UNLIMITED
FAILED_LOGIN_ATTEMPTS         10
PASSWORD_LIFE_TIME         UNLIMITED

RESOURCE_NAME             LIMIT
-------------------------------- ----------------------------------------
PASSWORD_REUSE_TIME         UNLIMITED
PASSWORD_REUSE_MAX         UNLIMITED
PASSWORD_VERIFY_FUNCTION     NULL
PASSWORD_LOCK_TIME         1
PASSWORD_GRACE_TIME         7

16 rows selected.


Parolanızın tekrar ayarlanması ile parola 'EXPIRY' durumundan kurtarırsınız ve bu 'EXPIRY' durumu sınırsız olarak belirlenir. 'EXPIRY' olmuş diğer kullanıcı parola yeniden ayarlanmadığı için 'EXPIRY' durumunda kalır.




SQL> ALTER USER SYSTEM IDENTIFIED BY "parolanız";

User altered.

SQL> select username, account_status, to_char(expiry_date, 'DD-MM-YYYY') EXP_DATE from dba_users where username = 'SYSTEM';

USERNAME               ACCOUNT_STATUS            EXP_DATE
------------------------------ -------------------------------- ----------
SYSTEM                   OPEN


SQL> select username, account_status, to_char(expiry_date, 'DD-MM-YYYY') EXP_DATE from dba_users where username = 'SCOTT';

USERNAME               ACCOUNT_STATUS            EXP_DATE
------------------------------ -------------------------------- ----------
SCOTT                   EXPIRED & LOCKED         31-10-2014

İptal olacak parola gün sınırını uzatmak istiyorsanız PASSWORD_LIFE_TIME
özelliğini istediğiniz güne göre ayarlamalısınız. (mesela 150 gün)

SQL> ALTER PROFILE LIMIT parola_parametreleri 150;

Bu parola_parametreleri;












Floransa'dan herkese selamlar...

24 Ekim 2015 Cumartesi

Oracle Türkiye 2015 Sonbahar Gün Işığından Yararlanma Saati Ayarlaması Ertelemesi için Patch Güncellenmesi

Türkiye DST (Günışığından yararlanma saati) değişimi 2015 yılı sonu seçimler nedeni ile 8 kasıma ertelenmiştir. Bunun için Server'ların erkenden yani 25 Ekim pazar gecesi 04:00'dan 03:00'a dönmesinin ertelenmesi için PATCH çıkmıştır. DOC ID 2067485.1.

Sonbahar 2015 DST saat değişiminin ertelenmesi için; önceilkle Oracle Linux tarafında yum paketi çalıştırılır. Eğer yum paketi çalışmazsa rpm paketleri indirilip kurulmalı. Yum paketi Internet kısıtlanması varsa ODA makinası RAC ortamlarda çalışmamaktadır.

yum update –enablerepo=*l5_latest tzdata tzdata-java

rpm paketleri indirmek için OL5 :

OL 6:

rpm paketlerini uygulamak için;
$> rpm -Uvh tzdata-2015g-2.el6.noarch.rpm
$> rpm -Uvh tzdata-java-2015g-2.el6.noarc.rpm

bundan sonra makine yeniden başlatılır. Oda makinalarında yeniden başlatmadan önce root kullanıcısı ile srvctl işlemi yapılır. cd /u01/app/11.2.0.3/grid/bin/ yada 12.1.0.2/grid/bin/ . Açıksa veritabanı
$> srvctl stop instance -i instanceAdı -d VeritabanıAdı

Sonraki aşama RDBMS paket yüklenmesi. İndirilecek paket

Patch:22037014 - DST-25: DST UPDATE OCTOBER 2015 - TZDATA2015G


bu opatch paketi kurulur. Opatch paketini ODA makinalarında ilk node'a kurulunca ikinci node otomatik olarak kendi üzerine de aldı. İlk node'da veritabanı kapama açma yapılacak. Bunun için önce patch unzip ile açılır.

root kullanıcısı ile srvctl işlemi yapılır. cd /u01/app/11.2.0.3/grid/bin/ yada 12.1.0.2/grid/bin/ . Açıksa veritabanı
srvctl stop instance -i instanceAdı -d VeritabanıAdı

Sonra oracle kullanıcısı ile

$> Opatch apply

komutu çalıştırılır. Eğer çalışmazsa export PATH=PATH:$ORACLE_HOME/opatch denilerek opatch komutu kullanıma açılır.

root kullanıcısı ile srvctl işlemi yapılır. cd /u01/app/11.2.0.3/grid/bin/ yada 12.1.0.2/grid/bin/ . Kapalıysa veritabanı
srvctl start instance -i instanceAdı -d VeritabanıAdı

Şimdi oracle kullanıcısına gelinir ve sqlplus ile DST_PRIMARY_TT_VERSION eski versiyondan yeni versiyona geçilmesi için işlemler yapılır. Bunun için otomatik geçiş yapacak sql dosyaları indirilir. DBMS_DST_scriptsV1.9.zip . Sonra unzip ile dosya açılır. SQLplus ile;

SQL > SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME LIKE 'DST_%'
ORDER BY PROPERTY_NAME;

sonucunda DST_PRIMARY_TT_VERSION şimdiki versiyon, DST_SECONDARY_TT_ VERSION 0 ve DST_UPGRADE_STATE NONE olarak belirtilecek.

SQL> spool upg_tzv_check.log
SQL> @upg_tzv_check.sql
SQL> spool off

NOT : RAC değilse NOT'u atlayın. eğer RAC veritabanı single instance açılmalı hatası verirse; ilk node üzerinde

SQL> alter system set cluster_database=false scope=spfile;

SQL> startup force;

denilip

SQL> spool upg_tzv_check.log
SQL> @upg_tzv_check.sql
SQL> spool off

ve

spool upg_tzv_apply.log
@upg_tzv_apply.sql
spool off

çalıştırılır. Sonra aşağıdaki komut sonucunda DST_PRIMARY_TT_VERSION güncellenen versiyon, DST_SECONDARY_TT_ VERSION 0 ve DST_UPGRADE_STATE NONE olarak belirtilecek.

SQL > SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value
FROM DATABASE_PROPERTIES
WHERE PROPERTY_NAME LIKE 'DST_%'
ORDER BY PROPERTY_NAME;

16 Ekim 2015 Cuma

ORA-28000 the account is locked


          ORA-28000: the account is locked Cause: The user has entered wrong password consequently for maximum number of times specified by the user"s profile parameter FAILED_LOGIN_ATTEMPTS, or the DBA has locked the account 

           Action: Wait for PASSWORD_LOCK_TIME or contact DBA



        Burada yapmanız gereken bağlanmaya çalıştığınız kullanıcıyı LOCK durumundan UNLOCK durumuna getirmek.

           SQL > ALTER USER kullanici_adi  IDENTIFIED BY parolanız ACCOUNT UNLOCK;


           DBA ile giriş yaptığınız sqlplus komut satırına LOCK olan kulanıcıları listelemek için;


           SQL > select username,account_status from dba_users where account_status like '%LOCK%';

30 Eylül 2015 Çarşamba

opidcl aborting process unknown ospid (...) as a result of ORA-604 Hatasının Çözümü ve Yorumu

opidcl aborting process unknown ospid (1574) as a result of ORA-604
Thu Sep 17 16:44:34 2015
Thread 1 advanced to log sequence 33855 (LGWR switch)
  Current log# 15 seq# 33855 mem# 0: +REDO/atorcl/onlinelog/group_15.264.817934111
Thu Sep 17 16:44:35 2015
Archived Log entry 137756 added for thread 1 sequence 33854 ID 0xaa0f9166 dest 1:






Biz DBA'lerin Oracle'da alertlog dosyasında bu gibi bir hata alındığı takdirde bypass etmemiz, yani gözardı etmemiz doğru olacaktır. Çünkü Oracle'a bağlanan session'un timeout olduğu zaman bu hata vermektedir.

Eğer bu hatayı almak istemiyorsanız idle time değerini unlimited
etmeniz gerekecektir. Fakat büyük sistemlerde bu önerirmemektedir. Hatta mümkün değildir.

O yüzden hatayı gözardı etmek en iyi seçenektir.

Saygılar
Ahmet Melih Başbuğ
Junior Oracle DBA
BİLGİSAYAR MÜHENDİSİ
Master Student at Baskent University Computer Engineering Department

28 Eylül 2015 Pazartesi

MariaDb 5.5.45 UBUNTU sisteme kurulumu


madde 1) Gerekli olan yazılımları yüklemek ve package management system'de MariaDB public key için ;

$> sudo apt-get install software-properties-common
$> sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db


Sonra MariaDB repository eklenir:
sudo add-apt-repository 'deb http://mirror.jmu.edu/pub/mariadb/repo/5.5/ubuntu trusty main'


paket veritabanını yeniden update ile kontrol edilir.
sudo apt-get update


madde 2) MariaDB Kurulumu için çalıştırılacak komut;


sudo apt-get install mariadb-server
Kurulum esnasında parola sorulacak ve bu parola için MariaDB yönetici hesabı parolası girilecek;



madde 3) kurulum bitti. MariaDB servisi durdurun. Data_Dir değiştirilecek.


sudo service mysql stop




MariaDB [(none)]> show variables where variable_name like ‘datadir';
+———————+—————––+
| Variable_name | Value |
+———————+—————––+
| datadir | /var/lib/mysql/ |
+———————+—————––+
1 row in set (0.00 sec)


İstenilen bölüme gelerek KOHADATA isimli bir dosya oluşturulur.
root@localhost:~# mkdir kohadata
root@localhost:~# chown mysql:mysql kohadata
root@localhost:~# cp -R -p /var/lib/mysql kohadata
root@localhost:~# chmod 775 -R kohadata

/etc/mysql/my.cnf dosyasının bir yedeğini oluştur. Sonra [mysqld] section altında datadir değerini değiştir.

Şimdi mysql_install_db ile yeniden initializate et.
root@localhost:~# mysql_install_db


madde 4) Şimdi mysql servisini başlatabilirsiniz. Sonra servisi başlat ve mysql şifresi ata


$> sudo service mysql start
$> sudo mysql_secure_installation
Enter your current password.
Enter the root MariaDB password set during installation:


root parolasını belirledikten sonra;


Remove anonymous users, Y:
Disallow root logins remotely, Y:
Remove test database and access to it, Y:
And reload privilege tables, Y:


madde 5) MariaDB kurulumunu Doğrulama


versiyon kontrolü için
mysql -V
MariaDB'ye giriş için
mysql -p


örnek çıktı

NOT:

Son olarak MariaDB servisi durumu kontrol etmek için ise :
sudo service mysql status