Sepetiniz

Chrony istemcisinin, Windows NTP Sunucularından zaman senkronizasyonu yapmaması

Oracle Linux 7.0 ve sonraki versiyonlardaki ntpd yerine kullanılan chrony , varsayılan ayarlarla çalıştırıldığında Windows NTP sunucularından zaman senkronizasyonu yapmamaktadır.

Kontrol yapıldığında aşağıdaki gibi “Not synchronised” şeklinde görülmektedir.

 

[root@oradb1 ~]# chronyc tracking
Reference ID    : 00000000 ()
Stratum         : 0
Ref time (UTC)  : Thu Jan 01 00:00:00 1970
System time     : 0.000000000 seconds fast of NTP time
Last offset     : +0.000000000 seconds
RMS offset      : 0.000000000 seconds
Frequency       : 0.000 ppm slow
Residual freq   : +0.000 ppm
Skew            : 0.000 ppm
Root delay      : 1.000000000 seconds
Root dispersion : 1.000000000 seconds
Update interval : 0.0 seconds
Leap status     : Not synchronised

 

Sorunun çözümü için /etc/chrony.conf konfigürasyon dosyasına “maxdistance 16.0” satırı eklenip servisler yeniden başlatılmalıdır. Örnek konfigürasyon dosyası aşağıdaki gibi olabilir.

 

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool 2.pool.ntp.org iburst
server 10.10.212.4 iburst
server 10.10.212.5 iburst

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# Allow NTP client access from local network.
#allow 10.10.212.0/24

# Serve time even if not synchronized to a time source.
#local stratum 10

# Specify file containing keys for NTP authentication.
keyfile /etc/chrony.keys 

# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking

maxdistance 16.0

 

Gerekli değişiklik sonrasında chronyd servisini aşağıdaki gibi yeniden başlatın. 

 

[root@oradb1 ~]# systemctl stop chronyd
[root@oradb1 ~]# systemctl start chronyd

Tekrar kontrol edildiğinde sorunsuz şekilde senkron hale getirecektir.

[root@oradb1 ~]# chronyc tracking
Reference ID    : 0A6AD404 (DC01.interiva.local)
Stratum         : 2
Ref time (UTC)  : Tue Jun 28 12:45:57 2022
System time     : 0.000000523 seconds fast of NTP time
Last offset     : +0.000000527 seconds
RMS offset      : 0.000000527 seconds
Frequency       : 1.094 ppm fast
Residual freq   : +0.013 ppm
Skew            : 76.336 ppm
Root delay      : 0.000752150 seconds
Root dispersion : 10.952806473 seconds
Update interval : 2.0 seconds
Leap status     : Normal

 

Drop tablespace işlemindeki ORA-02429: cannot drop index used for enforcement of unique/primary key hatası

Oracle veritabanlarında bir tablo alanında daha önceden oluşturulan bir tabloya ait constrain’ler olduğunda tablo alanın silinmesine izin verilmemektedir. Tablo alanı boş olduğunda bile Constrains’ler etkin olduğunda tablo alanı drop işleminde ORA-02429 hatası alınacaktır. Sorunun çözümü için ilgili Constrain’leri pasif duruma getirmek gerekmektdir.

Alınan hata aşağıdaki gibi olacaktır.

SQL> DROP TABLESPACE DATA_TS INCLUDING CONTENTS AND DATAFILES;
DROP TABLESPACE DATA_TS INCLUDING CONTENTS AND DATAFILES
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-02429: cannot drop index used for enforcement of unique/primary key

 

Hatanıın çözümü için drop işlemi yapılan tablo alanlarında oluşturulmuş constrain’leri DISABLE duruma getirmek gerekmektedir. Aşağıdaki sorgu ile gerekli komutları oluşturabilir, sonrasında oluşan komutları çalıştırıp , ilgili constrain’leri disable yapabilirsiniz.

SQL> set lines 1000
SQL> select 'ALTER TABLE '||owner||'.'||table_name||' DISABLE CONSTRAINT '|| constraint_name||';' from dba_constraints where (index_owner,index_name) in (select owner,index_name from dba_indexes where tablespace_name='DATA_TS')

'ALTERTABLE'||OWNER||'.'||TABLE_NAME||'DISABLECONSTRAINT'||CONSTRAINT_NAME||';'
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ALTER TABLE ADURUOZ.TABLE1 DISABLE CONSTRAINT KOD_UNQ;
ALTER TABLE ADURUOZ.TABLE2 DISABLE CONSTRAINT PK_ID;

 

Constrain’ler disable duruma geldikten sonra ilgili tablo alanı sorunsuz şekilde drop edilebilecektir.

 

SQL> DROP TABLESPACE DATA_TS INCLUDING CONTENTS AND DATAFILES;
Tablespace dropped.

 

 

Oracle Exadata infiniband switch portları AutomaticHighErrorRate sebebiyle down olduğunda nasıl up yapılır ?

Oracle Exadata infiniband switch portlarındaki hata sayısı belirtilen eşik değerlere ulaştığında otomatik olarak AutomaticHighErrorRate olacak şekilde down duruma getirilmektedir. Sorun giderildikten sonra aşağıdaki şekilde up duruma getirilebilir.

Öncelikle sorun olan infiniband switch’e ssh ile bağlanılmalıdır.

Down durumdaki portun tespiti :

[root@exasw-iba01 ~]# listlinkup
Connector  0A Not present
Connector  1A Not present
Connector  2A Present <-> Switch Port 24 is up (Enabled)
Connector  3A Not present
Connector  4A Not present
Connector  5A Present <-> Switch Port 30 is up (Enabled)
Connector  6A Not present
Connector  7A Not present
Connector  8A Present <-> Switch Port 31 is up (Enabled)
Connector  9A Present <-> Switch Port 14 is up (Enabled)
Connector 10A Present <-> Switch Port 16 is up (Enabled)
Connector 11A Present <-> Switch Port 18 is up (Enabled)
Connector 12A Not present
Connector 13A Not present
Connector 14A Not present
Connector 15A Not present
Connector 16A Not present
Connector 17A Not present
Connector  0B Not present
Connector  1B Present <-> Switch Port 21 is up (Enabled)
Connector  2B Not present
Connector  3B Not present
Connector  4B Present <-> Switch Port 27 is up (Enabled)
Connector  5B Present <-> Switch Port 29 is up (Enabled)
Connector  6B Present <-> Switch Port 36 is down (AutomaticHighErrorRate)
Connector  7B Not present
Connector  8B Not present
Connector  9B Present <-> Switch Port 13 is up (Enabled)
Connector 10B Present <-> Switch Port 15 is up (Enabled)
Connector 11B Present <-> Switch Port 17 is up (Enabled)
Connector 12B Not present
Connector 13B Not present
Connector 14B Not present
Connector 15B Not present
Connector 16B Not present
Connector 17B Not present

 

Yukardaki çıktıdan görüldüğü üzere 36 numaralı port down durumdadır. Bu portu aşağıdaki şekilde up duruma getirebilirsiniz.

 

[root@exasw-iba01 ~]# enableswitchport --automatic Switch 36
Enable connector 6B Switch port 36
Adminstate:......................Enabled
LinkWidthEnabled:................1X or 4X
LinkWidthSupported:..............1X or 4X
LinkWidthActive:.................4X
LinkSpeedSupported:..............2.5 Gbps or 5.0 Gbps or 10.0 Gbps
LinkState:.......................Down
PhysLinkState:...................Polling
LinkSpeedActive:.................2.5 Gbps
LinkSpeedEnabled:................2.5 Gbps or 5.0 Gbps or 10.0 Gbps
NeighborMTU:.....................2048
OperVLs:.........................VL0-7

Bir müddet bekledikten sonra listlinkup komutu ile kontrol ettiğinizde ilgili port Up ve Enabled durumda olacaktır. 

 

[root@exasw-iba01 ~]# listlinkup
Connector  0A Not present
Connector  1A Not present
Connector  2A Present <-> Switch Port 24 is up (Enabled)
Connector  3A Not present
Connector  4A Not present
Connector  5A Present <-> Switch Port 30 is up (Enabled)
Connector  6A Not present
Connector  7A Not present
Connector  8A Present <-> Switch Port 31 is up (Enabled)
Connector  9A Present <-> Switch Port 14 is up (Enabled)
Connector 10A Present <-> Switch Port 16 is up (Enabled)
Connector 11A Present <-> Switch Port 18 is up (Enabled)
Connector 12A Not present
Connector 13A Not present
Connector 14A Not present
Connector 15A Not present
Connector 16A Not present
Connector 17A Not present
Connector  0B Not present
Connector  1B Present <-> Switch Port 21 is up (Enabled)
Connector  2B Not present
Connector  3B Not present
Connector  4B Present <-> Switch Port 27 is up (Enabled)
Connector  5B Present <-> Switch Port 29 is up (Enabled)
Connector  6B Present <-> Switch Port 36 is up (Enabled)
Connector  7B Not present
Connector  8B Not present
Connector  9B Present <-> Switch Port 13 is up (Enabled)
Connector 10B Present <-> Switch Port 15 is up (Enabled)
Connector 11B Present <-> Switch Port 17 is up (Enabled)

 

ORA-00600: internal error code, arguments: [qesmaGetTblSeg_INT_3] hatası

29871098 numaralı bug sebebiyle partitioned tablolardaki DML işlemlerinde “ORA-00600: internal error code, arguments: [qesmaGetTblSeg_INT_3] ” şeklinde hata görülmektedir. Hatanın çözümü için veritabanınız ile uyumlu 29871098 numaralı yamayı uygulamanız gerekmektedir.

Sorun 12c ve üzeri sürümdeki veritabanların görülebilmektedir. Aşağıdaki versiyonlarda sorun giderilmiştir.

  • 20.1.0
  • 19.6.0.0.200114 (Jan 2020) Database Release Update (DB RU)

 

29871098 numaralı yama sadece database home için uygulanmalıdır.

 

CRS-6706: Oracle Clusterware Release patch level (‘xxx’) does not match Software patch level (‘yyy’)

Oracle Grid 12.1 yada 12.2 versiyonlarında crs açılırken yama seviyelerinin farklı olmasına bağlı olarak  “CRS-6706: Oracle Clusterware Release patch level (‘xxx’) does not match Software patch level (‘yyy’)” şeklinde hata verip açılmamaktadır. Sorun genellikle yama uygulama sonrasında oluşmaktadır.

Alınan hata aşağıdakine benzer şekilde olacaktır.

[root@exadbadm01 ~]# /u01/app/12.2.0.1/grid/bin/crsctl start crs
CRS-6706: Oracle Clusterware Release patch level ('1299911088') does not match Software patch level ('1860257038'). Oracle Clusterware cannot be started.
CRS-4000: Command Start failed, or completed with errors.

Mevcut patch level bilgilerini aşağıdaki gibi sorgulayabilirsiniz.

/u01/app/12.2.0.1/grid/bin/kfod op=patches

ve 

/u01/app/12.2.0.1/grid/bin/kfod op=patchlvl

RAC ortamlardaki tüm node’larda yama seviyesi aynı olmalıdır. Problem olan node’da aşağıdaki işlemler ile sorun giderilebilir.

 

12.1 için (root ile):

<GI_HOME>/crs/install/rootcrs.sh -patch

12.2 için (root ile)

Önce

<GI_HOME>/perl/bin/perl <GI_HOME>/crs/install/rootcrs.pl -prepatch

Sonra

<GI_HOME>/perl/bin/perl <GI_HOME>/crs/install/rootcrs.pl -postpatch

 

Standalone server şeklindeki Oracle Grid Infrastructure için :
root ile

<GI_HOME>/crs/install/roothas.sh -unlock
<GI_HOME>/crs/install/roothas.sh -patch