sp_helpfile; <- log name명 알아오기 (필드 name)
backup log aaa with no_log;
dbcc shrinkfile ('aaa_Log' ,7); <- aaa_Log를 7MB로 축소
셋업 실행.
1. PRO C 설치
사용가능한 제품에서 클라이언트 선택하고 다음.
설치유형에서는 관리자를 선택하고 다음.
커맨드 창을 열고..
C:\Documents and Settings\Administrator>proc
Pro*C/C++: Release 9.2.0.1.0 - Production on 화 Jan 22 19:08:20 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
시스템 기본 옵션 값이 가지고 온 곳: C:\oracle\ora92\precomp\admin\pcscfg.cfg
옵션 이름 현재 값 기술
-------------------------------------------------------------------------------
auto_connect 아니오 ops$ 계정으로 자동 연결할 수 있도록 합니다
char_map charz 문자 배열과 문자열을 대응합니다
close_on_commit아니오 COMMIT에 모든 커서를 닫습니다
cmax 100 접속 풀에 대한 CMAX 값
cmin 2 접속 풀에 대한 CMIN 값
cincr 1 접속 풀에 대한 CINCR 값
ctimeout 0 접속 풀에 대한 CTIMEOUT 값
cnowait 0 접속 풀에 대한 CNOWAIT 값
code ansi_c 생성될 코드 유형
comp_charset multi_byte C 컴파일러가 지원하는 문자 집합 유형
config default 다른 파일로 시스템 구성 파일 무효화
cpool 아니오 접속 풀링 지원
cpp_suffix *none* 기본 C++ 파일 이름 접미어 무효화
dbms native v6/v7/v8 호환성 모드
def_sqlcode 아니오 '#define SQLCODE sqlca.sqlcode' 매크로 생성
define WIN32_LEAN_AND_선행 프로세서 기호 정의
duration transaction 캐시에 있는 객체에 대한 핀 기간 설정
dynamic oracle Oracle 또는 ANSI 동적 SQL 의미 지정
errors 예 오류 메시지가 터미널에 전송될지 여부
errtype *none* intype 파일 오류에 대한 목록 파일 이름
fips none ANSI 비호환 사용의 FIPS 플래그 처리
header *none* 이전에 컴파일된 헤더에 대한 파일 확장자 지정
hold_cursor 아니오 커서 캐시에서 커서 유지 제어
iname *none* 입력 파일 이름
include *none* 포함된 파일에 대한 디렉토리 경로
intype *none* 유형 정보에 대한 입력 파일 이름
lines 아니오 생성된 코드에 #line 지시어 추가
lname *none* 기본 목록 파일 이름 무효화
ltype none 목록 파일에 생성된 데이터 양
maxliteral 1024 생성된 문자열 리터럴의 최대 길이
maxopencursors 10 캐시에 저장된 열린 커서의 최대 수
mode oracle Oracle 또는 ANSI 규칙에 대한 코드 일치
nls_char *none* 국가별 언어 문자 변수 지정
nls_local 아니오 NLS 문자 의미가 수행되는 방법 제어
objects 예 객체 유형 지원
oname *none* 출력 파일 이름
oraca 아니오 ORACA 사용 제어
pagelen 80 목록 파일의 페이지 길이
parse none 비SQL 코드의 구문 분석 제어
prefetch 1 커서 OPEN 시 미리 인출된 행 수
release_cursor 아니오 커서 캐시에서 커서 해제 제어
select_error 예 선택 오류의 플래그 제어
sqlcheck syntax SQL 확인 시 컴파일 시간의 양
sys_include *none* 시스템 헤더 파일이 있는 디렉토리
threads 아니오 다중 스레드 응용 프로그램을 나타냄
type_code oracle 동적 SQL에 대한 Oracle 또는 ANSI 유형 사용
unsafe_null 아니오 지시자 변수 없이 널 인출 허용
userid *none* 사용자 이름/암호 [@dbname] 접속 문자열
utf16_charset nchar_charset UTF16 변수에 의해 사용된 문자 집합 형식
varchar 아니오 암시적 varchar 구조 사용 허용
version recent 반환될 객체의 버전
win32_threads 아니오 Windows 기본 로컬 스레드 지원
PCC-F-02135, CMD-LINE: 사용자가 도움을 요청했습니다
2. C 컴파일러 설치 -> 비쥬얼 스튜디오 C++ 설치.
3. 비쥬얼 c++ 실행 경로를 시스템 환경 변수의 PATH에 등록.
경로 --> C:\Program Files\Microsoft Visual Studio\VC98\Bin
4. 커맨드 창을 새로 열고 다음과 같이 확인한다.
C:\Documents and Settings\Administrator>vcvars32
Setting environment for using Microsoft Visual C++ tools.
위와 같은 메세지가 뜨면 성공적으로 된것이다.
5. D:\ProC 폴더를 생성
6. pcmake.bat 파일을 d:\ProC 폴더로 이동 ( pcmake.bat 프리컴파일, 링킹을 한번에 처리해 주는 파일)
7. d:\ProC폴더를 시스템 환경변수의 path에 등록.
8. 새로운 명령창을 띄우고 다음의 명령들을 실행
>proc
>vcvars32
>pcmake
C:\Documents and Settings\Administrator>vcvars32
Setting environment for using Microsoft Visual C++ tools.
C:\Documents and Settings\Administrator>pcmake
.
usage pcmake filename.pc [ i.e. pcmake sample1 ]
.
C:\Documents and Settings\Administrator>
이상의 명령이 오류없이 모두 실행되면 환경 설정 완료!
Logical Database Structure - database - tablespace - segment - extent - block SYSTEM and NON-SYSTEM TABLESPACE - SYSTEM Tablespace : data dictionary 정보와 SYSTEM rollback segment을 가진다. - NON-SYSTEM Tablespace : Rollback segments, Temporary segments, data, index등을 가진다. CREATE TABLESPACE CREATE TABLESPACE tablespace DATAFILE filespec [autoextend_clause],filespec [autoextend_clause]]... [MINIMUM EXTENT integer [K|M]] [DEFAULT storage_clause] [PERMANENT|TEMPOARY] --> default PERMANENT [ONLINE|OFFLINE] --> default ONLINE 예) CREATE TABLESPACE data DATAFILE '/DISK4/app01.dbf' SIZE 100M, '/DISK5/app02.dbf' SIZE 100M MINIMUM EXTENT 500K DEFAULT STORAGE (INITIAL 500K NEXT 500K MAXEXTENTS 500 PCTINCREASE 0) ; - STORAGE PARAMETERS * INITIAL : 첫째 extent의 크기를 정한다. 최소 크기는 2 blocks ( 2 * DB_BLOCK_SIZE ) default는 5 bolcks ( 5 * DB_BLOCK_SIZE ) * NEXT : 다음 extent의 크기를 정한다. 최소 크기는 1 block default는 5 bolcks ( 5 * DB_BLOCK_SIZE ) * MINEXTENTS : segment가 생성되었을 때 할당되는 extent의 갯수. default는 1개 * PCTINCREASE n : 다음에 extent가 생성될 때 이전 extent보다 n% 증가된 크기 ( PCT: percent ) default는 50 * MAXEXTENTS : segment가 갖을 수 있는 extent의 최대 수 Temporary Tablespace CREATE TABLESPACE DATA DATAFILE '/DISK2/DATA01.dbf' SIZE 50M MINIMUM EXTENT 1M DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS 500 PCTINCREASE 0) TEMPORARY ; TABLESPACE의 크기 설정 (data file을 추가) ALTER TABLESPACE DATA ADD DATAFILE '/DISK5/DATA02.dbf' SIZE 200M ; DATA FILE이 FULL되면 자동으로 DATAFILE을 증가한다. ALTER TABLESPACE DATA ADD DATAFILE '/DISK6/app04.dbf' SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M ; * 3가지 방법이 있다. 1. CREATE DATABASE을 한다. 2. CREATE TABLESPACE DATAFILE을 한다. 3. ALTER TABLESPACE ADD DATAFILE을 한다. 현재 DATAFILE의 크기를 다시바꾸는(resize) 방법 ALTER DATABASE DATAFILE '/DISK5/app02.dbf' RESIZE 200M ; Changing the Storage Settings ALTER TABLESPACE DATA MINIMUM EXTENT 2M ; ALTER TABLESPACE DATA DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS 999) ; Tablespace OFFLINE/ONLINE - tablespace가 만들어지면 초기값(default)이 ONLINE이다. - OFFLINE이 되면 다른 사용자의 access가 불가능하다. - SYSTEM tablespace는 OFFLINE이 불가능하다. - transaction이 끝나지 않은 tablespace는 OFFLINE 불가능하다. ALTER TABLESPACE tablespace { ONLINE | OFFLINE [NORMAL|TEMPORARY|IMMEDIATE] } - Normal : checkpoint를 적용시키고 offline한다. - Temporary : datafile 중에서 online datafile에만 checkpoint를 적용시키고 offline한다. - Immediate : checkpoint 없이 offline한다. 예) ALTER TABLESPACE DATA OFFLINE NORMAL; 특별한 경우가 아닌이상 이렇게 써라.NORMAL은 default이므로 생략가능 Moving Data File : ALTER TABLESPACE - 반드시 offline 한 상태에서 한다. - target data file이 반드시 존재해야 한다. ALTER TABLESPACE DATA RENAME DATAFILE '/DISK4/DATA01.dbf' TO '/DISK5/DATA01.dbf' ; Moving Data File : ALTER DATABASE - 반드시 database가 mount 상태이어야 한다. - target data file이 반드시 존재해야 한다. - shutdown하고 host상태에서 datafile을 제거해야 한다. ALTER DATABASE RENAME FILE '/DISK1/system01.dbf' TO '/DISK2/system01.dbf' ; READ-ONLY Tablespace 상태 - 오직 select만 할 수 있다. - CREATE는 안되고... DROP은 할 수 있다. - 사용자들이 data변경을 못함, backup과 recovery가 쉽다. ALTER TABLESPACE DATA READ ONLY; ALTER TABLESPACE DATA READ WRITE; -- read only 상태를 다시 read write상태로 바꿔준다. * 주의해야 하는점 - tablespace가 반드시 online상태여야 한다. - active transaction이 허용되지 않아야 한다. - tablespace가 active rollback segment를 갖고 있으면 안된다. - online backup중엔 못한다. DROP TABLESPACE - file 삭제는 host에 나가서 삭제를 해야 한다. DROP TABLESPACE DATA INCLUDING CONTENTS ; * including contents를 안썼을 때, tablespace가 비워져 있어야만 drop이 된다. including contents는 데이터가 들어 있어도 tablespace를 삭제하겠다는 뜻이다. DBA_TABLESPACES : tablespace 정보를 갖고 있음 - TABLESPACE_NAME, NEXT_EXTENT, MAX_EXTENTS, PCT_INCREASE, MIN_EXTLEN, STATUS, CONTENTS SVRMGR> SELECT tablespace_name, initial_extent, next_extent, 2 max_extents, pct_increase, min_extlen 3 FROM dba_tablespaces ; DBA_DATA_FILES : FILE에 관한 정보를 갖고 있다. - FILE_NAME, TABLESPACE_NAME, BYTES, AUTOEXTENSIBLE, MAXBYTES, INCREMENT_BY SVRMGR> SELECT file_name, tablespace_name, bytes, autextensible, maxbytes, increment_by 2 FROM dba_data_files ; Contol File 정보 - V$DATAFILE : ts#, name, file#, rfile#, status, enabled, bytes, create_bytes - V$TABLESPACE : ts#, name SVRMGR> SELECT d.file#, d.name, d.status, d.enabled, d.bytes, d.create_bytes, t.name 2 FROM v$datafile d, v$tablespace t 3 WHERE t.ts# = d.ts# ; 연습 1. 현재의 Tablespace와 Data file들을 확인 $ sqlplus system/manager SQL> select * from dba_tablespaces ; SQL> select file_name, tablespace_name, bytes 2 from dba_data_files ; 2. DATA01 tablespace의 size를 늘이기 위해, datafile을 하나 추가 SQL> alter tablespace data01 2 add datafile '$ORACLE_HOME/DATA/DISK6/data01b.dbf' size 500k ; SQL> select file_name, tablespace_nmae, bytes 2 from dba_data_files ; 3. 문제2 에서 추가한 datafil의 size를 1M 로 resize SQL> alter database datafile 2 '$ORACLE_HOME/DATA/DISK6/data01b.dbf' 3 resize 1M ; SQL> select file_name, tablespace_name, bytes 2 from dba_data_files ; 4. 문제2 에서 추가한 datafile의 size가 자동적으로 extend 될 수 있도록 하자 SQL> alter database datafile 2 '$ORACLE_HOME/DATA/DISK6/data01b.dbf' 3 autoextend on next 100k maxsize 2m ; SQL> select file_name, tablespace_name, bytes, autoextensible 2 from dba_data_files ; 5. INDX01 tablespace의 datafile을 DISK6으로 옮기기 SQL> alter tablespace indx01 offline ; SQL> select name, status from v$datafile ; SQL> host $ mv $ORACLE_HOME/DATA/DISK3/indx01.dbf $ORACLE_HOME/DATA/DISK6/indx01.dbf $ exit SQL> alter tablespace indx01 rename datafile 2 '$ORACLE_HOME/DATA/DISK3/indc01.dbf' 3 to '$ORACLE_HOME/DATA/DISK6/indx01.dbf' ; SQL> alter tablespace indx01 online ; SQL> select name, status from v$datafile ; 6. RONLY Tablespace를 read only로 바꾸고, 추가적인 테이블을 생성하고 무슨 일이 발생하며 이유는 무엇인가? SQL> create table t1(t1 number) tablespace ronly ; SQL> alter tablespace ronly read only ; SQL> select name, enabled, status from v$datafile ; SQL> create table t2(t2 number) tablespace ronly ; ==> error 발생 확인! 7. RONLY Tablespace를 삭제 SQL> drop tablespace ronly including contents ; SQL> select * from v$tablespace ; SQL> host $ rm $ORACLE_HOME/DATA/DISK1/ronly.dbf |