블로그 이미지
redkite

카테고리

분류 전체보기 (291)
00.SI프로젝트 산출물 (0)
00.센터 운영 문서 (0)
01.DBMS ============.. (0)
01.오라클 (117)
01.MS-SQL (15)
01.MySQL (30)
01.PostgreSql (0)
01.DB튜닝 (28)
====================.. (0)
02.SERVER ==========.. (0)
02.서버-공통 (11)
02.서버-Linux (58)
02.서버-Unix (12)
02.서버-Windows (2)
====================.. (0)
03.APPLICATION =====.. (11)
====================.. (0)
04.ETC =============.. (0)
04.보안 (5)
====================.. (0)
05.개인자료 (1)
06.캠핑관련 (0)
07.OA관련 (1)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

No. 11747

RAW DEVICE와 FILE SYSTEM 간에 오라클 데이터화일 이동하기
======================================================

유닉스 명령이 dd를 이용하여 오라클 데이터화일을 Unix File System과 Raw
Device 간에 이동할 수 있으나, 플랫폼 별 Raw Device의 특성으로 인하여 주의할
점이 있다. 만일 잘못된 이동으로 인하여 데이터베이스가 기동하지 못하면,
ORA-7366 (sfifi: invalid file, file does not have valid header block.)
에러가 발생할 수 있다.

예를 들어 Digital unix의 경우는 raw device에 64k OS 헤더가 필요하므로 dd
명령어 옵션 중 iseek와 oseek를 활용하여야 한다.

다음은 예제를 통하여 데이터화일을 Raw Device에서 Unix File System으로
이동하는 절차이다.

(운영 현황)

- 현재의 위치: /dev/rdsk/c0t15d0s7
- 이동할 위치: /oracle/file/system.dbf
- 화일의 크기: 488636416 bytes <--- V$DATAFILE.BYTES column 값!
- DB_BLOCK_SIZE: 2048 bytes


(준비 단계)

1. Oracle 블럭 수 계산:

BYTES / DB_BLOCK_SIZE = 488636416 / 2048 = 238592 (블럭)

2. O/S file header 블럭 추가:

238592 + 1 = 238593 (블럭)
: "ls -l /oracle/file/system.dbf" 명령으로 확인 가능하며, O/S file
header는 1블럭으로 항상 일정함.

3. Raw Device OS header 블럭 계산: raw device (os block) header size

64K / DB_BLOCK_SIZE = 65536 / 2048 = 32 (블럭)
: 사용할 dd 명령어 중 블럭의 크기를 DB_BLOCK_SIZE(2048바이트)로 할
예정이므로 2048로 나누어야 함.

(명령어 형식)

$ dd if=<raw device> of=<UFS file> bs=<oracle blocksize>
iseek=<blocks to skip> count=<total count>

(명령어 수행 절차)

(1) SVRMGR> STARTUP MOUNT
(2) SVRMGR> !dd if=/dev/rdsk/c0t15d0s7 of=/oracle/file/system.dbf bs=2048 iseek=32 count=238593
(3) SVRMGR> ALTER DATABASE RENAME FILE '/dev/rdsk/c0t15d0s7' TO
'/oracle/file/system.dbf';
(4) SVRMGR> ALTER DATABASE OPEN;

========================================================================

반대로 Unix File System에서 Raw Device로 이동하는 명령어 형식은 아래와 같다.

(명령어 형식)

$ dd if=<UFS file> of=<raw device> bs=<oracle blocksize> \
oseek=<blocks to skip> count=<total count>

유사한 방식으로 데이타 화일 뿐 아니라 리두 로그 화일도 이동할 수 있다.

[주의] Raw Device의 블럭 헤더의 크기는 OS마다 다를 수 있으므로 플랫폼
벤더사에 미리 확인한 후 작업하여야 한다.

[출처] RAW DEVICE FILE SYSTEM 간에 오라클 데이터화일 이동하기 (ProDBA) |작성자 산타

'01.오라클 > 002.DB 마이그레이션' 카테고리의 다른 글

[오라클]Characterset 변경  (0) 2013.02.20
[오라클]Full export / import  (0) 2013.02.20
[오라클]Undo Tablespace 변경  (0) 2012.12.19
[오라클]Voting Disk 이관  (0) 2012.12.19
[오라클]Templorary File 변경  (0) 2012.12.19
Posted by redkite
, |

▶ SYSMAN 이란?
SYSMAN
By default during the installation of Oracle Enterprise Manager, one Super Administrator account is created with the user name of SYSMAN. The SYSMAN account should be used to perform infrequent system-wide, global configuration tasks such as setting up the environment. Other administrator accounts can be created for daily administration work. The SYSMAN account is:
Owner of the Management Repository schema
Default Enterprise Manager Super Administrator
User name used to log in to Enterprise Manager the first time
10g 설치시 EM이 설치되는데 EM의 최고권리자 계정으로 생성되는 계정입니다.
. Reopsitory 스키마의 관리를 하는 계정입니다.
. EM의 최고권리자입니다.
. EM 으로 가장 처음 로그인 가능한 유저입니다.


▶ DBSNMP 이란?
. grid control 에서 각 DB의 연결정보 등을 담당하는 계정입니다.
. DBSNMP를lock 시킬경우 Grid Control 및 EM 사용 못합니다.


▶ MGMT_VIEW 이란?
. SYSMAN/EM 관련계정입니다.
3가지 모두 EM과 관리된 계정들로EM을 사용하신다면 lock 하시면 안되고
EM을 사용안하신다면 보안성때문에 lock을 하는 싸이트도 있습니다.

Posted by redkite
, |

1. 프로세스 모니터링

1) 서버 프로세스
SELECT sid, serial#, username, status "Status of Session", server "ServerType", osuser, machine, program, process FROM v$session;
2) 사용자 프로세스
SELECT sid, serial#, osuser, process, machine, program, to_char(logon_time, 'yyyy/mm/dd hh:mi:ss') as Logon_Time FROM v$session WHERE (upper(server) <> 'PSEUDO' AND UPPER(program) NOT LIKE 'oracle.exe%') and serial# <> 1;

2. SGA 모니터링

1) Data Buffer Cache 구조
SELECT id, name, block_size, buffers FROM v$buffer_pool;

2) 히트율
SELECT phy.value "Physical Read",cur.value+con.value "Buffer Cache Read", (1-((phy.value) / (cur.value+con.value)))*100 "히트율" FROM v$sysstat cur, v$sysstat con, v$sysstat phy WHERE cur.name = 'db block gets' and con.name = 'consistent gets' and phy.name = 'physical reads';
3) Wait Status 확인
SELECT (SELECT total_waits FROM v$system_event WHERE event = 'free buffer waits') "Free Buffer Waits", (SELECT total_waits FROM v$system_event WHERE event = 'buffer busy waits') "Buffer Busy Waits" FROM dual;
4) 메모리 사용상태(세션별)
SELECT A.process, A.username, B.block_gets, B.consistent_gets, B.physical_reads FROM v$sess_io B, v$session A WHERE B.sid = A.sid;

3. 로그 버퍼 히트율 모니터링

SELECT S1.value "Redo Alloc Retries", S2.value "Redo Entries", S1.value / S2.value * 100 "히트율" FROM v$sysstat S1, v$sysstat S2 WHERE S1.name = 'redo buffer allocation retries' AND S2.name = 'redo entries';

4. Shared Pool 모니터링

1) 히트율
SELECT Gets, Gethits, Gethitratio*100 "히트율"FROM v$Librarycache WHERE namespace = 'SQL AREA';

2) Reload 상태
SELECT SUM(pins) "Executions(PINS)", SUM(reloads) "Cache Misses(RELOADS) " , SUM(reloads) / SUM(pins)*100 "Reload" FROM v$Librarycache;
3) Reserved Pool(응답상태)
SELECT requests, request_misses, request_failures, free_space, avg_free_size, max_free_size, used_space,avg_used_size FROM v$shared_pool_reserved;
4) Parsing SQL문 상태
SELECT cpu_time, elapsed_time,executions, loads, invalidations, version_count, parse_calls, sorts, sql_text FROM v$sqlarea WHERE sql_text NOT LIKE '%$%' AND command_type IN (2,3,6,7) AND rownum <= 200 ORDER BY sql_text DESC;
5) 파싱 SQL문(메모리순)
SELECT buffer_gets, sql_text FROM v$sqlarea WHERE sql_text NOT LIKE '%$%' AND command_type IN(2,3,6,7) ORDER BY buffer_gets DESC;
6) 파싱 SQL문(I/O순)
SELECT disk_reads, sql_text FROM v$sqlarea WHERE sql_text NOT LIKE '%$%' AND command_type IN(2,3,6,7) ORDER BY disk_reads DESC;
7) Shard Pool 히트율
SELECT SUM(gets) " Gets", SUM(getmisses) "Cache Get Misses", SUM(getmisses)/SUM(gets)*100 "히트율" FROM v$rowcache;

5. Large Pool 메모리 상태

SELECT pool, name, bytes FROM v$sgastat WHERE pool = 'large pool';

6. 프로세스 상태

1) DBWR 정보
SELECT spid, program, username, serial#, terminal FROM v$process WHERE program LIKE '%DB%';
2) DBWR 대기상태
SELECT event, total_waits, total_timeouts, time_waited, average_wait FROM v$system_event WHERE event = 'free buffer waits';

3) CKPT 정보

SELECT spid, program, username, serial#, terminal FROM v$process WHERE program LIKE '%CKPT%';
4) CKPT 대기상태
SELECT event, total_waits, time_waited, average_wait FROM v$system_event WHERE event LIKE 'log file switch (checkpoint%';
5) LGWR 정보
SELECT spid, program, username, serial#, terminal FROM v$process WHERE program LIKE '%LGWR%';
6) LGWR 대기상태
SELECT sid, event, seconds_in_wait, state FROM v$session_wait WHERE event = 'log buffer space%';
7) PMON 정보
SELECT spid, program, username, serial#, terminal FROM v$process WHERE program LIKE '%PMON%';
8) PMON 대기상태
SELECT event, total_waits, total_timeouts, time_waited, average_wait FROM v$system_event WHERE event = 'pmon timer';
9) SMON 정보
SELECT spid, program, username, serial#, terminal FROM v$process WHERE program LIKE '%SMON%';
10) SMON 대기상태
SELECT event, total_waits, total_timeouts, time_waited, average_wait FROM v$system_event WHERE event = 'smon timer';

7. 데이터 파일 상태

1) Data-File 구조
SELECT B.file_id "File #", B.file_name, B.tablespace_name, B.bytes "Bytes", ((B.bytes - sum(nvl(A.bytes,0)))) "Used Space", (SUM(NVL(A.bytes,0))) "Free Space", (SUM(NVL(A.bytes,0)) / (B.bytes)) * 100 "FreeSpace Ratio" FROM sys.dba_free_space A, sys.dba_data_files B WHERE A.file_id(+) = B.file_id GROUP BY B.tablespace_name, B.file_id, B.file_name, B.bytes ORDER BY B.file_id;
2) Disk I/O 상태
select name, phyrds, phywrts FROM v$datafile DF, v$filestat FS WHERE DF.file# = FS.file#;
3) Object 종류
SELECT A.owner, A.object_id, A.object_name, B.partition_name, B.tablespace_name, B.bytes, B.blocks, B.extents, B.initial_extent, B.next_extent, B.min_extents, B.max_extents, B.pct_increase, B.freelists, B.relative_fno, B.buffer_pool, A.created, A.status FROM dba_objects A, dba_segments B WHERE A.owner = 'SCOTT' AND A.object_type = 'TABLE' ORDER BY A.object_name;
4) 롤백세그먼트 경합상태
SELECT SUM(waits) "Waits", SUM(gets) "Gets", 100 * SUM(waits)/SUM(gets) "히트율" FROM v$rollstat;
5) 롤백세그먼트 대기상태
SELECT (SELECT count FROM v$waitstat WHERE class = 'undo header') "Undo Header", (SELECT count FROM v$waitstat WHERE class = 'undo block') "Undo Block", (SELECT count FROM v$waitstat WHERE class = 'system undo header') "System Undo Header", (SELECT count FROM v$waitstat WHERE class = 'system undo block') "System Undo block" FROM dual;

6) Temp 세그먼트 경함상태
SELECT username, user, contents, segtype, extents, blocks FROM v$sort_usage;
7) Lock 상태(Holder & Waiter)
SELECT LPAD(' ',DECODE(request,0,0,1))||sid sess, id1, id2, lmode, request, type FROM v$lock WHERE id1 IN (SELECT id1 FROM v$lock WHERE lmode = 0) ORDER BY id1, request;
8) Lock 상태(Waiters)
SELECT LPAD(' ',DECODE(C.request,0,0,1))||C.sid sess, B.username, B.program, C.type, A.sql_text SQL FROM v$sqlarea A,v$session B, v$lock C, v$access D WHERE C.id1 IN (SELECT id1 FROM v$lock WHERE lmode = 0 OR lmode = 6) AND A.address(+) = B.sql_address AND A.hash_value(+) = B.sql_hash_value AND B.sid = D.sid AND B.sid = C.sid AND D.sid = C.sid AND D.owner != 'SYS' ORDER BY C.id1, C.request;
9) DB 사용자
SELECT username, default_tablespace, temporary_tablespace, account_status, expiry_date, lock_date, profile FROM dba_users;

8. Control 파일 구조

SELECT * FROM v$controlfile;

9. 리두로그 파일확인

1) 파일 구조
SELECT A.group# col1, bytes / 1024 col2, members col3, member col4 , A.status col5, sequence# FROM v$log A, v$logfile B WHERE A.group# = B.group#;
2) 대기 상태
SELECT event, total_waits, time_waited, average_wait FROM v$system_event WHERE event LIKE 'log file switch completion%';

10. 아카이브로그 확인

1) 로그 설정 상태
SELECT value FROM v$parameter WHERE name = 'log_archive_start';

2) 아카이브 파일
SELECT name, sequence#, first_change#, first_time, next_change#, next_time, archived, status FROM v$archived_log;

11. 파라메터 확인

SELECT name, type, value, isdefault FROM v$parameter;

Posted by redkite
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함