export를 하고 싶은데 ASM 으로 구성한 DB의 Filesystem에 공간이 없고 ASM내의 여유공간이 많을 경우에 이 방법을 사용해야 할 것이다.

 

1. 디렉토리를 만든다. 이 과정은 ASM의 특정 디렉토리에 만들 경우 필요하다.
 alter diskgroup data add directory '+data/dpump';

 

2. 디렉토리 오브젝트를 만든다.
create directory dpump as '+data/dpump';

 

3. 로그파일용 디렉토리를 만든다. 로그파일은 ASM 디스크내에 만들 수 없다는 점을 기억하자.
create directory dpump_log as '/home/oracle/dpump';

 

4. expdp를 수행한다.
expdp system/oracle directory=dpump dumpfile=expdp.dmp logfile=dpump_log:expdp.log full=y

 

5. ASM내 파일이 있는지 확인한다.

SQL> select file_number, bytes, creation_date from v$asm_file where type like 'DUMP%';

FILE_NUMBER      BYTES CREATION_
----------- ---------- ---------
        268    2572288 20-MAR-14

 

- asmcmd로도 확인 가능하다.
[grid@rac1 ~]$ asmcmd
ls
ASMCMD> DATA/
ASMCMD> cd data
ASMCMD> ls
DB_UNKNOWN/
ORCL/
dpump/
rac/
ASMCMD> cd dpump
ASMCMD> ls
expdp.dmp
ASMCMD> ls -l
Type     Redund  Striped  Time             Sys  Name
                                           N    expdp.dmp => +DATA/ORCL/DUMPSET/SYSTEMSYS_EXPORT_FULL_01_14068_1.268.842710589
ASMCMD> cd ../..
ASMCMD> ls
DATA/
ASMCMD> cd DATA/ORCL/DUMPSET/
ASMCMD> ls -l
Type     Redund  Striped  Time             Sys  Name
DUMPSET  UNPROT  COARSE   MAR 20 14:00:00  Y    SYSTEMSYS_EXPORT_FULL_01_14068_1.268.842710589

alias로 잡혀있는걸 알 수 있다. 이 alias를 지우면 원본 파일도 함께 지워진다.

ASMCMD> cd ../../dpump
ASMCMD> ls
expdp.dmp
ASMCMD> rm expdp.dmp
ASMCMD> cd ../..
ASMCMD> ls
DATA/
ASMCMD> cd data/orcl/
ASMCMD> ls
CONTROLFILE/
DATAFILE/
ONLINELOG/
TEMPFILE/
spfileorcl.ora

 

- 아예 dumpset 이라는 디렉토리가 없어졌음을 확인할 수 있다. 파일이 몇개 더 있다면 사라지지 않을 것이다.

'Knowledge > Oracle' 카테고리의 다른 글

Undo tablespace shrink  (0) 2014.04.16
datapump expdp remote  (0) 2014.04.03
About View  (0) 2014.03.07
About DBLINK  (0) 2014.03.07
About Sequence  (0) 2014.03.07
Posted by neo-orcl
,

Grid 혹은 DB 설치 후 무언가 잘못 되어서 전체 재설치를 해야 할 때가 있다.
deinstall tool을 사용하려 하는데 inventory가 깨졌을 경우 수동으로 clean 시킬 필요가 있다.

 

1. inittab 파일에서 아래 항목을 지운다.

 "h1:3:respawn:/sbin/init.d/init.ohasd run >/dev/null 2>&1 </dev/null"

버전에 따라 아래 항목도 추가되는데 이도 지운다
 "h1:3:respawn:/sbin/init.d/init.tfa run >/dev/null 2>&1 </dev/null"

 

2. 인벤토리 디렉토리를 지운다.

   rm -rf /appl/oraInventory

 

3. Grid base를 지운다.

   rm -rf /appl/grid

 

4. temp 파일을 지운다.

   rm -rf /var/tmp/.oracle
   rm -rf /tmp/.oracle

 

5. config 파일을 지운다.

   rm -rf /var/opt/oracle

 

6. ohasd를 지운다.

   rm /sbin/init.d/init.ohasd
   rm /sbin/init.d/ohasd

ohasd 관련 파일이 더 있는지 확인하고 지운다.

   find /etc/rc*.d -name *ohasd
   find /etc/rc*.d -name *ohasd -exec rm {} \;

 

7. ASM 환경이라면 ASM 헤더를 지워준다.
dd if=/dev/zero of=/dev/rdisk/disk45 bs=1024k
dd if=/dev/zero of=/dev/rdisk/disk46 bs=1024k
dd if=/dev/zero of=/dev/rdisk/disk47 bs=1024k
...

 

8. 환경변수 설정 파일들을 지운다.
    rm /etc/oratab rm /usr/local/bin/dbhome /usr/local/bin/coraenv /usr/local/bin/oraenv

 

9. 이제 재설치할 준비가 되었다.

 

출처: http://somireddy.wordpress.com/2013/06/23/deinstall-oracle-11gr2-rac-cluster-installation-on-hp-ux/

Posted by neo-orcl
,

RAC + ASM 환경에서 vip 변경 후 DB 재시작을 했는데

리스너 상태를 확인해보면 아래처럼 +ASM1 이 없어졌음을 확인할 수 있었다.

 

[grid@rac1 ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 04-MAR-2014 16:11:28

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.2.0 - Production
Start Date                04-MAR-2014 16:04:44
Uptime                    0 days 0 hr. 6 min. 43 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /app/11.2/grid/network/admin/listener.ora
Listener Log File         /app/oracle/diag/tnslsnr/rac1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=1.1.1.101)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=1.1.1.121)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl1", status READY, has 1 handler(s) for this service...
The command completed successfully

 

부가적으로 OS따로 리스너 로그에 에러가 지속적으로 나타날 수도 있고,

다른 경우로 아래처럼 ASM service died 메시지를 볼 수 있다.

04-MAR-2014 16:11:22 * service_died * +ASM1 * 12537

 

검색을 해도 이 문제는 찾을 수 없었는데, 가만히 ASM 로그를 보니 local_listener 의 host 값을 vip의 주소로 가져오는걸 확인할 수 있었다.

그런데 오라클 메타링크 가이드에 필요시 local_listener, remote_listener를 수정하란 이야기가 마지막에 써있었다.

 

SQL> alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=1.1.1.121)(PORT=1521))))' scope=memory sid='+ASM1';

 

ASM의 local_listener 의 host 값을 현재의 vip로 수정하고 정상화되었다.

 

[grid@rac1 admin]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 04-MAR-2014 16:38:07

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.2.0 - Production
Start Date                04-MAR-2014 16:04:44
Uptime                    0 days 0 hr. 33 min. 22 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /app/11.2/grid/network/admin/listener.ora
Listener Log File         /app/oracle/diag/tnslsnr/rac1/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=1.1.1.101)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=1.1.1.121)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl1", status READY, has 1 handler(s) for this service...
The command completed successfully

 

아니면 ASM을 재시작하기 위해 crs를 재시작하는 것도 한 방법이다.

 

 

Posted by neo-orcl
,