08강
18장 Moving Data
Data Pump: Overview
-
$expdp system/oracle full=y estimate_only=y
-
Benefits
- 버전어쩌구
- 병렬처리 가능
-
expdb, impdp
- Master table을 먼저 생성 한다.
- Dump file set을 만든다.
-
Dump file set에 Master table이 들어 간다.
impdp
- target db에 Master table이 먼저 생성된다.
- object를 옴기고 Master table은 삭제 된다.
-
Mode
- Full
- full=y
- Schema
- schemas=sh,hr --sh, hr user의 object를 옴긴다.
- Table
- tables=employees, demartments
- Tablespace
- tablespaces=users,examples --tablespace data를 옴긴다. --Meta Data와 Data를 다 옴긴다.
- Transportable tablespace
- transport_tablespaces=user --Mata Data만 옴긴다. 아따 빠르겠네... --사전에 꺼내기 싶은 tablespace는 readonly로 되어있어야 함
- [oracle@orad1 ~]$ expdp system/oracle transport_tablespaces=users;
- Export: Release 10.2.0.1.0 - Production on Sunday, 06 December, 2009 11:04:48
- Copyright (c) 2003, 2005, Oracle. All rights reserved.
- Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Starting "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01": system/******** transport_tablespaces=users
ORA-39123: Data Pump transportable tablespace job aborted
ORA-29335: tablespace 'USERS' is not read only - Job "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" stopped due to fatal error at 11:04:50
-
Data Pump File Locations
- Per-file directory
- DIRECTORY parameter
- DATA_PUMP_DIR environment vriable
- Default server-based directory object
-
Data Dump
- 예제
- 별도의 파일로 작성함
External Table
-
Read(Load) Access dirvers
-
ORACLE_LOADER : Datafile이 Text format인 경우. Data Load만 가능
- 뭐...외부의 .dat 등의 text파일을 읽어서 External table을 만들때 사용 한다.
- 외부의 exam1.dat 라는 파일이 있다면 ORACLE_LOADER 을 이용하여 DB내 TABLE에 데이타를 불어 넣는다.
- CREATE TABLE exp_load
- (emp_id number(5), emp_name VARCHAR2(5))
- ORGANIZATION EXTERNAL
- (TYPE ORACLE_LOADER --Access Driver
- DEFAULT DIRECTORY dpump_files --사전에 지정해야한다.
- ACCESS PARAMETERS
- ( RECORDS FIXED 10
- FIELDS TERMINATED BY ","
- (emp_id CHAR(5), emp_name(CHAR(5))
- )
- LOCATION('exam1.dat') --읽어 들일 파일 이름
- )
-
ORACLE_DATAPUMP : Datafile은 Binary format, Data Load및 Unload 둘다 가능
- 아래 문장은 ORACLE_DATAPUMP를 이용하여 Database외부에 employees_xt.dmp라는 파일을 떨군다는 내용이다.
- 파일은 바이너리 File이며 OS와 독립적이다. 또한 다른 Database에 impdp로 사용 가능하다.
- CREATE TABLE employees_xt
- ORGANIZATION EXTERNAL
- (TYPE ORACLE_DATAPUMP
- DEFAULT DIRECTORY dpump_files
- LOCATION('employees_xt.dmp;)
- )
- AS
- SELECT * FROM employees
-
11강 Configuring the Oracle Network Environment
Net트 워킹
-
Client가 Server 어떠게 붙을까요?..
- Client 가 알아야 할 정보
- ip or hostname
- protocal
- port no
- SID or Service Name
- Server 가 갖춰야 할 것들?
-
Listener
- 리스너는 그냥? 돌아가나? 아니다 software를 필요로 한다. 그것이 바로 Oracle Net 이라는 것이다.
- 이것은 Client & Server에 모두 필요한 Software이다.
- $sqlplus hr/xxx@orcl==> * Oracle Net Service Names
-
Client가 Server에 접속하기 위해 갖춰야할 네가지를 얻는 방법이 존재 한다. 그 방법을 *Names Resolution 이라고 한다.
-
Names Resolution에는 네가지 Naming Methods방법이 존재한다.
-
-
Easy Connect Nameing Method : EZCONNECT
- Easy Connect Test
- -Server(211.183.5.132) : hostname : edua2.us.oracle.com
- -Client : windows XP
- *TEST 1
- 1. Server 구성
- $hostname
- edua2
- $lsnrctl status
- ...
- Service "orcl.oracle.com' has 1 instance(s). -- db 생성시에 주었던 Global Database Name
-
Instance "orcl", status READY, has 1 handler(s) for this service....
2. Client 구성
>notepad C:\oracle\product\10.2.0\client_1\network\admin\sqlnet.ora
-
NAMES.DIRECTORY_PATH=(EZCONNECT) --로 변경
1. IP Address 사용..
sqlplus system/oracle@211.183.5.132:1521/orcl.oracle.com
-
또는 hosts 파일에 ip저장하여 사용도 가능하다.
- << 만약 Server의 hostname과 Database Service name이 같다면 >>
- *TEST 2
- --서버구성
- $hostname
- edua2.us.oracle.com
- $sqlplus / as sysdba
- SQL > show parameter service_names
- NAME TYPE VALUE
- ------------- -------- ----------------
- service_names string orcl.oracle.com
-
SQL > Alter system set service_names='orcl.oracle.com,edua2.us.oracle.com';
SQL > show parameter service_names
NAME TYPE VALUE
------------- -------- ----------------
service_names string orcl.oracle.com,edua2.us.oracle.com - SQL >!lsnrctl status
- ...
- Service "edua2.us.oracle.com" has 1 instance(s).
- ...
- Service "orcl.oracle.com" has 1 instance(s).
- --클라이언트 구성
- $sqlplus system/oracle@edua2.us.oracle.com:1521/edua2.us.oracle.com
- $sqlplus system/oracle@edua2.us.oracle.com:1521
- $sqlplus system/oracle@edua2.us.oracle.com
- SQL > select host_name from v$instance;
- HOST_NAME
- ------------------- -
- edua2.us.oracle.com
-
-
PS. 기본적으로 접근하는 방식이다. 단점으로는 TCP/IP에서만 사용 가능하다는 것이다.
-
Local Connect Nameing Method : TNSNAMES --tnsnames.ora이거 필요
- Local Naming Method Test
- --Server 구성
- $hostname
- edua2.us.oracle.com
- $lsnrctl stop
- $vi $ORACLE_HOME$/network/admin/listener.ora
- LISTENER = --리스너 자신에 대한 정보
- (DESCRIPTION_LIST =
- (DESCRIPTION =
- (ADDRESS = (PROTOCAL = TCP)(HOST = edua2.us.oracle.com)(PORT = 1521))
- )
- )
- SID_LIST_LISTENER= --타겟 DB 정보
- (SID_LIST=
- (SID_DESC=
- (GLOBAL_DBNAME=orcl.oracle.com)
- (SID_NAME=orcl) --이전 버전과의 호환을 위해
- (ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1) --이걸 알아야 그곳에 (s.p)를 띄우지
- )
- )
- $lsnrctl start
- ...
- Service "orcl.oracle.com" has 1 instance(s).
- Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
- The command completed successfully
- --Client구성
- >notepad C:\oracle\product\10.2.0\client_1\network\admin\sqlnet.ora
- NAMES.DIRECTORY_PATH=(TNSNAMES)
- >notepad C:\oracle\product\10.2.0\client_1\network\admin\tnsnames.ora
- edua2_ORCL =
- (DESCRIPTION =
- (ADDRESS = (PROTOCAL = TCP)(HOST = 211.183.5.143)(POST = 1521))
- (CONNECT_DATA =
- (SERVER = DEDICATED)
- (SERVICE_NAME = orcl.oracle.com)
- )
- )
- $sqlplus system/oracle@edua2_ORCL
-
PS. 기본적으로 접근하는 방식이다.
- Directory Connect Nameing Method : LDAP
- External Connect Nameing Method : CDS,NIS
-
- client에 있는 거예요^^;
- sqlnet.ora 파일에 아래와 같은 식으로 Method 방식을 설정한다. 한개 이상 설정 가능하며 왼쪽에서 오른쪽 순서로 우선순위를 갖는다.
- Names.directory_path=(TNSNAMES, EZCONNECT)
-
-
Listener에 DB정보를 알려줘야 Listener가 정상적으로 요청을 토스 할수 있다.
-
Listener에 대한 서비스 등록 방법 (listener.ora) <- 요따가해
-
static service등록 (수동)
- 리스너 자신에 대한 정보
- 이 리스너가 서브스할 Target정보
-
Dynamic Service 등록 (자동)
- 리스너 자신에 대한 정보만 기술
- Dynamic Service을 사용할 경우 DB인스턴트에 parameter를 하나 추가로 설정해 주어야 한다. 그것은 Service_Names parameter이다.
- 그라믄 나중에 DB startup될때 pmon이 읽어서 설정한다.
-
-
-
Client에서 Server로 접근하는 순서
- Client가 Server로 ip,SID를 갖고 요청을 시도한다.
- Listener가 요청 신호를 받고 target정보를 확인한다. 존재한다면
- s.p(Server Process)를 띄우고
- User 정보를 s.p에게 넘겨 준다.
- s.p 는 DB 인스턴스에 로긴할라칸다.
- 로그인이 성공적으로 되면 이제 Listener와 Client와으 연결은 끝이 나는 것이고 바로 Client와 DB 인스턴스와 통신하게 되는 것이다.
- 이제 리스너가 죽어도 DB연결은 종료 되지 않습니다^^; 다만 새로운 연결은 이뤄 질 수 없죵!ㅣ
유저 세션 : Dedicated server(1)
-
뭐냐믄 User process가 서버에 붙을때 서버에 Server Process가 생기게 되는데 그렇게 되면 Server process마다 PGA영역을 갖게 되지
그런데 말이지 접속만 하고 노는놈이 많다면 말이여! 엄청난 PGA로 인해 메모리 공간이 낭비된다는 거지 그래서 하나의 Server process가
여러 User process를 당담한다는 것이 Shared server Process 인거여! User process와 Server process 1:1 방식은 Dedicated Server Process방식이고^^;
-
Dedicated server의 단점으로 PAG영역이 Shared Pool영역에 들어가면서 UGA땜시 Shared Pool이 줄어들어서 성능에 심각한 속도저하를 일으킨다.
그래서 대규모 user가 있다면 별도의 Large Pool에 UGA를 담당하게 한다. 그래도 대량 쏘트는 하지마
- 서버를 Shared Server로 변경하는 방법
- ALTER SYSTEM SET DISPATCHERS=' (pro=tcp) (dis=1) '
14장 Backup and Recovery Concepts
Backup
-
Backup 주기
-
백업을 너무 긴 기간을 주고 작업하면 나중에 복구하기도 좀 오래 걸리고 그렇다...그러니까 적당한 기간이 지나면 백업해라
-
-
file type
- System, undo File이 깨지만 DB다운된다. 복구 하려해도 nomount 상태에서 해야한다.
CKPT
- 그니까 DBWR이랑 LGWR이 따로 따로 일어 나기 때문에 이 두 놈을 동기화 시켜주는 놈이야~
-
Why need a Checkpoint
-
DBWR Background Process는 언제 동작하는가?
- Dirty List가 임계길이에 도달.
- Server Process가 LRU List에서 Free Buffer가 없는 경우
- Timeout
- Checkpoint시
-
LGWR Background process는 언제 동작하는가?
- Commit
- Redo Log Buffer가 1/3이 fill되었을 때
- Redo entry >= 1MB
- Timeout
- Checkpoint시
- instance 오류 복구 시 어느 시점부터 Redo log를 적용할 것인가?
-
CKPT는 언제 발생하겡~
-
At every log switch
- 1번 redo file이 꽉차서 옆에 2번 redo file에 쓰게 변경되는 것을 log switch이다.
- ALTER SYSTEM SWITCH LOGFILE; --광제로 log switch 하라고 시키는 명령
- Full Checkpoint
- Incremental Checkpoint
- Partial checkpoint
-
-
Recovery from Media Failure
-
NOARCHIVELOG 인경우 DB백업은 FULL SET BACKUP을 해야 한다.
- 부분 BACKUP을 하면 안된다는 거야. 왜? 히스토리를 알수 없다네..그지?
-
복구할때는 FULL SET으로 덥어 버리면 된다....
-
그런데 이전 데이타로 되돌아 가 버린거지 ㅡㅡ; 백업이 아냐 이건 리스토어야~
Redo log 가 계속 덥어져서 히스토리를 알수 없기 때문이지
-
-
ARCHIVELOG
-
LOG SWITCH가 일어 날때마다 ARC0 process에 의해 백업이 일어 난다.
- online redo log file을 offline redo log file로 백업
-
-
CONTROL_FILES
-
미러링 해야함 : 왜? 오라클이 control_files을 읽을라 캣다가 control_files이 깨져서 한번이라도 못읽으면 바로 다운....
그래서 control_files을 미러링 해야 합니다.
- 미러링 방법은 CONTROL_FILES parameter를 수정한다.
- CONTROL_FILES=ctrl1DBA9l0.ctl --미러링 않하는 경우
- CONTROL_FILES=(ctrl1DB.ctl, ctrl2DB.ctl, ctrl3DB.ctl) --미러링하는 경우
- show parameter control_files; -- 으로 확인 가능
- select name from v$controlfile; -- 으로 확인 가능
-
- Database를 Archive log Mode로 변경방법
- shutdown immediate;
- startup Mount;
- Alter Database Archivelog;
- Archive log list; -- 모드 확인
- Alter Database open;
- Alter system switch logfile;
- /
- /
- 위 와같이 logfile을 switch를 하면 백업되는 것을 바로 확인 할 수 있다.
- whole Database backup!
15장 Performing Database Backups
Backup
-
Tool에 따라
-
-
User-Managed
- os Tool
- 단점 : OS에 익숙하지 않으면 백업 못하고, 관리를 사용자가 직접 해야 한다.
-
backup
- cold, closed, offline, Lonsistent = DB죽이고 백업하는거고
-
Hot, Open, Online, Inconsistent = DB를 켜놓은 상태에서 백업을 진행하는 것
- SQL> ALTER tablespace system begin backup;
- Tablespace altered.
SQL> select name from v$datafile; - NAME
----------------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_5k1rv1mh_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_5k1rv1op_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_5k1rv1mn_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_5k1rv1pc_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_example_5k1rwntq_.dbf - SQL> !cp /u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_5k1rv1mh_.dbf /home/oracle/OSBACKUP
- SQL> Alter Tablespace system end backup;
- Tablespace altered.
-
Server-Managed
-
-
rman
-
- control file, datafile, spfile, archived log file 이 네가지만 Rman으로 백업 가능하다.
- pfile, password file 백업 불가능 하다.
- 백업 관리를 서버가 담당해 준다.
-
backup
- cold, closed : Mount
- Hot, open : Open
-
Backup 범위에 따라
- Whole Backup : All Datafile + controlfile
- Partial Backup : singel datafile, single Tablespace
-
Backup Type에 따라
- Image copy
- backup set
-
-
Backup NOARCHIVELOG ARCHIVELOG User-Managed : cold, closed, offline, Lonsistent O O User-Managed : Hot, Open, Online, Inconsistent X O Server-Managed : cold, closed : Mount O O Server-Managed : Hot, Open : Open X O Whole Backup O O Partial Backup X O
-
-
Rman Repository
- backup 및 복구관련 정보가 담긴 Rman의 관리 파일이 존재 하는곳
- Target DB의 control file을 사용할 수도 있고 근데 지양(깨질수있다)
- Recovery Catelog Database를 Rman Repository로 쓰길 권유한다.
- Rman 테스트
- [oracle@orad1 ~]$ rman target/
- Recovery Manager: Release 10.2.0.1.0 - Production on Sun Dec 6 18:23:27 2009
- Copyright (c) 1982, 2005, Oracle. All rights reserved.
- connected to target database: ORCL (DBID=1231918356)
- RMAN> show all; --자주 사용하는 명령?을 어쩌구 저쩌구 미리 작성해 놓은 리스트
- using target database control file instead of recovery catalog
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/10.2.0/db_1/dbs/snapcf_orcl.f'; # default - RMAN> report schema; --내가 백업 받아야 하는게 뭔지 리스트를 보여준다.
- Report of database schema
- List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 480 SYSTEM *** /u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_5k1rv1mh_.dbf
2 35 UNDOTBS1 *** /u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_5k1rv1op_.dbf
3 250 SYSAUX *** /u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_5k1rv1mn_.dbf
4 5 USERS *** /u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_5k1rv1pc_.dbf
5 100 EXAMPLE *** /u01/app/oracle/oradata/ORCL/datafile/o1_mf_example_5k1rwntq_.dbf - List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 25 TEMP 32767 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_temp_5k1rwjtm_.tmp - RMAN> BACKUP AS COPY DATABASE; --Image Copy 아래 이미지 백업은 파일을 건건이 백업한다.
- Starting backup at 06-DEC-09
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=154 devtype=DISK
channel ORA_DISK_1: starting datafile copy
input datafile fno=00001 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_5k1rv1mh_.dbf
output filename=/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_system_5kpy8219_.dbf tag=TAG20091206T182729 recid=2 stamp=704917660
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:16
channel ORA_DISK_1: starting datafile copy
input datafile fno=00003 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_5k1rv1mn_.dbf
output filename=/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_sysaux_5kpy8k43_.dbf tag=TAG20091206T182729 recid=3 stamp=704917673
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile fno=00005 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_example_5k1rwntq_.dbf
output filename=/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_example_5kpy906r_.dbf tag=TAG20091206T182729 recid=4 stamp=704917684
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile fno=00002 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_5k1rv1op_.dbf
output filename=/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_undotbs1_5kpy9795_.dbf tag=TAG20091206T182729 recid=5 stamp=704917688
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting datafile copy
input datafile fno=00004 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_5k1rv1pc_.dbf
output filename=/u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_users_5kpy9bbr_.dbf tag=TAG20091206T182729 recid=6 stamp=704917690
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting datafile copy
copying current control file
output filename=/u01/app/oracle/flash_recovery_area/ORCL/controlfile/o1_mf_TAG20091206T182729_5kpy9cds_.ctl tag=TAG20091206T182729 recid=7 stamp=704917691
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 06-DEC-09
channel ORA_DISK_1: finished piece 1 at 06-DEC-09
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2009_12_06/o1_mf_nnsnf_TAG20091206T182729_5kpy9flo_.bkp tag=TAG20091206T182729 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 06-DEC-09 - RMAN> BACKUP AS Backupset Database; --이건 Backupset 백업이다. 아래 Backupset는 파일을 모조리 읽어 한번에 쓴다.^^;
- Starting backup at 06-DEC-09
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_5k1rv1mh_.dbf
input datafile fno=00003 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_5k1rv1mn_.dbf
input datafile fno=00005 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_example_5k1rwntq_.dbf
input datafile fno=00002 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_5k1rv1op_.dbf
input datafile fno=00004 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_5k1rv1pc_.dbf
channel ORA_DISK_1: starting piece 1 at 06-DEC-09
channel ORA_DISK_1: finished piece 1 at 06-DEC-09
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2009_12_06/o1_mf_nnndf_TAG20091206T183007_5kpydzwo_.bkp tag=TAG20091206T183007 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 06-DEC-09
channel ORA_DISK_1: finished piece 1 at 06-DEC-09
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2009_12_06/o1_mf_ncsnf_TAG20091206T183007_5kpyft2x_.bkp tag=TAG20091206T183007 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 06-DEC-09 - RMAN> exit;
- Control file을 recreate하는 syntax를 담고 있는 file을 생성
- $sqlplus / as sysdba
- SQL> show parameter user_dump_dest;
- SQL> Alter Database backup controlfile To trace;
- SQL> !ps
PID TTY TIME CMD
5346 pts/1 00:00:00 bash
5915 pts/1 00:00:00 perl
8278 pts/1 00:00:05 emagent
8654 pts/1 00:00:05 java
24966 pts/1 00:00:15 java
27866 pts/1 00:00:00 sqlplus
27902 pts/1 00:00:00 ps - SQL> !ps -ef|grep 27866
oracle 27866 5346 0 18:36 pts/1 00:00:00 sqlplus as sysdba
oracle 27867 27866 0 18:36 ? 00:00:00 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 27915 27866 0 18:38 pts/1 00:00:00 /bin/bash -c ps -ef|grep 27866
oracle 27917 27915 0 18:38 pts/1 00:00:00 grep 27866 - SQL> show parameter user_dump_dest
- NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string /u01/app/oracle/admin/orcl/udump
SQL> exit; - $ cd /u01/app/oracle/admin/orcl/udump
- 가면 서버 프로세스와 같은 파일이 존재 한다.
-
위작업의 필요성
- Control file외 설정값 변경?
- 복구
Flashback
-
Flashback이후 바로 resetlogs 하지 말라
-
Mount
-
Flashback
-
Database => Alter Database open read only
-
Y : Shutdown -> Mount -> Open resetlogs;
-
N : Shutdown -> Mount -> Retry Flashback database;
-
이 글은 스프링노트에서 작성되었습니다.