by abundance [Oracle 기초] 테이블스페이스 [2016.09.19 13:37:48]
안녕하세요~
오라클 사용자 계정을 만들어서 그 계정으로 접속했을 때 관련 테이블 등등 정보가 나오게 하려고 하는데요
예) test 계정 으로 로그인하면 test프로젝트에 해당하는 테이블(t_test1, t_test2, t_test...3)만 나오게
회사에 사수분이 파견가셔서 계속 구글만 검색하다 도저히 모르겠어서 질문드립니다.
1. 구글에서 검색하니 사용자 계정을 만들때 꼭 테이블 스페이스를 만드는 쿼리가 같이 나오더군요
오라클에서 사용자 계정을 만들때 꼭 테이블 스페이스를 같이 만들어줘야 하는지 궁금합니다.
2. 만약에 사용자계정을 생성할 때 꼭 테이블스페이스도 같이 사용해야한다면
기존에 사용하던 프로젝트의 테이블 스페이스를 조회해봤더니 해당 데이터파일(확장자.dbf)이 생성된 경로가 나오는데
이 경로에 이름만 다르게 해서 동일하게 테이블 스페이스를 생성해주면 될까요?
3. 기존 테이블 스페이스의 정보가
tablespace_name 이 sys ,
file_name이 /home/oracle/oradata/ORCL/sys01.dbf 인데
새로 추가해야하는 사용자 계정의 테이블 스페이스를 위의 sys로 똑같이 하고 sys02.dbf로 추가할 수 있는지요?
아니면 새 사용자계정은 새 테이블 스페이스 로 해야되기 때문에
tablespace_name을 system , file_name은 /home/oracle/oradata/ORCL/system01.dbf
이렇게 새로 추가해줘야 되는걸까요?
정말 알려주시면 감사하겠습니다.
ㅜㅜ
1. 번 : 오라클에서 테이블스페이스를 만들어 주는 것이 좋습니다.
- Table 과 Index 등은 size 가 있어서 어느 테이블스페이스라도 한 곳에 생성됩니다. 사용자 생성 시 테이블스페이스를 전용으로 신규생성하지 않으면 system 같은 기존 테이블스페이스에 (기본 설정) Table 등이 저장되어 관리가 어려워 집니다.
- DB 의 테이블스페이스 는 OS 의 Directory, 폴더 같은 개념입니다.
2. 3 번 : 이 경로에 이름만 다르게 해서 동일하게 테이블 스페이스를 생성해주면 좋지 않습니다.
- 테이블스페이스는 논리적인 저장소 이름이고, 1개 이상의 데이터파일(확장자.dbf) 로 저장됩니다.
- 그래서, sys 테이블스페이스가 /home/oracle/oradata/ORCL/sys01.dbf 라는 데이터파일을 가지고, sys 테이블스페이스에 더 많은 공간을 허락하고 싶으면 sys02.dbf sys03.dbf 이런 식으로 데이터파일을 추가합니다. 1G 크기의 데이터파일을 추가하면, sys 테이블스페이스에 1G 가 늘어납니다.
- 보통은, userblue 이라는 사용자를 만들게 되면, 동일한 위치에 (/home/oracle/oradata/ORCL/) userblue01.dbf 라는 데이터파일을 신규로 생성하게 됩니다.
- 점점 많은 테이블스페이스 와 데이터파일을 만들게 되기 때문에,, 나중에 잘 구분할 수 있도록 이런 규칙들을 따르고 있습니다.