[DB] DB관리 초급 3일차
<오늘 회사 회식으로 1교시를 듣지 못했습니다.>
======================================== 1 ========================================
[ 19 : 00~ 19 : 55 ]
======================================== 2 ========================================
[ 20 : 05~ 20 : 55 ]
이전 시간에 어제 설치하던 OS설치를 이어 하면서 설정을 계속 이어서 했습니다.
DB를 접속해서 확인을 해 보면 설치가 끝났고, DB가 모두 만들어졌다고 하셨습니다.
DB접속 후 로그인 합니다.
DBCA라는 명령어를 입력하여 DBCA를 띄웁니다.
DBCA창에서 다음을 누릅니다.
step2/12 에서 정보는 DB가 이미 만들어져 있다는 것입니다.
가운데 선택항목인 Custom DB를 고르면 수동으로 만들어 시간이 오래 걸린다고 하셨습니다.
1/12 페이지는 DB에 대해 어떤 작업을 할 지 고르는 화면입니다.
엔터프라이즈 메니져를 사용할지 아닐지에 대해 선택하는 옵션 화면도 있습니다. 4/12 페이지.
4/12의 두번째 탭에서 체크박스가 하나 있는데 체크되어있는 항목에 대해서도 설명을 해 주셨습니다.
강의자료에 캡쳐화면이 있어서 강의자료에 메모를 하면서 강의를 들었습니다.
강의자료 DB생성 후 인스턴스 관리 부분을 들어갈 예정이지만 그에 앞서 다른 내용에 대해 설명을 해 준다고 하셨습니다.
3. Oracle DB를 생성한다. - DBCA
(주의) Putty가 아닌 Virtual Box GUI 환경에서 설치
$ sqlplus scott/tiger
>select * from emp;
emp 테이블 조회
(결과가 14개 나옴 헤딩이라는 컬럼의 이름이 계속 나옴 (page가 작게 설정되어있어서 그런 문제 발생) )
>show pagesize
>set pagesize 9999
매번 열때마다 설정을 해 주어야 함....
>show linesize
>set linesize 100
한 줄에 보이는 글자 수를 지정합니다.
위의 내용을 설정파일에 기록을 해 주는 작업이 아래의 작업이고 , 아래의 작업을 해 두면 매번 창을 열 때마다 위의
작업을 하지 않아도 되게 설정을 하는 것입니다.
1) Pagesize 및 Linesize를 설정한다.
$ cd $ORACLE_HOME/sqlplus/admin
$ vi glogin.sql -- 아래 내용 추가
set pagesize 9999
set linesize 100
======================================== 3 ========================================
[ 21 : 04~ 21 : 55 ]
DB를 수동으로 일부 DB의 DATA만을 가지고 생성을 해야하는 경우가 있습니다.
그러한 때를 대비해서 이번 시간에 DB를 수동으로 관리하는 법을 강의한다고 하셨습니다.
>show parameter
그리고 강의자료 CHAPTER 3. 인스턴스 관리
4. 수동으로 "prod" DB를 생성한다.
1) ORACLE_SID를 설정한다.
$ export ORACLE_SID=prod
2) 데이터베이스 파일을 저장할 디렉토리를 생성한다.
$ mkdir -p /u01/app/oracle/oradata/prod
3) 패스워드 파일을 생성한다.
$ cd $ORACLE_HOME/dbs
$ orapwd file=$ORACLE_HOME/dbs/orapwprod password=oracle
4) 파라미터 파일(PFILE)을 생성한다.
$ vi $ORACLE_HOME/dbs/initprod.ora
db_block_size=8192
db_name=prod
diagnostic_dest='/u01/app/oracle'
control_files=("/u01/app/oracle/oradata/prod/control01.ctl")
remote_login_passwordfile=EXCLUSIVE
memory_target=500M
undo_management=AUTO
undo_tablespace=UNDOTBS1
5) 인스턴스를 시작한다.
$ sqlplus / as sysdba
SQL> startup nomount
이전 내용을 조금 진행 해 보았습니다.
<사진 1>
6) CREATE DATABASE 문장을 실행한다.
SQL> CREATE DATABASE prod
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '/u01/app/oracle/oradata/prod/system01.dbf' SIZE 300M REUSE
AUTOEXTEND on NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/app/oracle/oradata/prod/sysaux01.dbf' SIZE 120M
REUSE AUTOEXTEND on NEXT 10240K MAXSIZE UNLIMITED SMALLFILE DEFAULT
TEMPORARY TABLESPACE TEMP
TEMPFILE '/u01/app/oracle/oradata/prod/temp01.dbf' SIZE 20M REUSE
AUTOEXTEND on NEXT 640K MAXSIZE UNLIMITED
SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE
'/u01/app/oracle/oradata/prod/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND
ON NEXT 5120K MAXSIZE UNLIMITED
CHARACTER SET KO16MSWIN949
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/u01/app/oracle/oradata/prod/redo01.log') SIZE 51200K,
GROUP 2 ('/u01/app/oracle/oradata/prod/redo02.log') SIZE 51200K,
GROUP 3 ('/u01/app/oracle/oradata/prod/redo03.log') SIZE 51200K;
수행을 해 보니 반응이 좀 없이 오래 걸립니다.
<사진 2>
7) 추가 테이블스페이스를 생성한다.
SQL> CREATE TABLESPACE USERS
DATAFILE '/u01/app/oracle/oradata/prod/users01.dbf' SIZE 5M REUSE
AUTOEXTEND on NEXT 1280K MAXSIZE UNLIMITED;
<사진 3>
8) USERS를 기본 테이블스페이스로 설정한다.
SQL> ALTER DATABASE DEFAULT TABLESPACE USERS;
<사진 4.... 없을 수도...>
9) Catalog 및 내부 객체를 생성하는 스크립트를 실행한다.
SQL> @?/rdbms/admin/catalog.sql
사진 5 > 위의 명령이 한창 수행되는 중 캡쳐한 화면
사진 6 > 위의 명령이 끝난 후 캡쳐한 화면
SQL> @?/rdbms/admin/catproc.sql
사진 7 > 위의 명령이 한창 수행되는 중 캡쳐한 화면
사진 8 > 위의 명령이 끝난 후 캡쳐한 화면
//위의 두 작업이 시간이 오래 걸립니다.
두 작업을 하고 나니 DB를 정상적으로 사용을 하여 수업을 따라갈 수 있었습니다
>show parameter
< 사진 9 >
=====================중간에 조금 복구하느라 수업을 놓치긴 했지만 이제부터 잡아 보겠습니다. ===================
7) v$parameter를 조회하여 변경 범위를 확인한다.
SQL> desc v$parameter
<사진 10>
8) PFILE을 생성하고, 데이터베이스를 재시작한다.
SQL> show parameter spfile
<사진 11>
SQL> create pfile from spfile;
<사진 12 - ERROR>
SQL> shutdown immediate
SQL> ! rm $ORACLE_HOME/dbs/spfileorcl.ora
SQL> startup
SQL> show parameter spfile
사진 12에 보이는 문제를 해결하는 것을 목표로 내일 더 진행을 해 보도록 하겠습니다.