[Oracle] system과 sysaux 테이블 스페이스

봄·2025년 8월 25일

오라클 관리

목록 보기
33/163


실습1. system 과 sysaux 테이블 스페이스가 온라인인지 확인하세요

SQL> select tablespace_name, status
     from dba_tablespaces;

TABLESPACE STATUS
---------- ---------
SYSTEM     ONLINE
SYSAUX     ONLINE
UNDOTBS1   ONLINE
TEMP       ONLINE
USERS      ONLINE
TS01       ONLINE
TS02       ONLINE
TS03       ONLINE
TS04       ONLINE
TEST_BIG   ONLINE

10 행이 선택되었습니다.

SQL> save ts_status.sql

실습2. ts01 테이블 스페이스에 emp테이블과 똑같은 테이블로 emp778 테이블을 생성하시오

SQL> connect scott/tiger
연결되었습니다.
SQL>
SQL> create table emp778
     tablespace ts01
     as
      select *
      from emp;

테이블이 생성되었습니다.

SQL> col table_name for a10

SQL> select table_name, tablespace_name
      from user_tables

실습3. sys 유져에서 ts01 테이블스페이스를 offline 시키시오

SQL> connect sys/oracle_4U as sysdba
연결되었습니다.
SQL>
SQL> alter tablespace ts01 offline;

테이블스페이스가 변경되었습니다.

SQL> @ts_status

TABLESPACE STATUS
---------- ---------
SYSTEM     ONLINE
SYSAUX     ONLINE
UNDOTBS1   ONLINE
TEMP       ONLINE
USERS      ONLINE
TS01       OFFLINE
TS02       ONLINE
TS03       ONLINE
TS04       ONLINE
TEST_BIG   ONLINE

10 행이 선택되었습니다.

실습4. scott 유져로 접속해서 emp778을 select 할 수 있는지 확인하시오

SQL> connect scott/tiger
연결되었습니다.
SQL>
SQL> select * from emp778;
select * from emp778
              *
#### 1행에 오류:
ORA-00376: 현재 파일 5를 읽을 수 없습니다 ORA-01110: 5
데이터 파일: '/u01/app/oracle/oradata/ORA19/ts01.dbf'

--> offline 상태라서 select가 안됨


문제1. 다시 emp778 을 select 할 수 있도록 ts01 테이블 스페이스를 online 시키시오

SQL> connect / as sysdba
연결되었습니다.
SQL>
SQL> alter tablespace ts01 online;

테이블스페이스가 변경되었습니다.

SQL> @ts_status

TABLESPACE STATUS
---------- ---------
SYSTEM     ONLINE
SYSAUX     ONLINE
UNDOTBS1   ONLINE
TEMP       ONLINE
USERS      ONLINE
TS01       ONLINE
TS02       ONLINE
TS03       ONLINE
TS04       ONLINE
TEST_BIG   ONLINE

10 행이 선택되었습니다.

문제2. system 테이블 스페이스를 offline 시키면 되는지 확인하시오

SQL> alter tablespace system offline;
alter tablespace system offline
*
1행에 오류:
ORA-01541: SYSTEM 테이블스페이스는 오프라인될 수 없습니다. 필요하면
종료하십시오.

문제3. sysaux 테이블 스페이스는 offline 되는지 확인하시오

SQL> alter tablespace sysaux offline;
alter tablespace sysaux offline
*
1행에 오류:
ORA-13560: SYSAUX 테이블스페이스는 오프라인으로 설정할 수 없습니다. 필요하면
종료하십시오.

💡 offline 되기는 하지만 offline 시키면 안됨!


실습5. system 테이블 스페이스의 데이터 딕셔너리가 무엇이 있는지 조회하시오

system 테이블 스페이스의 역할
db를 운영하기 위한 가장 핵심 데이터를 저장하는 공간
↓
data dictionary

data dictionary

  1. user_xxx : 소유자가 가지고 있는 db object(table,view, index, sequence 등)
  2. all_xxx : 소유자가 가지고 있는 db object + 다른 소유자가 권한을 부여한 것
  3. dba_xxx : database의 모든 object 들을 다 볼 수 있음

sql developer에서

```sql
select *
 from dictionary;

실습6. 데이터 딕셔너리중에서 컬럼에 대한 정보가 있는 데이터 딕셔너리가 뭐가 있는지 조회하시오

💡 empno 라는 컬럼을 갖고있는 테이블이 무엇이 있는지 확인하고 싶으면 해당 딕셔너리를 알아야합니다.

select *
 from dictionary
 where table_name like '%COLUMNS%';
 
SELECT *
 from dba_tab_columns
 where column_name like '%EMPNO%';

실습7. EM (Enterprise Manager)을 키려면 sysaux 테이블 스페이스 online 되어있어야하고 여기에 EM 관련 데이터가 저장됩니다. EM을 켜보세요

다음장에서 12c 설치 후 em 설치예정


실습8. system 테이블 스페이스에 emp 테이블을 만들면 안됩니다.

SQL> create table emp
  2  as
  3   select *
  4   from scott.emp;

테이블이 생성되었습니다.

SQL> select table_name, tablespace_name
  2   from user_tables
  3  where table_name='EMP';

TABLE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME
------------------------------
EMP
SYSTEM


SQL> DROP table emp;

테이블이 삭제되었습니다.

0개의 댓글