의문 1:
ASM도 기존 DB와 같은 형식으로 pfile과 spfile파일이 사용될까?
과정 :
1. 현재 ASM은 spfile로 OPEN된 상태이다.
+ASM> show parameter spfile
NAME TYPE VALUE
--------- ------ -------------------------------------------
spfile string /home/oracle/product/10g/dbs/spfile+ASM.ora
2. OS에서 검사를 해봐도,
$ ls -l
-rw-r----- 1 oracle dba 1536 Feb 28 17:03 spfile+ASM.ora
spfile만 있는 상태 (SID이름이 +ASM이다.)
3. pfile을 만들어 보았다.
3. pfile을 만들어 보았다.
+ASM> create pfile from spfile;
File created.
$ ls -l
-rw-r----- 1 oracle dba 1536 Feb 28 17:03 spfile+ASM.ora
-rw-r--r-- 1 oracle dba 320 Feb 29 02:49 init+ASM.ora
▶ 이상없이 만들어짐.
4. pfile 적용시키기위해 DB내리고 spfile 삭제후 OPEN
+ASM> shutdown immediate;
ASM diskgroups dismounted
ASM instance shutdown
$ rm spfile+ASM.ora
+ASM> startup
ASM instance started
Total System Global Area 83886080 bytes
Fixed Size 1272120 bytes
Variable Size 57448136 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
+ASM> show parameter spfile
NAME TYPE VALUE
--------- ------ -------------
spfile string
예상대로 ASM이 pfile로 open 되었다.
결론 :
ASM instance도 ORACLE DB와 마찬가지로 pfile 과 spfile 모두 사용 가능하다.
※ 참고
ASM의 spfile : binary 파일. @@@@많음
ASM의 pfile 내용
$ vi init+ASM.ora
*.asm_diskgroups='DATA','FRA'
+ASM.asm_diskgroups='DATA','FRA','NEW_ASM'#Manual Mount
*.background_dump_dest='/home/oracle/admin/+ASM/bdump'
*.core_dump_dest='/home/oracle/admin/+ASM/cdump'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='SHARED'
*.user_dump_dest='/home/oracle/admin/+ASM/udump'
의문 2:
ASM 기반에서 pfile과 spfile은 어떻게 사용 되는가?
과정 :
1. 현재 testdb는 spfile로 open된 상태이다.
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/testdb/spfiletestdb.ora
2. OS상에서 확인해보니 pfile밖에 존재하지 않는다.
$ ls -l
-rw-r----- 1 oracle dba 39 Feb 27 17:37 inittestdb.ora
3. 내용을 보면..
$ vi inittestdb.ora
SPFILE='+DATA/testdb/spfiletestdb.ora'
사실 ASM이 관리하는 파일의 spfile을 참조해 오는 것을 알 수 있다.
4. spfile에서 pfile 생성
SQL> create pfile from spfile;
File created.
5. OS 상에는 pfile 새로 생성 되었다. (시간으로 확인가능)
$ ls -l
-rw-r----- 1 oracle dba 960 Feb 29 03:19 inittestdb.ora
$ vi inittestdb.ora
testdb.__db_cache_size=184549376
testdb.__java_pool_size=4194304
testdb.__large_pool_size=4194304
testdb.__shared_pool_size=88080384
testdb.__streams_pool_size=0
*.audit_file_dest='/home/oracle/admin/testdb/adump'
*.background_dump_dest='/home/oracle/admin/testdb/bdump'
*.compatible='10.2.0.5.0'
*.control_files='+DATA/testdb/controlfile/current.256.776365293','+FRA/testdb/controlfile/current.256.776365293'
*.core_dump_dest='/home/oracle/admin/testdb/cdump'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='testdb'
*.db_recovery_file_dest='+FRA'
*.db_recovery_file_dest_size=2147483648
*.job_queue_processes=10
*.nls_language='KOREAN'
*.nls_territory='KOREA'
*.open_cursors=300
*.pga_aggregate_target=94371840
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=285212672
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/home/oracle/admin/testdb/udump'
▶ pfile 의 내용이 바뀌어 있다.
SQL> shutdown immediate;
SQL> startup
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
▶ pfile로 open 되었다.
7. 이상태에서 spfile 생성후 OS에서 파일 확인
SQL> create spfile from pfile;
File created.
$ ls -l
-rw-r----- 1 oracle dba 960 Feb 29 03:19 inittestdb.ora
-rw-r----- 1 oracle dba 2560 Feb 29 03:25 spfiletestdb.ora
▶ ASM 내부에 spfile이 생성되지 않고,
기존 pfile이 있던 $ORACLE_HOME/dbs 경로에 spfile이 생성된다.
기존 pfile이 있던 $ORACLE_HOME/dbs 경로에 spfile이 생성된다.
8. shutdown 후 open하면 이상없이 spfile로 open된다.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Database mounted.
Database opened.
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /home/oracle/product/10g/dbs/spfiletestdb.ora
결론 :
ASM기반에서 기본적으로 spfile이 사용된다.
하지만 특이한 점이 있는데, 실제 $ORACLE_HOME/dbs에는 pfile밖에 없다는 점이다.
DB를 올리는 과정에서 이 pfile을 읽어오게 되는데, pfile은 기존 file system 기반의 기본 pfile의 내용과 조금 다르다.
SPFILE='+DATA/testdb/spfiletestdb.ora' 이러한 내용으로 인해 ASM 기반에서 관리하는 spfile파일을 읽어 오는 것이다.
create pfile from spfile 명령으로 pfile을 생성하면, 기존 pfile을 덮어 써 버리고 우리가 아는 pfile이 생성된다.
이상태에서 다시 create spfile from pfile을 하면, ASM과는 상관없이 기존 방식대로 pfile ↔ spfile 상호간에 교환이 일어난다.
이후 기존과 같은 방법으로 파라미터 파일을 관리하면 된다.
ASM상의 spfile은 무시해도 되는 상황이 된 것이다.
'Oracle > Oracle - 백업&복구' 카테고리의 다른 글
백업 & 복구 Extra - Control File 재생성 스크립트 (0) | 2012.03.01 |
---|---|
백업 & 복구 40 - ASM : RMAN으로 백업과 복구 (0) | 2012.02.29 |
백업 & 복구 39 - ASM : 데이터 관리하기 - 테이블스페이스 관리 / 데이터파일 복사or이동 (0) | 2012.02.28 |
백업 & 복구 38 - ASM : 기본 관리법 - disk 추가삭제 / disk group 추가삭제 / asmcmd (6) | 2012.02.28 |
백업 & 복구 37 - ASM : 개념 (0) | 2012.02.28 |