반응형

📢설치환경

NodeJS : 윈도우

MongoDB : Centos6.10 (6.9 다음버전임)

(필자는 데이터베이스를 별도의 서버로 개발을 합니다)

 

📋MONGO DB 설치 (CentOS 6)

Mongo DB 설치

yum 으로 설치시 2.16 버전이 설치되고 RPM 설치시 4.0 버전으로 설치할수 있따.

yum install mongodb mongodb-server
rpm -ivh https://repo.mongodb.org/yum/redhat/6/mongodb-org/4.0/x86_64/RPMS/mongodb-org-server-4.0.7-1.el6.x86_64.rpm

yum 명령어로 설치할경우 mongodb 2.16 으로 설치가된다. node와 버전이 맞지않으면 아래와 같은 에러가 날수있다.

reports wire version 0, but this version of Node.js Driver requires at least 2 (MongoDB2.6).

 

📋 설치로그 2019-03-28

위처럼 설치하면 server는 깔리는대 client가 안깔려서 리눅스에서 mongo 명령어가 안먹힌다. 공식문서를 본 결과의 설치방법.

1. vi 편집기로 아래 글 을 넣어준다.

$ vi /etc/yum.repos.d/mongodb-org-4.0.repo

//아래 글을 복사해서 넣어준다.

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

 

2. yum 으로 install 한다

yum install -y mongodb-org

 

Mongo DB 설치 확인

[root]# service mongod status
mongod is stopped
[root@ ~]# mongod --version
[root@ ~]# mongo --version
>
db version v4.0.7
git version: 1b82c812a9c0bbf6dc79d5400de9ea99e6ffa025
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: none
build environment:
    distmod: rhel62
    distarch: x86_64
    target_arch: x86_64

 

Mongo DB 서비스 시작

[root@zetawiki ~]# service mongod start //stop , restart
Starting mongod:                                           [  OK  ]

 

▼ Mongo DB 외부 접속 허용

아래 bind_ip 를 0.0.0.0 으로 바꿔주자

vi /etc/mongodb.conf

##
### Basic Defaults
##
bind_ip = 127.0.0.1   <<------ 이부분을 0.0.0.0 으로 바꿔주자
port = 27017
fork = true
pidfilepath = /var/run/mongodb/mongodb.pid
logpath = /var/log/mongodb/mongodb.log
dbpath =/var/lib/mongodb
journal = true
.........................

 

📋 NODE JS -MongoDB 연결

MongoDB 패키지 설치 (mongoose)

npm install mongoose

요약 : mongoose 는 ODM 이다. Spring 의 iBtis 같은놈

Mogoose는 Node.js와 MongoDB를 위한 ODM(Object Data Mapping) library이다. Java 기반의 Hibernate. iBatis 등의 ORM(Object Relational Mapping)과 유사한 개념이다.

ODM은 데이터베이스와 객체지향 프로그래밍 언어 사이 호환되지 않는 데이터를 변환하는 프로그래밍 기법입니다. 즉 MongoDB 에 있는 데이터를 여러분의 Application에서 JavaScript 객체로 사용 할 수 있도록 해줍니다.

ODM의 사용은 코드 구성이나 개발 편의성 측면에서 장점이 많다. 호환성이 없는 프로그래밍언어(JavaScript) Object와 MongoDB의 데이터를 Mapping하여 간편한 CRUD를 가능하게 한다.

필요에 따라 확장 및 변경이 가능한 자체 검증(Validation)과 타입 변환(Casting)이 가능하며 Express와 함께 사용하면 MVC Concept 구현이 용이하다.

▼ MongoDB 패키지 설치 (mongoose)

npm install dotenv

 

요약 : db.properties 같은 db환경설정 을 저장하고있는 파일

node.js 로 개발을 하면서, 포트, DB 관련 정보 등 전역으로 필요한 여러 정보들이 존재한다. node.js 에서는 dotenv를 통해 환경변수 파일을 외부에 만들고, 관리할 수 있다. 특히, 깃허브 등에 오픈소스로 프로젝트를 공개할때, DB 계정 정보를 소스코드 내에 하드코딩하지 않고, 외부 환경변수 파일에 작성하고, .gitignore 을 통해 제외하면 안전하다.

 

📋 MongoDB 연결 테스트

 정상 연결시 Connected to DB 가 콘솔 출력 , 에러시 에러로그와 같이 에러출력. 아래 파일을 node로 실행시키면 된다.

 
const mongoose = require("mongoose");
mongoose.connect("mongodb://ip주소:port/we-tube",
    {
        useNewUrlParser:true,
        useFindAndModify: false
    });

    const db = mongoose.connection;
    const handleOpen = () => console.log("Connected to DB");
    const handleError = error => console.log(`Error on DB Connection:${error}`);
    db.once("open",handleOpen);
    db.on("error",handleError);

 

📋 MongoDB 설치 경로

▼ 내용

mongodb의 설정파일은 /etc/mongod.conf 경로에 있고

init스크립트는 /etc/rc.d/init.d/mongod 에 있습니다.

데이터파일은 /var/lib/mongo 경로에 저장되고

로그파일은 /var/log/mongo 여기에.

 

📋 MongoDB PORT 사용중인지 확인

lsof -i :27017

 

📋 dotenv 설정

dotenv 로 url 을 별도의 파일로 뺴낼수 있다. 스프링의 properties 와 비슷

test.js

lsof -i :27017

 

ABCDEFG.env

 

MONGO_URL = "mongodb://121.66.142.174:27017/we-tube"

 

 

 

 

반응형

'데이터베이스 > Mongo DB' 카테고리의 다른 글

MongoDB - 기본 명령어  (0) 2022.01.07
반응형

📢MongoDB - 기본 명령어

MongoDB 는 JAVASCRIPT 기반으로 만들어진 NO-SQL 이다.

그래서 기존 알고있는 RDBS 랑은 명령어가 다르다.

SQL 은 Structured query language

MongoDB 는 document 기반 nosql db

📋MONGO DB 명령어 사용법

 

 몽고db 들어가기

mongo

 

▼ 현재 저장되있는 데이터베이스 이름 목록 확인

>show dbs
////커맨드 내용/////
admin    0.000GB
config   0.000GB
local    0.000GB
we-tube  0.000GB

 

▼ 도움말

>help

 

▼ 데이터베이스 접속 (사용)

use we-tube

 

▼ 데이터베이스에 현재 있는 모델 확인

 

 show collections

 

▼ 데이터베이스에 모델 내용 확인

db.[모델명].find({})

 

▼ 데이터베이스에 모델 삭제

> db.[모델명].remove({})

 

반응형

'데이터베이스 > Mongo DB' 카테고리의 다른 글

Mongo DB - MongoDB 설치법 NODE 연결방법  (0) 2022.01.07
반응형


◎ 오라클 설치 환경

OS : CentOS6.9 x64 (정확힌 Yum update 를 해서 6.10 final 이다. 6.9도 된건 확인함) Oracle : 11gR2

◎ 오라클 설치방법

1. Oracle 설치에 필요한 rpm 패키지 설치(없으면 깐다)

아래 명령을 복붙해서 설치

yum -y install setarch make glibc libaio compat-libstdc++-33 compat-gcc-34 gcc libXp openmotif compat-db glibc-devel libstdc++-devel xscreensaver binutils compat-libcap1 gcc-c++ libaio libaio-devel sysstat

2. Oracle 설치 위한 환경 설정

# vi /etc/sysctl.conf   //아래값보다 큰 경우에만 적용

# add parameter ##################################################### fs.aio-max-nr = 1048576 fs.file-max = 6815744 #kernel.shmall = 2097152 ## 원래 있던 값이 더 커서 주석 처리 #kernel.shmmax = 536870912 ## 원래 있던 값이 더 커서 주석 처리 kernel.shmmni = 4096 # semaphores: semmsl, semmns, semopm, semmni ######################## kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default=4194304 net.core.rmem_max=4194304 net.core.wmem_default=262144 net.core.wmem_max=1048586

# /sbin/sysctl -p // 상위 설정 변경값 반영(필수) 아래와같이 뜰꺼임 (확인용도)

net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key error: "net.bridge.bridge-nf-call-iptables" is an unknown key error: "net.bridge.bridge-nf-call-arptables" is an unknown key kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586

3. JAVA 설치 (Root 계정 사용 7,8버전 추천)

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

(자바파일 설치 링크)

Aceept 체크 후 linux x86 ,64 자기의 OS의 맞춰서 Tar 로 다운 ( 저는 tar가 편해서 이렇게함)

# gunzip jdk-8-linux-i586.tar.gz # tar -xvf jdk-8-linux-i586.tar

그후 압축을 압축을 풀면 jdk1.8.0_211 폴더가 생겼을 거임 그 폴더를 원하는 경로에 넣어주고 JAVA 폴더로 심볼릭 링크를 생성하면됨. 전 /usr/ 에 옮기고 JAVA 심볼릭 링크를 만듬

# mv jdk1.8.0_211 /usr/ # cd /usr # ln -s jdk1.8.0_211 java

위와 같이 명령어를 치면 아래 처럼 구조가 되있을거임

P.S 심볼릭 링크를 만드는 이유는 여러가지가 있겠지만 나중에 JDK 버전이 업데이트 됬을 시 환경 설정을 변경하지 않고 심볼릭 링크의 내용만 수정해 주면 된답니다.

이제 설치된 JAVA 파일을 계정에 등록해줘야 사용할수 있어서 등록해줌.

# vi /etc/profile //아래 구문을 복붙 해도 됨 #javapath JAVA_HOME=/usr/java CLASSPATH=.:$JAVA_HOME/lib/tools.jar PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME CLASSPATH PATH

그리고 리눅스에 기본적으로 설정된 java 명령어 위치의 인식을 피하기 위해 /usr/bin 디렉토리의 java 파일 이름을 바꿔줍시다. 그 후 source 명령어를 사용해 /etc/profile의 내용을 현제 쉘에 적용시킵니다. 그리고 java, javac 명령어로 버전을 확인해서 설치된 버전이 출력되면 제대로 설치 된겁니다.

# mv /usr/bin/java /usr/bin/java-old # source /etc/profile # java -version # javac -version

이렇게하면 자바 설치는 완료됬습니다. 오라클설치파일은 자바로 돌아가서 자바를 설치해야 설치가 가능합니다.

4. Oracle 관리자 계정 생성 (필수)

- 그룹 생성 # groupadd oinstall # groupadd dba - 계정 생성 # useradd -g oinstall -G dba -d /home/oracle oracle - 패스워드 설정 # passwd oracle - 패스워드 정책 변경 # pwconv - 그룹 및 계정 확인 # vi /etc/group oinstall:x:501: dba:x:502:oracle # vi /etc/passwd oracle:x:501:501::/home/oracle:/bin/bash

5. Oracle 계정 Profile 수정 ( oracle 계정 사용 , 필수)

# su - oracle $ vi /home/oracle/.bash_profile // 아래와 같이 입력 ## 아래는 11g 설정 export ORACLE_HOME=/oracle export ORACLE_HOME=$ORACLE_HOME/product/11gr2 export ORACLE_SID=INFRAORA export PATH=$PATH:$ORACLE_HOME/bin # export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601 // oracle 계정이 클라이언트로 언어문제 발생시 # export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949 // 에만 세팅 수정.. 설치시 아예 빼자!!

6. Oracle 11gr2 Release 2 다운로드 및 압축 풀기(Root 계정 사용, 필수)

▼ 오라클 홈페이지 11gR2 설치링크

https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

리눅스 버전에 맞는 파일을 설치하면 되겠습니다.

이렇게 아무 폴더나 다운받으시고 2 파일의 압축을 풀어주시면 database 라는 폴더가 생길겁니다.

# unzip linux.x64_11gR2_database_1of2.zip # unzip linux.x64_11gR2_database_2of2.zip //압축이 다풀리면 원하는 경로에 database 를 가져다 놓으면 됩니다. 전 /oracle 에 옮겨놨습니다. # mv database /oracle/

7. 압축 푼 파일 database 폴더 oracle:oracle 권한 부여 (Root 계정 사용 , 필수)

# chown -R oracle.oinstall /oracle/database

8. 화면 권한 부여 (Root 계정 사용 , 필수)

# xhost + //만약 여기서 에러가 나면 터미널을 껏다가 다시 한번 시도해보시기 바랍니다. //그 이후도 안되면 에러 문구 구글 검색 하셔야 합니다 XHOST 화면권한이 안먹히는겁니다.

9. oracle 계정 선택 (필수)

- oracle 계정 사용 # su - oracle. - 한글 깨짐 방지(필요시) $ export LANG=C

10. runInstaller 실행(Oracle 계정 사용, 필수)

- 실행 $ cd /usr/local/src/database $ ./runInstaller






















11. 이메일 설정

- 이메일 설정 체크박스 해제/메시지 박스 나오면 OK.


12. 설치 옵션 선택

- Database 생성 및 구성 선택.



13. Desktop vs. Server Class 선택

- Server Class 선택.



14. DB 운영 선택

- 단독 인스턴스 DB 선택.



15. Typical vs. Advanced install 선택

- Advanced install 선택.



16. 언어 선택

- Korean 추가.



17. 에디션 선택

- Standard Edition 선택.



18. $ORACLE_HOME, $ORACLE_BASE 확인

- .bash_profile과 동일한지 확인.



19. 인벤토리 설정

- /oracle/oraInventory로 경로 설정.

- oinstall로 그룹 설정.

- 메시지 박스에서 Yes 선택.



20. 데이터베이스 타입 선택

- General Purpose / Transaction Processing 선택.



21. DB명 및 SID 설정

- 다른 인스턴스 추가가 아니라면 동일하게 입력.



22. 메모리 설정

- Enable Automatic Memory Management 체크.


23. 문자셋 선택

- KO16WIN949 선택.



24. 보안 설정

- Assert all new security settings 체크.



25. Oracle Enterprise Manager 11g Grid Control 선택

- 그냥 다음으로 PASS.



26. File Storage 선택

- File System 선택.

- /oradata 입력.



27. 자동 백업 선택

- Do not enable automated backups 선택.



28. 계정 암호 설정

- Use the same password for all accounts 선택 후 암호 입력.



29. SYSDBA, SYSOPER 그룹 선택

- 둘다 dba로 선택.



30. 설치 요구사항 체크

- 패키지가 상위버전이 깔린 경우 Failed가 뜨는 건지도...

- pdksh은 직접 받아서 깔아야 한다고도...

(http://rpm.pbone.net/index.php3/stat/4/idpl/2398776/com/pdksh-5.2.14-8.i386.rpm.html)

※ 이후 진행은 시키는 대로...


◎ 오라클 원격(외부) 접속 허용

▼ 내용

보통 linux (CentOS 6.9) 설치하면 방화벽은 따로 안막혀있다. 그런데 오라클 설치하고 원격으로 접속하려 하면 자꾸 접속이 안되있다. 리스너도 start 했고 db도 startup 했는데 원격으로 접속이 안된다면.

Port 번호가 막혀있는거다. 그래서 port번호를 열어줘야한다.

lsnrctl start //리눅스의 oracle 계정으로 실행 startup // "sqlplus / as sysdba" --db 접속후 start up //이렇게 하고도 원격으로 접속이 안된다면 방화벽 확인 후 방화벽도 정상이라면 iptables -I INPUT 1 -p tcp --dport 1521 -j ACCEPT //1521 PORT를 열어준다


반응형
반응형

◎ ORACLE 다른계정 권한주기

▼ 내용

ONE 계정의 테이블을 TWO계정에 권한을 줄려면 ONE계정으로 접속을 해서 쿼리를 날려야한다.권한을 SELECT,UPDATE,DELETE,INSERT 각각 줄수 있다.

GRANT INSERT ON [테이블이름] TO [계정이름]; GRANT DELETE ON [테이블이름] TO [계정이름]; GRANT UPDATE ON [테이블이름] TO [계정이름]; GRANT SELECT, INSERT, DELETE, UPDATE ON [테이블이름] TO [계정이름] ; //ONE계정에 USER 테이블을 TWO계정에도 권한을 주려면 아래와같이 쿼리를 날리면된다. GRANT SELECT USER TO TWO; GRANT INSERT USER TO TWO; GRANT DELETE USER TO TWO; GRANT UPDATE USER TO TWO; GRANT INSERT, DELETE, UPDATE,SELECT USER TO TWO; //TWO 계정에서 테이블 조회를 할때는 아래처럼 날려야한다 SELECT * FROM ONE.USER

◎ 오라클 계정 생성

create user [계정이름] identified by [패스워드]; -- 계정생성 grant create session to [계정이름]; --세션 권한주기

◎ 오라클 패스워드 기간 확인 및 변경

▼ 내용

오라클은 11g 로 넘어오면서 계정의 패스워드 기간을 기본값으로 180일로 지정되있다. 계정생성후 180일이 지나면 패스워드가 만료됫다고 뜹니다. 이걸 없애기 위해선 아래와같이 명령문을 날려야합니다.

select * from dba_profiles where profile = 'DEFAULT'; //-- 패스워드기간확인 기본값은 180일 alter profile default limit password_life_time unlimited; //-- unlimited 변경 (패스워드 기간의 제한이 없다란 뜻)
alter user [유저명] identified by [패스워드]; //패스워드 변경 방법

◎ 오라클 Tablespace

▼ 내용

계정을 만들떄 테이블스페이스를 지정하는 이유는 테이블들의 데이터는 파일에 쌓이는데 이파일의 이름을 tablespace로 지정하는 것이다. 그리고 그 데이터들의 보안,권한,용량 이런 처리를 위해서 별도로 테이블 스페이스로 나누는 것 이다. 아래는 다른 블로그에서 설명한 글입니다.

테이블을 저장하는 공간이란 의미도 틀린것은 아니지만 정확한 의미는 아닙니다.

오라클은 데이터베이스 관리 시스템이고 말 그대로 데이터들을 관리합니다. 즉 어딘가에 데이터들을 저장, 추출, 삭제, 변경하는 작업을 할 수 있는 것입니다. 그렇다면 데이터는 어디에 저장되는 것일까요? 물론 파일에 저장됩니다.

오라클 데이터베이스는 데이터 파일들을 가지고 있으며, 이 파일들에 데이터가 저장됩니다. 그런데 파일은 데이터가 저장되는 물리적인 공간을 말하는 것입니다.



오라클 내부에서는 데이터 블록(data block), 익스텐트(extent), 세그먼트(segment), 테이블스페이스(tablespace)라는 논리적인 개념으로 데이터 들을 관리합니다.

오라클에서 데이터를 저장하는 가장 최소의 논리적인 단위가 데이터 블록이며, 데이터 블록이 모여서 익스텐트가 되고, 익스텐트가 모여서 세그먼트, 세그먼트가 모여서 테이블 스페이스가 됩니다. 실제로 물리적인 데이터 파일(확장자가 dbf 혹은 ora인 파일)은 테이블 스페이스와 대응됩니다.

하나의 테이블 스페이스는 최소 1개의 데이터파일로 구성됩니다.

테이블 이외에도 인덱스, 프로시저, 뷰 등 다른 여러 가지 오라클 객체들이 저장됩니다.



반응형
반응형


l oracle : 11g realse2 버전사용중


◎ sessions, processes 현재 사용중인 수


▼ 내용

processes : 프로세스 수

sessions : 세션 수

CURRENT_UTILIZATION : 현재 접속 수

MAX_UTILIZATION : 오라클 기동 시점부터 지금까지 최대 접속 수

INITIAL_ALLOCATION : init.ora 파라메터에서 설정한 수치

SELECT * from v$resource_limit where resource_name in ('processes', 'sessions', 'transactions')



◎ sessions, processes 현재 날리는 쿼리

▼ 내용

아래 쿼리문중 2중 아무거나 날리면 현재 실행중인 세션이 날리는 쿼리를 알수있다.

SELECT a.sid, -- SID a.serial#, -- 시리얼번호 a.status, -- 상태정보 a.process, -- 프로세스정보 a.username, -- 유저 a.osuser, -- 접속자의 OS 사용자 정보 b.sql_text, -- sql c.program -- 접속 프로그램 FROM v$session a, v$sqlarea b, v$process c WHERE a.sql_hash_value=b.hash_value AND a.sql_address=b.address AND a.paddr=c.addr AND a.status='ACTIVE';
SELECT a.osuser ,a.SID ,a.serial# ,a.status ,b.sql_text FROM v$session a ,v$sqlarea b WHERE a.sql_address = b.address;

◎ session 접속 정보

▼ 내용

현재 접속중인 세션의 정보를 알수 있다.

SELECT username,program from v$session;

◎ sessions, processes 현재 설정된 max 수

 


▼ 내용

왼쪽은 맥스값 process 쿼리 ---------------------------------------------- 오른쪽은 맥스값 sessions 쿼리

show parameter processes; //프로세스 맥스값 조회 show parameter sessions; //세션수 맥스값 조회




◎ sessions , process 맥스값 변경

▼ 내용

최대 접속세션의 수는 다음과 같은 공식으로 이루어진다.

SESSIONS = (PROCESSES * 1.1) + 5

그러므로 processes 의 값만 변경하면 sessions 의 값은 자동으로 변경된다.

ALTER SYSTEM SET processes = 200 scope=spfile; //변경할 processes의 값을 넣어주면됨. //변경후 db 재시작 한다음 processes , sessions수 확인

세션,프로세스수 수정전




세션,프로세스수 수정후




SELECT s.status "Status", s.serial# "Serial#", s.TYPE "Type", s.username "DB User", s.osuser "Client User", s.server "Server", s.machine "Machine", s.module "Module", s.client_info "Client Info", s.terminal "Terminal", s.program "Program", p.program "O.S. Program", s.logon_time "Connect Time", lockwait "Lock Wait", si.physical_reads "Physical Reads", si.block_gets "Block Gets", si.consistent_gets "Consistent Gets", si.block_changes "Block Changes", si.consistent_changes "Consistent Changes", s.process "Process", p.spid, p.pid, si.sid, s.audsid, s.sql_address "Address", s.sql_hash_value "Sql Hash", s.action FROM v$session s, v$process p, sys.v_$sess_io si WHERE s.paddr = p.addr(+) AND si.sid(+) = s.sid AND (s.username IS NOT NULL) AND (NVL (s.osuser, 'x') <> 'SYSTEM') AND (s.TYPE <> 'BACKGROUND') ORDER BY 1;
SELECT s.INST_ID, s.SID, s.username, s.STATUS, TO_CHAR(s.SQL_EXEC_START,'yyyy.mm.dd-hh24:mi:ss') SQL_EXEC_START , TO_CHAR(TO_DATE(TRUNC( MOD(SYSDATE - s.SQL_EXEC_START,1)* 24 * 60 * 60), 'SSSSS'),'HH24:MI:SS') connect_tm , s.TERMINAL , q.sql_text, s.MODULE, s.LOGON_TIME FROM ( SELECT s.INST_ID, s.SID, s.USERNAME, s.STATUS, s.SCHEMANAME, s.MACHINE, s.TERMINAL, DECODE(s.SQL_ID,NULL, s.PREV_SQL_ID, s.SQL_ID) SQL_ID, DECODE(s.SQL_EXEC_START,NULL, s.PREV_EXEC_START, s.SQL_EXEC_START) SQL_EXEC_START , s.MODULE, TO_CHAR(s.LOGON_TIME,'yyyy.mm.dd-hh24:mi:ss') LOGON_TIME FROM GV$SESSION S WHERE ( (s.USERNAME IS NOT NULL) AND (NVL (s.osuser, 'x') <> 'SYSTEM') AND (s.TYPE <> 'BACKGROUND')) AND s.PROGRAM = 'w3wp.exe' ) s, (SELECT INST_ID, sql_id, sql_text, first_load_time FROM gv$sql) q WHERE s.INST_ID = q.INST_ID AND s.SQL_ID = q.sql_id AND (SYSDATE - s.SQL_EXEC_START) > (300 * (1/24/60/60)) ORDER BY connect_tm desc;


반응형

+ Recent posts