오늘은 금요일, 생각보다 많은 사람들이 보이지는 않았지만, 강의는 계속되었습니다.
외근을 갔다 오느라 저녁을 삼각김밥 하나로 때우고, 에너지를 위해 오늘도 핫식스와 함께 수강 시작합니다.
======================================== 1 ========================================
[ 19 : 00~ 19 : 48 ]
DB가 안되는 경우에는 이야기를 하면 도와주시겠다고 하셨습니다.
Undo의 용도에 대해서 강의자료를 가지고 수업을 진행 해 주셨습니다.
VirtualBox를 켜서 리눅스를 어제 상태저장했던 값으로 돌리려고 했지만 아예 개작살...(???)이 나서 LG G4처럼 무한부팅이 일어나고 있습니다.
;;;;;
table space를 읽기전용으로 만드는 경우는 다음과 같습니다.
11g버전의 경우 table을 읽기전용으로 설정할 수 있는데 , 그러한 기능이 없는 이전의 버전에서는 테이블 스페이스를 읽기전용으로 바꾸어 그렇게 처리를 하는 경우가 있습니다.
그 외에 table의 내용이 바뀔 일이 없는 경우에는 backup을 한번만 해도 되고 읽기전용의 table은 backup도 훨씬 쉽다고 하셨습니다.
3. 테이블스페이스의 상태를 변경한다.
1) 읽기 전용(Read Only) 테이블스페이스로 변경한다.
- EXAMPLE 테이블스페이스를 읽기 전용으로 변경한다.
SQL> ALTER TABLESPACE EXAMPLE READ ONLY;
- hr.employees 테이블을 update 한다.
SQL> update hr.employees set salary=8888;
<사진 1>
ERROR at line 1:
ORA-00372: file 5 cannot be modified at this time
ORA-01110: data file 5: '/u01/app/oracle/oradata/orcl/example01.dbf'
읽기 전용 테이블스페이스의 테이블은 변경할 수 없다.
tablespace offline
DLL뿐만 아니라 select도 안되며 DB 복구할 때 사용을 합니다.
4. Tablespace 크기를 조정한다.
1) Datafile의 자동 확장을 활성화한다.
- USERS 테이블스페이스 데이터 파일의 자동 확장을 비활성화한다.
SQL> ALTER DATABASE DATAFILE
'/u01/app/oracle/oradata/orcl/users01.dbf' AUTOEXTEND OFF;
- USERS 테이블스페이스 데이터 파일의 자동 확장을 활성화한다.
SQL> ALTER DATABASE DATAFILE
'/u01/app/oracle/oradata/orcl/users01.dbf' AUTOEXTEND ON
NEXT 10M MAXSIZE UNLIMITED;
<사진2>
2) 수동으로 Datafile의 크기를 조정한다.
- USERS 테이블스페이스 데이터 파일의 크기를 500M로 조정한다.
SQL> ALTER DATABASE DATAFILE
'/u01/app/oracle/oradata/orcl/users01.dbf' RESIZE 500M;
- USERS 테이블스페이스 데이터 파일의 크기를 100M로 조정한다.
SQL> ALTER DATABASE DATAFILE
'/u01/app/oracle/oradata/orcl/users01.dbf' RESIZE 100M;
- USERS 테이블스페이스 데이터 파일의 크기를 3M로 조정한다.
SQL> ALTER DATABASE DATAFILE
'/u01/app/oracle/oradata/orcl/users01.dbf' RESIZE 3M;
ERROR at line 1:
ORA-03297: file contains used data beyond requested RESIZE value
사용 중인 데이터 범위 아래로 줄일 수 없다.
5. 테이블스페이스를 삭제한다.
1) 테이블스페이스 test1, test2, test3을 생성한다.
SQL> CREATE TABLESPACE test1 DATAFILE
'/u01/app/oracle/oradata/orcl/test1.dbf' SIZE 10M;
SQL> CREATE TABLESPACE test2 DATAFILE
'/u01/app/oracle/oradata/orcl/test2.dbf' SIZE 10M;
SQL> CREATE TABLESPACE test3 DATAFILE
'/u01/app/oracle/oradata/orcl/test3.dbf' SIZE 10M;
<사진 3>
Tablespace를 Drop하지않고 파일을 지우면 DB가 깨진다는 Tip을 아래의 실습을 하기 전에 유의하라고 설명 해 주셨습니다.
2) 생성된 테이블스페이스를 조회한다.
SQL> select TABLESPACE_NAME, FILE_NAME from dba_data_files;
<사진 4>
3) TEST1 테이블스페이스를 삭제한다.
- TEST1 테이블스페이스를 삭제한다.
SQL> drop tablespace test1;
- TEST1 테이블스페이스의 데이터 파일을 확인한다.
SQL> host ls /u01/app/oracle/oradata/orcl/test1.dbf
- TEST1 테이블스페이스의 데이터 파일을 삭제한다.
SQL> host rm /u01/app/oracle/oradata/orcl/test1.dbf
4) TEST2 테이블스페이스를 삭제한다.
- TEST2 테이블스페이스에 emp 테이블을 생성한다.
SQL> create table emp (id number)
tablespace test2;
- TEST2 테이블스페이스를 삭제한다.
SQL> drop tablespace test2;
ERROR at line 1:
ORA-01549: tablespace not empty, use INCLUDING CONTENTS option
객체가 존재하는 테이블스페이스는 삭제할 수 없다.
SQL> drop tablespace test2 INCLUDING CONTENTS;
- TEST2 테이블스페이스의 데이터 파일을 확인한다.
SQL> host ls /u01/app/oracle/oradata/orcl/test2.dbf
- TEST2 테이블스페이스의 데이터 파일을 삭제한다.
SQL> host rm /u01/app/oracle/oradata/orcl/test2.dbf
5) TEST3 테이블스페이스를 데이터 파일과 함께 삭제한다.
SQL> drop tablespace test3 INCLUDING CONTENTS and datafiles;
6. OMF(Oracle Managed Files) 방식으로 테이블스페이스를 관리한다.
1) DB_CREATE_FILE_DEST 파라미터를 설정한다.
SQL> show parameter DB_CREATE_FILE_DEST
SQL> alter system set DB_CREATE_FILE_DEST='/u01/app/oracle';
SQL> show parameter DB_CREATE_FILE_DEST
아까 첫시간에 저는 OS부팅이 되지 않아서 그 부분을 확인하기 위해서 강사님께 질문을 해 보았지만 OS가 깨지는 경우는 VM을 쓰면서 한번도 겪어보지 못했다고 하셨습니다.
VM Ware롸 VirtualBox를 비교 하시면서 VMWare가 기능은 조금 더 많고 VirtualBox의 경우는 훨씬 더 가볍다고 하셨습니다.
======================================== 2 ========================================
[ 20 : 05 ~ 20 : 55 ]
6. OMF(Oracle Managed Files) 방식으로 테이블스페이스를 관리한다.
1) DB_CREATE_FILE_DEST 파라미터를 설정한다.
SQL> show parameter DB_CREATE_FILE_DEST
<사진1>
SQL> alter system set DB_CREATE_FILE_DEST='/u01/app/oracle';
SQL> show parameter DB_CREATE_FILE_DEST
<사진2>
2) 테이블스페이스를 생성 및 삭제한다.
SQL> create tablespace test4;
<사진3>
SQL> drop tablespace test4;
<사진4>
SQL> create tablespace test4 datafile size 200M;
SQL> alter tablespace test4 add datafile;
SQL> drop tablespace test4;
<사진5>
Controlfile에 대해 이론수업을 이어가셨습니다.
SQL> select name from v$controlfile;
<사진 6>
로그 조회
<사진7>
강제적으로 로그 스위치 후 다시 조회
<사진 8>
만약 정전으로 DB가 죽는 경우, 예전에는 이런 일이 종종 있었다고 하셨습니다.
그러한 경우 다시 시작을 시키는데, DB가 올라오지 않을 때가 있습니다. 그 이유는 인스턴스 복구가 끝나야 하기 때문입니다. DB는 내부적으로 인스턴스 복구를 하게됩니다.
예전 버전의 경우 open을 하기 전에 내부작업 (롤 포워드, 롤 백)을 모두 끝내야 DB가 올라온다고 하셨습니다.
checkpoint는 시간이 지나면 자동으로 일어나지만 강제로 일이킬 수도 있다고 하셨습니다.
그룹을 날리는 작업 등을 할 경우는 inactive상태에서만 가능한데, active DB를 inactive로 바꿀 때 chechpoint를 일으키는 방법이 있습니다.
SQL> alter system checkpoint;
SQL> select * from v$log;
<사진 9>
강의자료로 수업을 계속 하셨습니다.
온라인 리두로그 파일 그룹 삭제, 온라인 리두 로그 파일 멤버 삭제
<사진 10>
current의 경우나 active인 경우에 삭제가 되지 않습니다.
<사진 11>
SQL> archive log list
<사진 12>
리두 로그 파일을 겹쳐쓰기 위해서면 몇가지 조건이 있습니다. inactive상태여야 하며, 아카이브를 사용하는 경우 아카이브 되있어야 한다고 합니다.
아카이브는 깨졌을 때 복구하는 것이 목적인데, 클리어를 해야만 DB가 유지 가능한 경우가 있다고 하셨습니다.
마지막으로 네트워크 관련 해서 수업하시겠다고 하셨습니다.
======================================== 3 ========================================
[ 21 : 10~ 21 : 59 ]
각 수강생들의 업무를 간단히 확인하시면서 이야기를 하셨습니다.
갑은 아무리 잘해줘도 부담스럽다고 이야기를 하셨습니다.
네트워크 관리
데이터베이스의 원격접속과 관련된 내용을 수업한다고 하셨습니다.
프티 터미널창을 2개 사용하도록 하겠습니다.
<사진 1>
리눅스 내부에서 네트워크 메니져를 사용해 보겠습니다.
<사진 2>
<사진 3~7>
변경하여 orcl으로 입력한 것이 인스턴스 네임입니다.
사진 7에서 scott계정으로 Test가 실패하면 다른 계정으로 Test를 하면 됩니다.
네트워크 연결 설정을 만드는 3가지 방법을 실습 해 보았습니다.
<사진 8 ~ 22>
아래의 화면과 같이 반드시 설정을 저장을 해 주어야 합니다.
파일 브라우져를 실행합니다.
아래의 화면과 같은 경로로 이동을 합니다.
아래 화면에 보이는 경로로 이동을 하였다면, 그 경로에 있는 tnsnames.ora 파일을 열어봅니다.
위에 AAA라는 내용을 복사 후 붙여넣기 해서도 보다 더 쉽게 만들 수 있습니다.
리스너 확인을 해 보고 그 Address가 갖는 의미를 설명 해 주셨습니다.
<사진23>
리스너를 스탑 해 보겠습니다.
<사진 24>
리스너 중 기본 리스너의 이름이 listener입니다.
<사진 25>
리스너 다중화시 이름과 포트번호가 달라야합니다.
간단한 연결 (Easy Connect)
4) EZCONNECT 방식으로 접속한다.
SQL> conn hr/hr@ocpdba:1521/orcl
<사진 26>
<사진 27>
sqlnet.ora파일이 없어도 기본 설정일 경우 문제가 없지만 변경이 있는 경우에는 해당 파일이 생깁니다.
<사진 28>
디비를 올리고 리스너를 올리는 것과 리스너를 올리고 디비를 올리는 것의 초기접속 시간 차이를 보여주셨습니다.
<사진 29~31>
정적구성을 하면 초기접속이 빠릅니다.
<사진 32>
tnsping -> 디비 연결확인
5. 서비스 이름을 확인하고 설정한다.
1) DB 이름, 인스턴스 이름, 서비스 이름을 확인한다.
SQL> conn / as sysdba
SQL> show parameter db_name -- 데이터베이스 이름
SQL> show parameter instance_name -- 인스턴스 이름
SQL> show parameter service_names -- 인스턴스 서비스 이름
<사진 33>
서비스 이름이 기본 2개 있는데 100개까지, 즉 98개를 추가로 등록할 수 있습니다.
초기화 파라미터에 등록하면 됩니다.
서비스를 추가해보겠습니다.
2) 서비스 이름을 설정한다.
SQL> conn / as sysdba
- service_names 파라미터를 조회한다.
SQL> show parameter service_names;
- service_names를 orcl,erp로 변경한다.
SQL> alter system set service_names= 'orcl,erp';
<사진 34>
SID => 인스턴스이름 옛날 접근 방식
" 이렇게 해서 마쳤습니다." 라고 끝인사를 시작하셨습니다.
공유서버도 만들어 두셨다고 하셨습니다.
'강의노트' 카테고리의 다른 글
[Cloud] Docker 컨테이너 3일차 (0) | 2017.10.25 |
---|---|
[Cloud] Docker 컨테이너 2일차 (0) | 2017.10.24 |
[DB] DB관리 초급 4일차 (0) | 2017.10.19 |
[DB] DB관리 초급 3일차 (0) | 2017.10.18 |
[DB] DB관리 초급 2일차 (0) | 2017.10.17 |