putty 에서 oracle 계정으로 접속 후
sql plus 접속
startup으로 db 기동시키자
db가 정상 서비스 되려면 맨 아래 보이는 opened 단계가 되어야 한다.
db 접속 방법은 2가지가 있다.
서버에 접속해 sql plus 로 접속하는 방법과 원격접속 방법이 있다.
원격 접속방법을 이용하려면 리스너 프로세스가 정상 작동하는지 확인해야한다.
db의 상태 확인하는 명령어
다음은 리스너 프로세스를 확인하는 명령어다.
입력하는 아무것도 안나오는데 이후 바로 아래 명령어 입력하면
이런 식으로 참인지 거짓인지 확인 가능하다.
그리고 리스너 프로세스 시작할 수 있다.
위에 서 보면 HOST=oel7 이라고 써있는데 이는 /etc/hosts 에 기입한 ip주소 옆의 호스트 이름인데 host 뒤에 ip
주소가 와도 가능하다.
즉, 체크사항 3가지
open되어있는지
리스너가 정상 가동될것
리스너가 서비스를 물고 있을것
lsnrctl status 입력해서 summary... 확인
이제 오렌지로 접속 해보자.
[ DB 기동과 중지 ]
1. 기동
1) 기동 절차
nomount(started) -> mount -> open
다음 세 단계를 거쳐서 진행된다.
nomount 단계에서는 started로 표현됨.
2) 기동 상태 확인
select status
from v$instance;
3) 기동 방법
$ sqlplus / as sysdba
SQL> STARTUP [옵션]
** 옵션
- nomount
- mount
- open(default)
ex) nomount까지만 가고 싶으면 옵션 위치에 startup nomount
즉, 중간단계 까지 가고싶으면 startup 뒤에 위치 지정해주면 됨
** 이미 한번 중간 단계로 startup을 한 이후에는 startup 불가 => alter database 명령어도 다음 단계로 넘어가야 함
SQL> alter database mount;
SQL> alter database open;
이후 다음 단계로 가보자
스타트업 해보면
불가능
접속 예시)
2. 중단
1) 중단 방법
SQL> shutdown [옵션]
** 옵션
- normal : 모든 사용자의 접속이 끊길때까지 대기 후 종료
- transactional : 현재 진행중인 transaction이 종료될 때까지 대기 후 종료
- immediate : 현재 실행중인 작업을 정상 종료하고 DB shutdown 하는 과정
- abort : 현재 실행중인 작업을 강제 종료하고 DB shutdown 하는 과정
실제 db는 commit된 데이터를 바로 저장하는게 아니고 나중에 처리하는데 immediate는 모든 작업을 정상 처리 후 종료하지만 abort는 그 작업을 처리 하지도 않고 그냥 빠르게 종료시켜 버린다. 위험하지만 급할때 사용
내려갔으므로
입력해도 에러 발생한다.
리스너의 상태를 확인해보면 정상 작동됨을 알 수 있다.
하지만 리스너 서비스를 확인해보면 노 서비스 상태임을 알 수 있다.
다시 SQL PLUS로 접속해서 DB를 올리자.
[ DB 정상 서비스 조건 ]
1. DB 정상 open
2. 리스너 프로세스 기동 및 확인
$ lsnrctl start
$ ps -ef | grep lsnr | grep -v grep
3. 리스너 서비스 확인
$ lsnrctl status
만약 putty에 접속이 안 될 경우 ip가 달라졌을 수도 있는데
그때는 리눅스에 들어가서 터미널창에서 ifconfig 입력 후 ip 확인
ip가 바뀌었다면 root유저로 변경 후 etc/hosts 의 아이피를 맞춰준다.
[ 접속에 필요한 필수 설정 파일 ]
- 위치 : $ORACLE_HOME/network/admin
1. tnsnames.ora (내가 보내는 세션)
접속할 target DB 정보를 기술하는 파일
2. sqlnet.ora (나에게 오는 세션을 결정)
외부에서의 접속 차단/허용 등을 기술하는 파일
ex) 접속허가IP, 접속허용버전
cat으로 sqlnet.ora 파일 확인해보자
상위 버전에서 낮은버전으로 접속에선 따로 sqlnet.ora 파일 수정 필요없다.
요즘엔 낮은 버전에서 허가 정도로만 사용하고 현업에선 대부분 보안 툴 이용한다.
3. listener.ora
리스너 기동에 필요한 정보를 기술하는 파일(리스너이름, hostname, 리스너포트)
[ 원격 접속 시 필요한 설정 ]
클라이언트와 서버가 통신하려면
client --------------------------------------------------------------------------------------------------------------> server
oracle 설치 필수
** tnsnames.ora 수정 sqlnet.ora 파일 수정
접속할 target DB 정보를 기술하는 파일 (ex. 12c db에 11g 접속 허가)
(target DB의 ip, 리스너 포트, sid) (더 낮은 버전에서의 접속 허가 시 필수 설정)
참고) tnsname.ora 파일에 항상 target db 에 ip, port , 인스턴스이름 확인해서 기술해야함
인스턴스 이름 확인법
ip는 ifconfig로 확인 port는 lsnrctl status 로 확인
[ oracle 접속 방식 ]
1. local 접속
- os 인증(sqlplus 권한을 가진 계정으로 접속)을 거친 계정으로 sqlplus 명령어를 통해 접속
- 리스너를 통하지 않고 직접 접속
$ sqlplus system/oracle
$ sqlplus / as sysdba ( / 는 권한 형태) root 에서 sqlplus 안됨
2. 원격 접속
- 네트워크 통신(tns 통신)을 통해 리스너를 거쳐 접속하는 형태
- 모든 서비스 요청은 원격 접속의 형태임(ex. 홈페이지에서 고객 정보 확인)
1) 접속 tool을 사용한 접속
: orange, toad, sql-developer, dbeaver
2) sqlplus
$ sqlplus system/oracle@orcl ( orcl은 tnsnames.ora 파일에 등록된 tns_alias)
방법)
우선 vi tnsnames.ora 에서 타겟 디비 정보를 수정해야한다.
저장후 나가서
접속이 되어야 한다.
[ 환경 설정 ]
필수 alias 설정
$ cd ~
$ vi .bash_profile
alias tns='cd $ORACLE_HOME/network/admin'
alias cds='cd $ORACLE_HOME'
alias alert='tail -f $ORACLE_BASE/diag/rdbms/db1/db1/trace/alert_db1.log'
다음과 같이 나와야 한다.
'Oracle' 카테고리의 다른 글
5. Redo log Buffer (0) | 2024.11.22 |
---|---|
4. Database Buffer Cache (0) | 2024.11.22 |
3. ORACLE 접속 과정, SQL 실행 과정, Shared Pool (0) | 2024.11.21 |
1. Oracle 리눅스 설치 + Oracle 12c 설치 (0) | 2024.11.20 |