[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개의 댓글