Pages

15 Mart 2012 Perşembe

Standalone Oracle 10g veritabanının 10g RAC veritabanına dönüştürülmesi

Standalone Oracle 10g veritabanın Oracle 10g RAC veritabanına dönüştürülmesi işlemi öncesinde tüm düğümlerde clusterware yazılımının kurulmuş olması ve sunucuların RAC yapısında hizmet verecek şekilde fiziksel olarak yapılandırılmış olması gerekmektedir. Bu kurulum öncesi işlemlerin tamamlandığından emin olunduktan sonra daha önceden stand alone olarak hizmet veren bir Oracle 10g veritabanının RAC veritabanına dönüştürme işlemi için aşağıdaki adımların uygulanması yeterli olacaktır.


1.    Stand alone veritabanının yedeğinin alınması ve bu işlemler öncesinde paylaşımlı alanda geri yükleme işleminin yapılması gerekmektedir. Ayrıca her iki düğümdede listener.ora ve tnsnames.ora dosyalarının RAC yapısında hizmet vermek üzere birebir aynı yapılandılmış olması gerekmektedir. Senaryoda rac1 ve rac2 adlı fiziksel hostlar, ORCL1 ve ORCL2 olarak adlandırılan RAC instance'lar ve ORCL adlı RAC veritabanı mevcuttur.
2.    İlk olarak her bir ilave RAC instance için redo log thread'lerin oluşturulması gerekmektedir. Eğer thread 1 için 4 adet redo log grup mevcutsa, (ikinci instance’taki) ikinci thread içinde 4 adet redo log grup oluşturulmalıdır. İkinci RAC instance için aşağıdaki gibi redo log grupları oluşturulur:

SQL> alter database add logfile thread 2 group 5
('/u04/oradata/ORCL/ORCL2_redo_01a.rdo',
'/u03/oradata/ORCL/ORCL2_redo_01b.rdo') size 200m;

SQL> alter database add logfile thread 2 group 6
('/u05/oradata/ORCL/ORCL2_redo_02a.rdo',
'/u02/oradata/ORCL/ORCL2_redo_02b.rdo') size 200m;

SQL> alter database add logfile thread 2 group 7
('/u04/oradata/ORCL/ORCL2_redo_03a.rdo',
'/u03/oradata/ORCL/ORCL2_redo_03b.rdo') size 200m;

SQL> alter database add logfile thread 2 group 8
('/u05/oradata/ORCL/ORCL2_redo_04a.rdo',
'/u02/oradata/ORCL/ORCL2_redo_04b.rdo') size 200m;

ASM üzerindeki RAC veritabanları içinde sentaks benzerdir, ancak db_create_file_dest ve db_create_online_log_dest_1 parametrelerinin ilgili ASM instance’ını işaret etmesi gerekmektedir(‘+DATA’ gibi), ardından ASM ortamında redo log grupları ilave düğüm için aşağıdaki gibi oluşturulur.

SQL> alter database add logfile thread 2 group 5 size 200m;
SQL> alter database add logfile thread 2 group 6 size 200m;
SQL> alter database add logfile thread 2 group 7 size 200m;
SQL> alter database add logfile thread 2 group 8 size 200m;

Redo log gruplar oluşturulduktan sonra ikinci thread’ın aktive edilmesi gerekmektedir.

SQL> alter database enable thread 2;

3.    Her bir thread için bir redo grubu oluşturduktan sonra ilave her RAC instance için undo tablespace oluşturulmalıdır.

SQL> create undo tablespace undo_rac2
datafile '/u02/oradata/ORCL/undo_rac2_01.dbf' size  3000m;

4.    Her bir RAC düğümünde oturum açıp RAC düğümler hakkında teker teker bilgi almak yerine, $ORACLE_HOME/rdbms/admin dizininden sysdba hakkı ile catclust.sql scripti çalıştırılarak RAC görünümleri oluşturulmalıdır. Bu script çalıştırıldıktan sonra sisteme yüklenecek olan sistem görünümleri ile, örneğin tüm RAC instance’lar üzerinde aktif oturumlar hakkında bilgi almak için her bir düğümde V$SESSION görünümü yerine sadece GV$SESSION görünümüne sorgu çekilebilecektir.

SQL> @$ORACLE_HOME/rdbms/admin/catclust.sql;
SQL> CREATE PFILE='/tmp/initORCL.ora' FROM SPFILE;

5.    RAC veritabanının açılışta tanınabilmesi için spfile dosyasının güncellenmesi gerekmektedir. Bu işlem yukardaki gibi spfile dosyasından oluşturulan pfile dosyası üzerinde aşağıdaki gibi yapılmalıdır:

*.cluster_database_instances=2
*.cluster_database=true
ORCL1.thread=1
ORCL1.instance_number=1
ORCL1.undo_tablespace='UNDO_RAC1'
ORCL1.local_listener=’listener_rac1’
ORCL1.remote_listener=’listener_rac2’


# İkinci düğüm
ORCL2.thread=2
ORCL2.instance_number=2
ORCL2.undo_tablespace='UNDO_RAC2'
ORCL2.local_listener=’listener_rac2’
ORCL2.remote_listener=’listener_rac1’

*.remote_login_passwordfile='exclusive'

# ASM kullanıldığında geçerli olacak 10g parametreleri
*.db_create_file_dest='+DATA'
*.db_create_online_log_dest_1='+DATA'

6.    Pfile dosyasından veritabanı birinci instance üzerinden açıldıktan sonra, tüm RAC instance’lar tarafından erişilebilir olan bir lokasyonda spfile dosyası oluşturulmalıdır.

SQL>STARTUP FROM PFILE='/tmp/initORCL.ora';
SQL>CREATE SPFILE ='/u02/dbs/spfile_ORCL.ora' FROM PFILE;

7.    Her bir düğümde $ORACLE_HOME/dbs içinde paylaşımlı spfile dosyasına link verilmesi gerekmektedir.

$ cd $ORACLE_HOME/dbs
$ ln -s /u02/dbs/spfileORCL.ora spfileORCL1.ora

İkinci düğümde;

$ cd $ORACLE_HOME/dbs
$ ln -s /u02/dbs/spfileORCL.ora spfileORCL2.ora

8.    Her bir instance için RAC Oracle Home dizini altında ORCL1 instance için password dosyası oluşturulur. Aynısı “orapwORCL2” olarak diğer düğümdede oluşturulacaktır.

$ orapwd file=orapwORCL1 password=testRACdb123

İkinci düğümde;

$ orapwd file=orapwORCL2 password=testRACdb123

9.    SRVCTL komutu kullanılarak RAC veritabanının OCR’ye kayıt edilmesi gerekmekte, ardında RAC veritabalarının yeniden başlatılması gerekmektedir.

SQL> srvctl add database -d ORCL -o /app/oracle/10.2.0/ORCL
SQL> srvctl add instance -d ORCL -i ORCL1 -n rac1
SQL> srvctl add instance -d ORCL -i ORCL2 -n rac2

1 yorum: