[오라클 DB관리]23.09.20

망구씨·2023년 9월 20일
0

오라클DB관리

목록 보기
11/19
post-thumbnail

복습

table space 속성 3가지

  1. 유형: permanent, temp, undo
  2. 상태: read write, read only, online, offline
* offline , read write: 백업이나 data file 위치 변경 등의 작업때 수행
  1. 공간관리 방법: extent management, segment managment
  • extent management : 비어있는 공간(free space)에 대한 관리를 system table space? or local table space? 어디서 할거냐??
    • dictionary managed -> system table space에 있는 사전을 매번 찾는다.
    • local managed -> 로컬에 비트맵(장부)만 확인한다.
  • segment managment : manual, auto
    • manual ->
    • auto ->

      ✅ block 에는 header와 pct free, data영역 이렇게 있음.
      ✅ pct free는 업데이트를 위해 10%정도를 남겨둔 영역인데 여기 공간이 없으면 row migration이 발생한다. 로우 마이그레이션이 너무 많이 발생한다면 pct free 설정을 잘못 해놓은 것이다.
      ✅ 업데이트가 활발히 수행되는곳은 pct free를 넉넉히 주어야 하는데 그러면 공간낭비가 너무 심해서 insert가 잘 안되고 insert계속하면 테이블스페이스가 금방 차버린다.
      ❓ 맨 아래쪽은 pct used 라는것이 있다 !
create table emp100
(empno number(10),
 ename varchar2(10))
 pctfree20 -- update위한 여유공간. insert X. 로우 마이그레이션 생기지 않도록
 pctused40 -- 이 블락의 insert가 가능한 시점! pct used아래로 데이터가 빠져야 insert가 가능하다.
 freelist1; 
-- block header에 장부를 하나 두는데 이 장부를 freelist라 한다. 어디어디가 비어있다 라는 정보가 들어있다. 
-- 장부가 하나라서 한사람만 읽을 수 있는데 다른 사람들은 웨이팅 해야한다. 
★ dba 해야할거 너무많다 ! -> 오라클 segment managment auto 기능. pctfree와 freelist는 자동으로 관리된다. 

테이블 스페이스 정보 보기

create tablespace ts01
  datafile '/home/oracle/ts01.dbf' size 100m
  extent management local AUTOALLOCATE / uniform 1m
  segment space management auto

AUTOALLOCATE : insert가 많아지면 많이 늘리고, 적어지면 적게 할당 (위 이미지에서 system)
uniform 1m : 1m씩 유니폼 사이즈만큼 들어긴다. -> 어차피 항상 많이 들어오는 테이블에 설정

테이블 스페이스 내용 보기

fragmentation : 뻥뻥 뚤린거! dba가 주기적으로 한쪽에 몰아넣는 정리를 한다. 이것을 확인하는것이 extent map

서버 > 테이블스페이스 > 테이블 스페이스 보기 > EXAMPLE > 밑쪽 확장영역인가?그거

OMF (Oracle Managed File)

💡 오라클이 알아서 database의 파일들을 관리하겠다.
테이블 스페이스를 생성하면 os에 물리적인 data file이 생성된다. 이 때 위치는 어디에 두고 이름은 어떻게 지어야 하는지 고민하게 되는데 이런 고민을 하지 않도록 오라클이 알아서 해준다! 라는것이 OMF

< 관련 파라미터>

실습
1. 먼저 OMF기능이 켜져있는지 확인하기

SYS @ orcl > show parameter db_create_file_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------------
db_create_file_dest                  string      +DATA 

✅ value가 null이 아니면 OMF기능이 켜져있는 것이다.

2 아래와 같이 테이블 스페이스를 생성해도 만들어지는지 확인하기

SYS > create tablespace ts200;
-- 그냥 이렇게만 만들어도 만들어지는 이유는, OMF에 지정된 위치에 만들어진다. 

set lines 400
set pages 400
col tablespace_name for a7
col file_name for a55
select tablespace_name, file_name
  from dba_data_files;
  1. datafile에 대한 OMF의 위치를 /home/oracle로 변경하기
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/home/oracle'; 
create tablespace ts300;


✅ 내가 요청한 경로에 저장이 되었다. 사이즈는 100m가 디폴트이다.

문제 OMF기능을 끄고 아래와 같이 테이블 스페이스 생성해보기

create tablespace ts400;
SYS > select name, issys_modifiable
         from v$parameter
         where name like '%name%'; -- 이미디어틀리여서 scope=both가능
  
-- 스크립트 저장
SYS @ orcl > save para.sql
Created file para.sql
SYS @ orcl > ed para.sql

SYS @ orcl > @para.sql

--null로 설정해서 OMF끄기
SYS > alter system set db_create_file_dest='' scope=both;
SYS > show parameter db_create
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string
db_create_online_log_dest_1          string
db_create_online_log_dest_2          string
db_create_online_log_dest_3          string
db_create_online_log_dest_4          string
db_create_online_log_dest_5          string

-- script만들어보면 ! 에러 날 것.
SYS > create tablespace ts400;


✅ 기능 꺼서 에러난다.

문제 다시 data file에 대한 OMF 기능을 켜는데 +DATA로 값 주기

SYS @ orcl > alter system set db_create_file_dest='+DATA' scope=both;
System altered.
SYS @ orcl > show parameter db_create

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      +DATA

문제 ts500이라는 테이블 스페이스를 생성하는데 사이즈를 50m로 주시오(기본값은 100m)

create tablespace ts500 datafile size 50m;

데이터의베이스 확장 (p.7-21)

create tablespace ts5000
 datafile '/home/oracle/ts5000.dbf' size 10m
 autoextend on maxsize 100m;

✅ 처음에는 10m로 만들었는데, 데이터가 입력됨에 따라 동적으로 확장되어서 100m까지 늘어날 수 있습니다.

Bigfile space

💡 테이블 스페이스를 생성할 때 아래와 같이 생성하면 smallfile tablespace입니다.

SYS > create smallfile tablespace ts205
        datafile '/home/oracle/ts5205.dbf' size 10m;

💡 아래와 같이 생성하면 bigfile tablespace입니다.

SYS > create bigfile tablespace ts206
        datafile '/home/oracle/ts5206.dbf' size 10m;

💡 확인 방법

SYS > select tablespace_name, bigfile
        from dba_tablespaces;
        
        
TABLESP BIG
------- ---
SYSTEM  NO
SYSAUX  NO
UNDOTBS NO
1

TEMP    NO
USERS   NO
EXAMPLE NO
TS300   NO
TS500   NO
TS5000  NO
TS206   YES

Big file space는 이세상에 모든 데이터를 저장하겠다 라는 포부로 만들어졌다.
1. 빅파일 테이블 스페이스는 파일 하나만 저장할 수 있다.
2. 파일 하나의 크기를 8 엑사 바이트까지 생성할 수 있다. (1엑사바이트는 1024페타바이트)


OCP문제

✔️ 테이블스페이스 관련문제 (ASSM)

✅ auto가 아닌 manual은 pct free, pct used, freelist 전부 적어줘야한다.
A : 가장작은 빅파일 테이블스페이스보다 작아야한다. (?)
B : 자동관리된다 auto로 만들었으니까
C : add는 5기가 아니어도 된다.
D , E 가 정답

✔️ tablespace 에 대한 문제(12C 뉴피쳐 undo in temporary)

✅ 12c 부터 임시테이블이 생성되는 undo data가 아니가 temporary tablespace
-> 이거 나중에 다시 자세히

✔️ tablespace에 대한 문제

✔️ tablespace 에 대한 문제(OMF)


📖 8장. 유저 보안 관리

💡 grant, revoke말고도 더욱 엄격하게 권한 관리를 할 수 있다 !

  • 데이터베이스 유저 계정 생성 및 관리:
    • 유저 인증
    • 기본 저장 영역(테이블스페이스) 할당
  • 권한 부여 및 취소
  • 롤 생성 및 관리
  • 프로파일 생성 및 관리:
    • 표준 암호 보안 기능 구현
    • 유저별 리소스 사용량 제어

데이터베이스 유저 계정

✔️ 이전에 만들었던 db 유저 생성 명령어. 유저이름과 패스워드만 주고 만들었다. 이렇게 하면 이외에 것들은 default로 생성되는 것이다!

SYS > create user c##scott
       identified by tiger;

✔️ 유저생성 풀코드

SYS> create user king1
      identified by tiger
      default tablespace users   -- 기본 테이블스페이스
      temporary tablespace temp  -- 기본 임시 테이블스페이스(정렬작업 시 사용하는 공간)
      profile default                
      account lock;               -- 계정을 잠근 상태로 생성
      
-- 접속할 수 있는 권한 부여하기
SYS> grant connect to king1;

-- king1로 접속해보면 lock 걸렸다고 나옴. 우리가 잠근상태로 만들었기 때문
[orcl:~]$ sqlplus king1/tiger
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 20 13:54:13 2023
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
ERROR:
ORA-28000: the account is locked

-- lock 풀어주기
SYS> alter user king1 account unlock;

-- 다시 king1으로 접속해보기
SYS @ orcl > connect king1/tiger
Connected.

관련 문제 유저를 생성하는데 다음의 조건으로 생성하기
유저명 : c##shinhan1
패스워드 : 직접정하는데, 문자로 시작해야하고 숫자와 특수문자를 (_언더바정도) 포함해서 생성.
기본 테이블 스페이스 : example
임시 테이블 스페이스 : temp
프로파일 : default
계정상태 : 잠그지 말고

SYS> create user c##shinhan1
      identified by sh_2023
      default tablespace example  
      temporary tablespace temp 
      profile default                
      account unlock;           
     
SYS> grant connect to c##shinhan1;   

--------------------------------------------
#c##shinhan1로 접속해보기

KING1 @ orcl > connect c##shinhan1/sh_2023
Connected.
C##SHINHAN1 @ orcl >

✅ 비밀번호 좀더 복잡하게 해주기! 대소문자 섞어서.
✅ 유저가 소유하고 있는 데이터 객체의 모음을 스키마 라고 한다. (유저명과 동일함)

  • 객체 : table, view, index, sequence, synonym

오라클에서 미리 만들어놓은 계정들

SYS 계정 설명

➡️ 어드민 옵션은 자신의 권한을 남에게 줄 수 있는 권한
➡️ 데이터 딕셔너리 -> user_xxx / all_xxx / dba_xxx ~~~
➡️ AWR 이란? 레파지토리이다. 오라클이 알아서 튜닝이 필요한 정보들을 적어준다.

SYSTEM 계정 설명

➡️ 일부 테이블과 권한들을 가지고있다.
➡️ sys 밑에 있는 계정

실습1. system계정으로 접속해보가

connect system/oracle_4U

실습2. system 만든 테이블 조회


SYSTEM @ orcl > select table_name from user_tables;

데이터 복구, 튜닝을 위한 테이블들 소유하고있음.

실습3. DBSNMP계정으로 접속하기

connect dbsnmp/oracle4_U

실습4. dbsnmp계정이 소유하고 있는 테이블들 조회하기

DBSNMP @ orcl > select table_name from user_tables;

✅ dbsnmp 계정은 em 의 관리 에이전트가 db 모니터 하고 관리하는데 사용됨. 또다른 em 관리 계정이 sysman입니다.

⭐ sysdba권한(디비를 내렸다 올릴수 있는 권한)을 가진 db의 유일한 유저는 sys이다.

유저 인증

유저 인증 방법 3가지

  1. password 인증방법 : 패스워드를 통해 접속 인증을 해주는 방법
sys> create  user   c##james  
        identified by tiger; 

sys> select  username, password  from  dba_users; 

➡️ 우리는 패스워드를 볼 수 없지만 오라클은 알고 있다. 만약 우리가 패스워드를 잊어버렸다면 확인한 길이 없습니다. 그냥 패스워드를 변경하는 수 밖에 없습니다.

sys>  alter  user   scott  identified  by  oracle;
  1. external 인증방법 : External 로 접속을 수행하는 경우, 약한 권한을 주고 싶을 때 사용하는 방식이다. 유저/패스워드 생성 없이 OS만 통과하면 DB에 접속하여 특정 테이블만 select 하도록 하는 인증방법
[orcl:admin]$ id   <-- os 의 유저 이름 확인
uid=500(oracle) gid=504(oinstall) groups=504(oinstall),505(dba)

[orcl:admin]$ sqlplus / as sysdba
SYS> show parameter authent
  • 인증 유저 생성하기
SYS> create user ops$oracle
      identified by externally;
SYS> grant connect to ops$oracle;      
  • 생성한 인증유저로 접속하기(ops$oracle)
[orcl:~]$ sqlplus /

SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 20 14:37:16 2023

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

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

OPS$ORACLE @ orcl >

➡️ 이 인증방법은 게스트 계정을 만들 때 주로 사용합니다.

  1. Global 인증 방법 : 지문인식, 안구인식, 핏줄 정맥 인식 접속 등 생체인식으로 접속하게 하는 다른회사 제품을 통해서 오라클에 접속하는 인증방법

관리자 인증 방법

💡 이 관리자가 db를 내렸다 올렸다 할 수 있는 애

* 2.1 관리자 인증방법
💡 sys 유저로 접속하는데, 리스너를 통해서 접속하지 않느냐 접속하느냐에 따라 OS 인증방법과 Password File 인증방법으로 나뉜다.

* 2.1.1 OS 인증방법
💡 원격에서 접속 불가 (리스너를 통해서 접속할 수 없음)

   remote_login_passwordfile = none

* 2.1.2 Password File 인증방법
💡 원격에서 접속 가능 (리스너를 통해서 접속하는 것)

   remote_login_passwordfile = exclusive

sys 유저로 원격지에서 리스너를 통해 접속하려면 패스워드 파일 인증방법을 써야한다.
✅ SQLGate 나 EM 을 이용하여 SYS 유저로 오라클 접속을 하고 싶은 경우 반드시 remote_login_passwordfile 을 exclusive 로 설정해야 한다.

실습
1. 관리자 인증방법이 os인증 방법인지 password file 인증 방법인지 확인하기

SYS @ orcl > show parameter remote_login;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      EXCLUSIVE -- 패스워드 파일 인증방법이다. 

2. sys 관리자 계정으로 리스너를 통해 접속해보세요.

[orcl:~]$ sqlplus sys/oracle_4U@orcl as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 20 15:02:25 2023
Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

3. 엄격하게 sysdba권한을 관리하기 위해 os 인증방법으로 변경하시오 (관리자 계정을 리스너 통해서 접속 못하게 하고싶다. 서버실 가서 접속하게 하고싶다 -> 보안 중요 회사 !)


SYS @ orcl > @para.sql

NAME                 ISSYS_MOD
-------------------- ---------
lock_name_space      FALSE
db_file_name_convert FALSE
log_file_name_conver FALSE
t

global_names         IMMEDIATE
instance_name        FALSE
service_names        IMMEDIATE
db_name              FALSE
db_unique_name       FALSE


SYS @ orcl > alter system set remote_login_passwordfile=none scope=spfile;
SYS @ orcl > shutdown immediate
SYS @ orcl > startup

SYS @ orcl > show parameter remote_login
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      NONE

4. 리스너 통해 sys유저로 접속해보기

sqlplus sys/oracle_4U@orcl as sysdba


✅ 에러납니다 ! 접속안되는것이 정상!

문제1. 이상태에서 em으로 sys유저로 접속해보기 (em으로 접속할때도 리스너 통해 접속하는거라서 접속이 안된다.)

문제2. 다시 password file 인증방법으로 돌려놓기

SYS @ orcl > alter system set remote_login_passwordfile=exclusive scope=spfile;
SYS @ orcl > shutdown immediate
SYS @ orcl > startup
SYS @ orcl > show parameter remote_login

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      EXCLUSIVE


✅ em 접속도 가능해졌다.
🚨 exclusive 철자 잘못쓰면 ! 디비 안올라온다 !

유저 계정 Lock 해제 및 암호 재설정


실습1. scott계정 잠그기

SYS> alter user scott
      account lock;
SYS @ orcl > desc dba_users;

 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 USERNAME                                  NOT NULL VARCHAR2(30)
 USER_ID                                   NOT NULL NUMBER
 PASSWORD                                           VARCHAR2(30)
 ACCOUNT_STATUS                            NOT NULL VARCHAR2(32) 
 
SYS> select username, account_status from dba_users;

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
MGMT_VIEW                      OPEN
SYS                            OPEN
SYSTEM                         OPEN
DBSNMP                         OPEN
SYSMAN                         OPEN
OPS$ORACLE                     OPEN
KING1                          OPEN
SH                             OPEN
HR                             OPEN
C##SHINHAN1                    OPEN
SCOTT                          LOCKED

scott 계정으로 접속해보기

[orcl:~]$ scott

SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 20 15:23:44 2023

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

ERROR:
ORA-28000: the account is locked

실습2. 다시 스캇유저 잠금 해제하기

SYS @ orcl > alter user scott account unlock;
User altered.

실습3. scott의 패스워드를 oracle1234로 변경하기

alter user scott identified by oracle1234;

문제1. scott의 패스워드를 다시 tiger로 변경

alter user scott identified by tiger;

권한의 종류 2가지

1. 시스템 권한 : 유저가 db에서 특정 작업을 수행할 수 있게 해주는 권한

예) create table, create procedure....

2. 객체 권한 : 유저가 특정 객체를 액세스 또는 조작할 수 있는 권한

예) emp 테이블을 select할 수 있는 권한
   emp 테이블을 update할 수 있는 권한 등

시스템권한 실습

실습1. 스캇 계정으로 접속해서 scott이 가지고 있는 시스템 권한이 뭐가있는지 확인

SCOTT> select * from session_privs;
202 rows selected. --지금 dba권한 있어서 엄청 많다. 

실습2. jones1이라는 유저를 생성하시오

SCOTT> create user jones1 identified by tiger;
SCOTT> grant connect to jones1;

실습3. jones1 유저에게 테이블을 생성할 수 있는 권한을 부여하세요.

SCOTT> grant create table to jones1;

실습4. jones1 유저로 접속해서 어떤 시스템 권한을 가지고 있는지 확인하기

[orcl:~]$ sqlplus jones1/tiger

SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 20 15:50:28 2023
Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

JONES1 @ orcl > select * from session_privs;

PRIVILEGE
----------------------------------------
CREATE SESSION
CREATE TABLE
SELECT ANY DICTIONARY

✅ create table 권한을 받으면 테이블에 index를 생성할 수 있는 권한도 같이 들어온다.

문제2. jones1 유저에서 table을 생성하고 index를 생성해보세요.

SYS> grant unlimited tablespace to jones1;
JONES1> create table emp100
 ( empno number(10),
   ename varchar2(10));
 
JONES1> create index emp_sal1
  on emp(sal);   

✅ 테이블을 생성할 수 있는 권한을 가진 유저는 개발자들에게는 PL급 들에게만 부여하고 주로 객체권한을 부여한다.

객체 권한 실습

실습4. jones2라는 유저를 생성하고 connect할 수 있는 권한 부여하기

SYS> create user jones2 identified by tiger;
SYS> grant connect to jones2;

JONES1 @ orcl > connect jones2/tiger
Connected.
JONES2 @ orcl >

실습5. (객체권한) scott이 jones2유저에게 emp테이블을 select 할 수 있는 권한을 부여합니다.

                  SCOTT ------------------------> JONES2
                  
SCOTT> grant select on emp to jones2;       
JONES2> select * from scott.emp;

실습6. jones2유저가 scott.emp라고 emp table을 조회하지 않고 emp로 조회할 수 있도록 scott유저에서 다음과 같이 synonym을 생성합니다.

SCOTT> create public synonym emp
         for scott.emp;

문제3. scott이 jones2에게 emp테이블을 update할 수 있는 권한과 delete할 수 있는 권한도 주시오

SCOTT> grant update on emp to jones2;
SCOTT> grant delete on emp to jones2;

⭐ 객체권한 확인하기 ⭐

문제4. jones2가 가지고 있는 객체권한이 무엇인지 확인하시오

col   object FORMAT a25
col    grantee FORMAT a15

SELECT   owner || '.' || table_name object,
           privilege what_granted, grantable, grantee,grantor
    FROM    user_tab_privs;

with admin option(p.8-15)

 SCOTT -----------------------> JONES2 --------------------> ALLEN2
   ↓                               
grant create procedure to jones2;  -> 이렇게 주면 존스는 앨런한테 권한 못줌.
grant create procedure to jones2 with admin option; -> 남에게 줄수있는 권한까지 부여받아야 앨런한테 줄 수 있음!

실습1. allen2유저를 생성하고 connect 권한을 부여하기

SYS> create user allen2 identified by tiger;
SYS> grant connect to allen2;

실습2. scott유저가 jones2유저에게 procedure를 생성할 수 있는 권한과 그 권한을 남에게 줄 수 있는 권한을 같이 주시오

SCOTT> grant create procedure to jones2 with admin option;

실습3. jones2 유저에서 allen2유저에게 create procedure 권한을 grant 하시오

JONES2> grant create procedure to allen2;

실습4. scott유저에서 jones2유저에게 부여했던 create procedure권한을 취소하세요. 그러면 allen2도 같이 취소되는지 확인하기 -> 아니다. 그대로 있다. 앨랜에서는 procedure 잘 만들어짐.

SCOTT> revoke create procedure from jones2;

ALLEN2> create procedure pro11
        is
          v_date   date;
          begin
            select sysdate into v_date
               from dual;
          end;
          / 
Procedure created.         

with grant option(p.8-16)

 SCOTT -----------------------> JONES2 --------------------> ALLEN2

실습1. scott이 jones2에게 emp테이블을 select 할 수 있는 권한을 주는데 이 권한을 남에게 줄 수 있는 권한까지 같이 주시오

SCOTT> grant select on emp to jones2 with grant option;   

실습2. jones2가 allen2에게 emp를 select 할 수 있는 권한을 준다.

JONES2>  grant select on emp to allen2;

오늘의 마지막 문제 scott이 jones2에 주었던 emp 테이블을 select 할 수 있는 권한을 취소하면 allen2는 어떻게 되는지?

SCOTT> revoke select on emp from jones2;

scott 유저가 가지고 있는 테이블 생성 스크립트

$ vi dba.sh 

# /bin/bash
echo -e "

   aaa   a   aa   aaa    aaa  a   aaaa
  a   a  a aa    a   a  a     a  a    a
  a   a  aa          a  a     a  aaaaaa
  a   a  a       aaaaa  a     a  a
  a   a  a       a   a  a     a  a
   aaa   a        aaa    aaa  a   aaaa
"
echo -e "======================="
echo "                     "
echo " [1] 테이블 스페이스 공간 확인 "
echo " [2] 디스크 i/o 확인하는 sar 명령어 수행 "
echo " [3] 현재 데이터베이스 이슈 확인 "
echo " [4] 테이블 스페이스 공간 확보(80% 이상) "
echo " [5] 현재 오라클 메모리 상태 확인 "
echo " [6] 체크포인트를 수동으로 일으키기 "
echo " [7] 아카이브 로그 파일의 디스크 용량을 확인하기"
echo " [8] 컨트롤 파일 백업 텍스트 생성하기"
echo " [9] alert log file을 실시간 모니터링 하기"
echo " [10] lock holder 와 lock waiter 찾기"
echo " [11] scott 유저가 가지고 있는 테이블 생성하기"

echo -n "원하는 작업 선택"
read aa
echo "                     "
case $aa in
 1) sh /home/oracle/t.sh;;
 2) sh /home/oracle/sar.sh;;
 3) sh /home/oracle/o.sh;;
 4) sh /home/oracle/add_t.sh;;
 5) sqlplus scott/tiger @/home/oracle/sga.sql ;;
 6) sqlplus scott/tiger @/home/oracle/ckpt.sql ;;
 7) sqlplus "/as sysdba" @/home/oracle/fra_space.sql ;;
 8) sqlplus "/as sysdba" @/home/oracle/c.sql ;;
 9) sh /home/oracle/testlog.sh ;;
 10) sqlplus "/as sysdba" @/home/oracle/lock.sql ;;
 11) sh /home/oracle/table.sh ;;
esac
echo "                     "
profile
Slow and steady wins the race.

0개의 댓글