ORACLE/ADMIN2024. 4. 12. 07:54
반응형

Little Endian
 
• Linux on x86, x64, Alpha and Itanium
• Mac OS X on x86, x64
• OpenVMS on VAX, Alpha and Itanium
• Solaris on x86, x64, PowerPC
• Tru64 UNIX on Alpha
• Windows on x86, x64 and Itanium
 
Big Endian
 
• AIX on POWER
• AmigaOS on PowerPC and 680x0
• HP-UX on Itanium and PA-RISC
• Linux on MIPS, SPARC, PA-RISC, POWER, PowerPC, 680x0, ESA/390, and z/Architecture
• Mac OS on PowerPC and 680x0
• Mac OS X on PowerPC
• MVS and DOS/VSE on ESA/390, and z/VSE and z/OS on z/Architecture
• Solaris on SPARC

반응형
Posted by [PineTree]
ORACLE/ADMIN2024. 4. 5. 13:55
반응형

상세 내역

11g의 새로운 기능은 무엇입니까?

11g에서, RDBMS 진단 데이터는 재구성되었으며 공통 디렉토리 구조인 ADR (Automatic Diagnostic Repository)에 저장됩니다. ADR은 트레이스 파일, 경고 메시지, 사건 덤프, 핵심 파일 등을 찾을 수 있는 중앙 집중식 디렉토리 구조입니다.

자동 진단 저장소 ( ADR ) :

모든 트레이스 파일, 핵심 파일 및 경고 파일은 이제 자동 진단 저장소 (ADR)로 구성된 디렉토리 구조로 구성됩니다.

ADR은 데이터베이스 진단 데이터를 위한 파일 기반 저장소입니다. 그것은 여러 인스턴스 및 여러 제품에 걸쳐 통합 된 디렉토리 구조를 가지고 있습니다.
데이터베이스 릴리스 11g를 시작으로, 자동 스토리지 관리 (ASM), 클러스터 준비 서비스 (CRS) 및 기타 오라클 제품 또는 구성 요소 또는 모든 진단 데이터는 ADR에 저장합니다. 각 제품의 각 인스턴스는 자체 ADR 홈 디렉토리 아래에 진단 데이터를 저장합니다.
예를 들어, 공유 스토리지와 ASM이 있는 Oracle Real Application Clusters 환경에서 각 데이터베이스 인스턴스와 각 ASM 인스턴스는 ADR 내에 홈 디렉토리를 갖습니다. ADR의 통합 디렉토리 구조, 제품 및 인스턴스 전반에서 일관된 진단 데이터 형식 및 통합 된 도구 세트를 통해 고객과 Oracle Support는 여러 인스턴스에서 진단 데이터를 상호 연관시키고 분석 할 수 있습니다.

문제 및 인시던트 :

Problem : 데이터베이스에서 치명적인 오류입니다
예 : ORA-600 , ORA-7445 , ORA-4031 etc.

Problem key : 모든 문제점에는 오류 코드 (ORA-600과 같은) 및 경우에 따라 하나 이상의 오류 파라미터가 포함 된 텍스트 문자열 인 문제점 키가 있습니다.
예 : €˜ORA-4030€™ , €˜ORA-600 [ktfacht1-0]

Incident : 문제가 한 번 발생합니다. 각 인시던트에는 숫자 인시던트 ID가 있습니다.


ADR 위치 :

ADR의 위치는 Oracle "diagnostic_dest"파라미터에 의해 제어됩니다.
'diagnostic_dest'파라미터에 지정된 경로는 ADR 루트 디렉토리 인 ADR BASE를 정의합니다.
ADR(<adr_base> 디렉토리 아래) 내의 첫 번째 하위 디렉토리는 항상 "diag"

예를 들어, 'diagnostic_dest'와 그에 따른 <adr_base>가 "$ORACLE_HOME/log"로 지정되면, "$ORACLE_HOME/log/diag"하위 디렉토리를 찾으십시오. 이 아래에 <adr_home>이 있습니다.
인스턴스/구성 요소의 수에 관계없이 동일한 ADR BASE를 공유 할 수 있습니다. ADR BASE에는 개별 ADR 홈이 있습니다.
ADR BASE에서 <adr_home>의 주소는 다음과 유사합니다:
diag/<product_type>/<prod_id>/<instance_id>.
각 ADR 홈에는 특정 유형의 진단 데이터를 저장하기 위한 여러 하위 디렉토리가 있습니다. 하위 디렉토리 중 TRACE, ALERT, INCIDENT, CDUMP 등을 찾을 수 있어야 합니다.

ADR HOME 내용 :

ADR HOME 아래에 다음 디렉토리가 있습니다 -

Alert : 경고 디렉토리에는 XML 경고 로그가 있습니다

Cdump : 코어 덤프는이 디렉토리에 저장됩니다

Trace : 프로세스 트레이스 파일과 Alert.log는 트레이스 디렉토리에 저장됩니다. 'Background_dump_dest' 및 'user_dump_dest'는 이제 11g에서 무시됩니다. 이제 모든 트레이스 파일이 'trace'디렉토리에 생성됩니다.

Incident : 인시던트 디렉토리에는 심각한 오류가 발생할 때 작성된 덤프 파일이 저장됩니다.
심각한 오류 (인시던트)가 발생할 때마다 디렉터리 이름을 구성하는 데 사용되는 인시던트 ID와 함께 자체 인시던트 디렉터리가 제공됩니다.

Metadata : 메타 데이터 디렉토리에는 진단 메타 데이터가 들어있는 일련의 파일이 저장됩니다.

HM : hm 디렉토리는 상태 확인을 위한 보고서를 저장합니다

Incpkg, ir, lck, sweep : 이 디렉토리에는 내부 진단 프레임 워크 상태가 포함됩니다.


DIAGNOSTIC_DEST - 기본 값 :

환경 변수 ORACLE_BASE가 설정되면, DIAGNOSTIC_DEST는 ORACLE_BASE로 지정된 디렉토리로 설정됩니다.
환경 변수 ORACLE_BASE가 설정되어 있지 않으면, DIAGNOSTIC_DEST가 ORACLE_HOME/log로 설정됩니다.

V$DIAG_INFO :

각 데이터베이스 마다, v$diag_info를 쿼리하여 ADR 위치를 확인할 수 있습니다.
이것은 ADR 기본, ADR 홈, 트레이스 파일 위치, XML 경고 위치, 인시턴트 덤프 위치, 코어 덤프 및 상태 모니터 보고서를 보여줍니다.
또한 현재 세션에 대한 기본 세션 트레이스 및 문제 수, 데이터베이스에 보고 된 인시던트를 제공합니다.

ADR 명령 인터프리터 (ADRCI) :

ADRCI는 ADR에 액세스하는 명령 줄 유틸리티입니다.

운영 체제 명령 프롬프트에서 다음 명령을 입력하십시오:

% adrci

유틸리티가 시작되고 다음 프롬프트를 표시합니다:

adrci>

'adrci'에서 실행하여 경고 로그, 추적 파일,보고 된 사건 등을 볼 수 있는 다양한 명령이 있습니다.

ADRCI에 로그인 할 필요가 없습니다, ADR의 데이터는 진단 용도로만 사용되며, 보안을 위한 것이 아니기 때문입니다 . ADR 데이터는 ADR 디렉터리의 운영 체제 사용 권한에 의해서만 보호됩니다.

반응형
Posted by [PineTree]
ORACLE/ADMIN2024. 4. 2. 11:09
반응형

오라클 JDBC 드라이버 소개

오라클 JDBC 드라이버란 무엇인가?

JDBC 는 자바 프로그램이 테이블형태의 데이터소스를 액세스할 수 있는 API이다. JDBC 인터페이스를 사용하여 자바 프로그램에서 오라클 데이터베이스와 상호 동작할 수 있도록 오라클은 오라클 JDBC 드라이버를 제공한다.

오라클에서 제공하는 JDBC 드라이버 타입

오라클은 4가지 타입의 드라이버를 제공한다:

  • JDBC Thin client-side driver (Thin driver):
    오라클 JDBC Thin 드라이버는 JDBC 타입 4 드라이버(순수 자바로 되어있는)이다. JDBC Thin 드라이버는 오라클 서버로 직접 접속시 자바 소켓을 사용한다. JDBC Thin 드라이버는 오라클 SQL*NET/NET8의 TCP/IP 버전을 구현하여 제공한다. 순수 자바로 구현되어 있기 때문에 플랫폼에 독립적이다.
Thin 드라이버는 클라이언트쪽 사용을 위한 것이고 클라이언트쪽에 오라클 소프트웨어가 필요하지 않다.

  • JDBC OCI client-side driver (OCI driver):
    오라클 JDBC OCI 드라이버는 오라클 데이터베이스와 동작할 수 있도록 OCI(Oracle Call Interface)를 사용하여 JDBC 인터페이스를 구현한 JDBC 타입 2(네이티브 API, 일부 자바)이다. JDBC OCI 드라이버는 OCI 라이브러리에서 C 엔트리 포인트를 호출하기 위해 네이티브 메소드를 사용하기 떄문에 플랫폼에 의존적이다. Net8을 포함하여 오라클 클라이언트(또는 인스턴트 클라이언트) 설치가 필요하다.
JDBC OCI 드라이버 인터페이스는 OCI를 통해서 오라클 데이터베이스와 인터페이스하기 때문에 모든 오라클 데이터베이스 버전과 호환가능하고 IPC, named pipe, TCP/IP 및 SPX/IPX를 포함하여 설치된 Net8 아답터 모두 호환가능하다.

  • JDBC server-side Internal driver (KPRB driver):
    이 JDBC 타입 2 드라이버는 자바 스토어드 프로시저와 같은 오라클 데이터베이스 서버 JVM 안에서 수행되는 자바코드에 의해서 사용된다. JDBC 서버 드라이버는 자바 프로그램이 내부 SQL 엔진과 통신하거나 내부 데이터베이스 오브젝트  액세스 가능하도록 한다.
  • JDBC Thin server-side driver:
    이 JDBC 타입 4 드라이버는 오라클 데이터베이스 서버 JVM에서 수행되는 자바프로그램이  리모트 데이터베이스를 액세스 가능하도록 한다.

오라클 JDBC 드라이버는 어떤것들이 있는가?

오라클 JDBC 드라이버는 오라클 데이터베이스 서버와 함께 제공된다.
데이터 베이스 9.2.0.1  버전부터, 오라클 JDBC 드라이버 버전들은 다음과 같다 :

  • JDBC 9.2.0.X
  • JDBC 10.1.0.X
  • JDBC 10.2.0.X
  • JDBC 11.1.0.X
  • JDBC 11.2.0.X
  • JDBC 12.1.0.X
  • JDBC 12.2.0.X
  • JDBC 18C
  • JDBC 19C
  • JDBC 21C
  • JDBC 23C

지원되는 JDBC 드라이버 버전은 23C, 21C, 18C, 19C, 12.2 및 12.1(지원은 되지만 fix는 Extended Support가 있는 경우만 가능)입니다.

제공되는 지원 버전 및 수준에 대한 업데이트는 Oracle 평생 지원 정책을 참조하십시오.

주요 오라클 JDBC 드라이버 자바 클래스 라이브러리들은 무엇인가?

애플리케이션의 CLASSPATH에 포함되는 기본 자바 라이브러리들은 ojdbc11.jar, ojdbc10.jar, ojdbc8.jar, ojdbc7.jar, ojdbc6.jar, ojdbc5.jar, ojdbc14.jar 또는 classes12.jar이다.

일부 버전에서는 JDBC가 여러 JDK 버전을 지원한다('JDK 버전과 JDBC 드라이버 버전 호환성' 섹션 참조).

만일 애플리케이션에서 고급 데이터 타입(객체)를 사용하는 경우 nls_charset12.jar 또는 orai18n.jar 라이브러리가 CLASSPATH에 추가되어야 한다.

java.sql.SQLXML와 같은 SQL/XML 데이타베이스 타입을 사용할 경우, xdb6.jar 라이브러리가 애플리케이션 CLASSPATH에 추가되어야 한다.

JDBC OCI 네이티브 공유 라이브러리란 무엇인가 ?

네이티브 JDBC OCI 라이브러리는 :

N 이 9인 경우 JDBC 9.x.x 드라이버용
N 이 10인 경우 JDBC 10.x.x 드라이버용
N 이 11인 경우 JDBC 11.x.x 드라이버용
N 이 12인 경우 JDBC 12.x.x 드라이버용
N 이 18인 경우 JDBC 18.x.x 드라이버용
N 이 19인 경우 JDBC 19.x.x 드라이버용
N 이 21인 경우 JDBC 21.x.x 드라이버용
N 이 23인 경우 JDBC 23.x.x 드라이버용

공유 라이브러리는 데이터베이스를 액세스하기 위한 OCI 인터페이스로 불린다. 따라서 JDBC OCI 드라이버를 사용할때 윈도우의 경우 PATH 환경변수 또는 솔라리스의 경우 LD_LIBRARY_PATH 환경변수에 포함되어야 한다.
OCI 공유 라이브러리는 자바프로그램이 구동되는 JVM 타입과 매치되어야한다. 32 bit (/64 bit) JVM 은  32 bit (/64 bit) OCI 공유 라이브러리와 매칭되어야 한다.

JDK 버전과 JDBC 드라이버 버전 호환성

 JDBC FAQ on Oracle Technology Network (OTN) 에서, OCI 드라이버 또는 Thin JDBC 드라이버 버전이 다음 JDK 버전을 지원하는 것을 확인할 수 있다 :

JDBC Version JDK version JDBC File Name
23c 8.x
11.x
12.x
13.x
14.x
15.x
17.x
ojdbc8.jar
ojdbc8.jar, ojdbc11.jar
ojdbc8.jar, ojdbc11.jar
ojdbc8.jar, ojdbc11.jar
ojdbc8.jar, ojdbc11.jar
ojdbc11.jar
21c 8.x
11.x
12.x
13.x
14.x
15.x
17.x
ojdbc8.jar
ojdbc8.jar, ojdbc11.jar
ojdbc8.jar, ojdbc11.jar
ojdbc8.jar, ojdbc11.jar
ojdbc8.jar, ojdbc11.jar
ojdbc8.jar, ojdbc11.jar
ojdbc11.jar
ojdbc11.jar
19c 8.x
9.x
10.x
11.x
17.x
ojdbc8.jar        
     ojdbc8.jar        
ojdbc10.jar 
ojdbc8.jar, ojdbc10.jar ***  
ojdbc8.jar, ojdbc10.jar 
18c 8.x
9.x
10.x
11.x
ojdbc8.jar
12.2.0 8.x ojdbc8.jar
12.1.0   8.x  
7.x
6.x
ojdbc7.jar
ojdbc7.jar
ojdbc6.jar
11.2.0      8.x **
     7.x **
6.x
5.x
ojdbc6.jar
ojdbc6.jar
ojdbc6.jar
ojdbc5.jar
11.1.0 6.x
5.x
ojdbc6.jar
ojdbc5.jar
10.2.0 1.2.x
1.3.x
1.4.x
5.x
classes12.jar
classes12.jar
ojdbc14.jar
ojdbc14.jar
10.1.0

1.2.x
1.3.x
1.4.x
classes12.jar
classes12.jar
ojdbc14.jar
9.2.0 1.1.x
1.2.x
1.3.x
1.4.x
classes111.zip*
classes12.zip*
classes12.zip*
ojdbc14.jar

*  9.2.0.7.0 버전부터 zip 파일들이 jar 파일로 변경되었다.

** 오라클 JDBC 드라이버 11.2.0.3  (와 그이상) 버전만 JDK 7과 JDK 8를 지원.

예시:
- JDK 버전이 6.0.x인 경우, 11.2 JDBC 버전 사용시, 사용 가능한 JDBC 라이브러리는 ojdbc6.jar 파일이다.

- JDK version is 5.0.x, 10.2 JDBC 버전 사용시, 사용 가능한 JDBC 라이브러리는 ojdbc14.jar 파일이다.

*** 19C 버전은:

(a) ojdbc8.jar (JDK8 (JDBC 4.2) 에서 컴파일 되었으며 JDK9,JDK11와 사용 가능하다) 

(b) ojdbc10.jar (JDK10 (JDBC 4.3) 에서 컴파일 되었으며 JDK11와 사용 가능하다).

JDK11을 사용하는 경우 ojdbc8.jar은 4.3 기능을 모두 포함하므로 더 나은 선택입니다. ojdbc10.jar은 표준 Java SE를 통해 사용 가능한 JDBC 4.3 기능이 필요한 경우에만 사용할 수 있습니다..

예시:

ojdbc8.jar:

Connection conn = DriverManager.getConnection(. . .); //  beginRequest은 java 8에 포함되지 않기 때문에 conn.beginRequest(); 은 실패합니다.
((OracleConnection)conn).beginRequest(); //  Oracle extension 에서 beginRequest가 지원되므로 성공합니다.

ojdbc10.jar:
Connection conn = DriverManager.getConnection(. . .); conn.beginRequest(); //   beginRequest은   Java 10 에 포함되므로 성공합니다
((OracleConnection)conn).beginRequest(); //   OracleConnection는 JDBC 4.3 (in Java 10) 를 지원하고  beginRequest는 JDBC 4.3의 기능이므로 성공합니다.

 

추가 참고 사항
- 11g JDBC 드라이버는 JDK 5 또는 JDK 6에서만 인증되었습니다.
- Oracle Database 12c 릴리스 2(12.2.0.1)에서 Oracle JDBC 드라이버는 더 이상 JDK 7 또는 이전 버전을 지원하지 않습니다.
- 또한 classes12.jar, oracle.jdbc.driver 및 OracleConnectionCacheImpl의 지원 중단에 유의하십시오.

Since Server Thin Driver and Server Internal Driver are running within the Oracle Server, those drivers support the Oracle JVM version:

 

Oracle 9i R1 supports J2SE 1.2
Oracle 9i R2 supports J2SE 1.3
Oracle 10g supports J2SE 1.4
Oracle 11g supports J2SE 1.5

JDBC 드라이버와 접속하는 데이터베이스와의 호환 관계?

정확한 정보 확인을 위해서는 사용하는 JDBC 버전의 JDBC 개발자 가이드 또는 레퍼러스 문서 확인이 필요하다. JDBC 개발자 가이드와 11g 릴리즈 레퍼런스 문서에 다음과 같이 언급되어있다:

이전 버전과의 호환성
오라클 데이터베이스 12c 릴리즈 1 (12.1) JDBC 드라이버는 오라클 데이터베이스 릴리즈(11.x.0.x)와 호환된다. 그러나  10.2.x, 10.1.x, 9.2.x, 및 9.0.1.x와 같은 지원 중단된 예전 버전들과는 호환되지 않는다.

이후 버전과의 호환성
기존 및 지원되는 JDBC 드라이버는 오라클 데이터베이스 12c 릴리즈 1 과 호환된다.
주요 기능은 동작하더라도 데이터베이스의 새로운 기능은 이전 드라이버에서 사용할 수 없는 경우가 발생할 수 있다. 따라서 데이터베이스 버전과 JDBC 드라이버 버전은 적어도 동일한 버전 사용을 권고한다.


아래 note를 참고하여 오라클 클라이언트(오라클 JDBC 드라이버)버전과 오라클 서버 간의 상호 호환성에 대하여 확인가능하다:
Note 207303.1 : Client / Server / Interoperability Support Between Different Oracle Versions

다음은 JDBC 드라이버가 오라클 데이터베이스에 액세스할 수 있는 호환 정보이다 :

JDBC drivers Oracle database
23c 23c
21c
19c
18c
12.2.0
12.1.0
21.c 21c
19c
18c
12.2.0
12.1.0
19.c 21c
19c
18c
12.2.0
12.1.0
11.2.0
18.c 21c
19c
18c
12.2.0
12.1.0
11.2.0
12.2.0 21c
19c
18c
12.2.0
12.1.0
11.2.0
12.1.0 21c
19c
18c
12.2.0
12.1.0
11.2.0
11.1.0
11.2.0

 19c*
 18c*
 12.2.0*
12.1.0
11.2.0
11.1.0
10.2.0
10.1.0
9.2.0
11.1.0 12.1.0
11.2.0
11.1.0
10.2.0
10.1.0
9.2.0
10.2.0 12.1.0
11.2.0
11.1.0
10.2.0
10.1.0
9.2.0
10.1 11.2.0
11.1.0
10.2.0
10.1.0
9.2.0
9.2.0

11.2.0
11.1.0
10.2.0
10.1.0
9.2.0

 

 중요 :이 매트릭스에는 이전 버전의 JDBC 및 더 이상 지원되지 않거나 확장 지원을 통해서만 지원되는 데이터베이스에 대한 인증 정보가 포함되어 있습니다. 그것들은 완전성을 위해 여기에 포함됩니다. 지원되는 클라이언트 / 서버 상호 운용성 목록은 NOTE:207303.1" target="_blank">207303.1> : Client / Server / Interoperability Support Between Different Oracle Versions를 참고하십시오 

 

주의 : 

* 11.2.0.3 또는 11.2.0.4 만 해당

자바 JDBC 라이브러리 얻는 방법 ?

자바 JDBC 라이브러리는 세 가지 방법으로 얻을 수 있다:

 

또한 오라클 JDBC 드라이버는 퓨젼 미들웨어 제품과 같은 오라클 제품에 포함 될 수 있다.  이런 경우 오라클 JDBC 드라이버 호환 및 업그레이드에 대한 문의는 해당 오라클 제품 문서를 참조할 수 있다.

JDBC 드라이버 설치 방법?

문서, Javadoc, 예제와 같은 JDBC 드라이버 리소스를 어디서 찾을 수 있는가?

JDBC 드라이버 버전과 관련된, 다음 리소스들이 존재한다 :

예를 들면, 오라클 데이터베이스  JDBC Developer's Guide and Reference 11g Release 2 (11.2)

 

JDBC Developer's Guide and Reference 12c Release 1 (12.1)

새로운 기능
주요 버그 수정
드라이버 버전
환경 설정법
유용한 힌트들
JDBC javadoc과  데모, Readme 파일들은 JDBC download page 에도 제공된다. 더 자세한 내용은 Oracle JDBC page 에서 확인할 수 있다.

어떤 오라클 JDBC 드라이버부터 사용해야하는가?

10g JDBC Thin 드라이버는 JDBC OCI 드라이버와 거의 동일한 기능을 제공한다(TAF기능과 같이 오라클 JDBC OCI 드라이버에서만 제공되는 몇가지 기능 예외). Thin 드라이버는 JDBC 자바 라이브러리만 (JDBC OCI드라이버는 전체 오라클 또는 인스턴트 클라이언트 설치가 필요한 반면) 필요하다. 10g JDBC Thin 드라이버 버전부터, 오라클 JDBC 드라이버는 오라클 데이터베이스를 액세스하기 위한 더 빠른 프로토콜(OCI/TTC 8)을 사용한다. JDBC thin 드라이버의 한가지 제약조건은 데이터베이스를 액세스하기 위해 TCP/IP 프로토콜을 사용하는 것이다.

따라서,  11g R2(10g 또는) 또는 12c R1 JDBC thin 드라이버를 사용하는 것이 좋다.

JDBC 애플리케이션 수행하기

JDBC 애플리케이션을 수행하기 위한 환경 설정 방법?

클라이언트쪽  JDBC 프로그램 (OCI 또는 Thin 타입)을 수행하기 위해, 오라클 JDBC 자바 라이브러리가 CLASSPATH에 추가되어야 한다.
오라클 JDBC OCI 드라이버를 사용한다면, JDBC 드라이버와 정확하게 일치하는 버전의 오라클 클라이언트 설치가 필요하다. JDBC 프로그램이 수행되는 플랫폼 환경에 따라, 오라클 JDBC OCI 공유 라이브러리가 저장된 디렉토리를 PATH (윈도우즈), LD_LIBRARY_PATH (유닉스) or LIBPATH (AIX)에 추가해야한다.
추가로, 64 비트 플랫폼에서는 32 비트 JVM - 자바 실행파일이 32 bit 또는 64 비트 JVM - 자바 실행파일이 64bit 사용 여부에 대한 선택의 여지가 있을 수 있다.
64 비트 JVM을 JDBC OCI 드라이버와 사용하고자 한다면, JDBC OCI 공유 라이브러리는 64 비트 라이브러리여야 한다.
이와 유사하게, 32 비트 JVM을 오라클 JDBC OCI 드라이버와 사용하고자 한다면, JDBC OCI 공유 라이브러리는 32 비트 라이브러리여야 한다


아래는 10.2 JDBC 드라이버 사용에 대한 예제 설정이다 :

- JDK 1.2 또는 1.3을 사용하는 경우, [ORACLE_HOME]\jdbc\lib\classes12.jar 를  CLASSPATH에 추가한다.
   JDK 1.4를 사용한다면, [ORACLE_HOME]\jdbc\lib\ojdbc14.jar를 CLASSPATH에 추가한다.
- 필요하다면 [ORACLE_HOME]\jlib\orai18n.jar를 CLASSPATH에 추가한다.
- JDBC OCI 드라이버를 사용한다면, [ORACLE_HOME]\bin을 PATH에 추가한다.

-  JDK 1.2 또는 1.3을 사용하는 경우, [ORACLE_HOME]/jdbc/lib/classes12.jar를 CLASSPATH에 추가한다.
   JDK 1.4를 사용한다면 [ORACLE_HOME]/jdbc/lib/ojdbc14.jar를 CLASSPATH에 추가한다.
-  필요하다면 [ORACLE_HOME]/jlib/orai18n.jar를  CLASSPATH에 추가한다.
-  JDBC OCI 드라이버를 사용한다면, [ORACLE_HOME]/lib을 LD_LIBRARY_PATH에 추가한다.

solaris 64 플랫폼에서 64 비트 오라클 설치된 경우:
- 오라클 JDBC OCI 드라이버 사용을 위해 32 비트 JVM을 사용하는경우,  $ORACLE_HOME/lib32를 LD_LIBRARY_PATH에 추가한다.
- 오라클 JDBC OCI 드라이버 사용을 위해 64 비트 JVM을 사용하는경우,  $ORACLE_HOME/lib를 LD_LIBRARY_PATH에 추가한다.

어떤 오라클 JDBC 팩키지를 import 가능한가 ?

다음과 같은 팩키지들을 import 할 수 있다:

oracle.jdbc.*;
oracle.jdbc.pool.*;
oracle.sql.*;

그러나 oracle.jdbc.driver.* 팩키지는 import 하지 말아야한다. 9iR1부터 사용되지않으며(deprecated), 향후 지원되지 않는다.
이 제품의 지원중단 공지사항에 대해서 다음 문서를 참조할 수 있다:
Document 1439541.1 : The oracle.jdbc.driver was "deprecated" in 9.0.1 and "desupported" in 11.1.

오라클 JDBC 드라이버 API를 사용하여 JDBC 연결을 얻는 방법 ?

기본적으로, 오라클 JDBC 드라이버를 등록한 후에, java.sql.DriverManager의 getConnection() 메소드 호출을 통해 JDBC 연결을 생성할 수 있다.

...
DriverManager.registerDriver(new oracle.jdbc.OracleDriver() );
Connection conn = DriverManager.getConnection( dbUrl, <User>, <Password>);
...

OracleDataSource의 getConnection 메소드를 사용하는 경우 좀 더 유연한 방법을 제공한다:

 

...
ds = new oracle.jdbc.pool.OracleDataSource();
ds.setURL(dbUrl);
Connection conn = ds.getConnection(<User>, <Password>);
... 

 

10g JDBC 드라이버부터, 암시적 연결 캐싱 메커니즘을 제공한다.

오라클 데이터베이스 11g Release 2 (11.2)부터,  암시적 연결 캐싱 기능은 사용되지(deprecated)않는다. 그리고, 오라클은 JDBC의 Universal Connection Pool (UCP) 사용을 권고한다.

오라클 JDBC 연결 URL은 무엇인가 ?

연결 URL은 연결하고자 하는 오라클 데이터베이스의 주소를 정의한다:
                  jdbc:oracle:<drivertype>:<username>/<password>@<database>

오라클 드라이버 타입에 따라, 다음과 같은 URL 형식을 가진다 :

데이터베이스 위치는:
  • 엔트리 이름은 tnsnames.ora에 정의된다
    이것은 TNS_ADMIN 환경 변수 설정이 필요할 수 있다.
  • 리스너의 위치와 서비스 이름을 정의된 디스크립터.
  • //<host>[:<port>]/<service>

    <host>는 오라클 데이터베이스 서버의 호스트 이름 또는 IP 주소
    <port> 는 오라클 리스너의 포트 번호
    <service>는 오라클 데이터베이스의 서비스 이름.
데이터베이스 위치는:
  • 리스너의 위치와 서비스 이름을 정의된 디스크립터.
  • //<host>[:<port>]/<service>

    <host>는 오라클 데이터베이스 서버의 호스트 이름 또는 IP 주소
    <port>는 오라클 리스너의 포트 번호
    <service>는 오라클 데이터베이스의 서비스 이름.

JDBC 연결은 동시에 2개의 자바 쓰레드에서 공유될 수 있는가 ?

하나의 쓰레드가 한번에 JDBC 연결 및 관련 객체에 접근해야한다:

"여러개의 스레드가 동시에 하나의 연결을 액세스 하지 않도록 하십시오.  만일 여러개의 스레드가 하나의 연결을 공유해야한다면 disciplined begin-using/end-using 프로토콜을 사용하십시오."
(JDBC 개발자 및 레퍼런스 가이드에서의 코딩 팁)

 

반응형
Posted by [PineTree]
ORACLE/ADMIN2024. 3. 27. 15:00
반응형

acfs는 오라클에서 데이터 파일을 제외한 다른 용도로 사용 할수 있는 클러스터 공유 볼륨 입니다,

아카이브로그 경로나 일반 트레이스 로그 경로 ,데이타펌프 경로 용도로 사용 가능 합니다.

 

선 작업

AFD 볼륨을 구성하거나 asmlib 사용을 통한 볼륨을 미리 만들어 놔야 한다.

 

[root@brac1 ~]# asmcmd afd_lslbl
--------------------------------------------------------------------------------
Label                     Duplicate  Path
==============================================
CRS1                                  /dev/sdb
CRS2                                  /dev/sdc
CRS3                                  /dev/sdd
DATA1                                 /dev/sdh
DATA2                                 /dev/sdi
FRA1                                  /dev/sdj
GIMR1                                 /dev/sde
GIMR2                                 /dev/sdf
GIMR3                                 /dev/sdg

 

0.ASMCA 실행

asmca

설정 에서 root 패스워드 입력

 

디스크 그룹 생성  여기서는 디스크그룹  생성 

볼륨 생성

볼륨생성 arch_vol1 디스크그룹이름은 ARCH 대상크기 10GB 설정

 

 

서버 1,2 에서 마운트할  디렉토리 생성

mkdir /arch

 

 

acfs 볼륨 생성 확인

1,2번 서버에서 마운트

 

touch 명령어로 aaa 파일 1번 서버에서 실행 했고 2번 서버에서도 aaa 확인 

 

볼륨리사이즈 

 

온라인 상태에서 디스크 그룹 크기만큼 사이즈 변경 가능 

 

 

사이즈 40G -> 45G 변경 하고 확인 누르면  가능


Filesystem              Size  Used Avail Use% Mounted on
devtmpfs                4.9G   36K  4.9G   1% /dev
tmpfs                   8.0G  1.4G  6.7G  17% /dev/shm
tmpfs                   4.9G  9.7M  4.9G   1% /run
tmpfs                   4.9G     0  4.9G   0% /sys/fs/cgroup
/dev/mapper/rhel-root    90G   51G   40G  57% /
/dev/sda1               595M  226M  369M  38% /boot
share                   1.9T  1.5T  376G  80% /SW
tmpfs                   998M     0  998M   0% /run/user/1001
tmpfs                   998M   24K  998M   1% /run/user/0
tmpfs                   998M   12K  998M   1% /run/user/42
/dev/asm/arch_vol1-424   40G  631M   40G   2% /arch
[root@brac1 ~]# df -h

Filesystem              Size  Used Avail Use% Mounted on
devtmpfs                4.9G   36K  4.9G   1% /dev
tmpfs                   8.0G  1.4G  6.7G  17% /dev/shm
tmpfs                   4.9G  9.7M  4.9G   1% /run
tmpfs                   4.9G     0  4.9G   0% /sys/fs/cgroup
/dev/mapper/rhel-root    90G   51G   40G  57% /
/dev/sda1               595M  226M  369M  38% /boot
share                   1.9T  1.5T  376G  80% /SW
tmpfs                   998M     0  998M   0% /run/user/1001
tmpfs                   998M   24K  998M   1% /run/user/0
tmpfs                   998M   12K  998M   1% /run/user/42
/dev/asm/arch_vol1-424   45G  641M   45G   2% /arch

 

반응형
Posted by [PineTree]
ORACLE/ADMIN2024. 3. 27. 14:20
반응형

 

Oracle 문서에는 공식적으로 12c R2 (12.2.0.1) 버전에서 추가된 파라미터 입니다. (공식 문서 링크 – https://docs.oracle.com/en/database/oracle/oracle-database/12.2/refrn/ALLOW_GROUP_ACCESS_TO_SGA.html)

그런데 실제로는 12.1.0.2 버전의 2016년 7월 PSU패치에 포함되었고, 해당 패치에는 두 개의 파라미터가 추가 되었습니다.

 

1.9 ALLOW_GROUP_ACCESS_TO_SGA

ALLOW_GROUP_ACCESS_TO_SGA controls group access to shared memory on UNIX platforms.

PropertyDescription
Parameter type Boolean
Default value false
Modifiable No
Modifiable in a PDB No
Range of values true | false
Basic No
Oracle RAC The same value must be used on all instances.

The default value is false, which means that database shared memory is created with owner access only. In Oracle Database releases prior to Oracle Database 12c Release 2 (12.2.0.1), database shared memory was created with owner and group access.

When this parameter is set to true, database shared memory is created with owner and group access. This behavior grants permissions to DBAs to manage shared memory outside the database, but also allows DBAs to read and write to shared memory, which may not be desirable for certain installations.

Note:This initialization parameter is available starting with Oracle Database 12c Release 2 (12.2.0.1).

 

무슨 말이냐 하면 기존 12c R2 이전 버전까지는 모두 allow_group_access_to_sga 파라미터가 따로 없이 12c R2의 allow_group_access_to_sga=TRUE 상태와 동일한 상태였다는 말입니다.

False 값은 DB의 공유 메모리에 대한 접근을 오직 생성한 Owner 계정의 권한으로만 접근할수 있는 것이고, TRUE의 값은 Owner와 Group에 대한 엑세스가 가능하기 때문에 Owner 계정이 아니더라고, 동일한 그룹의 다른 계정이 공유 메모리에 접근할 수 있다는 이야기 입니다.

엑셈의 Maxguage 설치시 해당 파라미터를 TRUE로 변경하는 옵션은 12.1.0.2 PSU 2016 July 이상 버전에서만 하면 됩니다.

allow_group_access_to_sga 파라미터를 TRUE로 변경하는 작업은 DB를 재구동이 필요하기 때문에 주의 하시기 바랍니다.

 

참조 

https://rastalion.me/oracle-12c-r2%EC%9D%98-allow_group_access_to_sga-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0/

 

Oracle 12c R2의 allow_group_access_to_sga 파라미터 - RastaLion IT Blog

  allow_group_access_to_sga Oracle 문서에는 공식적으로 12c R2 (12.2.0.1) 버전에서 추가된 파라미터 입니다. (공식 문서 링크 – https://docs.oracle.com/en/database/oracle/oracle-database/12.2/refrn/ALLOW_GROUP_ACCESS_TO_SGA.htm

rastalion.me

 

반응형
Posted by [PineTree]
ORACLE/ADMIN2024. 3. 22. 11:14
반응형

항목별 오라클 로그 위치

참조 

https://forums.oracle.com/ords/apexds/post/oracle19-rac-logs-location-and-content-3795

 

Oracle19 RAC logs location and content

Hi,With Oracle19c RAC we have three important levels op components to monitor:- The Clusterware itself- THE ASM instance- The DBMS instances- The PDB databasesDoes someone know what and were are the m...

forums.oracle.com

 

=> CRS: $ORACLE_BASE/diag/crs/<hostname>/crs/trace/alert.log

=> ASM: $ORACLE_BASE/diag/+asm/<ASM_SID>/trace/alert_<ASM_SID>.log

=> RDBMS-Instances: $ORACLE_BASE/rdbms/<DB_NAME>/<DB_SID>/trace/alert_<DB_SID>.log

=> PDBs: There is not specific log for PDBS. Please see the alert.log of the corresponding RDBMS instances

반응형
Posted by [PineTree]
ORACLE/INSTALL2024. 3. 19. 15:02
반응형

[+ASM1:/home/oracle]> opatch lspatches
36115038;TOMCAT RELEASE UPDATE 19.0.0.0.0 (36115038)
35967489;OCW RELEASE UPDATE 19.22.0.0.0 (35967489)
35956421;ACFS RELEASE UPDATE 19.22.0.0.0 (35956421)
35943157;Database Release Update : 19.22.0.0.240116 (35943157)
33575402;DBWLM RELEASE UPDATE 19.0.0.0.0 (33575402)

OPatch succeeded.

 

grid setup

  • policycoreutils-python  policycoreutils-python-utils  python3-policycoreutils 패키지로 교체되었습니다.
  • [root@brac1 ~]# rpm -qa |grep policycoreutils
    python3-policycoreutils-2.9-20.el8.noarch
    policycoreutils-2.9-20.el8.x86_64
    policycoreutils-python-utils-2.9-20.el8.noarch

rpm 무시

 

DBCA

 

 

 

반응형
Posted by [PineTree]
NAS2024. 3. 16. 20:22
반응형

헤놀로지 7버전 대에서 Synology Photo에서 얼굴 인식이 되지 않는다.

 

첫번째 방법은 아래 링크를 참조해서 하면 된다.

https://svrforum.com/nas/769287

 

DSM 7에서 얼굴인식 패치 좀더 쉽게하기.

안녕하세요. 달소입니다. DSM7이나온지도 어언 2년이 넘은시간이 지났고 많은 로더들과 패치들이 나오면서 편의성이 증대되었습니다. 예전에 얼굴인식 글도 올렸던것도 아직 유효하게 잘 돌아가

svrforum.com

두번째 방법은

 

ssh 설정이 되어 있다면  secureCRT나 MobaXerm 같은 터미널로 나스에 접속 후

root로 로그인

sudo -i

wget https://github.com/jinlife/Synology_Photos_Face_Patch/releases/latest/download/libsynophoto-plugin-platform.so -O /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-platform.so && synopkgctl stop SynologyPhotos && synopkgctl start SynologyPhotos

 

============================================================================================

root@pinetree:~# wget https://github.com/jinlife/Synology_Photos_Face_Patch/releases/latest/download/libsynophoto-plugin-platform.so -O /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-platform.so && synopkgctl stop SynologyPhotos && synopkgctl start SynologyPhotos


--2024-03-16 17:20:15--  https://github.com/jinlife/Synology_Photos_Face_Patch/releases/latest/download/libsynophoto-plugin-platform.so
Resolving github.com... 20.200.245.247
Connecting to github.com|20.200.245.247|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github.com/jinlife/Synology_Photos_Face_Patch/releases/download/1.6.2-0710/libsynophoto-plugin-platform.so [following]
--2024-03-16 17:20:15--  https://github.com/jinlife/Synology_Photos_Face_Patch/releases/download/1.6.2-0710/libsynophoto-plugin-platform.so
Reusing existing connection to github.com:443.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/427656569/d266da4b-82aa-4df6-82e1-2b77af8cd941?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240316%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240316T082015Z&X-Amz-Expires=300&X-Amz-Signature=3408033277df6796b9d5ff8b9b47bb911402e7b9d28b6080196be8588905d461&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=427656569&response-content-disposition=attachment%3B%20filename%3Dlibsynophoto-plugin-platform.so&response-content-type=application%2Foctet-stream [following]
--2024-03-16 17:20:15--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/427656569/d266da4b-82aa-4df6-82e1-2b77af8cd941?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240316%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240316T082015Z&X-Amz-Expires=300&X-Amz-Signature=3408033277df6796b9d5ff8b9b47bb911402e7b9d28b6080196be8588905d461&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=427656569&response-content-disposition=attachment%3B%20filename%3Dlibsynophoto-plugin-platform.so&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com... 185.199.108.133, 185.199.109.133, 185.199.110.133, ...
Connecting to objects.githubusercontent.com|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 41258 (40K) [application/octet-stream]
Saving to: '/var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-platform.so'

/var/packages/SynologyPhotos/targ 100%[============================================================>]  40.29K  --.-KB/s    in 0.1s    

2024-03-16 17:20:17 (313 KB/s) - '/var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-platform.so' saved [41258/41258]

======== stop SynologyPhotos ========
======== start SynologyPhotos ========
root@pinetree:~#

======================================================================================

이렇게 하면 헤놀로지 서버에서 얼굴 인식을 다시 시작한다.

 

반응형
Posted by [PineTree]
ORACLE/ADMIN2024. 2. 23. 16:23
반응형

버추얼박스 사용

vboxmanage createmedium --filename IMSI1.vdi --size 1024 --format VDI --variant Fixed
vboxmanage createmedium --filename IMSI2.vdi --size 1024 --format VDI --variant Fixed
vboxmanage createmedium --filename IMSI3.vdi --size 1024 --format VDI --variant Fixed

 

공유 및  서버에 할당
vboxmanage modifymedium IMSI1.vdi --type shareable
vboxmanage modifymedium IMSI2.vdi --type shareable
vboxmanage modifymedium IMSI3.vdi --type shareable

 

 

공유볼륨 IMSI1~3 추가


[root@rac2 ~]# fdisk -l

Disk /dev/sdj: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdi: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdh: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

fdisk /dev/sdh

[root@rac2 ~]# fdisk /dev/sdh
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x853b6083.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-2097151, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): 
Using default value 2097151
Partition 1 of type Linux and of size 1023 MiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
.

.

.


fdisk /dev/sdi
fdisk /dev/sdj

ASM 디스크 생성


[root@rac2 ~]# oracleasm createdisk  IMSI1 /dev/sdh1

Writing disk header: done
Instantiating disk: done
[root@rac2 ~]# oracleasm createdisk  IMSI2 /dev/sdi1
Writing disk header: done
Instantiating disk: done
[root@rac2 ~]# oracleasm createdisk  IMSI3 /dev/sdj1
Writing disk header: done
Instantiating disk: done


-- RAC 모든 노드에서 실행1,2
[root@rac1 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "IMSI3"
Instantiating disk "IMSI2"
Instantiating disk "IMSI1"
[root@rac2 ~]# oracleasm listdisks
CRS1
CRS2
CRS3
DATA
DATA2
FRA
IMSI1
IMSI2
IMSI3

[root@rac2 ~]# kfod ds=true disks=all group=diskgroup
--------------------------------------------------------------------------------
 Disk          Size Path                                    Disk Group    User     Group   
================================================================================
   1:       1023 MB /dev/oracleasm/disks/CRS1                CRS          oracle   asmadmin
   2:       1023 MB /dev/oracleasm/disks/CRS2                CRS          oracle   asmadmin
   3:       1023 MB /dev/oracleasm/disks/CRS3                CRS          oracle   asmadmin
   4:      30719 MB /dev/oracleasm/disks/DATA                DATA         oracle   asmadmin
   5:      50999 MB /dev/oracleasm/disks/DATA2               DATA         oracle   asmadmin
   6:      20479 MB /dev/oracleasm/disks/FRA                 FRA          oracle   asmadmin
   7:       1023 MB /dev/oracleasm/disks/IMSI1               #            oracle   asmadmin
   8:       1023 MB /dev/oracleasm/disks/IMSI2               #            oracle   asmadmin
   9:       1023 MB /dev/oracleasm/disks/IMSI3               #            oracle   asmadmin
KFOD returned no data
 
디스크그룹 생성

/dev/oracleasm/disks/IMSI1 , /dev/oracleasm/disks/IMSI2 2개 추가
SQL> create diskgroup IMSI external redundancy disk '/dev/oracleasm/disks/IMSI1','/dev/oracleasm/disks/IMSI2';
Diskgroup created.

SQL> set linesize 200
SQL> set pages 100   
SQL> col disk_group_name for a15
SQL> col disk_path for a40
SQL> col disk_name for a20
SQL> col disk_fail_group for a20
SQL> 
SQL> SELECT
  2          NVL(a.name, '[CANDIDATE]') disk_group_name ,
  3          b.path                     disk_path       ,
  4          b.name                     disk_name       ,
  5          b.failgroup                disk_fail_group ,
  6          b.os_mb
  7  FROM
  8          v$asm_diskgroup a,
  9          v$asm_disk      b
 10  WHERE
 11          a.group_number(+) = b.group_number
 12  ORDER BY
 13          a.name,
 14          b.name,
 15          b.path;

DISK_GROUP_NAME DISK_PATH                                DISK_NAME            DISK_FAIL_GROUP           OS_MB
--------------- ---------------------------------------- -------------------- -------------------- ----------
CRS             /dev/oracleasm/disks/CRS1                CRS_0000             CRS_0000                   1023
CRS             /dev/oracleasm/disks/CRS3                CRS_0001             CRS_0001                   1023
CRS             /dev/oracleasm/disks/CRS2                CRS_0002             CRS_0002                   1023
DATA            /dev/oracleasm/disks/DATA2               DATA2                DATA2                     50999
DATA            /dev/oracleasm/disks/DATA                DATA_0000            DATA_0000                 30719
FRA             /dev/oracleasm/disks/FRA                 FRA_0000             FRA_0000                  20479
IMSI            /dev/oracleasm/disks/IMSI1               IMSI_0000            IMSI_0000                  1023
IMSI            /dev/oracleasm/disks/IMSI2               IMSI_0001            IMSI_0001                  1023
[CANDIDATE]     /dev/oracleasm/disks/IMSI3                                                               1023

9 rows selected.

디스크그룹에 추가

SQL> alter diskgroup IMSI add disk '/dev/oracleasm/disks/IMSI3' rebalance power 1024;
SQL> set linesize 200
SQL> set pages 100   
SQL> col disk_group_name for a15
SQL> col disk_path for a40
SQL> col disk_name for a20
SQL> col disk_fail_group for a20
SQL> 
SQL> SELECT
  2          NVL(a.name, '[CANDIDATE]') disk_group_name ,
  3          b.path                     disk_path       ,
  4          b.name                     disk_name       ,
  5          b.failgroup                disk_fail_group ,
  6          b.os_mb
  7  FROM
  8          v$asm_diskgroup a,
  9          v$asm_disk      b
 10  WHERE
 11          a.group_number(+) = b.group_number
 12  ORDER BY
 13          a.name,
 14          b.name,
 15          b.path;

DISK_GROUP_NAME DISK_PATH                    DISK_NAME    DISK_FAIL_GROUP        OS_MB
--------------- ---------------------------- ------------ ----------------- ----------
CRS             /dev/oracleasm/disks/CRS1    CRS_0000     CRS_0000                1023
CRS             /dev/oracleasm/disks/CRS3    CRS_0001     CRS_0001                1023
CRS             /dev/oracleasm/disks/CRS2    CRS_0002     CRS_0002                1023
DATA            /dev/oracleasm/disks/DATA2   DATA2        DATA2                  50999
DATA            /dev/oracleasm/disks/DATA    DATA_0000    DATA_0000              30719
FRA             /dev/oracleasm/disks/FRA     FRA_0000     FRA_0000               20479
IMSI            /dev/oracleasm/disks/IMSI1   IMSI_0000    IMSI_0000               1023
IMSI            /dev/oracleasm/disks/IMSI2   IMSI_0001    IMSI_0001               1023
IMSI            /dev/oracleasm/disks/IMSI3   IMSI_0002    IMSI_0002               1023

9 rows selected.

[root@rac2 ~]# crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.chad
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.net1.network
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.ons
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.CRS.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.FRA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.IMSI.dg(ora.asmgroup)
      1        OFFLINE OFFLINE                               STABLE
      2        OFFLINE OFFLINE                               STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1                     STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac2                     STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac2                     STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     Started,STABLE
      2        ONLINE  ONLINE       rac2                     Started,STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
.............................................
--------------------------------------------------------------------------------
[root@rac2 ~]# crsctl stat res -t

--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.CRS.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.FRA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
.............................................
--------------------------------------------------------------------------------
[root@rac1 ~]# srvctl start diskgroup -g IMSI -n rac1

완료

[root@rac2 ~]# crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.chad
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.net1.network
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
ora.ons
               ONLINE  ONLINE       rac1                     STABLE
               ONLINE  ONLINE       rac2                     STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        ONLINE  OFFLINE                               STABLE
ora.CRS.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.FRA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE
      3        OFFLINE OFFLINE                               STABLE
ora.IMSI.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1                     STABLE
      2        ONLINE  ONLINE       rac2                     STABLE

반응형

'ORACLE > ADMIN' 카테고리의 다른 글

oracle 12C allow_group_access_to_sga  (0) 2024.03.27
12C 이상에서 오라클 로그 위치  (0) 2024.03.22
ASM 디스크 그룹 삭제 방법  (0) 2024.02.22
oracle autoupgrade 12C -> 19C 업그레이드 방법  (0) 2024.02.08
single to rac 방법  (0) 2024.01.29
Posted by [PineTree]
ORACLE/ADMIN2024. 2. 22. 15:19
반응형

1. 사용자 삭제
select 'drop user '||username||' cascade;'
from dba_users
where default_tablespace in ('TBS_NAME');

ex) drop user test cascade;

2. 대상 테이블스페이스 삭제 
select 'drop tablespace '||tablespace_name||' including contents and datafiles;'
from (select tablespace_name from dba_data_files 
where file_name like '%FILE_NAME%');

3. 삭제 대상 디스크 그룹 UNMOUNT;

rac 의 경우 양 서버에서 모두 dismount

리스타트의 경우 한 번만 dismount
$sqlplus / as sysasm
SQL> alter diskgroup ARTEST dismount;

4. 대상 디스크 그룹 삭제
$sqlplus / as sysasm
SQL> drop diskgroup  ARTEST force including contents;

SQL> drop diskgroup  data3 force including contents; 
drop diskgroup  data3 force including contents
*
ERROR at line 1:
ORA-15039: diskgroup not dropped
ORA-15073: diskgroup DATA3 is mounted by another ASM instance

-- RAC 이면 모든 노드에서 디스 마운트 해줘야 된다.


5. CRS 리소스 제거( crsctl stat res -t 에서 삭제 안되면 아래 명령어 실행)
$ srvctl remove diskgroup -g ARTEST -f

반응형
Posted by [PineTree]