ASM Dışında Bir Lokasyona Eklenen Datafile’ in ASM İçerisine Alınması

Normalde RAC olan bir sistemde tüm datafile’ lerin ASM içerisinde olması gerekir. Ancak yanlışlıkla ASM dışına dbf eklenmesi durumunda, eklenen bu datafile ‘in tekrar dan ASM içerisine alınması için ne yapılması gerektiğini anlatacağım;

ASM kullanılan sistemlerde dbf eklerken zaman zaman yapılan hata asm disk group’ unu yazarken başına + yazmadan datafile eklemeye çalışmaktır;

ALTER TABLESPACE TBS_DATA ADD DATAFILE ‘DATA’ SIZE 30G AUTOEXTEND OFF;

Yukarıdaki şekilde dbf eklendiğinde eklenen bu datafile OH altında /dbs altına create edilecektir. Kontrol edelim ;

SQL> column name format A50
SQL> column status format A10;
SQL> set line 500
SQL> set pagesize 32000
SQL> select file#, name, status from v$datafile ;

FILE# NAME STATUS
———- ————————————————– ———-
1 +DATA/ractest/datafile/system.256.830617641 SYSTEM
2 +DATA/ractest/datafile/sysaux.257.830617641 ONLINE
3 +DATA/ractest/datafile/undotbs1.258.830617641 ONLINE
4 +DATA/ractest/datafile/users.259.830617641 ONLINE
5 +DATA/ractest/datafile/example.267.830617729 ONLINE
6 +DATA/ractest/datafile/undotbs2.268.830617827 ONLINE
7 +DATA/ractest/datafile/test_data01.dbf ONLINE
8 +DATA/ractest/datafile/data0201.dbf ONLINE
9 +DATA/ractest/datafile/test1.276.839325807 ONLINE
10 +DATA/ractest/datafile/test1.277.839326007 ONLINE
11 +DATA/ractest/datafile/test1.278.839326037 ONLINE
12 /u01/oracle/db/11.2.0.3/dbs/DATA ONLINE

12 rows selected.

Yanlış path’ e eklenen bu dbf’ i ASM altına almak için database açıkken (kullanılıyor iken) aşağıdaki adımları uygulayabiliriz ;

Datafile’ i offline moda alıp drop ediyoruz;

SQL> ALTER DATABASE DATAFILE ‘/u01/oracle/db/11.2.0.3/dbs/ DATA’ OFFLINE;
Database altered.

Sonrasında drop ediyoruz ;

SQL> ALTER DATABASE DATAFILE ‘/u01/oracle/db/11.2.0.3/dbs/ DATA ‘ OFFLINE drop ;
Database altered.

Statüsünü tekrar kontrol ettiğimiz de ;

SQL> select file#, name, status from v$datafile ;

FILE# NAME STATUS
———- ————————————————– ———-
1 +DATA/ractest/datafile/system.256.830617641 SYSTEM
2 +DATA/ractest/datafile/sysaux.257.830617641 ONLINE
3 +DATA/ractest/datafile/undotbs1.258.830617641 ONLINE
4 +DATA/ractest/datafile/users.259.830617641 ONLINE
5 +DATA/ractest/datafile/example.267.830617729 ONLINE
6 +DATA/ractest/datafile/undotbs2.268.830617827 ONLINE
7 +DATA/ractest/datafile/test_data01.dbf ONLINE
8 +DATA/ractest/datafile/data0201.dbf ONLINE
9 +DATA/ractest/datafile/test1.276.839325807 ONLINE
10 +DATA/ractest/datafile/test1.277.839326007 ONLINE
11 +DATA/ractest/datafile/test1.278.839326037 ONLINE
12 /u01/oracle/db/11.2.0.3/dbs/ DATA RECOVER

12 rows selected.

Recover modda olduğunu görürüz. Aşağıdaki komutla dbf’ in ASM içerisini görecek şekilde alter etmemiz gerekiyor ;

SQL> alter database create datafile ‘/u01/oracle/db/11.2.0.3/dbs/ DATA ‘ as ‘+DATA’ size 1G;
Database altered.

Bu işlemi yaparken eğer create edilirkenki orjinal size ‘ ı vermeden yapmaya çalışırsanız aşağıdaki hatayı alırsınız;

SQL> alter database create datafile ‘/u01/oracle/db/11.2.0.3/dbs/ DATA ‘ as ‘+DATA’ ;
alter database create datafile ‘/u01/oracle/db/11.2.0.3/dbs/ DATA ‘ as ‘+DATA’
*
ERROR at line 1:
ORA-01136: specified size of file 12 (12800 blocks) is less than original size of 131072 blocks
ORA-01110: data file 12: ‘/u01/oracle/db/11.2.0.3/dbs/DATA ‘

Size’ i bilmiyor iseniz alınan hatadaki block sayısını db_block_size parametrenizdeki değer ile çarpıp /1024/1024/1024 yaparsanız GB cinsinden değerin ne olduğunu bulabilirsiniz.

Bizim örneğimizde ;

(131072*8192) = 1073741824 /1024/1024/1024 = 1 GB.

Sıra datafile’ imizin statüsünü ONLINE’ na almaya geldi. Offline olan bir datafile ‘i ONLINE moda almak için mutlaka recover etmemiz gerekeceğinden dolayı aşağıdaki işlemi yapıyoruz ;

[oracle@trdbaora01t dbs]$ rman target /
Recovery Manager: Release 11.2.0.3.0 – Production on Fri Oct 10 17:11:07 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: RACTEST (DBID=1378392371)

RMAN> recover datafile 12;

Starting recover at 10-OCT-14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1152 instance=ractest1 device type=DISK

starting media recovery
media recovery complete, elapsed time: 00:00:01
Finished recover at 10-OCT-14
RMAN>

Recover sonrasında statusun artık OFFLINE olarak değiştiğini görebilirsiniz;

SQL> select file#, name, status from v$datafile ;

FILE# NAME STATUS
———- ————————————————– ———-
1 +DATA/ractest/datafile/system.256.830617641 SYSTEM
2 +DATA/ractest/datafile/sysaux.257.830617641 ONLINE
3 +DATA/ractest/datafile/undotbs1.258.830617641 ONLINE
4 +DATA/ractest/datafile/users.259.830617641 ONLINE
5 +DATA/ractest/datafile/example.267.830617729 ONLINE
6 +DATA/ractest/datafile/undotbs2.268.830617827 ONLINE
7 +DATA/ractest/datafile/test_data01.dbf ONLINE
8 +DATA/ractest/datafile/data0201.dbf ONLINE
9 +DATA/ractest/datafile/test1.276.839325807 ONLINE
10 +DATA/ractest/datafile/test1.277.839326007 ONLINE
11 +DATA/ractest/datafile/test1.278.839326037 ONLINE
12 +DATA/ractest/datafile/data02.280.860605355 OFFLINE

12 rows selected.

Online’ a almak içinse ;

SQL> ALTER DATABASE DATAFILE ‘+DATA/ractest/datafile/data02.280.860605355’ ONLINE;
Database altered.

Tekrar kontrol ettiğimizde ;

SQL> select file#, name, status from v$datafile ;

FILE# NAME STATUS
———- ————————————————– ———-
1 +DATA/ractest/datafile/system.256.830617641 SYSTEM
2 +DATA/ractest/datafile/sysaux.257.830617641 ONLINE
3 +DATA/ractest/datafile/undotbs1.258.830617641 ONLINE
4 +DATA/ractest/datafile/users.259.830617641 ONLINE
5 +DATA/ractest/datafile/example.267.830617729 ONLINE
6 +DATA/ractest/datafile/undotbs2.268.830617827 ONLINE
7 +DATA/ractest/datafile/test_data01.dbf ONLINE
8 +DATA/ractest/datafile/data0201.dbf ONLINE
9 +DATA/ractest/datafile/test1.276.839325807 ONLINE
10 +DATA/ractest/datafile/test1.277.839326007 ONLINE
11 +DATA/ractest/datafile/test1.278.839326037 ONLINE
12 +DATA/ractest/datafile/data02.280.860605355 ONLINE

12 rows selected.

Sorunumuzun düzeldiğini görebiliriz.

Be Sociable, Share!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


beş − 1 =