개발 중에 데이타를 수시로 백업을 해 둘 필요가 있다면 오라클에서 제공하는 exp 를 이용해서 데이타를 백업할 수 있다.
우선 다음과 같이 백업하는 shell 프로그램을 간단하게 작성하고 backupdb.sh 라고 저장을 한다. db 접속할 user와 password, 저장할 백업파일명, 그리고 테이블들의 list는 당연히 본인의 것으로 수정을 해야 할 것이다.
유닉스에서는 테이블수가 많을 경우 역슬래쉬문자(\) 로 라인을 끊어서 나열열할 수 있다. 테이블을 지정하지 않고 특정 유저의 모든 오브젝트를 내려받고자 한다면 USER=user_id 로 기술하면 되겠다.
#!/usr/bin/ksh today=`date '+20%Y%m%d-%H%M%S'` export back_file=~/backup/fee_data_${today}.dmp exp FEECON/passwd@DBDCBS1 FILE=$back_file GRANTS=Y INDEXES=Y ROWS=Y CONSTRAINTS=Y TRIGGERS=Y COMPRESS=Y DIRECT=N CONSISTENT=N STATISTICS=ESTIMATE TABLES=AFEE_AMT_INVL_BY_DTLS_DATA,AFEE_BWR_CRDT_GRD_BY_DTLS_DATA |
쉘을 작성했으면 실행을 시킨다. 그러면 다음과 같은 메시지를 보이면서 지정된 디렉토리에 백업 파일이 생성되면서 export 될 것이다.
[cbssvd01@e9812978:/users/e9812978/shl]backupdb.sh
Export: Release 10.2.0.3.0 - Production on Mon Jul 14 14:32:49 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production About to export specified tables via Conventional Path ... |
백업한 파일을 이용하여 필요한 경우에 이것을 import 시켜서 데이타를 원복시킬 수 있다.
윈도우의 커맨드모드에서 직접 export 를 실행시키고자 한다면 다음과 같이 사용할 수 있을 것이다.
EXP FEECON/passwd@DBDCBS1 FILE='C:\Documents and Settings\SHCHOI\My Documents\01.프로젝트\30.개발\수수료속성.DB백업\export.20080714.dmp' GRANTS=Y INDEXES=Y ROWS=Y CONSTRAINTS=Y TRIGGERS=Y COMPRESS=Y DIRECT=N CONSISTENT=N STATISTICS=ESTIMATE TABLES=(AFEE_AMT_INVL_BY_DTLS_DATA,AFEE_BWR_CRDT_GRD_BY_DTLS_DATA,AFEE_COMM_BASE_DATA,AFEE_ETC_CLAS_BY_DTLS_DATA,AFEE_PCSE_DTLS_DATA,AFEE_PRIM_RSN_LIST_BASE_DATA,AFEE_TRM_BY_DTLS_DATA,AFEE_WDAY_DRTM_BY_DTLS_DATA) |
윈도우에서는 unix에서와는 달리 테이블의 리스트를 괄호로 묶을 수 있다.
Export: Release 10.2.0.1.0 - Production on 월 7월 14 14:26:31 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved. 다음에 접속됨: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production 지정된 테이블을 엑스포트하려고 합니다 via 규정 경로... |
출력되는 결과의 내용은 UNIX 에서 export 했을 때와 별반 차이가 없다.
export 받은 것을 다시 다른 데이타베이스에서 import 한다면 다음과 같은 결과가 나온다.
[oracle] imp hre/hrepas@ORCL FILE='exp_dat_hre.dmp' GRANTS=Y INDEXES=Y
ROWS=Y CONSTRAINTS=Y IGNORE=N SHOW=N DESTROY=N ANALYZE=Y
SKIP_UNUSABLE_INDEXES=N RECALCULATE_STATISTICS=N FROMUSER=hre TOUSER=HRE Import: Release 11.2.0.3.0 - Production on Wed Mar 7 21:41:30 2012 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Release 11.2.0.3.0 - 64bit Production With the Real Application Clusters option Export file created by EXPORT:V11.02.00 via conventional path import done in UTF8 character set and AL16UTF16 NCHAR character set export client uses KO16KSC5601 character set (possible charset conversion) . . importing table "TB_CD" 101 rows imported . . importing table "TB_CDSET" 14 rows imported . . importing table "TB_LOG_HIST" 793 rows imported . . importing table "TB_MENU" 10 rows imported . . importing table "TB_ROLE" 7 rows imported . . importing table "TB_ROLE_MAPN" 10 rows imported . . importing table "TB_SCRN" 20 rows imported . . importing table "TB_SCRN_ATHR" 60 rows imported . . importing table "TB_FORM" 226 rows imported . . importing table "TB_MGT_ACHV" 352924 rows imported . . importing table "TB_MSG" 36 rows imported . . importing table "TB_SECT_DAY_ACCM" 40 rows imported . . importing table "TB_SECT_MM_ACCM" 710 rows imported . . importing table "TB_WAGE" 1043 rows imported . . importing table "TB_LOG_MSG" 1 rows imported Import terminated successfully without warnings. [oracle@ihrdb01:/oracle] |
'컴퓨터활용 > 오라클' 카테고리의 다른 글
오라클 리스너 떠 있는지 확인하는 방법 (0) | 2008.08.28 |
---|---|
오라클에 ' 문자(작은 따옴표) 를 데이타로 저장하고 싶을 때 (0) | 2008.07.14 |
PL SQL 문법 정리 (1) | 2008.06.24 |
쉘에서 ORACLE SQL 실행하여 결과 받아오기 (0) | 2008.05.15 |
오라클 기본 정보 select (0) | 2008.02.26 |