Oracle 10g 기본운영지침서 - 국립중앙과학관실무자를위한운영지침서 Author : 엄진우 ( jinwoo.eom@oracle.com ) Creation Date : Last Updated : Control Number : Version : 2005년 1월 10일 2005년 1월 11일 <Control Number> <Version Number> Approvals: <Approval 1> <Approval 2>
Document Control Change Record Date Author Version Change Reference 10 January 2005 엄진우 1 No previous document Reviewers Name Position Distribution Copy No Name Location Oracle10gDB 기본운영지침서.doc 2
Contents DOCUMENT CONTROL...2 ORACLE 기본사용방법...5 ORACLE S/W 구동및종료방법...5 시스템모니터링방법...14 DB 정기점검 CHECKLIST...19 일일 CHECKLIST...19 주단위 CHECKLIST...22 매월 CHECKLIST...23 ORACLE BACKUP...26 BACKUP STRATEGY...26 ORACLE 의내부구조...26 ARCHIVELOG VS. NOARCHIVELOG...26 기본적인 BACKUP RULES...27 ORACLE 의 BACKUP 방법...27 OFFLINE ( COLD ) BACKUP...28 ONLINE ( HOT ) BACKUP...30 EXPORT / IMPORT...32 EXPORT 방법...33 IMPORT 방법...34 효율적인 IMPORT 방법...34 BACKUP 방법결정...35 효율적인 BACKUP 방법...35 BACKUP 전략 ( 예 )...36 BACKUP CHECKPOINT...38 RECOVERY...39 MEDIA RECOVERY...39 MEDIA RECOVERY OPTION 비교...44 ORACLE DATABASE 10G 에서 BACKUP / RECOVERY...45 FLASHBACK DATABASE...45 FLASHBACK DATABASE 설정...46 DATABASE 백업...53 임의의장애발생...57 데이터파일복구수행...58 복구수행후자료조회...61 FLASHBACK DATABASE 테스트...61 BACKUP 정책변경...65 사용자정의 BACKUP 수행...67 FLASHBACK DROP & FLASHBACK TABLE...72 RECYCLE BIN...73 FLASHBACK TABLE...77 모의사용자에러발생...81 Oracle10gDB 기본운영지침서.doc 3
BACKUP 관리하기...87 OFFLINE BACKUP...96 H/W 교환방법...100 ORACLE 기술지원...101 기술지원안내...101 Oracle10gDB 기본운영지침서.doc 4
Oracle 기본사용방법 본 DB 운영지침서는 Oracle 기본매뉴얼을대신할수없으므로기본적인 Oracle 사용법은 Oracle 매뉴얼을통해익히셔야합니다. http://otn.oracle.com/pls/db10g/portal.portal_demo3?selected=1 Oracle S/W 구동및종료방법 Oracle Database 의원할한서비스와관리를위해다음과같은서비스들이실행되어야합니다. Oracle Database : Oracle Database Engine Oracle Net Service : Oracle Client ( 일반사용자, WAS ) 에서 DB 서비스를가능하게해주는 Middle Tier 서비스 isql*plus : 일반사용자가기존의 SQLPLUS 와같은 Oracle Tool 을설치하지않고 Web Browser 를통해 SQL*Plus 의기능을수행할수있는유용한개발도구 DB Control : Oracle Database 를 Web 환경에서관리해주는관리도구. 중요환경변수 export ORACLE_HOME=/oracle/app/product/10.1.0/db_1 export ORACLE_SID=SCI01 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib:/usr/lib export NLS_LANG=KOREAN_KOREA.KO16KSC5601 export TNS_ADMIN=$ORACLE_HOME/network/admin export DISPLAY=sci_01:0.0 Oracle DB 시작 / 종료 Oracle DB 시작 Oracle 데이터베이스의기동은 Unix User 인 oracle user 로접속하여 DB 를시작할수있다. $ sqlplus "/ as sysdba" SQL*Plus: Release 10.1.0.3.0 - Production on 월 1 월 10 17:31:33 2005 Copyright (c) 1982, 2004, Oracle. All rights reserved. 휴지인스턴스에접속되었습니다. SQL> startup ORACLE 인스턴스가시작되었습니다.
Total System Global Area 440401920 bytes Fixed Size 1309984 bytes Variable Size 279184096 bytes Database Buffers 159383552 bytes Redo Buffers 524288 bytes 데이터베이스가마운트되었습니다. 데이터베이스가열렸습니다. SQL> Oracle DB 종료 $ sqlplus "/ as sysdba" SQL*Plus: Release 10.1.0.3.0 - Production on 월 1 월 10 17:34:58 2005 Copyright (c) 1982, 2004, Oracle. All rights reserved. 다음에접속됨 : Oracle Database 10g Enterprise Edition Release 10.1.0.3.0-64bit Production With the Partitioning, Oracle Label Security, OLAP and Data Mining options SQL> shutdown immediate 데이터베이스가닫혔습니다. 데이터베이스가마운트해제되었습니다. ORACLE 인스턴스가종료되었습니다. SQL> Oracle Net Service 시작 / 종료 Oracle Net Serivce 의이해 응용프로그램 Oracle Net TCP/IP 네트워크 리스너 RDBMS Oracle Net 클라이언트 데이터베이스서버 sqlnet.ora tnsnames.ora listener.ora Oracle Listener 시작 $ lsnrctl start LSNRCTL for HPUX: Version 10.1.0.3.0 - Production on 11-1월 -2005 08:56:32 Oracle10gDB 기본운영지침서.doc 6
Copyright (c) 1991, 2004, Oracle. All rights reserved. 시작 /home/oracle/db/bin/tnslsnr: 잠시만기다리세요... TNSLSNR for HPUX: Version 10.1.0.3.0 - Production 시스템매개변수파일은 /home/oracle/db/network/admin/listener.ora 입니다 /home/oracle/db/network/log/listener.log ( 으 ) 로로그메시지를기록했습니다리스닝이 : (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=portal.kr.oracle.com)(PORT=1 522))) 리스닝이 : (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC))) (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=portal.kr.oracle.com)(PORT=1522))) 에 연결되었습니다. 리스너의상태------------------------ 별칭 LISTENER 버전 TNSLSNR for HPUX: Version 10.1.0.3.0 - Production 시작날짜 11-1월 -2005 08:56:32 업타임 0 일 0 시간. 0 분. 0 초 트레이스수준 off 보안 ON: Local OS Authentication SNMP OFF리스너매개변수파일 /home/oracle/db/network/admi n/listener.ora 리스너로그파일 /home/oracle/db/network/log/listener.log 끝점요약청취중... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=portal.kr.oracle.com)(PORT=1522))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC))) 서비스요약... "O10G" 서비스는 1개의인스턴스를가집니다. "O10G" 인스턴스 (UNKNOWN 상태 ) 는이서비스에대해 1 처리기를가집니다. "PLSExtProc" 서비스는 1개의인스턴스를가집니다. "PLSExtProc" 인스턴스 (UNKNOWN 상태 ) 는이서비스에대해 1 처리기를가집니다. 명령이성공적으로수행되었습니다 $ Oracle Listener 상태보기 $ lsnrctl status LSNRCTL for HPUX: Version 10.1.0.3.0 - Production on 11-1 월 -2005 08:58:45 Copyright (c) 1991, 2004, Oracle. All rights reserved. (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=portal.kr.oracle.com)(PORT=1522))) 에연 결되었습니다 리스너의상태------------------------ 별칭 LISTENER 버전 TNSLSNR for HPUX: Version 10.1.0.3.0 - Production 시작날짜 11-1월 -2005 08:58:41 업타임 0 일 0 시간. 0 분. 3 초 트레이스수준 off 보안 ON: Local OS Authentication SNMP OFF리스너매개변수파일 /home/oracle/db/network/admin /listener.ora 리스너로그파일 /home/oracle/db/network/log/listener.log 끝점요약청취중... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=portal.kr.oracle.com)(PORT=1522))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC))) 서비스요약... Oracle10gDB 기본운영지침서.doc 7
"O10G" 서비스는 1 개의인스턴스를가집니다. "O10G" 인스턴스 (UNKNOWN 상태 ) 는이서비스에대해 1 처리기를가집니다. "PLSExtProc" 서비스는 1 개의인스턴스를가집니다. "PLSExtProc" 인스턴스 (UNKNOWN 상태 ) 는이서비스에대해 1 처리기를가집니다. 명령이성공적으로수행되었습니다 $ Oracle Listener 종료 $ lsnrctl stop LSNRCTL for HPUX: Version 10.1.0.3.0 - Production on 11-1 월 -2005 09:00:04 Copyright (c) 1991, 2004, Oracle. All rights reserved. (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=portal.kr.oracle.com)(PORT=1522))) 에연결되었습니다명령이성공적으로수행되었습니다 $ isql*plus 시작 / 종료 isql*plus 시작 $ isqlplusctl start isql*plus 10.1.0.3.0 Copyright (c) 2004 Oracle. All rights reserved. Starting isql*plus... isql*plus started. $ Oracle10gDB 기본운영지침서.doc 8
isql*plus 서비스확인 Oracle10gDB 기본운영지침서.doc 9
isql*plus 종료 $ isqlplusctl stop isql*plus 10.1.0.3.0 Copyright (c) 2004 Oracle. All rights reserved. Stopping isql*plus... isql*plus stopped. $ Oracle DB Control 시작 / 종료 Oracle DB Control 시작 $ emctl start dbconsole Oracle Enterprise Manager 10g Database Control Release 10.1.0.3.0 Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved. http://portal.kr.oracle.com:5500/em/console/aboutapplication Starting Oracle Enterprise Manager 10g Database Control... s tarted. ------------------------------------------------------------------ Logs are generated in directory /home/oracle/db/portal.kr.oracle.com_o10g/sysman/ log $ Oracle10gDB 기본운영지침서.doc 10
Oracle DB Control 확인 Oracle10gDB 기본운영지침서.doc 11
Oracle DB Control 종료 $ emctl stop dbconsole Oracle Enterprise Manager 10g Database Control Release 10.1.0.3.0 Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved. http://portal.kr.oracle.com:5500/em/console/aboutapplication Stopping Oracle Enterprise Manager 10g Database Control...... Stopped. $ SQL*Plus 사용법 SQL*Plus 로 DB 접속하기 $ sqlplus scott/tiger SQL*Plus: Release 10.1.0.3.0 - Production on 화 1월 11 09:21:31 2005 Copyright (c) 1982, 2004, Oracle. All rights reserved. 다음에접속됨 : Oracle Database 10g Enterprise Edition Release 10.1.0.3.0-64bit Production With the Partitioning, Oracle Label Security, OLAP and Data Mining options SQL> select sysdate from dual; SYSDATE -------- 05/01/11 SQL> exit Oracle Database 10g Enterprise Edition Release 10.1.0.3.0-64bit Production With the Partitioning, Oracle Label Security, OLAP and Data Mining options 에서분리되었습니다. $ sqlplus scott/tiger@o10g Oracle Net Service 를통해 DB 접속하기 Oracle Net Service를통해 DB 에접속하려면 $ORACLE_HOME/network/admin/tnsnames.ora 의 DB 접속기술자를확인해야한다. $ cat tnsnames.ora # tnsnames.ora Network Configuration File: /home/oracle/db/network/admin/tnsnames.ora # Generated by Oracle configuration tools. O10G = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = portal.kr.oracle.com)(port = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = O10G) ) ) $ sqlplus scott/tiger@o10g Oracle10gDB 기본운영지침서.doc 12
SQL*Plus: Release 10.1.0.3.0 - Production on 화 1 월 11 09:23:07 2005 Copyright (c) 1982, 2004, Oracle. All rights reserved. 다음에접속됨 : Oracle Database 10g Enterprise Edition Release 10.1.0.3.0-64bit Production With the Partitioning, Oracle Label Security, OLAP and Data Mining options SQL> select sysdate from dual; SYSDATE -------- 05/01/11 SQL> exit Oracle Database 10g Enterprise Edition Release 10.1.0.3.0-64bit Production With the Partitioning, Oracle Label Security, OLAP and Data Mining options 에서분리되었습니다. $ Oracle10gDB 기본운영지침서.doc 13
시스템모니터링방법 장애진단개요 Oracle Database 운영중발생할수있는오류에대한진단은 alert.log 파일을확인하는데서시작합니다. alert.log 파일에기록된오류는세부정보에대해특정 Trace File 을확인하도록유저에게지시합니다. 일부운영체제에서비정상적으로종료된프로세스는 core file 을생성합니다. 이 core file 은플랫폼디버거에서볼때중요한정보를제공할수있습니다. 예를들어, Solaris 플랫폼에서 adb 는이러한목적에사용된디버거입니다. 많은경우 Oracle Database Engine 자체의오류보다는사용자의과실과 HW 의문제로인한 Oracle Database 운영장애를초래하는경우가발생되므로해당시스템의로그확인도필수적입니다. 관련파일 Alert.log 파일 Trace 파일 Core Dump 파일 System Log 파일 Oracle Database 진단방법 Alert.log 점검 Oracle 10g DB Console 모니터링 Alert.log 점검 Oracle Database 각서버와백그라운드프로세스에서관련된 Trace file 에쓸수있습니다. 시스템오류가프로세스에서감지되면오류에대한정보를해당 Trace file 에덤프합니다. Alert 파일또는 Alert Log 는특수한 Trace file 입니다. 데이터베이스의 Alert 파일에는다음을포함하여메시지및오류가시간순으로기록되어있습니다. 발생하는모든시스템오류 (ORA-600), 블록손상오류 (ORA-1578) 및 Deadlock 오류 (ORA-60) CREATE, ALTER 및 DROP 문과 STARTUP, SHUTDOWN 및 ARCHIVELOG 문과같은관리작업 Shared Server 및디스패처프로세스기능과관련된여러메시지및오류 Materialized View 의 Automatic Refresh 중에발생하는오류 데이터베이스및 Instance 시작시모든초기화파라미터값 오라클데이터베이스는 Alert 파일을사용하여운영자의콘솔에정보를표시하는대체수단으로이러한특수작업로그를보관합니다. 작업이성공적으로수행되면시간기록과함께 " 완료됨 (Completed)" 메시지가 Alert 파일에기록됩니다. Oracle10gDB 기본운영지침서.doc 14
Alert.log 확인 최근 Alert Log 항목은 vi 또는 more 와같은운영체제유틸리티에의존하지않고 Enterprise Manager 를사용하여쉽게볼수있습니다. Database Home 페이지아래에있는 Related Links 영역에서 Alert Log Content 링크를선택합니다. 이페이지의기본작업은 alert.log 파일의최신 100,000 바이트를표시하거나 " 마무리 " 하는것입니다. 1. tail f /oracle/app/product/10.1.0/db_1/admin/sci01/bdump/alert_sci01.log 예 ) $ env grep ORACLE_SID ORACLE_SID=O10G $ env grep ORACLE_HOME ORACLE_HOME=/home/oracle/db $ cd $ORACLE_HOME/admin/$ORACLE_SID/bdump $ tail -f alert_$oracle_sid.log Thread 1 advanced to log sequence 386 Current log# 2 seq# 386 mem# 0: /ora_data/oradata/o10g/redo02.log Tue Jan 11 06:30:30 2005 Private_strands 3 at log switch Thread 1 advanced to log sequence 387 Current log# 3 seq# 387 mem# 0: /ora_data/oradata/o10g/redo03.log Tue Jan 11 06:36:16 2005 Private_strands 3 at log switch Thread 1 advanced to log sequence 388 Current log# 1 seq# 388 mem# 0: /ora_data/oradata/o10g/redo01.log 2. DB Console 확인 예 ) Oracle10gDB 기본운영지침서.doc 15
DB 모니터링 Oracle DB Control 을이용하여 DB Server 의전반적인시스템운영상황과 DB Server 에대한상황을모니터링및조치, 일반관리를할수있다. DB 상태 Oracle10gDB 기본운영지침서.doc 16
성능 추가모니터링기능 최상위세션 : 현재사용자중 DB 에부하를가장주는사용자리스트 최상위 SQL : DB 서버에부하를가장많이주는 SQL 문장 데이터베이스잠금 : 데이터베이스 Lock 정보보여주기및세션 Kill 기능 등등 Oracle10gDB 기본운영지침서.doc 17
Oracle10gDB 기본운영지침서.doc 18
DB 정기점검 CHECKLIST 일일 CHECKLIST DATABASE 1. 매일 alert_sid.log 화일의내용과 trace file 의내용을 check 하라. 이화일에서 internal error 나다른 oracle error 들을알수있다. 이화일의내용은무한히늘어나므로이화일의 directory space 도조절할필요가있다. 2.alert_SID.log 화일이나 trace 화일일정크기이상이되면 backup 을받아라. Alert_SID.ora 는무한히커지므로적당한양만큼 bacup 을받아라. 이화일로장애발생의유추가가능하므로필요하다. 3.*_dump_dest 의 free space 여부를항상확인하라. InitSID.ora 이나 spfilesid.ora 에 *_dump_dest 가설정되어있다. 4. 각 tablespace 에 free space 의 fragmentation 이일어났는지확인하라. fragmentation 이많이일어나고 free space 는많이존재하지않는다면하나의 data file 을첨가하라.fraementation 도높고 free space 와 disk space 가거의존재하지않는다면 table 들과 free space 를각각연속적으로연결이되도록 backup/export 를받은후다시 drop/import 를하고재구성한다. 5. 각 tablespace 에 free space 를생성되는속도를확인하라. 즉 database 의성장속도를확인하여 space 부족으로생길수있는 DB 가 hang 이걸리는문제를미리대비할수있도록하라. CONTROL FILE 1. 매일밤 hot backup 을받아라. Oracle10gDB 기본운영지침서.doc 19
Online Redo Log File 1. V$LOG 를사용해서 invalid 하거나 stale 상태를 check 하라. SQL>select * from v$logfile; INVALID log file error 는 I/O error 로서 alert.log 에기록되지않으며 alert.log file 을분석함으로써탐지가가능하다. STALE 은 shutdown abot 전에쓰여지고있는 log 가완전하지않거나그 log 에대해걸려있는 write 상태가알수없는것일때에생성된다. 이것도역시 alert.log 화일에기록되지않는다. 이런현상이자주일어나면 hardware 의문제를가리키는것일수도있다. 2. log switch interval 을자주 check 하라. SQL>select thread#,sequence#,time,archive_name from v$log_history; log switch interval 은위의 time 의차이를계산하면알수있다. Log Switch 가너무자주발생하면혹시 hot backup 상태로두고있는화일이있는지확인하라. 3. checkpoint 간격을자주확인하라. 권할만한 checkpoint 의간격은매 10 에서 15 분정도이다. 이 checkpoint 의간격은 Background process 가죽어서 instance 가 abort 되는극한상황에서 database 를살리고잠깐의시간동안 crash recovery 를할때반영된다. 위의간격을조절하려면 database 에서 checkpoint interval setting 또는 checkpoint_timeout 을조절함에의해가능하다. checkpoint_timeout 을 0 으로그리고 checkpoint_interval 을 online redo log file 의크기보다크게두면 checkpoint 는 log switch 가일어날때일어난다. 잦은 checkpoint 는 crash recovery 의기간은줄여주나 dirty buffers 를자주쓰는것과 file headers 를자주 update 하는데드는 overhead 가발생한다. Rollback Segment tablespace 1. Rollback Segment 가 online 이되어있는지확인하라. SQL>select segment_name,status from dba_rollback_segs; Oracle10gDB 기본운영지침서.doc 20
어떤 rollback segment 는의도적으로 offline 이되어있을수있다. 예를들면 rollbacksegment 를가진 datafile 에문제가발생시등에서다. 이런경우의원인을조사하라. 2. ORA-1555 error 가생성되는지여부를확인하라. Database 는여전히사용가능하며 application error 가일어날수도있다. 3. ORA-1538,1551,1552,1553,1554,1555,1556,1557,1558,1559,1562 를 check 하라. 위의 error 는 extent 를할당할수없거나 tablespace fragmentation 이일어나는경우에나타난다. 위의 error 가발생해도 database 는여전히사용이가능하나 application errors 가일어날수있다. 이경우 datafile 을더함으로써많은 space 를추가하거나더욱큰 rollback segments 를추가하여더큰 transaction 을다룰수있도록재구성하라. Archived Redo Logs Archive log Mode 로운영시에만해당됩니다. 1. archive file 이생성되는 destination 에여유공간이있도록유지하라. disk 에여유공간이없어 archive log 를 write 할수없어서 DB 가 hang 이걸림을방지하기위해서필수적이다.archive destination 에 freespace 가특정 threshold 이상이면 alarm 하게함으로써수시점검이가능하도록하여야한다 2. archived log file 을특정 threshold 에도달할때마다 backup 을받아라. Archived redo log file 의갯수는 log file 의크기와 redo 의양에의해달려있다. 그리고 redo 의양은 transaction 의비율과연관성이있다. 위의양에따라더자주 backup 을받을수있다.backup 을받을때 archiver 가완전이다쓴 archived redo log file 만을받도록해야한다. 3. Archived redo log file 의 sequence number 가순차적인지확인하라. Archive file 에이름이명명되어질때 archived log file 은 log sequece 가주어지도록되어있다. 그러므로 log switch 가일어날때마다 sequence number 는하나씩증가된다. 그러나,OPS 의경우에는 thread number 가함께명명되어짐을잊지말아야한다. Oracle10gDB 기본운영지침서.doc 21
4. ARCH process 가움직이는지를자주확인하라 OS 상에서 ARCH process 가움직이는지확인함으로써 ARCH process 가움직이지않아서 DB 가 hang 이걸리는문제를막을수있다. 5. alert.log 에 Archive log 들에관한 error 가있는지확인하라. 위의화일은 initsid.ora(parameter file) 내의 *_dump_dest 방향을참조하라. OS detection 1. Disk failure 나 controller 의이상이있는지항상확인하라. 2. OS mirroring 이되고있는지항상확인하라. 기타 1. Oracle Net Service 의상태를확인하라. Net Service 의경우에는 listener 의 process 가 running 인지확인하고그외의자세한정보는다음의 command 를사용하라. $lsnrctl service 주단위 checklist 1. 특별한 queries 와 transactions(insert,update,delete) 에대한 response time 을계산하라. Test query 들이나 update 들을만들어서 DB 운영시 performance 를증가시키는방법을모색한다. 또한, 갑자기 performance 가떨어지는경우에어떤원인인지알아내서그원인추적을할필요가있다. 2. Rollback segment tablespace 에충분한공간을확보하라. 충분한공간이없어서 error 가발생하는일이없도록하기위해서이다. fragmentation 이일어나지않도록위의사항을주의해야한다. Oracle10gDB 기본운영지침서.doc 22
3. SYSTEM 내에다른일반사용자의 object 들이나 temporary segments 가있는지확인하라. 다시말하면 data dictionary tables 과 system rollback segment 만이존재해야한다. 4. OFFLINE Full backup 을받아라. 24 시간동안가동되는 database 가아니면 offline full backup 을받아서장애가일어나는경우에 full database recovery 가가능하도록하자.offline full backup 을받은후제대로모두 backup 을받았는지확인을하라. 5. OS 의운영상태를확인할수있는통계를만들어라. 매월 CHECKLIST 1. 3 달의한번씩 recovery test 를하라. 장애가발생할때대처할수있는속도를증가시키는의미에서 3 달의한번씩 recovery test 가필요하다. 2. V$rollstat 를이용해서 Rollback segment 커지거나줄어드는비율과 RBS Waits 를확인하라. V$rollstat 는현재의 rollback segment 의상태를알수있다. 이 table 을참조함으로써현재의상태를알수있다. 3. AWR Report 를실행함으로써 tuning 을할수있는자료를확보하라. 시스템의현재 performance 에대한통계량을알수있다. 여기성생성되는 report 로 database monitoring 이가능하고 tuning 시근거가된다. SQL> @?/rdbms/admin/awrrpt Current Instance ~~~~~~~~~~~~~~~~ DB Id DB Name Inst Num Instance ----------- ------------ -------- ------------ 4232358218 O10G 1 O10G Specify the Report Type ~~~~~~~~~~~~~~~~~~~~~~~ Oracle10gDB 기본운영지침서.doc 23
Would you like an HTML report, or a plain text report? Enter 'html' for an HTML report, or 'text' for plain text Defaults to 'html' report_type 의값을입력하십시오 : text Type Specified: text Instances in this Workload Repository schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DB Id Inst Num DB Name Instance Host * 4232358218 1 O10G O10G portal Using 4232358218 for database Id Using 1 for instance number Specify the number of days of snapshots to choose from ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Entering the number of days (n) will result in the most recent (n) days of snapshots being listed. Pressing <return> without specifying a number lists all completed snapshots. Listing the last 3 days of Completed Snapshots Snap Instance DB Name Snap Id Snap Started Level ------------ ------------ --------- ------------------ ----- O10G O10G 178 09 1월 2005 00:00 1 179 09 1월 2005 01:00 1 180 09 1월 2005 02:00 1 181 09 1월 2005 03:00 1 182 09 1월 2005 04:00 1 183 09 1월 2005 05:00 1 184 09 1월 2005 06:00 1 185 09 1월 2005 07:00 1 186 09 1월 2005 08:01 1 187 09 1월 2005 09:00 1 188 09 1월 2005 10:00 1 189 09 1월 2005 11:00 1 190 09 1월 2005 12:00 1 191 09 1월 2005 13:01 1 Specify the Begin and End Snapshot Ids ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ begin_snap 의값을입력하십시오 : 187 Begin Snapshot Id specified: 187 end_snap 의값을입력하십시오 : 190 End Snapshot Id specified: 190 Specify the Report Name ~~~~~~~~~~~~~~~~~~~~~~~ The default report file name is awrrpt_1_187_190.txt. To use this name, press <return> to continue, otherwise enter an alternative. Oracle10gDB 기본운영지침서.doc 24
report_name 의값을입력하십시오 : Using the report name awrrpt_1_187_190.txt WORKLOAD REPOSITORY report for DB Name DB Id Instance Inst Num Release Cluster Host ------------ ----------- ------------ -------- ----------- ------- ------------ O10G 4232358218 O10G 1 10.1.0.3.0 NO portal Snap Id Snap Time Sessions Curs/Sess --------- ------------------- -------- --------- Begin Snap: 187 09-1월 -05 09:00:41 160 5.3 End Snap: 190 09-1월 -05 12:00:21 160 5.4 Elapsed: 179.67 (mins) DB Time: 0.49 (mins) Cache Sizes (end) ~~~~~~~~~~~~~~~~~ Buffer Cache: 152M Std Block Size: 8K Shared Pool Size: 152M Log Buffer: 512K Load Profile ~~~~~~~~~~~~ Per Second Per Transaction --------------- --------------- Redo size: 991.15 4,516.02 Logical reads: 31.12 141.80 Block changes: 5.51 25.12. End of Report Report written to awrrpt_1_187_190.txt SQL> Oracle10gDB 기본운영지침서.doc 25
Oracle Backup Backup Strategy 모든 DBA 는안정적인 Backup 전략을수립하고이를정기적, 지속적, 정확하게수행하는주요한업무를가지고있다. 가장유효한 Backup 은 database 를이용하지못하는상태에이르렀을때를대비하여 database 를재구축하는데사용되는유효한정보를복사해놓는것이다. 성공적인 Backup 전략을수립하기위해서는다음과같은요소를이해하여야한다. Oracle 의내부구조 Background Process Instance = + ( Memory ) SGA(System Global Area) + Contol File + Database = Datafile + ( Disk ) Redo log file Archivelog vs. Noarchivelog 얼마나많은양의 data 손실을감수할수있는가? Oracle Database 는 NOARCHIVELOG 또는 ARCHIVELOG mode 에서운영된다. 다음과같은내용을고려하여 Archivelog 수행여부를결정한다. 만일하루동안의 transaction 손실을감수할수있다면 Noarchivelog mode 로운영하면서매일밤마다 Offline backup 을받으면충분하다. 즉, 가장최근의 backup 이후의 Data 의변화는복구할수없다. Oracle10gDB 기본운영지침서.doc 26
Disk 장애로인하여 database 를구성하는몇개의 file 이손상될경우 data 손실을감수할수없다면 database 는 Archivelog mode 에서운영되어야한다. 과거어느시점까지의 recovery (points in time) 가필요하다면 Archivelog mode 로운영하여야하며 structural change 가발생할때마다 control file 을 backup 한다. 과거 point-in-time recovery 는그시점의 database structure 를갖는 backup controlfile 을가짐으로써가능하다. database 를 24 hours, 7days 로운영하기위해서는 Online backup 을수행하여야한다. Online backup 을이용하려면 database 는 Archivelog mode 에서운영되어야한다. Archivelog mode 로운영하는방법 1. initsid.ora 에다음과같은사항을추가한다. log_archive_start = true ( Oracle10g에서는삭제 ) log_archive_dest = /data/oradata/o10g/archive" log_archive_format = %t_%s_%r.dbf 2. database 를 mount 시킨다. SQL> startup mount 3. archivelog 모드로전환 SQL> alter database archivelog; 4. database 를 open 한다. SQL> alter database open; noarchivelog mode 로다시바꾸고싶은때는 initsid.ora file 에수정한사항을 comment 처리하고 database 를 mount 시킨후에, alter database noarchivelog; 라고하면된다. 기본적인 Backup Rules Log file 을 disk 에 archive 한후, 나중에 tape 에 copy 한다. 단, Archive log destination 은 data file 이나 online redo log file 과는다른 disk 이어야한다. Data file 의 backup 은실제 data file 과는다른 disk 에유지되어야한다. Disk 에 datafile 을 backup 하면 recovery 속도를향상시킬수있다. Control file 을여러개유지해야하고, 이들은각각다른 disk 에존재해야한다. Online log 는 group 당최소한 2개이상의 member 를유지해야하고, 각각의 member 는서로다른 disk 에존재해야한다. Archive log 의복사본을 tape 뿐만아니라 disk 에도유지하는것이좋다. Log file 이나 datafile 을추가하거나, rename 하거나, 삭제하는등 Database 구조가변경되었을경우, 반드시 control file 을 backup 받아야한다. 또한, 추가된 datafile 도 backup 을받아야한다. Oracle 의 Backup 방법 구분물리적 Backup 논리적 Backup Oracle10gDB 기본운영지침서.doc 27
Cold Backup Hot Backup Export Datafile 과의관계 Database 를구성하는 Datafile 들을그논리적인내용과는무관하게복사하는방법 물리적인위치와무관한게, Database 내용을읽어서 file 에기록하는방법 DBMS 운영방법 Archivelog, NoArchivelog Mode 로운영가능 Archivelog 모드운영시만가능 Archivelog mode, Noarchivelog mode 모두가능 DBMS 기동상태 DBMS 정지후에만가능 DBMS 운영중에만가능 DBMS 가동중에만가능 Archivelog 로운영시 장애발생시점까지가능 장애발생시점까지가능 Export 받은시점까지만가능 NoArchivelog 로운영시 Cold Backup 받은시점까지만복구가능 적용불가능 Export 받은시점까지만가능 Offline ( Cold ) Backup Oracle DBMS 가정지 ( Shutdown ) 된상태에서 Database 를 Backup 하는방법으로가장보편적이고편리하지만일단 DBMS 를정지해야하는점에서유연성이적다. Archive Mode 로운영시 Database 복구시점이가장최근에 Cold Backup 한시점이되므로 Cold Backup 을자주하면할수록적용할 Archive file 이적어지므로복구하는데걸리는시간이줄어든다. 3/1 3/7 3/14 3/21 3/28 Cold Backup 시점 : 3/1, 3/7, 3/14, 3/21 Recovery 가능한시점 :3/25 장애발생시점직전까지가능 3/25 장애발생 Noarchive Mode 로운영시 Noarchive Mode 에서는 archivelog file 이만들어지지않으므로, Database 복구시점이가장최근에 cold backup 한시점까지만복구할수있다. 3/1 3/7 3/14 3/21 3/28 3/25 장애발생 Cold Backup 시점 : 3/1, 3/7, 3/14, 3/21 Oracle10gDB 기본운영지침서.doc 28
Recovery 가능한시점 : 최근 Cold Backup (3/21) 시점까지만가능 Backup 방법 1 단계 1. Backup 받아야할대상 ( Oracle Database 구성요소 ) 을선정. 2. Oracle Database 가기동된상태에서다음 list 를 print 1) Datafile List 작성 SQL> connect system/manager SQL> select file_name from dba_data_files; FILE_NAME ---------------------------------------------------------------------------------------------- /data1/oradata/o10g/usr01.dbf /data1/oradata/o10g/rbs01.dbf /data1/oradata/o10g/temp01.dbf /data1/oradata/o10g/system.dbf /data1/oradata/o10g/idx01.dbf /data1/oradata/o10g/tools01.dbf 2) Online Redo Log File List 작성 SQL> select a.group#, a.member, b.status 2 from v$logfile a, v$log b 3 where a.group# = b.group#; GROUP# MEMBER STATUS ------------------------------------------------------------------------------------------ 1 /data2/oradata/o10g/redo01.log CURRENT 2 /data2/oradata/o10g/redo02.log INACTIVE 3 /data2/oradata/o10g/redo03.log INACTIVE 3) Control File List 작성 SQL> select name from v$controlfile; NAME --------------------------------------------------------------------------------------------- /data2/oradata/o10g/control01.ctl /data2/oradata/o10g/control02.ctl /data2/oradata/o10g/control03.ctl 3. 기동중인 Oracle DBMS 를정상종료한다. SQL> shutdown or SQL> shutdown immediate < 2 단계 > < 1 단계 > 에서작성된 Backup List 의 file 들을 O/S Command 로모두 Backup 한다. < 3 단계 > Oracle DBMS 를다시기동시킨다. SQL> connect / as sysdba Connected. SQL> startup Oracle10gDB 기본운영지침서.doc 29
특징 Cold Backup 은쉽게할수있고가장안정적이라복구하기도편리하다는장점은있지만, 모든 Database 를 Backup 해야하는부담이있고 Oracle DBMS 를정지해야한다는단점이있다. 보통, Noarchive Mode 로운영되는곳에서주로사용하게되는방법인데, 문제는손상된시점까지복구할수없고, 단지가장최근에 cold backup 된시점까지만복구할수있다는점이다. 그러나 Archive Mode 로운영되는곳에서도정기적으로 Cold Backup 을수행하여 Database 장애발생시, 복구작업에소요되는시간을절약하고, Archive Log File 도가장최근에 Cold Backup 한이후부터관리하면되므로보통혼용하여사용된다. Online ( Hot ) Backup Oracle DBMS 가기동중에 Database 를 O/S Command 로 Backup 하는방법으로 Backup 중에 online 으로 Data 를조회하거나변경할수있다. Backup 중에변경되는 data 는모두 Rollback Segment 와 archive log file 에저장된다. Hot Backup 은 Oracle DBMS 를정지하지않고도 Backup 이가능하다는장점을가지고는있지만 Oracle DBMS 가반드시 Archivelog Mode 로운영되어야한다는제약사항을가지고있다. Hot Backup 을수행하게되면, 가장최근에 cold backup 한이후부터 Recovery 하지않고, 가장최근에 hot backup 한이후부터복구하면되므로복구시간을단축할수있다. Archive log file 을적용하여 3/25일까지복구 3/21 3/23 3/25 Cold Backup /data1/users01.dbf /data1/users01.dbf Hot Backup 손상 예를들어, 위의그림에서 3/25 에 /data1/users01.dbf datafile 이손상되었다고가정하자. 3/23 에 Hot backup 받은 backup 이존재하므로, 3/21 에 /data1/users01.dbf datafile 을 cold backup 한것을이용할필요가없이, 3/23 에 hot backup 한것을이용하여복구가가능하다. 그럼으로써 21 일부터가아닌, 23 일부터복구함으로써복구시간을줄일수있다. 이방법은 cold backup 과는달리전체 DB 에대해 하나의특정 tablespace 를하나의 hot backup 단위로지정할수있으며, 필요한경우 임의의또는전체의 tablespace 를 backup 할수있다. Backup 시점에서 hot backup 단위가 하나의 tablespace 일지라도궁긍적으로는 전체 tablespace 가 backup 되어져야하며, 이것은매우중요하다. Hot backup mode 상의 tablespace 에 DML 이수행되면많은 redo 가발생함으로 DML 작업이적은시간에 hot backup 을수행하여야하고 tablespace 는가능한적은시간동안 hot backup mode 에있어야한다. Oracle10gDB 기본운영지침서.doc 30
Backup 방법 Hot bakcup 이라고하는것은 Oracle DBMS 가기동중에 datafile 을 backup 한다는의미이다. 그렇다고무작정 O/S command ( UNIX : cp, tar...) 로 datafile 을 backup 할수있는것은아니다. Oracle 이 online 상태라는것은 datafile 에저장된내용이계속바뀌고있다는의미이므로 backup 하는중에변경된내용에대해선문제가될수있다. < 1 단계 > DB 의운영 mode 가 archivelog mode 인지확인 < 2 단계 > SQL> archive log list; 위의명령을이용하여 oldest online log sequence 번호확인 < 3 단계 > 1. tablespace 단위의 datafile 에대한 hot backup 수행 SQL> alter tablespace <Backup 할 tablespace name> begin backup; 2. O/S command 로backup 할 tablespace 에속한모든 datafile backup % tar -cvf /dev/rmt/0 <Backup 할 tablespace 의모든 datafile> 3. tablespace 단위의 datafile 에대한 hot backup 종료 SQL> alter tablespace <Backup 할 tablespace name> end backup; 4. backup 할모든 tablespace 에반복 < 4 단계 > SQL> archive log list; 위의명령을이용하여 current log sequence 번호확인 < 5 단계 > log switch 수행 SQL> alter system switch logfile; < 6 단계 > < 2 단계 > 와 < 4 단계 > 에서결정된모든 archived log file 을 backup < 7 단계 > Control file backup SQL> alter database backup controlfile to [trace file_name ]; Oracle10gDB 기본운영지침서.doc 31
Hot Backup 수행결과조회방법 SQL> select a.tablespace_name, a.file_name, b.status 2 from dba_data_files a, v$backup b 3 where a.file_id=b.file#; TABLESPACE_NAME FILE_NAME STATUS ------------------------- --------------------------------------- ------------- USERS /data/oradata/users01.dbf INACTIVE STATUS 가 INACTIVE 이면 hot backup 이완료된상태이고 ACTIVE 이면 hot backup 을받고있는상태이다. 주의사항 Noarchive mode 에서 hot backup 을수행하거나, archive mode 라도 alter tablespace... begin backup; alter tablespace... end backup; 명령을사용하지않고, Oracle DBMS 가기동된상태에서 datafile 을 O/S command 로 hot backup 을수행한다면 backup 이아무의미가없다. alter tablespace... begin backup; 을실행한후에 alter tablespace... end backup; 을실행하지않고 DB 가 shutdown 이된경우에다시 startup 하려하면 media recovery 요구하는다음과같은 error message 가발생한다. 이경우, mount 상태에서 v$backup view 를조회하여 STATUS 가 ACTIVE 인 datafile 에대하여 alter database datafile... end backup; 을실행하여 open 하면된다. ORA-01113: file 3 needs media recovery ORA-01110: data file 3: /data2/oradata/o10g/users01.dbf SQL> alter database datafile /data2/oradata/o10g/users01.dbf end backup; Hot backup 한이후에발생된모든 archive log file 은 complete recovery 를위해필요하다. 만약중간에하나의 archive log file 이라도없다면, 손상된 archive log file 까지밖에복구할수없다. Export / Import Export 는 Database 에저장된내용을 file 형태의 O/S dump file 로추출하는 tool 이다. 반대로 import 는 export 로받은 O/S Dump file 을 database 에저장시키는 tool 이다. Export / Import 는모든 user 들의전체 bakcup 이나 user 단위, 또는특정 object 만 backup 할수있으므로 database 의 backup 은물론, Oracle database 간의 data 이동이나, Oracle 의새로운 version upgrade 등에사용될수있으며문제발생시특정 object 별복구가가능하다는장점이있는반면에, database 복구시, 물리적인 backup ( cold backu, hot backup ) 과상호관련성이없기때문에장애발생시점까지의복구는불가능하며, 단지 export 를수행한시점까지의복구만이가능하기때문에 export 를이용한복구는 data 의손실을감안하여야한다는단점이있다. Oracle10gDB 기본운영지침서.doc 32
Export 방법 Export Option 주로사용되는 option 은다음과같다. $ exp userid=user/passwd file : export 받는 dump file 을지정 log : export 받을때 log file 을지정하여 export 수행결과확인 rows : data 를받을것인지아닌지를지정. Default 는 y constraints : table 에설정된제약조건을받을것인지를결정. Default는 y tables : user의특정 table 을받고자할때사용. Default 는 userid 에지정된 user 의모든 table 을받는다. indexes : index 를받을것인지를지정. Default 는 y compress : 1개의 extent 에 import 할수있도록 export 되도록지정. Default 는 y. 이값을 n 으로지정하면, create table 이나 alter tables 에의해지정된 storage paramter 들 ( initial extent,next extent ) 을사용한다. buffer : export 받을때한번에 fetch 되는 row 의최대수를지정. full : userid 가 system/manager 나 dba 권한이있는 user 일경우에만 setting 가능한데, database 전체를받고자할때사용된다. export 수행시사용되는 option 의 default 값은 Oracle version 에따라다를수있으므로실제실행시에는 $exp help=y 로각 option 의 default 값을확인하여야한다. Export example Database 전체 export Database 전체를 export 하려면 DBA 권한이있는 system user 이어야하며 full=y option 이있어야한다. $exp system/manager file=/backup/0220.dmp log=/backup/0220.log User 단위 export $exp scott/tiger file=/backup/scott0220.dmp log=/backup/scott0220.log Table 단위 export $exp scott/tiger file=/backup/scott0220table.dmp log=/backup/scott0220table.log tables=emp,dept,salary 주의사항 Export 시에는 user 의환경변수, 특히 NLS_LANG 의값이중요한데, prompt 상에서 export 할때에는 Oracle Unix Account 와 Database 의 NLS_LANG 이일치한상태이므로상관이없지만, crontab 을이용하여주기적으로 export 를받는경우환경변수를주의하여지정하여야한다. 즉, crontab 이실행할 shell script 에서환경변수설정시 NLS_LANG 값이 Oracle10gDB 기본운영지침서.doc 33
Database 의것과틀리면, 이 dump file 은 import 시값이제대로들어가지않는다. Import 방법 Import Option Import 를수행하기위해서는반드시 export 한 dump file 이존재해야하며, export 할당시의 option 에따라 import 가제약을가진다. 즉, table 만 export 받은 dump file 로는 table 만 import 할수있지 index 나 constraints 는 import 할수없다. Import 를수행할때에자주사용되는 option 은다음과같다. $imp userid=user/passwd file : export 받은 dump file 을지정 log : import 받을때 log file 을지정하여 import 의수행결과확인 indexfile : data 를 import 하지않고 create index 문장의 sql 을저장한 file 생성 rows : data 를 import 할것인지의여부를선택. Default 는 y indexes : index 를 import 할것인지의여부를선택. Default 는 y fromuser : 다른 user 에게 export file 을 import 하고자할때, export 한 user 를지정 touser : import 할 user 를지정 buffer : import 할때한번에 import 되는 row 의최대수를지정 commit : import 시에 table 별로 commit 을할것인가 (value n), row ( buffer ) 별로 commit 할것인가를지정 (value y). Default n full : full export 한 file 에대하여 DBA 권한이있는 user 로 database 전체를 import 할때사용. Default y feedback : import 시에얼마만큼의 data 가 import 되었는지를보여준다. 지정된수자만큼 data 가 import 되면,. 이 display 된다. Import Process Sequence 1. Create table... 명령이실행되어서 new table 이생성된다. constraints 가작성된다. 2. Create index... 명령이실행된다. 3. Data 가 import 되고 index 가 update 된다. 4. Trigger 가 import 되고, integrity constraints 가 enable 된다. 효율적인 import 방법 System 의 downtime 을줄이기위해먼저 data 를 import 를하여서, database 를사용자에게먼저 open 한후에 index 를 creation 한다. 이렇게하면실제 database 를사용자에게 open 후에 application 이 full table scan 을하여서성능이저하되기는하지만, 빠른시간내에 database 를 open 할수있다는장점이있다. Oracle10gDB 기본운영지침서.doc 34
< 1 단계 > 전체 database 를 export 한다. $ exp system/manager file=fullexp0220.dmp log=fullexp0220.log full=y < 2 단계 > data 만을 import 한다. $ imp system/manager file=fullexp0220.dmp log=fullimp0220.log full=y indexes=n < 3 단계 > import option 중에 indexfile 을사용하여 index 를생성하는 script 를생성한다. $ imp system/manager file=fullexp0200.dmp indexfile=index.sql full=y < 4 단계 > <2 단계 >, <3 단계 > 가성공적으로수행되고나면, database 를사용자에게 open 한다. < 5 단계 > <3 단계 > 에서생성된 index creation script 인 index.sql 를 sqlplus 에서돌려준다. SQL> @index Backup 방법결정 Archive log file 을 3/23일부터적용하여 3/25 일까지복구 3/21 3/23 3/25 Cold backup Hot Backup 장애발생 3/24 Full Export 3/24 일 Full Export 했다고하더라도, Archive log file 을이용해서복구작업을수행할때에는최근에 export 받은시점이아니라, 장애발생된 datafile 의가장최근에 hot backup 한 3/23 일이후부터수행한다. 물리적인 backup 인 cold backup 이나 hot backup 과논리적인 backup 인 export/import 는서로다른별개의 backup 방법이므로복구작업을위해서혼용해서사용할수없다. 효율적인 backup 방법 Oracle10gDB 기본운영지침서.doc 35
일반적인고려사항 Data 의중요도 Data 손실의여유기간 복구에필요한시간 Hard Disk 용량 Oracle DBMS 의운영 mode ( Archive / Noarchive mode ) Archive mode 로운영시고려사항들 Online log file 은여러 disk 에 mirroring 한다. Archive log file 과 datafile 이같이손상되면심각한문제가발생되므로 archive log file 이쌓이는 disk 와 tablespace 가저장되는 disk 를분리한다. 그리고 archive log file 이저장될 file system 이 full 되지않도록주의한다. Transaction 이많은경우 Transaction 이많다는것은 data 입력 / 수정 / 삭제가많다는의미이므로 log 의내용이많아지게되므로, 잦은 online redo log file 의 switch 가발생하게된다. 따라서, log switch 시간에따라적당한 size 로만들어빈번한 switch 가발생하지않게하기위하여, online redo log file 의 size 가최소한 1M 이상은되어야한다. Archive log file 관리 Oracle DBMS 를 archive mode 로운영시, archive log file 이중간에하나라도없으면안되므로, 세심하게관리되어야하며, 복구작업은가장최근에 backup 한이후부터모두있어야한다. Oracle 은 resetlogs option 으로 database 를 open 하면, log sequence# 가 1 로초기화된다. 그러므로 Oracle DBMS 를 resetlogs 로기동했을경우에는꼭 cold backup 으로 full backup 을하고이전에있던 archive log file 은필요없으므로삭제한다. Backup 전략 ( 예 ) 담당자가 data 의특성 ( 중요도, 보존기간,... ) 에따라적절한 backup 전략을구축하여야하며, 실습을통하여익숙해져야한다. 몇가지예제를통하여어떤 backup 방법을사용해야하는지를알아본다. 먼저 backup 방법을결정하기위해서다음사항을고려해야한다. 항목내용 Data 의중요도 ( A ) Data 손실의여유기간 ( B ) 복구에필요한시간 ( C ) Online 가동시간 ( D ) 상, 중, 하 0 시간, 12 시간, 24 시간, 48 시간 1 시간이내, 8시간이내, 12 시간이내, 24 시간이내 1일단위, 1주일단위, 1달단위, 연중 Oracle10gDB 기본운영지침서.doc 36
Transaction 발생빈도 ( E ) 상, 중, 하 각각의항목을편의상 ( A ), ( B ), ( C ), ( D ), ( E ) 라고한다. 어떤장애가발생하더라도 data 의손실이있어서는안되는경우 ( A ) : 상 ( B ) : 0 시간 ( C ) : 1 시간이내 ( D ) : 연중 ( E ) : 상 Backup 전략 ( 예 ) 운영 Mode Archive mode 매일 Backup Cold Backup Archive log file 과 transaction 이많은 tablespace 를 hot backup 한다. 만약시스템을정지할때가있으면, cold backup 을수행하고 archive log file 을정기적으로정리한다. Data 손실은없어야하고매일 20 시에정지하고다음날 8 시에기동하는경우, 단주일에는시스템을정지 ( A ) : 상 ( B ) : 0 시간 ( C ) : 8 시간이내 ( D ) : 하루 ( E ) : 중 Backup 전략 ( 예 ) 운영 Mode Archive mode ( Data 손실의여유시간이 0 이므로 ) 매일 Backup Transaction 이중간정도이고복구시간은여유가있으므로 Archive log file 만 backup 한다. Cold Backup 1 주일에한번씩 cold backup 을수행한다. Data 손실은없어야하고, 주말마다시스템을정지하는경우 ( A ) : 상 ( B ) : 0 시간 ( C ) : 2 시간이내 ( D ) : 1 주일 ( E ) : 상 Backup 전략 ( 예 ) 운영 Mode Archive mode ( Data 손실의여유시간이 0 이므로 ) 매일 Backup Cold Backup Transaction 이많고복구시간도여유가없으므로매일 backup 하고 transaction 이많은 tablespace 도 hot backup 을고려한다. 1 주일에한번씩 cold backup 을수행 Data 손실이하루정도는상관이없고 data 량이많을경우 ( A ) : 상 ( B ) : 12 시간 ( C ) : 8 시간이내 ( D ) : 하루 ( E ) : 중 Backup 전략 ( 예 ) 운영 Mode Noarchive mode 매일 Backup Cold Backup Data 량에따라서달라지지만, 매일시스템을정지하고하루정도의 data 손실은무방할경우에는매일전체를 export 한다. Data 량이 5 시간안에모두 backup 할정도의크기라면매일 cold backup 한다. Oracle10gDB 기본운영지침서.doc 37
Backup Checkpoint Control Files Control file 은 Recovery 에중요한요소로서 DB 의물리적구조 (Physical Structure) 와현재상태를가지며항상이용가능하여야한다. Control file 은 DB 의물리적구조변화가발생한후는항상 backup 을수행해야한다. 예를들면 data file, 혹은 log file add 후,hot backup 후에는 control file 을 backup 받아야한다. (Add 되는 datafile 또한 backup 받아야한다 ) 적어도 3 개의 control file 을이용하여야하며각 control file 은다른 controller, disk 에위치하고 H/W mirror 되어야한다. Online redo log Instance, Media Recovery 를위해필수적이며 DB 를 Roll forward 하기위한 Redo 와 Uncommited Transactions 을 Rollback 하기위한 Undo 로구성되어있다. Current Online redo log 이나 Unarchived Online redo log 을잃게되면 DB Outage 가발생한다. Outage 를방지하기위해 redo log files 을 multiplexing(multiple members per group) 하고 Online-redo log 의각 member 를다른 disk,controller 에위치시키는것이필요하다. DBA 는 checkpoint 의주기와 Archiver wait problem 을 monitor 하여 Redo log file 의크기와 Group 갯수를조절하여야한다. Archive logs DB 의이전 Backup 으로부터 Roll forward 하는데이용되며, 바라는시점까지의 Roll forward ( Recovery ) 를위해서는모든 Archive log file 이필요하다. 따라서 Archive log 손실이발생하면곧 Full backup(offline Backup, 또는 Online Backup ) 을수행하여야한다. ( DB log mode 를 ARCHIVELOG 에서 NOARCHIVELOG 으로변경하게되면 Archive log 손실이발생한다.) Oracle10gDB 기본운영지침서.doc 38
Recovery 오라클의세가지기본적인 Recovery 종류는 Online block recovery, thread recovery, media recovery 이다. Block-level recovery 는오라클이 cache 내에서손상된 block 을발견하면, online redo log file 을이용해서자동적으로복구한다. Thread recovery 는 Database 는 open 된상태에서 instance 가 crash 될때, thread 의마지막 checkpoint 이후로변경된모든 redo 를 Database 에적용하는것인데, 이것역시오라클에의해서자동적으로이루어진다. Media recovery 는오라클에의해서자동적으로이루어지는것이아니라 DBA 의 recovery command 에의해수행된다. 오라클은 control file 과 data file header 의 check point count ( SCN ) 가동일하지않을때 media recovery 를필요로하며, redo log - online, archive redo log - 를적용함으로써복구를수행한다. Media Recovery Media recovery에는복구대상범위에따라 Database recovery, Tablespace recovery, Datafile recovery의세가지유형이있다. 이방법은 Database가 ARCHIVELOG mode로운영중일때만적용가능하다. 일반적으로, Database가 NOARCHIVELOG mode로운영중일때, 가능한 recovery방법은 ➀ Offline backup - data files, control files, online redo log files - 을 restore하고 Database를재가동하거나 ➁ Full database export를사용하여 Database를재생성하는것이다. 이것은마지막 Backup 이후부터 media failure 까지의 Data는모두잃을수밖에없으므로, complete recovery는불가능하다. Database Recovery 모든혹은일부의 Data file 을 Backup 으로부터 restore 하여전체 Database 를복구하는방법이다. Database Recovery 명령어 RECOVER [ AUTOMATIC ] [ FROM location ] DATABASE [ UNTIL CACEL ] [ UNTIL TIME date ] [ UNTIL CHANGE integer ] [ USING BACKUP CONTROLFILE ] * 괄호안의명령어는생략가능 AUTOMATIC option이사용되면 media recovery동안에 redo log file의이름을물어보지않고자동적으로복구가된다. set autorecovery on/off를사용할수도있다. Automatic recovery를위해서 archive log file들은 INIT.ORA의 LOG_ARCHIVE_DEST에지정된위치에 LOG_ARCHIVE_FORMAT에정의된 filename format으로존재해야만한다. FROM절은 INIT.ORA의 LOG_ARCHIVE_DEST에정의된위치와 archive redo log file의위치가다를경우에사용한다 UNTIL절이생략되면, 오라클은 complete database recovery를한다. Oracle10gDB 기본운영지침서.doc 39
Complete recovery VS Incomplete recovery Data 의손실없이 media failure 로부터 Database 를복구하는것을 complete recovery, 그렇지않은경우를 incomplete recovery 라고한다. Incomplete recovery는 archive나혹은 online redo log, control file을손실하였을경우나과거의특정시점까지 Database를복구하고자할때사용할수있다. Incomplete recovery는가장최근의 online 혹은 offline complete database backup을 restore한후, recover database until XXX 명령을사용한다. 모든 archived redo log가적용된후에는 alter database open resetlogs명령을이용하여 Database를 open 해야한다. Incomplete recovery 시사용되는 options UNTIL CANCEL의경우 cancel 명령어가입력될때까지한번에하나씩 redo log를적용하는방식이다. SQL> recover database until cancel; UNTIL TIME의경우 ( Point-in-time recovery ) redo log file내의특정한시점까지 Database를복구한다. SQL > recover database until time 1998-02 - 03:12:10:00 ; UNTIL CHANGE의경우 transaction-consistent state로 Database를복구한다. 이때사용된 SCN보다적은 SCN을가진모든 redo record가적용된다. SQL> recover database until change integer; RESETLOGS option Database 를 RESETLOGS option 을이용하여 Open 해야하는경우는다음과같다 Incomplete Reocvery Backup control file 을이용한복구 RESETLOGS option 이명시된 create control file 명령어를이용하여생성된 control 로복구한경우 RESETLOGS option을이용하여 Database를 Open하면, 복구되는동안에적용되지않은 redo는다시사용할수없게된다. 또한, control file의 online log file과 redo thread에대한정보를 reset하게된다. RESETLOGS option 을이용하여 Database 를 Open 하기전에, Database 의 consistency 를보장하기위해모든 Datafile 이같은시점으로복구되었는지를명백하게하는것이필요하며, RESETLOGS option 으로 Database 를 Open 한경우반드시 database full backup 을수행해야한다. Database recovery 요약 설명 Database recovery는 database내의모든 online datafile을복구한다. Complete 혹은 Incomplete recovery가가능하다 online(hot) 혹은 offline(cold) backup으로부터복구가가능하다 요구사항 반드시 Database가 mount된상태에서복구가수행되어야한다. 복구될모든 datafile은 online상태이어야한다. 필요한 files Archived and/ or online redo log files 현재혹은 backup control file Oracle10gDB 기본운영지침서.doc 40
Datafile 의 backup 본 장점 한번에 Database를복구할수있다 Incomplete recovery가가능하다 SYSTEM tablespace에속해있는 datafile을복구할수있다 단점 복구하는동안에 Database를사용할수없다. 적용될 redo의양과 Backup의빈도수에따라오랜시간이소요될수있다. Complete recovery 단계 1. OS level에서손상된 datafile을 restore한다 2. RESTRICT mode 로 Database 를 mount 한다. SQL > startup restrict mount [ dbname ]; 3. [ Optional ] 복구해야할 datafile 이있던장소가변경되거나사용할수없게될때 ( 즉, 디스크파손 ), control file 내의 file path 가새로 restore 된장소로변경되어야한다. SQL > alter database rename file old_filename to new_filename ; 4. 복구하고자하는모든 datafile 이 online 상태인지확인한다. SQL > select file#, status, name from V$DATAFILE; SQL > alter database datafile filename online; 5. Database 를복구한다. SQL > recover database [dbname]; 오라클은가장오래된 archived redo log 부터요구한다. 복구가완료되면, Media recovery complete 라는메세지가나타난다. 6. Database 를 Open 한다. SQL> alter database [dbname] open; Incomplete recovery 단계 1. 오라클을 shutdown하고모든 datafile을 Backup한다. SQL > shutdown [ dbname ]; 2. 모든 Datafile 의 Backup 본을 restore 한다. 3. RESTRICT mode 로 Database 를 mount 한다. SQL > startup restrict mount [ dbname ]; 4. [ Optional ] 복구해야할 datafile 이있던장소가변경되거나사용할수없게될때 ( 즉, 디스크파손 ), control file 내의 file path 가새로 restore 된장소로변경되어야한다. SQL> alter database rename file old_filename to new_filename ; 5. 복구하고자하는모든 datafile 이 online 상태인지확인한다. SQL> select file#, status, name from V$DATAFILE; Oracle10gDB 기본운영지침서.doc 41
SQL> alter database datafile filename online; 6. UNTIL CANCEL, UNTIL TIME option을사용하여 Database를복구한다. SQL> recover database until time 1998-02-03:12:00:00 ; Backup 한 control file 을사용하여복구해야할때에는다음과같이한다. SQL> recover database using backup controlfile; 7. RESETLOGS option을사용하여 Database를 Open한다. SQL> ALTER DATABASE OPEN RESETLOGS; 8. Offline 혹은 Online backup을수행한다. ( 매우중요 ) Tablespace Recovery Tablespace recovery는 complete recovery시에만사용될수있으며, 복구하기전에 tablespace가 offline되어야한다. 따라서, offline될수없는 tablespace ( SYSTEM tablespace) 는이명령을사용하여복구될수없다. Tablespace recovery 명령어 RECOVER [ AUTOMATIC ] [ FROM location ] TABLESPACE tablespace_name [, tablespace_name... ] Tablespace recovery 요약 설명 Tablespace recovery는지정된 tablespace의모든 datafile의 online recovery가 가능하다. online 혹은 offline backup 을이용하여복구할수있다. complete recovery만이가능하다. 요구사항 Database가 Open 되어있어야한다. 복구될 tablespace는 offline상태이어야한다. 필요한 files Archived and online redo log files Current control file datafile의 Backup본 ( 손실혹은손상된 file ) 장점 한번에지정된 tablespace내의모든손상되거나손실된 datafile을복구한다. 모든 datafile에 redo를적용할필요가없으므로, Database recovery보다 복구시간이빠르다. 복구동안에도 Database내의다른 tablespace는사용가능하다. 다수의 session을이용하여, tablespace를병렬로복구할수있다. 단점 SYSTEM tablespace처럼 offline될수없는 tablespace는복구할수없다. Incomplete recovery가불가능하다. Tablespace recovery 단계 1. 복구할 tablespace를 offline한다. SQL> alter tablespace ts_name offline; 2. 복구할 tablespace의모든 datafile을 restore한다. Oracle10gDB 기본운영지침서.doc 42
3. [ Optional ] 복구해야할 datafile 이있던장소가변경되거나사용할수없게될때 ( 즉, 디스크파손 ), control file 내의 file path 가새로 restore 된장소로변경되어야한다. SQL> alter database rename file old_filename to new_filename ; 4. tablespace 를복구한다. SQL> RECOVER TABLESPACE ts_name [, ts_name...] ; 오라클은가장오래된 archived redo log 부터요구한다. 복구가완료되면, Media recovery complete 라는메세지가나타난다. 5. tablespace 를 online 한다. SQL> alter tablespace ts_name online; Datafile Recovery Datafile recovery 는 complete recovery 시에만이용될수있다. Datafile Recovery 명령어 RECOVER [AUTOMATIC ] [ FROM location ] DATAFILE filename [, filename,...] ; Datafile recovery 요약 설명 다수의 session을이용하여병렬로 datafile을복구할수있다. Offline 혹은 online backup으로부터복구가가능하다. Data file에따라 online 혹은 offline recovery ( 즉, Database가 Open되어 있거나 mount된상태 ) 가가능하다. 요구사항 online recovery를위해 Datafile은 offline되어야한다. 필요한 files Archived and online redo log files Current control file datafile의 Backup본 ( 손실혹은손상된 file ) 장점 Offline 혹은 Online recovery가가능하다. 다수의 session을이용하여병렬복구를할수있다. 단점 Online recovery를위해서 datafile은 offline되어야한다. 따라서, SYSTEM data files은 recover datafile 명령어를이용하여복구될수없다. Incomplete recovery가불가능하다. Online recovery 단계 1. Database를 mount한다. SQL> startup mount [ dbname ]; 2. 모든손상되거나손실된 Data file을 offline한다. SQL> alter database datafile filename offline; 3. Database를 Open한다. SQL> alter database open ; Oracle10gDB 기본운영지침서.doc 43
4. 복구할 tablespace 의모든 datafile 을 restore 한다. [ Optional ] 복구해야할 datafile이있던장소가변경되거나사용할수없게될때 ( 즉, 디스크파손 ), control file내의 file path가새로 resotre된장소로변경되어야한다. SQL> alter database rename file old_filename to new_filename ; 5. Datafile 을복구한다. SQL> RECOVER DATAFILE datafile [, datafile,... ] ; 오라클은가장오래된 archived redo log부터요구한다. 복구가완료되면, Media recovery complete 라는메세지가나타난다. 6. Datafile 을 online 한다. SQL> alter database datafile filename online; Media Recovery Option 비교 RECOVER DATABASE RECOVER TABLESPACE RECOVER DATAFILE 한번에 Database 내의모든 Data file을복구한다 Database - closed상태 ( mount ) 복구할 files - online 상태손상된 tablespace가 SYSTEM일경우도사용가능. 두개의세션이동시에 Database를복구할수없다. Incomplete recovery 가능. 한번에하나이상의 Tablespace 를복구한다 Database - open 상태복구할 tablespace - offline Offline 할수없는 SYSTEM tablespace 는복구불가 병렬로복구하기위해서다수의세션사용 Complete recovery 만가능 한번에하나이상의 Data file 을복구한다. Database - closed 혹은 open if open, 복구할 datafile - offline Database가 open된상태에서복구할때, SYSTEM tablespace내의 datafile은복구불가병렬로복구하기위해서다수의세션사용 Complete recovery 만가능 Oracle10gDB 기본운영지침서.doc 44
Oracle Database 10g 에서 Backup / Recovery Flashback Database Flashback Database 개요 Oracle Database 10g 이전까지는 transactional point-in-time recovery 를위해서는 backup 용 file 과 redo log file 을이용하여원하는시간까지의복구를하였었다. 그러나이방법은 backup 용 file 이오래된것이며, archive log 가많이쌓여있을때는많은시간이소요된다. Oracle Database 10g 부터는 flashback database 를이용하여좀더빠른 recovery 가가능하게되었다. Flashback database 의사용용도는 logical data corruption 이나 user error 시유용하다. (Physical data corruption 은 H/W 문제이기때문에 Flashback database 로 recovery 는불가능하다.) Flashback Database 의장점은기존의 traditional point-in-time recovery 에비해매우빠른 recovery 가가능하다는것이다. 이러한빠른성능을낼수있는이유는 flashback database 는 database 의크기에비례해서 recovery 시간이늘어나는것이아니라, 변경된 data 의양에비례해서 recovery 시간이걸린다는점이다. Note : 여기서한가지짚고넘어갈점은 Flashback table, Flashback Database, Flashback Drop, Flashback Version Query, Flashback Transaction Query 는아래의표와같이각기다른영역을사용한다는점이다. Oracle10gDB 기본운영지침서.doc 45
Flashback Database 사용시장점 위의그림, 앞의설명과같이 Flashback Database 는매우빠른시간의 recovery 를가능하게한다. RVWR Background Process Flashback database 를위해 RVWR 이라는새로운 background process 가생겼다. RVWR 은 flashback database log 들을생성하는역할을한다. Flashback database log 들은변경되기이전의 data block 정보들과 flashback query 들을위한정보들을저장한다. 기본적으로 flashback database operation 을수행하면, flashback database log 를사용하지만, database consistency 를확인하기위해 redo log 를적용하기도한다. Notes: 다음과같은상황에서는 flashback database feature를사용할수없다. 1. Control file이 restore되거나 recreate되었을때, 2. Tablespace가 drop되었을때, 3. Data file이 shrunk되었을때,( 즉 data file이 drop되거나 resize되었을때 ) 4. RESETLOGS operation을통한 recovery가수행되었을때, Flashback Database 설정 Oracle10gDB 기본운영지침서.doc 46
Flash Recovery Area 설명 Flash Recovery Area 는 Oracle Database 의복구와관련된파일들의통합된저장영역이다. 이영역에는 archived redo log file, control file, RMAN 에의행생성된 Backup Set, flashback log, change tracking file 들이생성된다. Flash Recover Area 설정 Oracle Database 가 ArchiveLog Mode 로운영되어있어야 1. Enterprise Manager DB Console 로 Login 한다. http://<hostname>:5500/em sys/<password> as sysdba 로접속 Oracle10gDB 기본운영지침서.doc 47
2. DB Console 초기화면에서 유지관리 Tab 을선택한다. 3. 백업 / 복구의백업설정구성을선택한다. Oracle10gDB 기본운영지침서.doc 48
4. 페이지하단의호스트인증서에 OS 유저이름과암호를입력하고페이지상단으로이동 5. 백업설정구성의디스크설정에서디스크백업유형을이미지복사본으로선택하고디스크백업테스트를수행 Oracle10gDB 기본운영지침서.doc 49
6. 유지관리화면의백업 / 복구 -> 복구설정구성을선택 Oracle10gDB 기본운영지침서.doc 50
7. Flashback Database 는기본적으로 Archivelog 모드에서동작되므로매체복구항목의 ARCHIVELOG 모드를선택한다. 8. 플래시복구영역의위치와크기를입력하고플래시백로깅활성화를선택 9. 적용버튼을눌러복구설정을종료한다. Oracle10gDB 기본운영지침서.doc 51
아카이브로그설정과플래시백로깅설정을위해데이터베이스를재시작한다. Oracle10gDB 기본운영지침서.doc 52
수행되는데이터베이스명령어는 SQL 버튼을눌러확인할수있다. Database 백업 1. 백업일정잡기를선택 Oracle10gDB 기본운영지침서.doc 53
2. 백업전략을오라클권장으로선택한후다음버튼을누른다. Oracle10gDB 기본운영지침서.doc 54
Oracle10gDB 기본운영지침서.doc 55
Oracle10gDB 기본운영지침서.doc 56
임의의장애발생 1. Sample Table 조회 [oracle@minimax oracle]$ sqlplus sh/sh SQL*Plus: Release 10.1.0.2.0 - Production on Sun Dec 12 14:46:24 2004 Copyright (c) 1982, 2004, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options SQL> select count(*) from sales; COUNT(*) ---------- 918843 2. 데이터파일삭제 [oracle@minimax O10G]$ ls -alt 합계 1061264 -rw-rw---- 1 oracle dba 2867200 12월 12 14:44 control01.ctl -rw-rw---- 1 oracle dba 2867200 12월 12 14:44 control02.ctl -rw-rw---- 1 oracle dba 2867200 12월 12 14:44 control03.ctl -rw-rw---- 1 oracle dba 10486272 12월 12 14:44 redo01.log -rw-rw---- 1 oracle dba 57679872 12월 12 14:44 undotbs01.dbf -rw-rw---- 1 oracle dba 293609472 12월 12 14:44 sysaux01.dbf -rw-rw---- 1 oracle dba 513810432 12월 12 14:44 system01.dbf Oracle10gDB 기본운영지침서.doc 57
-rw-rw---- 1 oracle dba 157294592 12월 12 14:05 example01.dbf -rw-rw---- 1 oracle dba 5251072 12월 12 14:05 users01.dbf -rw-rw---- 1 oracle dba 10486272 12월 12 14:00 redo03.log -rw-rw---- 1 oracle dba 10486272 12월 12 13:25 redo02.log -rw-rw---- 1 oracle dba 20979712 12월 12 10:44 temp01.dbf drwxrwxr-x 2 oracle dba 4096 12월 12 08:41. drwxrwxr-x 3 oracle dba 4096 12월 12 08:39.. [oracle@minimax O10G]$ rm example01.dbf 3. 장애발생 SQL> select count(*) from sales; select count(*) from sales * ERROR at line 1: ORA-01116: error in opening database file 5 ORA-01110: data file 5: '/home/oracle/oradata/o10g/example01.dbf' ORA-27041: unable to open file Linux Error: 2: No such file or directory Additional information: 3 데이터파일복구수행 1. 유지관리탭으로이동하여백업 / 복구의 복구수행 선택 Oracle10gDB 기본운영지침서.doc 58
2. 복구수행화면에서현재데이터베이스정보에서매체복구가필요한데이터파일을볼수있다. 3. 복구하려는파일선택후다음버튼선택 Oracle10gDB 기본운영지침서.doc 59
4. 기본위치로복구수행 5. RMAN script 확인후 제출 버튼을선택하여복구수행 Oracle10gDB 기본운영지침서.doc 60
6. 정상적으로복구를수행 복구수행후자료조회 SQL> select count(*) from sales; select count(*) from sales * ERROR at line 1: ORA-01116: error in opening database file 5 ORA-01110: data file 5: '/home/oracle/oradata/o10g/example01.dbf' ORA-27041: unable to open file Linux Error: 2: No such file or directory Additional information: 3 SQL> / COUNT(*) ---------- 918843 Flashback Database 테스트 SQL> create table cust as select * from customers; Table created. SQL> select count(*) from cust; COUNT(*) ---------- Oracle10gDB 기본운영지침서.doc 61
55500 SQL> select current_scn from v$database; CURRENT_SCN ----------- 431193 SQL> truncate table cust; Table truncated. SQL> select count(*) from cust; COUNT(*) ---------- 0 Flashback Database 를준비하기위해 Instance 를종료시킨다. SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. Flashback Database 를준비하기위해 Insatnce 를 Mount 시킨다. SQL> startup mount ORACLE instance started. Total System Global Area 188743680 bytes Fixed Size 778036 bytes Variable Size 162537676 bytes Database Buffers 25165824 bytes Redo Buffers 262144 bytes Database mounted. Recover Manager 를실행시켜 Target 데이터베이스에접속한다. [oracle@minimax oracle]$ rman Recovery Manager: Release 10.1.0.2.0 - Production Copyright (c) 1995, 2004, Oracle. All rights reserved. RMAN> connect target connected to target database: O10G (DBID=4230706800) RMAN> 원하는시점으로되돌아가기위해조금전에기록했던 SCN 으로 Recovery Manager 를이용하여 Flash Back 한다. RMAN> flashback database to scn 431193; Oracle10gDB 기본운영지침서.doc 62
Starting flashback at 12-DEC-04 using target database controlfile instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=268 devtype=disk starting media recovery media recovery complete Finished flashback at 12-DEC-04 Database 를 Resetlogs 로 Open 하여 truncate 전의데이터를확인한다. SQL> alter database open; alter database open * ERROR at line 1: ORA-01589: must use RESETLOGS or NORESETLOGS option for database open SQL> alter database open resetlogs; Database altered. SQL> select count(*) from sh.cust; COUNT(*) ---------- 55500 Flashback Database 명령시 alert.log Sun Dec 12 15:40:02 2004 alter database recover datafile list clear Sun Dec 12 15:40:02 2004 Completed: alter database recover datafile list clear Starting Flashback Database to before SCN 431194 Flashback Restore Start Starting Flashback Restore of datafile 1. Datafile 1: '/home/oracle/oradata/o10g/system01.dbf' Starting Flashback Restore of datafile 2. Datafile 2: '/home/oracle/oradata/o10g/undotbs01.dbf' Starting Flashback Restore of datafile 3. Datafile 3: '/home/oracle/oradata/o10g/sysaux01.dbf' Starting Flashback Restore of datafile 4. Datafile 4: '/home/oracle/oradata/o10g/users01.dbf' Starting Flashback Restore of datafile 5. Datafile 5: '/home/oracle/oradata/o10g/example01.dbf' Starting Flashback Restore of thread 1. Completed Flashback Restore of thread 1. Flashback Restore Complete Flashback Media Recovery Start Starting datafile 1 with incarnation depth 0 in thread 1 sequence 36 Datafile 1: '/home/oracle/oradata/o10g/system01.dbf' Starting datafile 2 with incarnation depth 0 in thread 1 sequence 36 Datafile 2: '/home/oracle/oradata/o10g/undotbs01.dbf' Starting datafile 3 with incarnation depth 0 in thread 1 sequence 36 Datafile 3: '/home/oracle/oradata/o10g/sysaux01.dbf' Starting datafile 4 with incarnation depth 0 in thread 1 sequence 36 Oracle10gDB 기본운영지침서.doc 63
Datafile 4: '/home/oracle/oradata/o10g/users01.dbf' Starting datafile 5 with incarnation depth 0 in thread 1 sequence 36 Datafile 5: '/home/oracle/oradata/o10g/example01.dbf' Recovery of Online Redo Log: Thread 1 Group 2 Seq 36 Reading mem 0 Mem# 0 errs 0: /home/oracle/oradata/o10g/redo02.log Recovery of Online Redo Log: Thread 1 Group 3 Seq 37 Reading mem 0 Mem# 0 errs 0: /home/oracle/oradata/o10g/redo03.log Sun Dec 12 15:40:16 2004 Media Recovery Applied UNTIL CHANGE 431199 Flashback Media Recovery Complete Resetlog 로 Open 할때의 alert.log RESETLOGS after incomplete recovery UNTIL CHANGE 431199 Resetting resetlogs activation ID 4230707312 (0xfc2b7870) Setting recovery target incarnation to 3 Sun Dec 12 15:41:29 2004 Setting recovery target incarnation to 3 Sun Dec 12 15:41:29 2004 Deleted Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vql0s35_.flb Deleted Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vqn3cv6_.flb Deleted Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vqomy8n_.flb Deleted Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vqqnhgs_.flb Deleted Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vqqxd06_.flb Flashback Database Disabled Created Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vqt0t9q_.flb Sun Dec 12 15:41:31 2004 Starting background process RVWR RVWR started with pid=13, OS id=12706 Sun Dec 12 15:41:32 2004 Flashback Database Enabled Turn database flashback on at SCN 431201 Sun Dec 12 15:41:32 2004 Assigning activation ID 4230698904 (0xfc2b5798) LGWR: STARTING ARCH PROCESSES ARC0 started with pid=17, OS id=12708 ARC0: Archival started ARC0: Becoming the 'no FAL' ARCH ARC0: Becoming the 'no SRL' ARCH Sun Dec 12 15:41:40 2004 LGWR: STARTING ARCH PROCESSES COMPLETE LGWR: Primary database is in CLUSTER CONSISTENT mode Maximum redo generation record size = 120832 bytes Maximum redo generation change vector size = 116476 bytes Private_strands 7 at log switch ARC1 started with pid=18, OS id=12710 Sun Dec 12 15:41:40 2004 Thread 1 opened at log sequence 1 Current log# 3 seq# 1 mem# 0: /home/oracle/oradata/o10g/redo03.log Successful open of redo thread 1 Sun Dec 12 15:41:40 2004 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set Sun Dec 12 15:41:40 2004 SMON: enabling cache recovery Sun Dec 12 15:41:40 2004 ARC1: Archival started ARC1: Becoming the heartbeat ARCH Sun Dec 12 15:41:42 2004 Successfully onlined Undo Tablespace 1. Dictionary check beginning Dictionary check complete Sun Dec 12 15:41:42 2004 SMON: enabling tx recovery Sun Dec 12 15:41:42 2004 Database Characterset is KO16KSC5601 Oracle10gDB 기본운영지침서.doc 64
Sun Dec 12 15:41:42 2004 Published database character set on system events channel Sun Dec 12 15:41:45 2004 Starting background process QMNC QMNC started with pid=19, OS id=12714 Sun Dec 12 15:41:47 2004 replication_dependency_tracking turned off (no async multimaster replication found) Sun Dec 12 15:41:47 2004 Starting background process MMON Starting background process MMNL MMON started with pid=20, OS id=12716 MMNL started with pid=21, OS id=12718 Sun Dec 12 15:41:52 2004 Completed: alter database open resetlogs Backup 정책변경 Oracle10gDB 기본운영지침서.doc 65
블록변경추적활성화에따른 alert.log Sun Dec 12 16:17:39 2004 alter database enable block change tracking using file '/data/oradata/o10g/blkchg' Sun Dec 12 16:17:40 2004 Block change tracking file is current. Sun Dec 12 16:17:41 2004 Starting background process CTWR CTWR started with pid=15, OS id=13885 Block change tracking service is active. Sun Dec 12 16:17:41 2004 Completed: alter database enable block change tracking using Oracle10gDB 기본운영지침서.doc 66
사용자정의 Backup 수행 Oracle10gDB 기본운영지침서.doc 67
Oracle10gDB 기본운영지침서.doc 68
Oracle10gDB 기본운영지침서.doc 69
Oracle10gDB 기본운영지침서.doc 70
Backup 수행시 alert.log Sun Dec 12 16:28:24 2004 Created Oracle managed file /data/flash_recovery_area/o10g/datafile/o1_mf_system_0vqwottz_.dbf Sun Dec 12 16:29:21 2004 Created Oracle managed file /data/flash_recovery_area/o10g/datafile/o1_mf_sysaux_0vqws242_.dbf Sun Dec 12 16:29:52 2004 Created Oracle managed file /data/flash_recovery_area/o10g/datafile/o1_mf_example_0vqwtsnl_.dbf Sun Dec 12 16:30:14 2004 Created Oracle managed file /data/flash_recovery_area/o10g/datafile/o1_mf_undotbs1_0vqwvmo4_.dbf Sun Dec 12 16:30:27 2004 Created Oracle managed file /data/flash_recovery_area/o10g/datafile/o1_mf_users_0vqwwfdk_.dbf Starting control autobackup Created Oracle managed file /data/flash_recovery_area/o10g/autobackup/2004_12_12/o1_mf_s_544725036_0vqwx3cl_.bkp Control autobackup written to DISK device handle '/data/flash_recovery_area/o10g/autobackup/2004_12_12/o1_mf_s_544725036_0vqwx3cl_.bkp' Oracle10gDB 기본운영지침서.doc 71
Sun Dec 12 16:30:57 2004 Private_strands 7 at log switch Thread 1 advanced to log sequence 2 Current log# 1 seq# 2 mem# 0: /home/oracle/oradata/o10g/redo01.log Sun Dec 12 16:30:57 2004 ARC1: Evaluating archive log 3 thread 1 sequence 1 Sun Dec 12 16:30:57 2004 Sun Dec 12 16:30:57 2004 O10G; ARC1: Beginning to archive log 3 thread 1 sequence 1 (0.431200:0.435804) Sun Dec 12 16:30:57 2004 ARCH: Connecting to console port... Sun Dec 12 16:30:57 2004 Log actively being archived by another process Sun Dec 12 16:30:57 2004 O10G; ARC1: Creating local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_1_%u_.arc' (thread 1 sequence 1) Sun Dec 12 16:30:57 2004 ARCH: Connecting to console port... Sun Dec 12 16:30:58 2004 O10G; ARC1: Closing local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_1_0vqwxkq7_.arc' ARCH: Connecting to console port... Committing creation of archivelog '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_1_0vqwxkq7_.arc' Created Oracle managed file /data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_1_0vqwxkq7_.arc Sun Dec 12 16:30:58 2004 O10G; ARC1: Completed archiving log 3 thread 1 sequence 1 ARCH: Connecting to console port... Sun Dec 12 16:31:02 2004 Created Oracle managed file /data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_34_0vqwxnz6_.arc Created Oracle managed file /data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_36_0vqwxs7z_.arc Created Oracle managed file /data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_37_0vqwxxw7_.arc Created Oracle managed file /data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_1_0vqwxz1r_.arc Created Oracle managed file /data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_35_0vqwy18y_.arc Starting control autobackup Created Oracle managed file /data/flash_recovery_area/o10g/autobackup/2004_12_12/o1_mf_s_544725074_0vqwy35h_.bkp Control autobackup written to DISK device handle '/data/flash_recovery_area/o10g/autobackup/2004_12_12/o1_mf_s_544725074_0vqwy35h_.bkp' Flashback Drop & Flashback Table 이전 version 까지의 Oracle Database 는 drop 된 object 들에대해서는, 일반적인 SQL query 로는되살릴수없었다. 그러나, Oracle Database 10g 부터는 recycle bin( 휴지통 ) 이있어서어떤 table 을 drop 하면, drop 된 table 과해당 table 과관계되는 object 들을되살릴수있게되었다. Oracle10gDB 기본운영지침서.doc 72
Recycle Bin Flashback drop 은기본적인 Recycle bin( 휴지통 ) 을통해서이루어진다. Recycle bin 은 Windows 계열 OS 에서 file system 에서하나의 file 을버렸을때, 처음에는 recycle bin 에자료를보관하는방법과똑같다. 단지 Oracle 은 database 에적용한점만이차이가날뿐이다. 기본적인 Recycle bin 의정보는 user 단위인 user_recyclebin 과 dba 단위인 dba_recyclebin 이존재하며이에따른 show recyclebin 이라는명령이추가되었다. SQL> select count(*) from cust; COUNT(*) ---------- 55500 SQL> drop table cust; Table dropped. SQL> select count(*) from cust; select count(*) from cust * ERROR at line 1: ORA-00942: table or view does not exist SQL> show recyclebin ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---------------- ------------------------------ ------------ ------------------- CUST BIN$6wg8i2YF0WrgMKjAC8s9Eg==$0 TABLE 2004-12-12:17:47:23 SQL> flashback table cust to before drop; Flashback complete. SQL> select count(*) from cust; Oracle10gDB 기본운영지침서.doc 73
COUNT(*) ---------- 55500 Oracle10gDB 기본운영지침서.doc 74
Oracle10gDB 기본운영지침서.doc 75
Oracle10gDB 기본운영지침서.doc 76
Flashback Table Oracle Database 10g 부터는기본적으로 flashback table 이라는 sql 명령문이있어서 drop 된 object 를되살리거나원하는시점으로 object 내용을되돌릴수있다. 모든 object 에대해서가능한것은아닌데, 다음과같은 object 들에대해서는 flashback table operation 이불가능하다. Part of cluster Materialized views Advanced Queuing(AQ) tables Static data dictionary tables System tables Remote tables Individual table partitions or subpartitions Oracle10gDB 기본운영지침서.doc 77
Row Movement 설정 Oracle10gDB 기본운영지침서.doc 78
Oracle10gDB 기본운영지침서.doc 79
Oracle10gDB 기본운영지침서.doc 80
모의사용자에러발생 SQL> select cust_id, cust_first_name, cust_last_name,cust_email from cust 2 where rownum < 50; CUST_ID CUST_FIRST_NAME CUST_LAST_NAME CUST_EMAIL ---------- ------------------ -------------------- -------------------------- 6784 Abner Kenney Kenney@company.com 10339 Abner Kenney Kenney@company.com 13895 Abner Kenney Kenney@company.com 17450 Abner Kenney Kenney@company.com 21006 Abner Kenney Kenney@company.com 24562 Abner Kenney Kenney@company.com 28117 Abner Kenney Kenney@company.com 31672 Abner Kenney Kenney@company.com 35228 Abner Kenney Kenney@company.com CUST_ID CUST_FIRST_NAME CUST_LAST_NAME CUST_EMAIL ---------- ------------------ -------------------- -------------------------- 44116 Abner Robbinette Robbinette@company.com 34359 Abner Robbinette Robbinette@company.com 47895 Abner Robbinette Robbinette@company.com 1451 Abner Robbinette Robbinette@company.com 5006 Abner Robbinette Robbinette@company.com 49 rows selected. SQL> update cust set cust_last_name = 'Hanson'; 55500 rows updated. SQL> commit; Commit complete. Oracle10gDB 기본운영지침서.doc 81
Sun Dec 12 17:00:59 2004 Created Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vqyovhl_.flb Sun Dec 12 17:20:28 2004 Created Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vqztcwo_.flb Sun Dec 12 17:22:39 2004 Private_strands 7 at log switch Thread 1 advanced to log sequence 3 Current log# 2 seq# 3 mem# 0: /home/oracle/oradata/o10g/redo02.log Sun Dec 12 17:22:39 2004 ARC1: Evaluating archive log 1 thread 1 sequence 2 Sun Dec 12 17:22:39 2004 O10G; ARC1: Beginning to archive log 1 thread 1 sequence 2 (0.435804:0.438993) ARCH: Connecting to console port... Sun Dec 12 17:22:39 2004 O10G; ARC1: Creating local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_r ecovery_area/o10g/archivelog/2004_12_12/o1_mf_1_2_%u_.arc' (thread 1 sequence 2) ARCH: Connecting to console port... Sun Dec 12 17:22:48 2004 Thread 1 advanced to log sequence 4 Current log# 3 seq# 4 mem# 0: /home/oracle/oradata/o10g/redo03.log Sun Dec 12 17:22:49 2004 O10G; ARC1: Closing local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_3_0vqzyrh4_.arc' Sun Dec 12 17:22:49 2004 ARCH: Connecting to console port...committing creation of archivelog '/data/flash_recovery_area/o10g/archivelog/2004_ 12_12/o1_mf_1_3_0vqzyrh4_.arc' Created Oracle managed file /data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_3_0vqzyrh4_.arc Sun Dec 12 17:22:51 2004 O10G; ARC1: Completed archiving log 2 thread 1 sequence 3 ARCH: Connecting to console port... Sun Dec 12 17:22:51 2004 Created Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vqzyscv_.flb Sun Dec 12 17:22:57 2004 Private_strands 7 at log switch Thread 1 advanced to log sequence 5 Current log# 1 seq# 5 mem# 0: /home/oracle/oradata/o10g/redo01.log Sun Dec 12 17:22:57 2004 ARC1: Evaluating archive log 3 thread 1 sequence 4 Sun Dec 12 17:22:57 2004 O10G; ARC1: Beginning to archive log 3 thread 1 sequence 4 (0.440288:0.441860) ARCH: Connecting to console port... Sun Dec 12 17:22:57 2004 O10G; ARC1: Creating local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_4_%u_.arc' (thread 1 sequence 4) ARCH: Connecting to console port... Sun Dec 12 17:22:58 2004 O10G; ARC1: Closing local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_4_0vqzz1w4_.arc' ARCH: Connecting to console port... Committing creation of archivelog '/data/flash_recovery_area/o10g/archivelog/2004_ 12_12/o1_mf_1_4_0vqzz1w4_.arc' Created Oracle managed file /data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_4_0vqzz1w4_.arc Sun Dec 12 17:22:59 2004 O10G; ARC1: Completed archiving log 3 thread 1 sequence 4 ARCH: Connecting to console port... Sun Dec 12 17:23:00 2004 Created Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vqzz3t1_.flb Oracle10gDB 기본운영지침서.doc 82
Oracle10gDB 기본운영지침서.doc 83
Sun Dec 12 17:23:00 2004 Created Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vqzz3t1_.flb Sun Dec 12 17:34:24 2004 Created Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vr0nj98_.flb Sun Dec 12 17:34:25 2004 Private_strands 7 at log switch Thread 1 advanced to log sequence 6 Current log# 2 seq# 6 mem# 0: /home/oracle/oradata/o10g/redo02.log Sun Dec 12 17:34:25 2004 ARC1: Evaluating archive log 1 thread 1 sequence 5 Sun Dec 12 17:34:25 2004 O10G; ARC1: Beginning to archive log 1 thread 1 sequence 5 (0.441860:0.445648) ARCH: Connecting to console port... Sun Dec 12 17:34:25 2004 Oracle10gDB 기본운영지침서.doc 84
O10G; ARC1: Creating local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_5_%u_.arc' (thread 1 sequence 5) ARCH: Connecting to console port... Sun Dec 12 17:34:26 2004 O10G; ARC1: Closing local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_5_0vr0nkgz_.arc' ARCH: Connecting to console port... Committing creation of archivelog '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_5_0vr0nkgz_.arc' Created Oracle managed file /data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_5_0vr0nkgz_.arc Sun Dec 12 17:34:26 2004 O10G; ARC1: Completed archiving log 1 thread 1 sequence 5 ARCH: Connecting to console port... Sun Dec 12 17:34:28 2004 Created Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vr0nn0w_.flb Sun Dec 12 17:34:31 2004 Private_strands 7 at log switch Thread 1 advanced to log sequence 7 Current log# 3 seq# 7 mem# 0: /home/oracle/oradata/o10g/redo03.log Sun Dec 12 17:34:31 2004 ARC1: Evaluating archive log 2 thread 1 sequence 6 Sun Dec 12 17:34:31 2004 O10G; ARC1: Beginning to archive log 2 thread 1 sequence 6 (0.445648:0.445959) ARCH: Connecting to console port... Sun Dec 12 17:34:31 2004 O10G; ARC1: Creating local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_6_%u_.arc' (thread 1 sequence 6) ARCH: Connecting to console port... Sun Dec 12 17:34:32 2004 O10G; ARC1: Closing local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_6_0vr0nqqp_.arc' ARCH: Connecting to console port... Committing creation of archivelog '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_6_0vr0nqqp_.arc' Created Oracle managed file /data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_6_0vr0nqqp_.arc Sun Dec 12 17:34:33 2004 O10G; ARC1: Completed archiving log 2 thread 1 sequence 6 ARCH: Connecting to console port... Sun Dec 12 17:34:33 2004 O10G; ARC1: Completed archiving log 2 thread 1 sequence 6 ARCH: Connecting to console port... Sun Dec 12 17:34:33 2004 Created Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vr0nryy_.flb Sun Dec 12 17:34:38 2004 Private_strands 7 at log switch Thread 1 advanced to log sequence 8 Current log# 1 seq# 8 mem# 0: /home/oracle/oradata/o10g/redo01.log Sun Dec 12 17:34:38 2004 Created Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vr0nxj4_.flb Sun Dec 12 17:34:38 2004 ARC1: Evaluating archive log 3 thread 1 sequence 7 Sun Dec 12 17:34:53 2004 Private_strands 7 at log switch Thread 1 advanced to log sequence 10 Current log# 3 seq# 10 mem# 0: /home/oracle/oradata/o10g/redo03.log Sun Dec 12 17:34:53 2004 ARC1: Evaluating archive log 2 thread 1 sequence 9 Sun Dec 12 17:34:53 2004 O10G; ARC1: Beginning to archive log 2 thread 1 sequence 9 (0.447761:0.449658) ARCH: Connecting to console port... Sun Dec 12 17:34:53 2004 O10G; ARC1: Creating local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_r ecovery_area/o10g/archivelog/2004_12_12/o1_mf_1_9_%u_.arc' (thread 1 sequence 9) Oracle10gDB 기본운영지침서.doc 85
ARCH: Connecting to console port... Sun Dec 12 17:34:53 2004 O10G; ARC1: Closing local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_9_0vr0of73_.arc' ARCH: Connecting to console port... Committing creation of archivelog '/data/flash_recovery_area/o10g/archivelog/2004_ 12_12/o1_mf_1_9_0vr0of73_.arc' Created Oracle managed file /data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_9_0vr0of73_.arc Sun Dec 12 17:34:54 2004 O10G; ARC1: Completed archiving log 2 thread 1 sequence 9 ARCH: Connecting to console port... Sun Dec 12 17:35:02 2004 Created Oracle managed file /data/flash_recovery_area/o10g/flashback/o1_mf_0vr0oofo_.flb Sun Dec 12 17:35:21 2004 Private_strands 7 at log switch Thread 1 advanced to log sequence 11 Current log# 1 seq# 11 mem# 0: /home/oracle/oradata/o10g/redo01.log Sun Dec 12 17:35:21 2004 ARC1: Evaluating archive log 3 thread 1 sequence 10 Sun Dec 12 17:35:21 2004 O10G; ARC1: Beginning to archive log 3 thread 1 sequence 10 (0.449658:0.451559) ARCH: Connecting to console port... Sun Dec 12 17:35:21 2004 O10G; ARC1: Creating local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_10_%u_.arc' (thread 1 sequence 10) ARCH: Connecting to console port... Sun Dec 12 17:35:22 2004 O10G; ARC1: Closing local archive destination LOG_ARCHIVE_DEST_10: '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_10_0vr0p9oz_.arc' ARCH: Connecting to console port... Committing creation of archivelog '/data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_10_0vr0p9oz_.arc' Created Oracle managed file /data/flash_recovery_area/o10g/archivelog/2004_12_12/o1_mf_1_10_0vr0p9oz_.arc Sun Dec 12 17:35:22 2004 O10G; ARC1: Completed archiving log 3 thread 1 sequence 10 ARCH: Connecting to console port... Oracle10gDB 기본운영지침서.doc 86
SQL> select cust_id, cust_first_name, cust_last_name,cust_email from cust 2 where rownum < 10; CUST_ID CUST_FIRST_NAME CUST_LAST_NAME CUST_EMAIL ---------- ------------------ -------------------- -------------------------- 25204 Roderick Weatherford Weatherford@company.com 28759 Roderick Weatherford Weatherford@company.com 24288 Regina Everrett Everrett@company.com 27844 Regina Everrett Everrett@company.com 31399 Regina Everrett Everrett@company.com 34955 Regina Everrett Everrett@company.com 37621 Regina Landon Landon@company.com 41177 Regina Landon Landon@company.com 44732 Regina Landon Landon@company.com 9 rows selected. Backup 관리하기 현재백업본관리하기 Oracle10gDB 기본운영지침서.doc 87
Oracle10gDB 기본운영지침서.doc 88
백업본비교검토하기 Oracle10gDB 기본운영지침서.doc 89
Oracle10gDB 기본운영지침서.doc 90
Oracle10gDB 기본운영지침서.doc 91
만기된백업본지우기 만기된백업본삭제하기전에모두비교검토실행체크 Oracle10gDB 기본운영지침서.doc 92
Oracle10gDB 기본운영지침서.doc 93
사용되지않는모든레코드삭제 Oracle10gDB 기본운영지침서.doc 94
Oracle10gDB 기본운영지침서.doc 95
Offline Backup Oracle10gDB 기본운영지침서.doc 96
Oracle10gDB 기본운영지침서.doc 97
Oracle10gDB 기본운영지침서.doc 98
Oracle10gDB 기본운영지침서.doc 99