테이블 스페이스란, 말 그대로 DB의 테이블 공간을 뜻한다.

DB 유저를 생성하고 끝나는 것이 아니라, 해당 유저가 사용할 테이블 공간을 만들어야 시작이라는 뜻이다.


해당 툴은 SQL PLUS를 사용하였다.


1. Tablespace 생성

SQL> create tablespace [테이블 스페이스 이름] datafile '[저장될 경로\파일이름.ora]' size [용량]m;


우리 회사의 경우, 2기가를 기본으로 사용하며 테이블 스페이스의 자동용량증가라거나 그러한 옵션을 절대 사용하지 않기 때문에 여기까지.


또한, 테이블 스페이스를 추가하는 방법은 아래와 같다.


2. Tablespace 추가

SQL> alter tablespace [테이블 스페이스 이름] add datafile '[저장될 경로\파일이름.ora]' size [용량]m;


이러한 방법으로 가능하다.


3. Tablespace 삭제

삭제방법은 약간 까다로운데, 나같은 경우엔 잘못된 이름지정으로 삭제를 하였다. 다른 경우에는 뭐 어찌될 지 모르겠다.


SQL> drop tablespace [테이블 스페이스 이름]

그런데 때때로 데이터가 들어있는 이유나 그 외 이유로 테이블스페이스가 삭제되지 않는 경우도 있다.

그럴 땐 아래와같이 입력해보자.


SQL> drop tablespace [테이블 스페이스 이름] including contents and datafiles;

이 명령어는 걍 닥치고 다 삭제한다.





참고로, 내가 약간 실력이 후달려서 SQL PLUS에서 스크립트 불러오는 단축키를 몰라서 쓰는 방법인데, cmd에서도 가능하다.

cmd를 호출하고 아래와 같이 입력한다.


c:\>sqlplus


그리고 사용자명과 아이디를 입력하면 cmd에서 SQL PLUS가 이용이 가능, 방향키로 스크립트를 불러올 수 있으니 반복된 타이핑을 하지 않아도 편리하다.

블로그 이미지

김생선

세상의 모든것을 어장관리

오라클 system 비밀번호를 분실했을 때, 정말 식은땀 날 뻔 했다.

일단 오라클이 설치된 서버의 admin 계정으로 들어가서, cmd 를 띄워두고 아래와 같이 입력한다


C:\>sqlplus "/as sysdba"

SQL> show user

USER is "SYS"


이런식으로 보일 것이다.

그럼 여기에서 계정 암호를 변경해주자.


SQL> alter user system identified by 암호;




한가지 더, system 계정이 lock 걸렸을 때의 대처방법

cmd에서 마찬가지로 아래의 명령어를 입력하자.



SQL> alter user system(유저명이 될수도 있다) account unlock;


그럼 끝

블로그 이미지

김생선

세상의 모든것을 어장관리

서버를 관리하면서 매일매일 dump 파일을 생성한다.

우리 회사의 경우에는 새벽에 사용자가 없기에 새벽 2시~6시 사이에 덤프파일을 만드는 편이다.

이 덤프파일을 이용해서 import 방법을 해 보고자 한다.

* Export 방법은 차후에.


이 방법은 cmd 명령프롬프트에서 동작한다.

사실 어려운 방법은 아니다.


시작 - 실행 - cmd 입력


이 방법은 전체 데이터베이스를 import 하는 방법이다.

C:\> imp userid=유저명/비밀번호 file='dump파일 경로 입력' full=y


테이블/트리거 등등  다른 방식의 import는 차후에 설명...

블로그 이미지

김생선

세상의 모든것을 어장관리

user를 생성하는 방법 중 한가지, SQL Plus에서의 방법이다.

sql plus에서 system 권한으로 접속한다. 회사에서 세팅하는 user는 대부분 DBA 권한을 주기 때문이다.

그리고 아래의 커맨드를 날린다.


1. USER 생성

SQL> CREATE USER 사용자명 IDENTIFIED BY 비밀번호;


대소문자를 구분하지 않으나, 사용자명과 비밀번호에서는 대소문자를 가리는 것 같으니(사실 확인은 안해봤다) 유의하자.

USER 생성에 따라 여러 옵션이 존재하는 것 같은데 그것에 대해서는 추후 설명...


잠시 기다리면 완료메시지가 출력된다. 그럼 접속을 한 번 해 보자.



2. 생성한 USER로 접속

SQL> CONN 사용자명/비밀번호


연결방식에 따라 ORACLE 에러가 날 수도 있고, 올바르게 접속될 수도 있다.

에러가 난다면 아마도 다음과 같은 에러이리라 생각되어진다.


ORA-12560 : TNS : 프로토콜 어댑터 오류


회사에서는 ASP서버를 이용하기 때문에 비밀번호 뒤에 TNS NAME을 적어주어야 접속이 가능해진다. 로컬에서는 물론 적어주지 않아도 된다. 내가 일하는 곳은 원격지이기 때문에 적어주어야 한다.

따라서, 다음과 같은 명령어를 입력해준다.


SQL> CONN 사용자명/비밀번호@ASP이름


위와 같이 올바르게 입력하였다면 다음과 같은 메시지가 출력된다.


"연결되었습니다."


혹시 모르니 다시 확인해본다.


SQL> SHOW USER


그럼 현재 접속된 USER가 보인다. 이제 작업하면 된다.


아, 하나 더. DBA 권한 주는 법.



3. USER에게 DBA 권한 주는 법

SQL> GRANT DBA TO 유저명;


그럼 현재 접속된 유저에게 DBA 권한이 주어진다. 끝.

블로그 이미지

김생선

세상의 모든것을 어장관리

오라클 테이블 데이터 조회 및 삭제, 수정 관련된 쿼리를 정리해본다.


데이터 조회

SELECT * FROM 테이블명;



데이터 삭제

DROP TABLE 테이블명;

- 위의 방법으로 하면 테이블 자체가 삭제


DELETE FROM 테이블명;

- 테이블 구조는 남아있되 데이터만 삭제



데이터 수정

update 테이블명 set B = 'KIMFISH' where A = 1;

- 테이블명이라는 테이블 중, B 컬럼의 내용을 KIMFISH로 변경한다, 조건은 A 컬럼의 내용 중 1 이라 되어있는 항목.

- 즉, B열의 내용을 모두 KIMFISH로 변경하고 그에 대한 조건은 A 열 중에서 1이라 되어있는 항목만 걸러내서 수정한다는 이야기이다.

- 위의 쿼리를 실행하면 B 열 1행의 ABCD가 KIMFISH로 변경이 된다.

- 부득이하게 이미지는 엑셀로 작업함 ^^;




DROP된 데이터 복구

DROP을 하게 되면 테이블 자체가 삭제되어지기 때문에 나같은 초짜가 테이블을 복구하고 나발이고 하긴 매우 힘들다.

그럴 땐 다음과 같은 명령어를 입력한다.


FLASHBACK TABLE 테이블명 TO BEFORE DROP;


DROP을 여러번 했다면 RECYCLE BIN 에서 최근 DROP 목록을 삭제하고 실행해야 한다.

블로그 이미지

김생선

세상의 모든것을 어장관리

티스토리 툴바