ORACLE DB접속순서, DB 명령어

리눅스 터미널에서 DB켜는 순서

아래 명령어는 꼭 순서대로 실행해줄 것.
DB를 켜고 끄는 중대한 DB관리작업은 SQL Developer에서 할 수 없다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//리스너 실행 : 리스너를 작동시키는 명령어
SQL> lsnrctl start

//SQL PLUS실행 : nolog의 의미는 sqlplus프로그램만 실행 -> SQL단으로 들어감
SQL> sqlplus /nolog

//DB에 sys로 접속하는 명령어
SQL> connect sys/oracle as sysdba

//SQL PLUS실행+sys접속 한꺼번에 처리하는 명령어
SQL> sqlplus "sys/oracle as sysdba"

//DB 켜기
SQL> startup

//유저바꾸기 : hr로 로그인
SQL> conn hr/hr

//DB 끄기
SQL> shut abort

//터미널종료
$> exit

리스너 실행

DB를 적상적으로 작동시키려면 운영체제에 존재하는 리스너를 실행 후 DB를 실행한다.
순서 중요 : 리스너실행 후 DB실행 필수
리스너없이 DB실행 가능하지만 작동오류가 난다.
컴퓨터 부팅후에는 항상 리스너를 켜고 DB작업을 하자!

SQL PLUS 실행

SQL+를 설치 후 실행한 뒤 SQL언어로 DB와 소통할 수 있다
운영체제별로 SQL+가 따로 있다.

  • 윈도우용 SQL+ : 시작프로그램에서 클릭을 통해 실행 -> 터미널 열림

  • 리눅스용 SQL+ : 터미널창에서 명령어 입력으로 실행

  • 그렇다면 명령어는?

    • sqlplus입장 명령어 : sqlplus /nolog
    • sqlplus퇴장 명령어 : exit (user도 함께 종료)

DB에 sys로 접속후 DB 연결하기

connect sys/비번 as sysdba 명령어로 접속하면 현재 DB가 꺼져있는 상태(idle)면 아래 코드처럼 show user -> startup순으로 진행하면된다

1
2
3
4
5
6
7
8
9
10
11
SQL> connect sys/비번 as sysdba
Connected to an idle instance

SQL> show user
USER is "SYS"

SQL> startup
ORACLE instance started
(중략)
Database mounted
Database opened
  • 만약 DB가 켜져있는 상태면 아래와 같이 나온다
1
2
SQL> connect sys/비번 as sysdba
Connected

이제 DB가 켜져있는 상태가 되었고 아래 명령어로 DB에 연결한다
connconnect의 약자로 동일하게 사용가능한 명령어이다

1
2
SQL> conn sys/비번 as sysdba
Connected

sys를 제외한 나머지 유저들은 아래와 같이 연결할 수 있다

1
2
SQL> conn 유저이름/비번
Connected

sys에서 다른 유저로 접속하면 이전의 유저접속은 자동적으로 끊긴다.
어떤 유저로 접속한 지 궁금하면 show user명령어를 사용하면 된다

DB 전환 방법

1
2
3
4
5
$] export ORACLE_SID=resp
$] sqlplus /nolog
SQL> conn sys/oracle as sysdba => resp로 접속됨
(==)
$] sqlplus "sys/oracle as sysdba"

DB 끄는 명령어

리스너가 켜진 후 DB를 켜야하는데 만약 리스너를 깜박하고 DB를 먼저 켠 경우 뒤늦게
sys로 접속해서 DB를 끈 후 -> 리스너를 켜고 -> DB를 켜면 된다.

  • 그렇다면 DB를 끄는 명령어는 무엇일까?
  • 터미널창을 그냥 끄면 될까?
    터미널창끈다고 DB가 꺼지는 건 아니다
    DB를 끄는 명령어는 크게 두가지이다.

shut abort 명령어

현재 처리중인 SQL statements를 모두 abort 시키고 rollback 안하고, users들 다 끊고, close & dismount도 안한다.
즉, 그냥 꽝 닫는 것!
다음번 오라클 시작시에 인스턴스가 자동 복구된다.

1
2
3
4
5
SQL> shut abort
ORA-01031: insufficient privileges //이건 권한부족으로 shut은 sys유저에서 진행해야한다

SQL> shut abort
Oracle instance shut down

stop 명령어

아래 명령어 또한 DB와 리스너를 종료하는 명령어다

1
2
SQL> stop
Disconnected from Oracle Database

exit 명렁어와 shut abort, stop의 차이점

이 명령어는 리스너나 DB를 끄는 명령어가 아니라 유저와 SQL+프로그램종료하는 언어다
DB꺼지는거아님
위의 명령어와 헷갈리지 말 것.

1
2
SQL> exit
Disconnected from Oracle Database




파일 내용 보는 2가지 명령어

파일안의 내용을 보고 싶을때는 아래 2가지 명령어를 활용할수있다

  • cat 열고싶은_파일명 : 터미널내에서 열고싶은_파일의 내용이 출력된다
  • vi 열고싶은_파일명 : vi편집기 실행 -> vi편집기 빠져나갈때는 :q!

리눅스 터미널에서 복붙은 ctrl+cctrl+v가 작동하질 않는다.
이를 대체해서 ctrl+insertShift+insert를 사용하면된다.

참고링크 : 리눅스 터미널 명렁어
참고링크 : 오라클 명령어




리눅스 OS user

root

  • 관리자권한 실행, 최상위유저, 자동으로 계정이 생성됨
  • 회사의 서버관리자가 보통 사용

OS유저

  • 서버관리자가 데이터베이스관리자나 개발자를 위해 만들어주는 계정
  • 보통 아래 두가지 정도의 최소한의 권한을 가짐
    • home/oracle 디렉토리 권한
    • u01/app/oracle 디렉토리 권한
  • 계정을 나누지 않으면 개발자나 DB관리자가 서버시스템파일 수정이나 삭제 해버리면 모든 게 먹통된다.
  • 따라서 꼭 계정을 나눠서 사용해야한다.




DB user

DB를 처음 생성하면 관리자의 권한을 가지고 있는 두 개의 계정이 자동으로 생성됨
왜 굳이 두개 계정이 생성될까?
차이점을 확실히 알아야한다. 바로 권한에 차이가 있다

  • sys : sysdba 권한(= dba + DB + DB시작/종료), 가장 높은 권한.
  • system : dba 권한
  • 일반유저 : object 관리 권한(table, view, inex 등 관리)

system이 새로운 유저를 만든 경우 dba 권한까지 줄 수 있다
sys가 새로운 유저를 만들었을 경우 sysdba권한까지 줄수있을까?

최대권한과 계정만료 주의사항

  • sys라도 유저에게 줄 수 있는 최대 권한은 dba까지이다.
  • 계정별 비밀번호는 default 값으로 180일간 사용가능하고 만료되기전에 비밀번호 바꿔줘야한다.
  • 바꿔주지 않을 경우 계정만료가 되어버린다. sys한테 얘기해서 임시pw설정해야한다