금요일, 7월 31, 2009

archive log 모드로 변경하기

아래꺼 그냥 따라하세요!
하지만
SQL> alter system archive log start; 와
SQL> alter database archivelog; 두개의 차이


SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 289406976 bytes
Fixed Size 2020224 bytes
Variable Size 92277888 bytes
Database Buffers 188743680 bytes
Redo Buffers 6365184 bytes
Database mounted.

SQL> alter system archive log start;

System altered.


SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 58
Current log sequence 59
SQL> alter database archivelog;

Database altered.

SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 58
Next log sequence to archive 59
Current log sequence 59
SQL> alter database open;

Database altered.

SQL> alter system switch logfile;

라벨:

export 옵션

export 유틸리티는 4개의 기능 레빌을 가지고 있다
1. 전체모드(Full mode)
2. 테이블스페이스 모드(Tablespace mode)
3. 사용자 모드(User mode)
4. 테이블 모드(Table mode)

<>

userid export를 실행하는 계정의 사용자 이름과 패스워드로써 userid는 명령 라인에서 첫번째
파라미터 이어야 한다

buffer 데이터 행을 fetch하는데 사용되는 버퍼의 크기. default 값은 시스템에 따라 달라지며
일반적으로 64000보다 큰값으로 설정 한다

file export dump 파일릐 이름으로 default 값은 expdat.dmp 이다

compress 분열된 세그먼트를 export가 단일 extent로 압축해야 하는지 알려주는 Y/N 플래그로
오브젝트에 대해 export 파일에서 저장되는 storage 구문에 영향을 준다
default 값은 "Y" 이다. 하나의 커다란 extent안에 오브젝트를 가지는것이 언제나 최상의
선택이라고 할수 없다. 대용량의 테이블에 대해서는 compress=N 를 사용해야 한다

grants 데이터베이스의 오브젝트에 대한 grants가 export되는지 알려주는 Y/N 플래그로
default 값은 "Y" 이다

indexes 테이블의 인덱스가 export 되는지 알려주는 Y/N 플래그로 default 값은 "Y" 이다

direct direct export가 실행되어야 하는지를 알려주는 Y/N 플래그 이다. direct export는 export
동안 buffer cache를 무효로 하며, export process에 대하여 실행 능력의 향상을
생성 한다. default 값은 "N" 이다

log export에 대한 로그가 기록될 파일의 이름이다

rows 행이 export되어야 하는지를 알려주는 Y/N 플래그로 만약 "N"으로 설정 되었다면,
데이터베이스의 오브젝트에 대해 오직 DDL만 export file에 생성된다
default 값은 "Y" 이다

consistent export된 모든 오브젝트의 읽기 일관성 버전이 유지되어야 하는지를 알려주는 Y/N
플래그로 서로 연결된 테이블들이 export process동안 사용자에 의해서 수정될때 필요
하다

full default 값은 "N"으로 만약 "Y"로 설정 되었다면 전체 데이터베이스가 export된다

owner export될 데이터베이스 계정의 목록으로 이러한 계정의 사용자 export가 실행될수 있다

tables export될 테이블의 목록으로 이러한 테이블의 테이블 export가 실행될수 있으며
Oracle 9i에서는 "%" 와 ""_" 의 사용을 지원 한다

recordlength export dump파일 레커등이 길이로 바이트 형식이다. 일반적으로 다른 운영 시스템들
사이에 export 파일을 전송하지 않는다면 설정할 필요가 없다

triggers Trigger가 실행 되어야 하는지를 알려주는 Y/N 플래그로 default 값은 "Y" 이다

statistics export된 오브젝트에 대해서 analyze 명령이 export dump 파일에 기록되어야 하는지
알려주는 파라미터 이다. 유효한 값은 defaulr 값인 estimate compute, N 이다
오라클의 초기 버전에서 이 파라미터는 analyze 로 불려졌었다

parfile export에 전달될 파라미터 파일의 이름으로 이 파일은 여기서 보여지는 모든
파라미터에 대한 엔트리를 포함 한다

constraints 테이블의 제약 조건이 export 되는지를 알려주는 Y/N 플래그로
default 값은 "Y" 이다

feedback 테이블 export 동안의 진행을 보여주기 위한 행의 번호로 default 값은 0 이다
따라서 테이블이 완전하게 export될동안 feedback을 볼수 없다

filesize export dump 파일에 대한 최대 크기로 만약 여러 파일들이 파일 엔트리에서 목록화
되었다면 export는 filesize 설정에 근거해서 이러한 파일들에 지시 된다

flashback_scn SCN export가 flashback을 사용할수 있도록 설정 해야 한다.
export는 SCN과 일치하는 데이터를 가지고 실행 된다.

flashback_time SCN closest 이 설정한 시간에 도달 하도록 사용되는 시간으로 export는 SCN 과
일치하는 데이터를 가지고 실행 된다

query export동안 각 테이블에 대해 적용될 where 구문이다

resumable 세션이 에러 이후에 다시 시작할수 있는지를 알려주는 Y/N 플래그로 default 값은
"N" 이다

resumable_name 다시 시작할수 있는지를 알기위해서 DBA_RESUMABLE 뷰에
입력된 설정값이다

resumable_timeout 다시 시작할수 있는 명령에 대한 대기 시간 이다

tts_full_check 전송 가능한 테이블스페이스에 대해 전체 혹은 부분적인 의존도 확인을 실행한다

volsize 각각의 테이블 볼륨에 대해 기록하기 위한 바이트의 수이다

tablespaces Oracle 9i에서 테이블을 export해야 하는 테이블스페이스로 특정한 테이블스페이스에
위치한 파티션을 가지고 있는 모든 테이블들을 포함 한다

transport_tablespace 만약 Oracle 8i 처럼 사용 가능한 pluggable tablespace 옵션을 사용 하고
있다면 "Y" 로 설정 하라. tablespace 키워드와 함께 사용 하라.
default 값은 "N" 이다

template iAS 모드 export를 실행하도록 하기 의해 사용되는 템플릿의 이름이다

라벨:

신규 DB 생성 후 SCOTT 스키마 옮기기

기본 DB에서 일단 SCOTT스키마에 대해 EXPORT를 수행해 놓는다.


CREATE TABLESPACE USERS
DATAFILE '/oradata/ORATEST/users01.dbf' SIZE 100M
AUTOEXTEND OFF
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

-- USER SQL
CREATE USER SCOTT
identified by tiger
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

-- ROLES
ALTER USER SCOTT QUOTA UNLIMITED ON USERS;
grant resource to SCOTT;
grant connect to SCOTT;

위에꺼 다 하고 나면 imp할 것.

라벨:

목요일, 7월 30, 2009

DB생성하기

1. init파일을 준비한다. 리스너 및 TNS도 함께 준비한다.

2. 환경변수 파일을 준비한다. 환경변수에서 $ORACLE_SID가 정의되어 있어야 한다.

3. init파일에 들어가는 모든 디렉토리를 생성한다.

4. sqlplus로 접속해서 idle 상태에서 nomount로 올린다.

SQL> startup nomount pfile=pfile위치
pfile을 지정하지 않는다면 initSID(소문자).ora파일을 $ORACLE_HOME밑의 dbs디렉토리에서
자동으로 읽어들인다.

5. nomount가 끝나면 동적딕셔너리는 조회된다.
SQL> select instance_name,status from v$instance; 할 경우는 상태는 STARTED로 표시된다.

6. 그 상태에서 바로 DB를 생성한다.
SCRIPT는 아래처럼 미리 만들어 놓는것이 좋다.
CREATE DATABASE oratest
CHARACTER SET UTF8
MAXLOGFILES 255
MAXINSTANCES 8
MAXDATAFILES 600
MAXLOGHISTORY 2560
DATAFILE '/oradata/ORATEST/system01.dbf' SIZE 500M
SYSAUX datafile '/oradata/ORATEST/sysaux01.dbf' size 100M
default temporary tablespace temp tempfile '/oradata/ORATEST/temp01.dbf' size 100M
UNDO TABLESPACE "UNDOTBS1" DATAFILE '/oradata/ORATEST/undotbs1.dbf'
SIZE 200M
LOGFILE
GROUP 1 ('/oradata/ORATEST/redo01_1.dbf','/logs/ORATEST/redo01_2.dbf') SIZE 10M,
GROUP 2 ('/oradata/ORATEST/redo02_1.dbf','/logs/ORATEST/redo02_2.dbf') SIZE 10M;

7. DB가 생성되고 나면 필수 스크립트를 실행한다.


SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql
SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql



SQL> conn system/manager
Connected.

SQL> @$ORACLE_HOME/sqlplus/admin/pupbld.sql

순서를 거꾸로 설치하면 에러가 난다.
반드시 catalog 설치 후 catproc 설치.

8. 리스너를 기동한다. 문제가 생길 경우 블로그의 다른 게시물을 참조한다.

9. 필요한 테이블스페이스나 유저를 생성한다.

라벨:

ora-01034 , ORA-27101

ora-01034 : ORACLE not available
ora-27101 : shared memory realm does not exist

자신은 분명히 리스너를 정상적으로 기동시켰다고 생각했는데

외부 툴로 접속되지 않는다.

오라클 엔진을 설치할때 같이 생성했던 DB는 1521 기본 포트를 물고 있다.

init파일은 기본DB의 것을 복사해서 사용했고 리스너 부분에 관한 특별한 parameter는 없었다.

권한변경등을 해보았으나 해결되지는 않았고

기본리스너의 포트를 물고 있는것이 아닌가해서 찾아보던 중

10g 레퍼런스의 아래와 같은 부분을 찾아냈다.

그래서 init 파일에서 아래 항목을 추가한 후 1522포트를 지정하고

리스너를 다시 기동시켰더니 외부에서 접속이 가능했다.

LOCAL_LISTENER

Property Description
Parameter type String
Syntax LOCAL_LISTENER = network_name
Default value (ADDRESS = (PROTOCOL=TCP)(HOST=hostname)(PORT=1521)) where hostname is the network name of the local host.
Modifiable ALTER SYSTEM
Basic No

라벨: