SRVCTL komutları ile Oracle instance yönetimi

Server Control Utility(SRVCTL) komutları ile Oracle 10.1 RAC sürümünden itibaren alttakileri yapabiliriz.

  • ASM instance işlemleri
  • Veritabanını başlatmak ve durdurmak
  • Veritabanının konfigürasyonunu kontrol etmek
  • Veritabanının durumunu kontrol etmek
  • Mevcut veritabanı konfigürasyonunu değiştirmek veya kaldırmak
  • Yeni bir veritabanı konfigürasyonu eklemek
  • Veritabanını etkinleştirmek veya devredışı bırakmak
******* +ASM instance için *******
ASM instance eklemek/kaldırmak için;
$ srvctl add asm -n -i -o
$ srvctl remove asm -n [ -i ]

ASM instance start-stop
$ srvctl start asm -n [-i ][-o ]
$ srvctl stop asm -n [-i ][-o ]

**başlatma_seçenekleri mount,nomount veya open olmaktadır. Varsayılan open’dır.**

ASM instance check status
[oracle@rac1 oracle] $ srvctl status asm -n rac1
ASM instance +ASM1 is running on node rac1
[oracle@rac1 oracle] $ srvctl status asm -n rac2
ASM instance +ASM1 is not running on node rac2

ASM instance mevcut konfigürasyonunu kontrol etmek için;
$ srvctl config asm
[oracle@rac1 ~]$ srvctl config asm
ASM home: /u01/app/11.2.0/grid
ASM listener: LISTENER

SRVCTL komutuyla aynı zamanda mevcut ASM instance etkinleştirmek veya devredışı bırakmak.
$ srvctl enable asm -n [ -i ]
$ srvctl disable asm -n [ -i ]

******* ORACLE instance için *******
SRVCTL komutuyla veritabanının konfigürasyonunu kontrol etmek;
$ srvctl config database -d RAC -a

[oracle@rac1 dbs]$ srvctl config database -d racdb
Database unique name: racdb
Database name:
Oracle home: /u01/app/racdb/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +ORADATA/racdb/spfileracdb.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: racdb
Database instances:
Disk Groups: ORADATA,ORAFRA,ORAREDO1,ORAREDO2
Mount point paths:
Services:
Type: RAC
Database is administrator managed

SRVCTL komutuyla veritabanının durumunu kontrol etmek;
$ srvctl status database -d racdb

[oracle@rac1 ~]$ srvctl status database -d racdb
Instance racdb1 is running on node rac1 
Instance racdb2 is running on node rac2 

SRVCTL komutuyla veritabanını başlatmak/durdurmak için;
[oracle@rac1 oracle]$ srvctl start database –d racdb
[oracle@rac1 oracle]$ srvctl stop database –d racdb

SRVCTL komutuyla veritabanını eklemek için;
[oracle@rac1 oracle]$ srvctl add database -d TEST -o $ORACLE_HOME

Bir Örnek yaparsak:
ð  Öncesinde config ile kontrol edelim mevcutta varmı?
[oracle@rac1 dbs]$ srvctl config database -d racdb
PRCD-1120 : The resource for database racdb could not be found.
PRCR-1001 : Resource ora.racdb.db does not exist


ð  Şimdi yeni Database i ekleyelim
[oracle@rac1 dbs]$ srvctl add database -d racdb -o /u01/app/oracle/product/11.2.0/dbhome_1 -p +ORADATA/oracdb/spfileracdb.ora -y AUTOMATIC -a "ORADATA,ORAFRA,ORAREDO1,ORAREDO2"

ð  Kontrol edelim
[oracle@rac1 dbs]$ srvctl config database -d racdb 
Database unique name: racdb 
Database name:
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +ORADATA/racdb/spfileracdb.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: racdb 
Database instances:
Disk Groups: ORADATA,ORAFRA,ORAREDO1,ORAREDO2
Mount point paths:
Services:
Type: RAC
Database is administrator managed

SRVCTL komutuyla mevcut veritabanı konfigürasyonunu değiştirmek için;
[oracle@rac1 oracle]$ srvctl modify database -d racdb -p /u03/oradata/racdb/spfileRACDB.ora
**Üstteki örnekte servis parametre dosyasını başka bir paylaşımlı lokasyona taşıyoruz.**

SRVCTL komutuyla veritabanı konfigürasyonunu kaldırmak için;
[oracle@ilker oracle]$ srvctl remove database -d USTA –f

[oracle@s0134ilker admin]$ srvctl remove database -d USTA
Remove the database oceandb? (y/[n]) y

ð  Kontrol edelim
[oracle@ilker admin]$ srvctl status database -d USTA -v
   PRCD-1120 : The resource for database USTA could not be found.
   PRCR-1001 : Resource ora.usta.db does not exist

SRVCTL komutuyla instance stop start
$ srvctl stop instance -d -n -o immediate
[oracle@predb02 ~]$ srvctl stop instance -d PREDB -n predb02
[oracle@predb02 ~]$ srvctl start instance -d PREDB -n predb02

SRVCTL komutuyla instance & Database ekleme:
srvctl add instance -d -i < instance names> -n

Örnek:
[oracle@db11 dbs]$ srvctl add instance -d racdb -i racdb1 -n db11
[oracle@db11 dbs]$ srvctl add instance -d racdb -i racdb2 -n db12

[oracle@db11 dbs]$ srvctl config database -d racdb 
Database unique name: racdb 
Database name:
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +ORADATA/racdb/spfileracdb.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: oceandb
Database instances: racdb1,racdb2
Disk Groups: ORADATA,ORAFRA,ORAREDO1,ORAREDO2
Mount point paths:
Services:
Type: RAC
Database is administrator managed

SRVCTL komutuyla service status, stop, start
srvctl status service -d dbname
srvctl config service -d dbname
srvctl start service -d dbname -s servicename
srvctl stop service -d dbname -s servicename

SRVCTL komutuyla service yönlendirme
$ srvctl relocate service -d dbname -s servicename -i instancename -t newinstancename [-f]

Örnek: Rac1 instance dan Rac2 instance yönlendirme
$ srvctl relocate service -d racdb -s pusula -i racdb1 -t racdb2 -f

Ara