DBAtlas · Veritabanı operasyon atlası

RAC service'ini başka instance'a taşı (relocate)

OracleRAC & Grid

Komut

# Once mevcut yerlesimi gor:
srvctl status service -db <db_unique_name> -service <service>
# Instance bazli tasima (oturumlar drain edilerek):
srvctl relocate service -db <db_unique_name> -service <service> \
  -oldinst <inst1> -newinst <inst3> -drain_timeout 120 -wait YES
# Node bazli (policy-managed / tek node service):
srvctl relocate service -db <db_unique_name> -service <service> \
  -currentnode <node1> -targetnode <node2>
# Ilgili oturumlarin dagilimi (SQL):
SELECT inst_id, service_name, COUNT(*) AS sessions
FROM   gv$session
WHERE  type = 'USER'
GROUP  BY inst_id, service_name
ORDER  BY service_name, inst_id;

Ne yapar?

Çalışan bir service'i bir instance/node'dan diğerine taşır; yeni bağlantılar hedef instance'a gider, mevcut oturumlar drain_timeout süresince kendiliğinden kapanmaya bırakılır.

Ne zaman kullanılır?

Bir node'u bakım öncesi boşaltmak, failover sonrası service'i preferred instance'a geri almak veya yükü dengelemek için.

Dikkat

Relocate geçicidir: service yapılandırmasını (preferred/available) değiştirmez; instance yeniden başlayınca service yine preferred'a döner. -force mevcut oturumları keser; uygulama yeniden bağlanmayı desteklemiyorsa kesinti yaşanır.

DBAtlas'ta aç →

İlgili