오라클 사용자 계정생성할때 테이블 스페이스 만들어야하는지 질문드립니다. 0 2 1,748

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 

이렇게 새로 추가해줘야 되는걸까요?

 

 

정말 알려주시면 감사하겠습니다.

ㅜㅜ

 

 

 

 

 

by 포동푸우 [2016.09.19 15:04:29]

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 라는 데이터파일을 신규로 생성하게 됩니다. 

 - 점점 많은 테이블스페이스 와 데이터파일을 만들게 되기 때문에,, 나중에 잘 구분할 수 있도록 이런 규칙들을 따르고 있습니다. 

 

 

 


by abundance [2016.09.19 16:35:07]

포동푸우님 답변 감사드립니다.

역시 테이블 스페이스는 새로 생성해주는 것이 좋군요 기존에 있던 테이블 조회해보니 SYSTEM으로 되어있던데 생성을 안해준거였나 봅니다. 이해하기 쉽게 설명해주셔서 정말 감사해요~

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입