▣ 예제7. dbca 로 데이터 베이스 생성하기
어제 만들었던 리눅스 os 의 소프트웨어 설치후 이미지를 올리시면 됩니다.
오라클 소프트웨어 설치 ----------> db 생성
※ db 생성하기 전에 미리 챙겨야할 중요한 사항들
스토리지를 3가지중에 어떤것을 하는지 ?
raw device ---> create database 스크립트로 db를 생성
file system ---> dbca
asm ---> dbca
character set 은 기존에 설치된 database 와 동일하게 할것인지 ?
(데이터 이행시 굉장히 중요한 사항 )
설치와 문제해결 팀
데이터 이행 팀
기존 db 유지보수팀
si dba 팀
기존 database 의 character set 을 확인해야함.
select * from database_properties;
KO16MSWIN949 ------------------> KO16MSWIN949
AL32UTF8 ------------------------> AL32UTF8
데이터 이행시 가장 쉽게 할 수 있는 데이터 이행방법이
TTS ( Transportable TableSpace ) pump 사용해서 이행하는 방법
이때 주의할 사항 character set 이 서로 맞아야합니다.
서로 charater set 이 틀리면 OGG 를 써서 데이터 이행을 합니다.
AS-IS DB --------------------------------------> TO-BE DB
OGG(oracle golden gate)
ORACLE ORACLE

만약에 스토리지가 raw device 면 다음과 같이 스크립트로 수행하는데

create database PROD
user sys identified by oracle
user system identified by oracle
datafile '/raw/raw1/raw11'
size 100M autoextend on maxsize unlimited extent management local
sysaux
datafile '/raw/raw1/raw12'
size 50M autoextend on maxsize unlimited
default temporary tablespace temp
tempfile '/raw/raw1/raw13'
size 50M autoextend on maxsize unlimited
undo tablespace undotbs
datafile '/raw/raw1/raw14'
size 50M autoextend on maxsize unlimited
logfile
group 1 ('/raw/raw1/raw15',
'/raw/raw1/raw16') size 100M,
group 2 ('/raw/raw1/raw17',
'/raw/raw1/raw18') size 100M,
group 3 ('/raw/raw1/raw19',
'/raw/raw1/raw20') size 100M,
group 4 ('/raw/raw1/raw21',
'/raw/raw1/raw22') size 100M,
group 5 ('/raw/raw1/raw23',
'/raw/raw1/raw24') size 100M;
■ db 생성 실습
#1. 리눅스 켜고 모바텀에 oracle 유져로 접속합니다.
#2. DISPLAY 환경을 export 합니다. (내 윈도우의 아이피 주소로 export 합니다. )

$ export DISPLAY=192.168.19.7:0.0
$ dbca








완료 !
#3. 유져 생성하기
1) 12c 버전 이후부터 사용자 생성 작업을 할 때 아래의 명령어를 수행해야 합니다.
_oracle_script 로 하게 되면 생성되는 사용자가 공통 사용자임을 가정하고 여러 데이터 베이스 컨테이너에 걸쳐 존재할 수 있는 사용자이다 라고 설정하는 것입니다.
SQL> alter session set "_oracle_script"=true;
Session altered.
SQL> create user scott identified by tiger;
User created.

grant dba to scott;

문제1. 데이터 베이스 모드를 아카이브 모드로 변환하시오
SQL> shutdown immediate;
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.


문제 2. rman 으로 접속



문제 6. scott 의 emp 테이블을 export pump 받습니다
$ expdp scott/tiger directory=DATA_PUMP_DIR dumpfile=emp.dmp tables=emp

문제7. scott 유져로 접속해서 emp 테이블을 휴지통에 넣지 말고 drop 하시오
SQL> drop table emp purge;
Table dropped.

문제8. export 받은 펌프 파일로 복구 하시오
$ impdp scott/tiger directory=DATA_PUMP_DIR dumpfile=emp.dmp tables=emp

문제 9. 확인

■ 12c 이후부터 혁신적인 변경된 oracle database 기능
컨테이너 DB 라는 개념이 생겼습니다.
ORACLE multitenant 아키텍쳐에서 Pluggable database(PDB) 를 생성
DB 생성을 손쉽게 하고 PDB 간의 데이터 이행도 하는 기능이 생겼다.
※ ORACLE multitenant 아키텍쳐 장점
■ 실습
#1. PDB 가 뭐가 있는지 확인 합니다
SQL> select name from v$pdbs;

#2. file_name_convert 파라미터 를 조회 합니다.
pdb_file_name_convert <----pdb 생성 시 데이터 파일 경로 변환 규칙을 설정합니다.
#3. pluggable database 를 생성하시오
SQL> create pluggable database jhsdb admin user sys identified by oracle_4U;
ERROR at line 1:
ORA-65001: missing or invalid administrative user name
pdb 관리자를 만들어야 한다고 에러가 났다.
그럼 다음과 같이 수행한다.
SQL> create pluggable database jhsdb admin user hradmin identified by tiger roles=(dba);
SQL> select name, open_mode, open_time from v$pdbs;
#4. pdb jhsdb 를 open 시키시오
SQL> alter pluggable database jhsdb open read write;

#5. 이제 부터 jhsdb 를 사용하겠다 라고 지정하고 사용한다.
SQL> alter session set container=jhsdb;
SQL> show con_name

#6. 현재 가지고 있는 datafile 들을 확인하시오 !
SQL> select tablespace_name, file_name from dba_data_files;

#7. 리스너를 올리고 리스너의 상태를 확인합니다
[orcl:~]$ lsnrctl start

[orcl:~]$ lsnrctl status

#8. jhs2 라는 이름으로 pluggable db 를 생성하시오
SQL> create pluggable database jhsdb2
admin user hradmin2 identified by tiger roles=(dba);

21c database 생성한 이미지를 ova 파일로 내보내기를 하세요 !
