ORACLE DB접속순서, DB 명령어
리눅스 터미널에서 DB켜는 순서
아래 명령어는 꼭 순서대로 실행해줄 것.
DB를 켜고 끄는 중대한 DB관리작업은 SQL Developer에서 할 수 없다.
1 | //리스너 실행 : 리스너를 작동시키는 명령어 |
리스너 실행
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 | SQL> connect sys/비번 as sysdba |
- 만약 DB가 켜져있는 상태면 아래와 같이 나온다
1 | SQL> connect sys/비번 as sysdba |
이제 DB가 켜져있는 상태가 되었고 아래 명령어로 DB에 연결한다conn
은 connect
의 약자로 동일하게 사용가능한 명령어이다
1 | SQL> conn sys/비번 as sysdba |
sys를 제외한 나머지 유저들은 아래와 같이 연결할 수 있다
1 | SQL> conn 유저이름/비번 |
sys에서 다른 유저로 접속하면 이전의 유저접속은 자동적으로 끊긴다.
어떤 유저로 접속한 지 궁금하면 show user
명령어를 사용하면 된다
DB 전환 방법
1 | $] export ORACLE_SID=resp |
DB 끄는 명령어
리스너가 켜진 후 DB를 켜야하는데 만약 리스너를 깜박하고 DB를 먼저 켠 경우 뒤늦게
sys로 접속해서 DB를 끈 후 -> 리스너를 켜고 -> DB를 켜면 된다.
- 그렇다면 DB를 끄는 명령어는 무엇일까?
- 터미널창을 그냥 끄면 될까?
터미널창끈다고 DB가 꺼지는 건 아니다
DB를 끄는 명령어는 크게 두가지이다.
shut abort 명령어
현재 처리중인 SQL statements를 모두 abort 시키고 rollback 안하고, users들 다 끊고, close & dismount도 안한다.
즉, 그냥 꽝 닫는 것!
다음번 오라클 시작시에 인스턴스가 자동 복구된다.
1 | SQL> shut abort |
stop 명령어
아래 명령어 또한 DB와 리스너를 종료하는 명령어다
1 | SQL> stop |
exit 명렁어와 shut abort, stop의 차이점
이 명령어는 리스너나 DB를 끄는 명령어가 아니라 유저와 SQL+프로그램종료하는 언어다
DB꺼지는거아님
위의 명령어와 헷갈리지 말 것.
1 | SQL> exit |
파일 내용 보는 2가지 명령어
파일안의 내용을 보고 싶을때는 아래 2가지 명령어를 활용할수있다
- cat 열고싶은_파일명 : 터미널내에서 열고싶은_파일의 내용이 출력된다
- vi 열고싶은_파일명 : vi편집기 실행 -> vi편집기 빠져나갈때는
:q!
리눅스 터미널에서 복붙은 ctrl+c
와 ctrl+v
가 작동하질 않는다.
이를 대체해서 ctrl+insert
와 Shift+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설정해야한다