728x90
반응형

조회 쿼리

 set linesize 400;
 select substr(a.tablespace_name,  1, 30) as tablespace_name
	    , round(sum(a.total1) /1024/1024, 1) "Total(MB)"
	    , round(sum(a.total1) /1024/1024/1024, 1) "Total(GB)"
	    , round(sum(a.total1) /1024/1024,1) -round (sum(a.sum1) /1024/1024, 1) "Used(MB)"
	    , round(sum(a.sum1) /1024/1024, 1) "Free(MB)"
	    , round( (round(sum(a.total1) /1024/1024,1) -round (sum(a.sum1) /1024/1024,1) ) /round (sum(a.total1) /1024/1024, 1) *100, 2) "Used(%)"
   from ( select tablespace_name
               , 0 total1
               , sum(bytes) sum1
               , max(bytes) MAXB
               , count(bytes) cnt
	          from dba_free_space
	         group by tablespace_name
	         union
	         select tablespace_name
	              , sum(bytes) total1
	              , 0
	              , 0
	              , 0  
	           from dba_data_files
	           group by tablespace_name) a
  group by a.tablespace_name
  order by tablespace_name;

결과

데이터 파일 사이즈 비교

$ du -sh * | sort -k 2
201M    274752.tdf
32G     TS_PART_TBL_PB_SYNC.tdf
201M    TS_TBL_PB_SYNC.tdf
9.2G    TS_TBL_PB_SYNC_LOB.tdf
41M     TS_TEST_1.dtf
41M     TS_TEST_2.dtf
41M     TS_TEST_3.dtf
41M     TS_TEST_4.dtf
11M     TS_TEST_5.dtf
141M    TS_TEST_lob.dtf
4.0K    hc_ORCL19C.dat
4.0K    hc_ORCLCDB.dat
4.0K    hc_orcl19c.dat
1.1G    iconn.tdf
4.0K    init.ora
4.0K    initORCL19C.ora
4.0K    lkORCL19C
4.0K    lkORCLCDB
4.0K    orapwORCLCDB
4.0K    orapworcl19c
4.0K    spfileORCLCDB.ora
4.0K    spfileorcl19c.ora
4.0K    test_pfile.ora
201M    ts1.tdf
201M    ts2.tdf
201M    ts274259_1.tdf
201M    ts274259_2.tdf
201M    ts274259_3.tdf
201M    ts274259_4.tdf
201M    ts3.tdf
201M    ts4.tdf
728x90
반응형
728x90
반응형

오라클 이미지

오라클 파라미터에 대해 알아 보겠습니다. 

오라클 초기화 파라미터 파일이란? 

오라클은 기동시에 파라미터 파일을 읽어서 구동되어지도록 설계되었습니다. 

아래는 오라클 기동시 파라미터 파일을 읽는 순서에 대한 설명 그림입니다. 

 

NOMOUNT 로 부팅 하기 위해서는 SPFILE 일 찾는 다음 없음면 PFILE 을 찾게 됩니다. 

SPFILE 과 PFILE 이 모두 없다면 기동에 실패하는 동작을 나타내는 그림 입니다. 

 

오라클 파라미터 파일 읽는순서

 

오라클 파라미터 파일 종류?

파라미터 파일에 대해 알아보겠습니다. 

오라클은 앞서 설명 했듯이 SPFILE PFILE 두종류의 파라미터 파일이 있습니다. 

 

PFILE ?

특징은 아래와 같습니다. 

  • 정적 파라미터라고 부르며 오라클 8i 부터 사용 가능 합니다. 
  • 파일 변경이 가능 하며 $ORACLE_HOME/dbs/initSID.ora 파일 입니다. 
  • V$PARAMETER 뷰에서 파라미터 조회가 가능 합니다. 

SPFILE ?

  • 동적 파라미터라고 부르며 오라클 9i 부터 사용 가능 합니다. 
  • 파일 변경이 가능 하며 $ORACLE_HOME/dbs/spfileSID.ora 파일 입니다. 
  • V$SPARAMETER 뷰에서 파라미터 조회가 가능 합니다. 

 

오라클 파라미터 변경 방법

아래와 같이 파라미터는 변경 가능 합니다. 

  • SPFILE : ALTER SYSTEM SET [parameter name]=[values] [SCOPE=(MEMORY/SPFILE/BOTH)]
  • PFILE   : ALTER SYSTEM SET [parameter name]=[values] [SCOPE=(MEMORY)]
옵 션 설 명
scope Spfile 운영 환경에서만 사용된다
spfile Spfile만 수정한다. (정적인 파라미터 수정에서는 필수다)
memory 현재 DB의 parameter 만 수정하며, spfile 은 수정하지 않는다.
(재시작 하면 원래 spfile 설정값으로 돌아간다)
both 현재 DB 의 parameter 와 spfile 모두 수정한다. (default 값)

출처: https://2factor.tistory.com/63 [IT 일기]

 

오라클 파라미터 파일 서칭 순서

위 그림에서 설명을 했지만 좀더 자세히 설명합니다. 

정확히는 아래와 같은 순서로 부팅시 파라미터 파일을 찾게 됩니다. 

  1. spfile[SID].ora
  2. spfile.ora
  3. init[SID].ora
  4. init.ora

오라클 파라미터 파일 생성 방법

아래처럼 create 명령을 통해 파라미터 파일을 만들수 있습니다. 

  • create pfile='파일명' from spfile='파일명'
  • create spfile='파일명' from pfile='파일명'

 

왜 사용할까요? 

위에서 언급을 했지만 spfile은 기동시 최우선 순위에 있고 파일 수정이 불가 합니다. 

추후에 파라미터 파일을 백업 용도로 사용하기 위해 PFILE로 백업을 해놓아 spfile 파일이 유실되었을 경우 pfile로 기동이 가능(startup pfile=[파라미터 파일명]) 합니다. 

SQL> startup pfile = '/opt/oracle/product/19c/dbhome_1/dbs/test_pfile.ora'
ORACLE instance started.

Total System Global Area 1610609928 bytes
Fixed Size                  9135368 bytes
Variable Size             419430400 bytes
Database Buffers         1174405120 bytes
Redo Buffers                7639040 bytes
Database mounted.
Database opened.

 

그리고 spfile 은 pfile 보다 기동시 우선순위에 있기 때문에 pfile 이 있더라도 spfile 이 있을 경우 pfile 에 등록된 파라미터 값은 반영이 되지 않습니다. 

 

운영 중에 필수적으로 반영되어야 하는 파라미터 값이 있다면 spfile 을 pfile 로 만든 다음 pfile  을 spfile 로 만들어서 파라미터 값을 운영에 반영 할수 있습니다. 

 

오라클 파라미터 파일 생성 및 값 변경 실습

-- pfile 생성
create pfile='/opt/oracle/product/19c/dbhome_1/dbs/test_pfile.ora' from spfile ='/opt/oracle/product/19c/dbhome_1/dbs/spfileORCLCDB.ora'

-- spfile 생성
create spfile from pfile = '/opt/oracle/oradata/dbconfig/ORCLCDB/test_pfile.ora';

 

728x90
반응형
728x90
반응형

Oracle NLS_LANGUAGE 변경 Scripts

  • 데이터 베이스 NLS_LANGUAGE 변경 방법에 대해 공유 합니다. 
  • 독일어로 변경하는 방법에 대해 알아 보겠습니다. 
-- dba 접속
sqlplus sys/oracle as sysdba

-- 언어셋 변경 
update sys.props$ set value$='AL32UTF8' where name='NLS_CHARACTERSET';  
update sys.props$ set value$='AL16UTF16' where  name='NLS_NCHAR_CHARACTERSET';
update sys.props$ set value$='GERMAN_GERMANY.WE8ISO8859P1  ' where name='NLS_LANGUAGE';
commit;

- db 재기동
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;

ALTER SYSTEM ENABLE RESTRICTED SESSION;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

ALTER SYSTEM SET AQ_TM_PROCESSES=0;

ALTER DATABASE OPEN;

ALTER DATABASE CHARACTER SET INTERNAL_USE WE8ISO8859P1;

SHUTDOWN IMMEDIATE;

STARTUP;

 

NLS_LANGUAGE 변경 진행 과정

[oracle@153467d4adce ~]$ sqlplus sys/oracle@orclcdb  as sysdba  

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Apr 13 10:04:38 2022
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> update sys.props$ set value$='AL32UTF8' where name='NLS_CHARACTERSET';  

1 row updated.

SQL> update sys.props$ set value$='AL16UTF16' where  name='NLS_NCHAR_CHARACTERSET';

1 row updated.

SQL> update sys.props$ set value$='GERMAN_GERMANY.WE8ISO8859P1  ' where name='NLS_LANGUAGE';

1 row updated.

SQL> commit;

Commit complete.

SQL> SHUTDOWN IMMEDIATE;

Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> SQL> 
SQL> STARTUP MOUNT;
ORACLE instance started.

Total System Global Area 1610609928 bytes
Fixed Size                  9135368 bytes
Variable Size             419430400 bytes
Database Buffers         1174405120 bytes
Redo Buffers                7639040 bytes
Database mounted.
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

System altered.

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

System altered.

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

System altered.

SQL> ALTER DATABASE OPEN;

Database altered.

SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE WE8ISO8859P1;

Database altered.

SQL> SHUTDOWN IMMEDIATE;

Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> SQL> STARTUP;
ORACLE instance started.

Total System Global Area 1610609928 bytes
Fixed Size                  9135368 bytes
Variable Size             419430400 bytes
Database Buffers         1174405120 bytes
Redo Buffers                7639040 bytes
Database mounted.

Database opened.

 

변경된 NLS 정보 확인 방법

set linesize 400
set pagesize 100
col PARAMETER for a30
col VALUE for a100

-- 현재 nls 구성정보
SELECT * FROM V$NLS_PARAMETERS;
 
--설치시 nls 정보
SELECT * FROM NLS_DATABASE_PARAMETERS;
 
--인스턴스 nls 정보
SELECT * FROM NLS_INSTANCE_PARAMETERS;​

 

728x90
반응형
728x90
반응형

오라클 샘플 스키마 생성 방법에 대해 알아보겠습니다. 

오라클 설치 시  오라클 스키마는 생성되지 않습니다. 

테스트하기 위한 Sample Schema 생성 방법에 대해 알아보겠습니다. 

 

Oracle Database Sample Schemas 다운로드

먼저 오라클에서 제공하는 샘플 스키마를 다운로드 받습니다. 

https://github.com/oracle/db-sample-schemas/tree/v19c

 

 

git clone https://github.com/oracle/db-sample-schemas.git

다운로드 파일 :db-sample-schemas

합계 128
drwxr-xr-x 11 oracle-docker oracle-docker  4096  3월 22 20:33 .
drwx------ 12 oracle-docker oracle-docker  4096  3월 22 20:33 ..
drwxr-xr-x  8 oracle-docker oracle-docker  4096  3월 22 20:33 .git
-rw-r--r--  1 oracle-docker oracle-docker   117  3월 22 20:33 CONTRIBUTING.md
-rw-r--r--  1 oracle-docker oracle-docker  1050  3월 22 20:33 LICENSE.md
-rw-r--r--  1 oracle-docker oracle-docker  5682  3월 22 20:33 README.md
-rw-r--r--  1 oracle-docker oracle-docker  5263  3월 22 20:33 README.txt
drwxr-xr-x  2 oracle-docker oracle-docker  4096  3월 22 20:33 bus_intelligence
drwxr-xr-x  2 oracle-docker oracle-docker  4096  3월 22 20:33 customer_orders
-rw-r--r--  1 oracle-docker oracle-docker  3633  3월 22 20:33 drop_sch.sql
drwxr-xr-x  2 oracle-docker oracle-docker  4096  3월 22 20:33 human_resources
drwxr-xr-x  2 oracle-docker oracle-docker  4096  3월 22 20:33 info_exchange
-rw-r--r--  1 oracle-docker oracle-docker  2740  3월 22 20:33 mk_dir.sql
-rw-r--r--  1 oracle-docker oracle-docker 27756  3월 22 20:33 mkplug.sql
-rw-r--r--  1 oracle-docker oracle-docker  7166  3월 22 20:33 mksample.sql
-rw-r--r--  1 oracle-docker oracle-docker  6592  3월 22 20:33 mkunplug.sql
-rw-r--r--  1 oracle-docker oracle-docker  6123  3월 22 20:33 mkverify.sql
drwxr-xr-x  3 oracle-docker oracle-docker  4096  3월 22 20:33 order_entry
drwxr-xr-x  2 oracle-docker oracle-docker  4096  3월 22 20:33 product_media
drwxr-xr-x  2 oracle-docker oracle-docker  4096  3월 22 20:33 sales_history
drwxr-xr-x  2 oracle-docker oracle-docker  4096  3월 22 20:33 shipping

sample-schemas scripts 수행 설명 (mksample.sql)

sqlplus sys/oracle@orclcdb as sysdba

@/opt/oracle/oradata/db-sample-schemas/mksample.sql oracle oracle hr oe pm ix sh bi users temp /opt/oracle/oradata/db-sample-schemas/logs/ ora19c

mksample.sql 에 서 입력 받는 인자 값들입니다. 

입력 변수는 볼드체로 표기했습니다. 

 sqlplus system/systempw@connect_string
@mksample systempw syspw hrpw oepw pmpw ixpw shpw bipw users temp /your/path/to/log/ connect_string

$ vi mksample.sql
Rem
Rem $Header: rdbms/demo/schema/mksample.sql.sbs /main/12 2015/03/19 10:23:26 smtaylor Exp $
Rem
Rem mksample.sql
......
......
......

PROMPT specify password for SYSTEM as parameter 1:
DEFINE password_system     = &1
PROMPT 
PROMPT specify password for SYS as parameter 2:
DEFINE password_sys        = &2
PROMPT 
PROMPT specify password for HR as parameter 3:
DEFINE password_hr         = &3
PROMPT
PROMPT specify password for OE as parameter 4:
DEFINE password_oe         = &4
PROMPT
PROMPT specify password for PM as parameter 5:
DEFINE password_pm         = &5
PROMPT
PROMPT specify password for IX as parameter 6:
DEFINE password_ix         = &6
PROMPT
PROMPT specify password for  SH as parameter 7:
DEFINE password_sh         = &7
PROMPT 
PROMPT specify password for  BI as parameter 8:
DEFINE password_bi         = &8
PROMPT 
PROMPT specify default tablespace as parameter 9:
DEFINE default_ts          = &9
PROMPT
PROMPT specify temporary tablespace as parameter 10: 
DEFINE temp_ts             = &10 
PROMPT 
PROMPT specify log file directory (including trailing delimiter) as parameter 11: 
DEFINE logfile_dir         = &11 
PROMPT 
PROMPT specify connect string as parameter 12: 
DEFINE connect_string     = &12 
PROMPT

 

mksample.sql 파일 수정 

스크립트를 수행하면 샘플 유저를 생성하는 과정에서 ORA-65096: invalid common user or role name 에러가 발생합니다 .

에러 발생을 막기 위해 ALTER SESSION SET "_ORACLE_SCRIPT"=true; 적용하겠습니다. 

mksample.sql 스크립트중 CONNECT system/&&password_system@&&connect_string 구문 밑에 ALTER SESSION SET "_ORACLE_SCRIPT"=true; 를 추가합니다. 

SQL> create user hr identified by hr;
create user hr identified by hr
            *
ERROR at line 1:
ORA-65096: invalid common user or role name

mksample.sql 실행 

SQL> @/opt/oracle/oradata/db-sample-schemas/mksample.sql oracle oracle hr oe pm ix sh bi users temp /opt/oracle/oradata/db-sample-schemas/logs/ ora19c

specify password for SYSTEM as parameter 1:

specify password for SYS as parameter 2:

specify password for HR as parameter 3:

specify password for OE as parameter 4:

specify password for PM as parameter 5:

specify password for IX as parameter 6:

specify password for  SH as parameter 7:

specify password for  BI as parameter 8:

specify default tablespace as parameter 9:

specify temporary tablespace as parameter 10:

specify log file directory (including trailing delimiter) as parameter 11:

specify connect string as parameter 12:

Sample Schemas are being created ...

mkdir: cannot create directory '/opt/oracle/oradata/db-sample-schemas/logs/': File exists

정상적으로 수행이 완료되면 log 디렉토리에 수행 스크립트 별로 로그가 남게 되고 

마지막으로 검증 결과가 mkverify_v3.log 와 같은 형태로 남게 됩니다. 

 

db-sample-schemas/logs]$ ll
합계 172
drwxr-xr-x  2         54321         54321  4096  3월 23 19:53 .
drwxrwxrwx 12 oracle-docker oracle-docker  4096  3월 23 20:27 ..
-rw-r--r--  1         54321         54321  6284  3월 23 19:53 bi_v3.log
-rw-r--r--  1         54321         54321  2075  3월 23 19:53 chan_v3.log
-rw-r--r--  1         54321         54321  2318  3월 23 19:53 coun_v3.log
-rw-r--r--  1         54321         54321  3558  3월 23 19:53 cust1v3.log
-rw-r--r--  1         54321         54321  2751  3월 23 19:53 dem1v3.log
-rw-r--r--  1         54321         54321  2622  3월 23 19:53 dmsal_v3.log
-rw-r--r--  1         54321         54321  5508  3월 23 19:53 ext_1v3.log
-rw-r--r--  1         54321         54321  6199  3월 23 19:52 hr_main.log
-rw-r--r--  1         54321         54321  7038  3월 23 19:53 ix_v3.log
-rw-r--r--  1         54321         54321 59687  3월 23 19:53 mkverify_v3.log
-rw-r--r--  1         54321         54321  5985  3월 23 19:52 oe_oc_v3.log
-rw-r--r--  1         54321         54321   599  3월 23 19:53 pm_main.log
-rw-r--r--  1         54321         54321  5119  3월 23 19:53 pm_p_lob.log
-rw-r--r--  1         54321         54321  3616  3월 23 19:53 prod1v3.log
-rw-r--r--  1         54321         54321  2667  3월 23 19:53 prom1v3.log
-rw-r--r--  1         54321         54321  3104  3월 23 19:53 sale1v3.log
-rw-r--r--  1         54321         54321  6049  3월 23 19:53 sh_v3.log
-rw-r--r--  1         54321         54321  4743  3월 23 19:53 time_v3.log

 

mkverify_v3.log

The Customer Orders(CO) schema 스크립트 수행 

mksample 에서는 co 생성 스크립트가 포함되어 있지 않습니다. 

별도 스크립트로 수행해야 테스트 샘플 스키마가 생성 되게 됩니다. 

수행 파일은  db-sample-schemas/customer_orders/co_main.sql 입니다. 

 

SQL> @co_main
Enter value for 1: co
Enter value for 2: orclcdb
Enter value for 3: users
Enter value for 4: temp
Dropping user
drop user co
          *
ERROR at line 1:
ORA-01918: user 'CO' does not exist


Creating user

Grant succeeded.


User altered.


User altered.

Connected.
Running DDL
Creating tables, constraints and views for Customer Orders
Creating tables

Table created.


Table created.


Table created.

 

Scott 계정 생성 

오라클 12c? 이후 부터는 scott 계정이 기본 적으로 생성되지 않습니다. 

livesql 사이트에서 테이블 정보와 데이터 확인후 샘플데이터를 생성하면 됩니다.

 

https://livesql.oracle.com/apex/livesql/file/content_O5AEB2HE08PYEPTGCFLZU9YCV.html

 

Scott 계정 스크립트

create user scott identified by tiger;
grant dba to scott;

conn scott/tiger

DROP TABLE DEPT;
CREATE TABLE DEPT
       (DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
	DNAME VARCHAR2(14) ,
	LOC VARCHAR2(13) ) ;
	
DROP TABLE EMP;
CREATE TABLE EMP
       (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,
	ENAME VARCHAR2(10),
	JOB VARCHAR2(9),
	MGR NUMBER(4),
	HIREDATE DATE,
	SAL NUMBER(7,2),
	COMM NUMBER(7,2),
	DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);
INSERT INTO DEPT VALUES
	(10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES
	(30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES
	(40,'OPERATIONS','BOSTON');
INSERT INTO EMP VALUES
(7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
INSERT INTO EMP VALUES
(7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
INSERT INTO EMP VALUES
(7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
INSERT INTO EMP VALUES
(7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
INSERT INTO EMP VALUES
(7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
INSERT INTO EMP VALUES
(7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
INSERT INTO EMP VALUES
(7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
INSERT INTO EMP VALUES
(7788,'SCOTT','ANALYST',7566,to_date('13-JUL-87')-85,3000,NULL,20);
INSERT INTO EMP VALUES
(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
INSERT INTO EMP VALUES
(7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
INSERT INTO EMP VALUES
(7876,'ADAMS','CLERK',7788,to_date('13-JUL-87')-51,1100,NULL,20);
INSERT INTO EMP VALUES
(7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
INSERT INTO EMP VALUES
(7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO EMP VALUES
(7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);

DROP TABLE BONUS;
CREATE TABLE BONUS
	(
	ENAME VARCHAR2(10)	,
	JOB VARCHAR2(9)  ,
	SAL NUMBER,
	COMM NUMBER
	) ;
	
DROP TABLE SALGRADE;
CREATE TABLE SALGRADE
      ( GRADE NUMBER,
	LOSAL NUMBER,
	HISAL NUMBER );
INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);
COMMIT;

샘플 스키마 ERD Diagrams 

자세한 자료는 오라클 자료를 참고하시기 바랍니다. 

https://docs.oracle.com/en/database/oracle/oracle-database/19/comsc/schema-diagrams.html#GUID-D268A4DE-BA8D-428E-B47F-80519DC6EE6E

728x90
반응형
728x90
반응형

Oralce 환경설정 방법

앞서 docker-compose 를 이용한 Oracle 19c 설치 글에서는 단순히  설치 방법에 대해서 알아보았습니다. 

이번에는 Docker 설치후 테스트를 좀더 효율적으로 진행하기 위한 방법에 대해 소개하겠습니다. 

 

_ORACLE_SCRIPT 파라미터 적용 

19c 에서는 테이블이나 유저를 생성하게 되면 ORA-65096 에러가 발생 합니다. 

_ORACLE_SCRIPT  파라미터를 변경함으로서 에러발생을 해결 할 수 있습니다. 

 

 

SQL> create user test1 identified by test;
create user test1 identified by test
            *
ERROR at line 1:
ORA-65096: invalid common user or role name


SQL> ALTER SESSION SET "_ORACLE_SCRIPT"=true;

Session altered.

SQL> 
SQL> create user test1 identified by test;        

User created.

외부 장비 접속 설정 (네트워크 설정)

 

tnsnames.ora 설정

ORCLCDB=localhost:1521/ORCLCDB

ora19c= 
(DESCRIPTION = 
  (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = ORCLCDB)
  )
)
ORCLPDB1= 
(DESCRIPTION = 
  (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = ORCLPDB1)
  )
)

listener.ora 설정

LISTENER =
(DESCRIPTION_LIST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
  )
)

SID_LIST_LISTENER =
(SID_LIST =
    (SID_DESC =
        (GLOBAL_DBNAME = ORCLCDB)
        (SID_NAME = ORCLCDB)
    )     
    (SID_DESC =
        (GLOBAL_DBNAME = ORCLPDB1)
        (SID_NAME =ORCLPDB1)                
    )
)

 

 

리스너 재시작 

[oracle@01a4f713764f ~]$ lsnrctl stop

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-MAR-2022 13:34:19

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
The command completed successfully
[oracle@01a4f713764f ~]$ lsnrctl stop

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-MAR-2022 13:34:23

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 2: No such file or directory
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=0.0.0.0)(PORT=1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
[oracle@01a4f713764f ~]$ lsnrctl start 

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-MAR-2022 13:34:36

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Log messages written to /opt/oracle/diag/tnslsnr/01a4f713764f/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                20-MAR-2022 13:34:37
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/01a4f713764f/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
Services Summary...
Service "ORCLCDB" has 1 instance(s).
  Instance "ORCLCDB", status UNKNOWN, has 1 handler(s) for this service...
Service "ORCLPDB1" has 1 instance(s).
  Instance "ORCLPDB1", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

리스너 상태 확인 

[oracle@01a4f713764f ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-MAR-2022 13:35:44

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                20-MAR-2022 13:34:37
Uptime                    0 days 0 hr. 1 min. 7 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/01a4f713764f/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=01a4f713764f)(PORT=5500))(Security=(my_wallet_directory=/opt/oracle/admin/ORCLCDB/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "ORCLCDB" has 2 instance(s).
  Instance "ORCLCDB", status UNKNOWN, has 1 handler(s) for this service...
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
Service "ORCLCDBXDB" has 1 instance(s).
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
Service "ORCLPDB1" has 2 instance(s).
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
  Instance "ORCLPDB1", status UNKNOWN, has 1 handler(s) for this service...
Service "da8f3910a1110e42e053020012ac8b77" has 1 instance(s).
  Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@01a4f713764f ~]$ 

sqlplus 접속 확인

 

[oracle@01a4f713764f ~]$ sqlplus sys/oracle@ora19c as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Mar 20 13:37:44 2022
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select * from dual;

D
-
X

 

728x90
반응형
728x90
반응형

MyOra  툴은 무료로 오라클 sql 작업이나 DB 자원 모니터링을 할수 있는 툴입니다. 

해당 툴을 다운로드 해서 사용하는 방법에 대해 소개하겠습니다. 

MyOra 다운로드

아래 경로에서 해당 툴 다운로드 받습니다. 

https://www.myorasql.com/download.html

현재는 9.4 버전 까지 Release 되어있습니다. (2022.03.21) 

 

MyOra 다운로드

 

MyOra 실행

다운로드 받은 앞출 파일을 해제 후 프로그램을 실행합니다. 

설치된 java 버전에 따라 실행 파일이 다릅니다. 

제환경은 1.8 jdk 가 설치 되어 있어 MyOra-9.4\Java1_8andBelow 디렉토리에있는 MyOra 파일을 실행 하겠습니다. 

* 주의 : 접속하로자 하는 오라클 jdbc 라이브러리가 실행 파일 경로에 위치해야 합니다. 

 

https://growupcoding.tistory.com/27 글 에서 설치한 오라클 jdbc 파일을 MyOra-9.4\Java1_8andBelow 로 복사하겠습니다. 

 

 

 

라이센스 동의 후 실행
접속 연결 설정

 

 

오라클 자원 사용률 모니터링 

 

 

Top Query 조회 

 

 

Instance 정보

SQL Editor

기본 SQL Editor 도 지원 합니다. 쿼리 실행 단축키는 F9 번입니다. 

728x90
반응형
728x90
반응형

 

1.Docker Image 다운로드 

우선 Docker 환경에서 오라클을 설치 하려면 오라클 이미지가 준비 되어있어야 겠죠? 

아래 GitHub 에서 Oracle19c 이미지를 다운로드 받습니다. 

https://github.com/oracle/

git clone https://github.com/oracle/docker-images.git

 

 

 

2.Oracle19c 바이너리 다운로드 

Docker 이미지를 다운로드를 받았다면 이제 실제로 설치할 오라클 바이너리를 준비해야 겠습니다. 

아래 경로에서 오라클 19c 바이너리(LINUX.ZSERIES64_193000_db_home.zip)를 다운로드 받습니다. 

 

https://www.oracle.com/kr/database/technologies/oracle19c-linux-downloads.html

 

 

3. 설치 

설치를 위한 바이너리가 모두 준비되었습니다. 

-rw-r--r--  1 oracle-docker oracle-docker 3059705302  2월 22 19:36 LINUX.X64_193000_db_home.zip
drwxr-xr-x 32 oracle-docker oracle-docker       4096  2월 22 15:40 docker-images

 

이제 본격적인 설치 작업을 진행하도록 하겠습니다. 

 

Oracle 19c 바이너리 Docker 디렉토리 복사 

 cp LINUX.X64_193000_db_home.zip docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0

 

Docker Image build

cd docker-images/OracleDatabase/SingleInstance/dockerfiles
./buildContainerImage.sh -e -v 19.3.0

 

Step 22/22 : CMD exec $ORACLE_BASE/$RUN_FILE
 ---> Running in 4bfe6a27a076
Removing intermediate container 4bfe6a27a076
 ---> a5a30da1721d
Successfully built a5a30da1721d
Successfully tagged oracle/database:19.3.0-ee


  Oracle Database container image for 'ee' version 19.3.0 is ready to be extended: 
    
    --> oracle/database:19.3.0-ee

  Build completed in 1146 seconds.

 

Docker 실행 

$ docker run --name oracle -p 1521:1521 -p 5500:5500 -e ORACLE_PWD=oracle -v oracle19c:/opt/oracle/
oradata oracle/database:19.3.0-ee

 

$ docker run --name oracle -p 1521:1521 -p 5500:5500 -e ORACLE_PWD=oracle -v oracle19c:/opt/oracle/
oradata oracle/database:19.3.0-ee
ORACLE EDITION: ENTERPRISE

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 23-FEB-2022 04:49:38

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Starting /opt/oracle/product/19c/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Log messages written to /opt/oracle/diag/tnslsnr/4235c03b5d12/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                23-FEB-2022 04:49:38
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/4235c03b5d12/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
The listener supports no services
The command completed successfully
[WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards.
   CAUSE: 
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06208] The 'SYSTEM' password entered does not conform to the Oracle recommended standards.
   CAUSE: 
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06208] The 'PDBADMIN' password entered does not conform to the Oracle recommended standards.
   CAUSE: 
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
Prepare for db operation
중략.......................
Completing Database Creation
51% complete
54% complete
Creating Pluggable Databases
58% complete
77% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
 /opt/oracle/cfgtoollogs/dbca/ORCLCDB.
Database Information:
Global Database Name:ORCLCDB
System Identifier(SID):ORCLCDB
Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for further details.

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Feb 23 05:05:33 2022
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> 
System altered.

SQL> 
System altered.

SQL> 
Pluggable database altered.

SQL> 
PL/SQL procedure successfully completed.

SQL> SQL> 
Session altered.

SQL> 
User created.

SQL> 
Grant succeeded.

SQL> 
Grant succeeded.

SQL> 
Grant succeeded.

SQL> 
User altered.

SQL> SQL> Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
The Oracle base remains unchanged with value /opt/oracle
The Oracle base remains unchanged with value /opt/oracle
#########################
DATABASE IS READY TO USE!
#########################
The following output is now a tail of the alert.log:
ORCLPDB1(3):ALTER DATABASE DEFAULT TABLESPACE "USERS"
ORCLPDB1(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS"
2022-02-23T05:05:33.298695+00:00
ALTER SYSTEM SET control_files='/opt/oracle/oradata/ORCLCDB/control01.ctl' SCOPE=SPFILE;
2022-02-23T05:05:33.303320+00:00
ALTER SYSTEM SET local_listener='' SCOPE=BOTH;
   ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE
Completed:    ALTER PLUGGABLE DATABASE ORCLPDB1 SAVE STATE

XDB initialized.

 

Oracle 접속 및 테스트 

$ docker exec -it oracle sqlplus sys/oracle@//localhost:1521/ORCLCDB as sysdba

 

$ docker exec -it oracle sqlplus sys/oracle@//localhost:1521/ORCLCDB as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Feb 23 08:04:55 2022
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select * from dual;

D
-
X

SQL> create table TEST(id number, name varchar(100));

Table created.

SQL> insert into TEST values(1,'test');

1 row created.

SQL> commit;

Commit complete.

SQL> select * from TEST;

        ID
----------
NAME
--------------------------------------------------------------------------------
         1
test


SQL> 
728x90
반응형

+ Recent posts