리눅스 Oracle SID 확인 - linugseu Oracle SID hwag-in

반응형

간단히 orcle SID 확인 하기

ps -ef|grep pmon

[oracle@localhost ~]$ ps -ef|grep pmon

oracle    2235     1  0 01:34 ?        00:00:00 ora_pmon_ORCL

oracle    2577  2538  0 01:45 pts/0    00:00:00 grep pmon

SID는 ORCL 입니다.

반응형

저작자표시

'SE > 오라클' 카테고리의 다른 글

archive log 삭제하는 방법  (0) 2019.04.10
테이블 스페이스 용량 증가  (1) 2017.07.11
로그 확인  (0) 2017.06.29
오라클 기본 쿼리  (0) 2016.12.01
오라클 계정 잠금 해제 / 계정 비밀번호 변경  (0) 2016.10.05

오라클(Oracle) SID 및 DB_NAME 확인 방법

일반적인 경우 데이타베이스가 하나만으로 구성 되어 있다면 데이타베이스명이 SID가 된다.  

하지만 RAC 로 구성하여 데이타베이스 두개가 동시 가동되는 경우라면 이 SID 가 서로 다를 수 있기 때문에 중복 확인

해야 한다. 

1. 오라클 데이타베이스명을 확인하는 방법
SELECT NAME, DB_UNIQUE_NAME FROM v$database;

2. 오라클 SID를 확인하는 방법
SELECT instance FROM v$thread;

     3.[오라클 로그인]
사용자명 입력: system/manager@TNSNAME
다음에 접속됨:
Oracle Database 10g Release 10.2.0.3.0 - 64bit Production
With the Real Application Clusters option

SQL> SELECT NAME, DB_UNIQUE_NAME FROM V$DATABASE;

NAME               DB_UNIQUE_NAME
------------------ ------------------------------------------------------------
ORCL               ORCL

SQL> SELECT INSTANCE FROM V$THREAD;

INSTANCE
--------------------------------------------------------------------------------
ORCL01
ORCL02

SQL툴을 사용하거나 자바에서 오라클 연결을 하려고 할 때 필요한 것이 포트번호와 SID(전역 데이터베이스 이름)이다. 이 두 가지는 설치 초기에 지정하게 되어있는데, 변경하지 않았다면 포트번호는 1521, SID는 orcl 이다.

그런데 만약 변경을 했는데 잊어버렸다던가 하는 문제가 발생할 수 있다. 이럴 경우에는 어떻게 알 수 있을까?

listener.org 파일을 통해 알아내기

오라클을 설치하고 나면 listener.org이 생성되어 있다. 이 파일에는 각종 정보들이 들어있는데 여기에 포트와 SID가 입력되어 있다.

여기에서는 listener.org 파일이 있는 경로는 C:\app\admin\product\11.2.0\dbhome_1\NETWORK\ADMIN 이다. 보통 설치 경로가 다를 것이니 아래 경로를 보고 확인해 보면 된다.

  • 경로 : 드라이버:\app\사용자 계정\product\11.2.0\dbhome_1\NETWORK\ADMIN

  • 드라이버 : C, D, E 등..

  • 사용자 계정 : 윈도우 사용자 계정명

listener.org을 열어보면 SID와 포트가 있다. 

명령어를 통해 알아내기 

먼저 cmd에서 오라클 관리자 계정으로 접속을 해야 한다. 

  • 관리자 계정 : sys 또는 system

  • 비밀번호 : 본인이 설정한 비밀번호

  • 명령어 : sqlplus system/비밀번호

접속을 하였다면 다음 명령어를 통해 포트번호와 SID를 확인할 수 있다.

  • SID 확인 명령어 : select name from v$database;

  • 포트 확인 명령어 : select dbms_xdb.gethttpport() from dual;

  • 포트 변경 명령어 : exec dbms_xdb.sethttpport(변경할포트번호);


오라클 SID 바꾸기

[oracle@ORACLE-SVR dbs]$ export ORACLE_SID=TEST
[oracle@ORACLE-SVR dbs]$ echo $ORACLE_SID
TEST
[oracle@ORACLE-SVR dbs]$


[oracle@ORACLE-SVR dbs]$ sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.4.0 Production on Thu Jun 9 17:38:27 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance. -- DB가 shutdown 되어있는 상태

ctrl + shift + T 를 누르면 터미널 탭창이 생성
alt + 숫자누르면 탭창 순서대로 열린다.

[root@ORACLE-SVR ~]# ps -ef |grep smon
root       4858   4833  0 17:40 pts/2    00:00:00 grep smon
[root@ORACLE-SVR ~]#

-- 실제 SMON이 나온 것은 아니다.


SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/dbs/initTEST.ora'
-- initTEST.ora의 파라미터 파일이 없어서 발생한 에러이다.


-- 이런식으로
SQL> startup pfile=/u01/app/oracle/product/11.2.0/dbs/initORCL.ora
ORACLE instance started.

Total System Global Area 1653518336 bytes
Fixed Size      2253784 bytes
Variable Size   1006636072 bytes
Database Buffers   637534208 bytes
Redo Buffers      7094272 bytes
Database mounted.
Database opened.

-- 메모리 확인하기( memory로 찾아도 된다.)
SQL> show parameter memory_target

NAME                                     TYPE       VALUE
------------------------------------ -----------  ------------------------------
memory_target                        big integer 1584M
SQL>

-- control_file 확인하기
SQL> show parameter control_files

NAME                                    TYPE      VALUE
------------------------------------ ----------- ------------------------------
control_files                            string      /u01/oradata/ORCL/control01.ct
       l, /u01/oradata/ORCL/control02
       .ctl

-- ORCL 파일 확인해보기
[oracle@ORACLE-SVR ~]$ ls /u01/oradata/ORCL/
control01.ctl  example01.dbf  redo02.log  sysaux01.dbf  temp01.dbf     users01.dbf
control02.ctl  redo01.log     redo03.log  system01.dbf  undotbs01.dbf


-- 블록사이즈 보기
SQL> show parameter db_block_size

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
db_block_size        integer  8192
SQL>


SQL> show parameter process

NAME         TYPE  VALUE

10g 이후에 SGA_TARGET이 생김
11g 이후에 MEMORY_TARGET이 생김
--> 조사하여 정리


파라미터 변경할 때 명령어
alter system  set

alter session set

NAME                                   TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_target                              big integer 0


SQL> alter system set memory_target=0;

System altered.

SQL> show parameter memory

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address      integer  0
memory_max_target       big integer 1584M
memory_target        big integer 0
shared_memory_address       integer  0
SQL> show parameter sga_target

NAME                                    TYPE      VALUE
------------------------------------ ----------- ------------------------------
sga_target                                big integer 944M
SQL>

------------------------------------ ----------- ------------------------------
aq_tm_processes        integer  1
cell_offload_processing       boolean  TRUE
db_writer_processes       integer  1
gcs_server_processes       integer  0
global_txn_processes       integer  1
job_queue_processes       integer  1000
log_archive_max_processes      integer  4
processes        integer  150
processor_group_name       string

-- Memory_target으로 메모리를 통으로 관리하고있었다.
-- Memory_target을 0으로 설정하게되었다.
-- SGA와 PGA가 분리되면서 남은 메모리가
-- 자동으로 SGA_TARGET으로 할당되었다.


SQL> show parameter large_pool

NAME                                   TYPE        VALUE
------------------------------------ ----------- ------------------------------
large_pool_size                        big integer 0
SQL> show parameter log_buffer


-- 리두 로그 버퍼를 의미한다.
NAME                                   TYPE       VALUE
------------------------------------ ----------- ------------------------------
log_buffer                              integer     6778880
SQL>


NAME                                    TYPE      VALUE
------------------------------------ ----------- ------------------------------
shared_pool_reserved_size          big integer 11744051
shared_pool_size                       big integer 224M

SQL> show parameter db_cache_size

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
db_cache_size        big integer 656M
SQL>


-- PGA에 할당된 값 확인
SQL> show parameter aggregate_target

NAME                                   TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target               big integer 640M
SQL>

메모리 사이즈 변경
sga_max_szsie = 2G

sga_tart는 sga_max_size=를 넘지 못해,

sga_target 파라미터가 0일 때, shared_pool, db_cache(버퍼사이즈),
large_pool_size, java_pool_size 등의 합은 sga_max_target등의 합은
sga_max_size를 넘지 못한다.


select name isses_modifiable, issys_modifiable, isinstance_modifiable from v$parameter
where name like 'sga%';


shift + G
shift + ?

현재 spfile로 운영중
1) sga_max_size=2G

2) alter system set sga_target=3G scope=spfile;
--> spfile에만 sga_target 파라미터가 3G로 저장되게 설정한다.

3) 이후에 데이터 베이스를 재시작
4) startup이 되지 않음
  이유 : sga_target 사이즈가 sga_max_size  보다 크기 떄문에

5) SQL> create pfile form spfile; -- spfile로 부터 pfile생성하기
6) pfile(initORCL.ora)을 수정 : sga_target size를 sga_max_size보다 작게
7) SQL> create spfile form pfile: --> 다시 수정한 pfile로부터 spfile생성하기
8) database를 open한다.