오라클은 그룹이라는 개념이 없다. 권한을 공유한다는것은 보안상 문제가 있다고 판단.
그래서 ROLE(역할)이라는 개념이 있다.
ㄴ 권한의 묶음이다.
connect, resource → role
CREATE USER st01
IDENTIFIED BY st01;
GRANT connect, resource TO st01;
lsnrctl [ stop | start | status ]
lsnr
ㄴ 리스너 프로세스를 관리하는 명령어
listener.ora 서버가 리스너를 띄우기위한 파일
데이터베이스를 startup해준다.
lsnrctl stop
lsnrctl start
lsnrctl status
오라클은 어떻게 구성되어있어요???
ㄴ 인스턴스랑 데이터베이스로 구성되어있어요.
ㄴ 인스턴스는 sga랑 백그라운드프로세스.
p 파일 → 예전꺼
sp파일 → 지금꺼
초창기 파라미터파일은 텍스트 파일이였다.
ㄴ 수정하려면 그냥 텍스트파일 수정하고 로드 했다.
지금은 바이너리파일을 사용함.
spfiledb01.ora
파라미터파일은 spfile로 시작해야한다.
뒤에오는건 인스턴스 이름. 인스턴스 이름은 db이름과 똑같아야 한다.
sid는 인스턴스의 이름의 의미함
ㄴ 이건 바이너리 파일임. 파일 열거나 편집은 하면 안됨. 수정하려면 명령어로 한다.
ALTER SESSION SET nls_date_format= 값
ㄴ 현재 세션에서만 파라미터 파일을 수정한다.
ALTER SYSTEM SET 파라미터=값
ㄴ 파라미터파일 수정하는 법.(실제로 파라미터파일이 수정된다.)
파라미터 종류
ㄴ 다이나믹 파라미터, 스테틱 파라미터
위치는 ORACLE_HOME/dbs밑에 있어야 한다.
CREATE spfile FROM pfile; → 이렇게 만들면 sp파일이 만들어진다.
CREATE pfile FROM spfile; → 백업 하려고 한다.백업은 pfile로.(중요)
[ora19c@linux-149 ~]$ cd $ORACLE_HOME/dbs
[ora19c@linux-149 dbs]$ ls
hc_DB19.dat init.ora lkDB19 orapwDB19 spfileDB19.ora
SQL> create pfile from spfile;
File created.
SQL> exit Disconnected
[ora19c@linux-149 dbs]$ ls
hc_DB19.dat init.ora initDB19.ora lkDB19 orapwDB19 spfileDB19.ora
initDB19.ora → pfile이다.
spfileDB19.ora → spfile
오라클은 initDB19.ora, spfileDB19.ora이 있으면 spfile만 읽는다.
initDB19.ora를 확인해보면
DB19.__sga_target=973078528
ㄴ sga전체 크기를 지정한것.
*.db_block_size=8192
ㄴ (바이트 단위) 이 사이즈는 한번 만들어지면 다시는 수정불가능. 근데 맘대로 지정불가능하다.
*.remote_login_passwordfile='EXCLUSIVE’
ㄴ 외부에서 관리자로 로그인이 가능하단 소리 none으로 바꾸면 외부에서 패스워드파일이 있어도 접속 불가능
등이 있다.
ALTER SYSTEM SET undo_tablespace = 'UNDO2';
ㄴ 동시에 바뀐다.(파라미터,바이너리)
ALTER SYSTEM SET undo_tablespace = 'UNDO2' SCOPE=BOTH;
ㄴ [SCOPE = MEMORY|SPFILE|BOTH]
ㄴ both가 기본값.
Parameter file 관리
사용 명령어
SQL> SELECT name, value FROM V$PARAMETER;
- Parameter 이름과 설정된 값을 확인한다.
SQL> SHOW PARAMETER <parameter 명>
- 설정된 parameter 값을 확인 한다
SQL> SELECT name, value FROM v$parameter
2 WHERE name = 'spfile';
NAME VALUE
----------------- ------------------------------------
spfile /app/ora19c/19c/dbs/spfileDB19.ora
SQL> SHOW PARAMETER instance_name
NAME TYPE VALUE
----------------- --------------- -----------------
instance_name string DB19
SQL> !ls $ORACLE_HOME/dbs
ㄴ ! os명령어 할때
hc_DB19.dat init.ora initdw.ora lkDB19 orapwDB19 spfileDB19.ora
Spfile 환경에서 파라미터 확인과 수정
사용 명령어
SQL> ALTER SYSTEM SET <parameter 명> = <값>;
- 지정한 파라미터의 값을 수정한다.
- spfile 사용 환경에서 설정된 파라미터 값은 항구적으로 수정된다.
- 동적인 파라미터만 수정 가능하다.
SQL> SELECT NAME, VALUE FROM V$PARAMETER;
- 현재 운영중인 parameter 값을 조회한다.
- 'SHOW PARAMETER ~'에 출력 값과 동일하다.
SQL> SELECT NAME, VALUE FROM V$SPPARAMETER;
- spfile에 설정된 값을 조회한다.
sqlplus / as sysdba
SQL> SELECT name, value FROM v$spparameter
2 WHERE name LIKE '%undo%';
NAME VALUE
---------------------------- -------------------------
temp_undo_enabled
undo_management
undo_tablespace UNDOTBS1
undo_retention
SQL> SELECT name,value FROM v$parameter
2 WHERE name LIKE '%undo%';
NAME VALUE
---------------------------- -------------------------
temp_undo_enabled FALSE
undo_management AUTO
undo_tablespace UNDOTBS1
undo_retention 900
SQL> SHOW PARAMETER undo;
NAME TYPE VALUE
-------------------- ------------- ----------
temp_undo_enabled boolean FALSE
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
ㄴ 위에명령어와 같은 결과가 나온다.
SQL> ALTER SYSTEM SET undo_retention=300;
SQL> SHOW PARAMETER undo_retention;
NAME VALUE
------------------------ -------------------------
undo_retention 300
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> SHOW PARAMETER undo_retention;
NAME TYPE VALUE
-------------------- ------------- ----------
undo_retention integer 300
Spfile 운영 환경에서 scope 설정에 따른 parameter값의 변화
사용 명령어
SQL> ALTER SYSTEM SET <parameter 명> = <값> SCOPE = [SPFILE | MEMORY | BOTH];
- 지정한 parameter의 값을 수정한다.
- SCOPE 절은 spfile 운영 환경인 경우만 사용한다.
- SPFILE : spfile만 수정한다. (정적 parameter 수정에서는 필수이다.)
- MEMORY : 현재 DB의 parameter 설정 값만 수정한다. spfile은 수정하지 않음으로 DB를 재시작하면 원래 설정 값으로 환원된다.
- BOTH : spfile과 instance의 설정된 parameter값을 모두 수정한다.(default값)
SQL> STARTUP
SQL> SHOW PARAMETER undo_retention;
NAME TYPE VALUE
------------------------- --------------- ---------
undo_retention integer 300
SQL> ALTER SYSTEM SET undo_retention = 600 SCOPE = memory;
SQL> SHOW PARAMETER undo_retention;
NAME TYPE VALUE
------------------------- --------------- ------------
undo_retention integer 600
SQL> SELECT name, value FROM v$parameter
2 WHERE name = 'undo_retention';
NAME VALUE
------------------------ ---------
undo_retention 600
SQL> SELECT name, value FROM v$spparameter
2 WHERE name = 'undo_retention';
NAME VALUE
--------------------- ------------
undo_retention 300
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> SHOW PARAMETER undo
NAME TYPE VALUE
------------------------- --------------- ---------
undo_retention integer 300
SQL> ALTER SYSTEM SET undo_retention = 500 SCOPE = spfile;
SQL> SHOW PARAMETER undo_retention;
NAME TYPE VALUE
------------------------- --------------- ---------
undo_retention integer 300
SQL> SELECT name,value FROM v$parameter
2 WHERE name = 'undo_retention';
NAME VALUE
------------------------ ---------
undo_retention 300
SQL> SELECT name,value FROM v$spparameter
2 WHERE name = 'undo_retention';
NAME VALUE
------------------------ ---------
undo_retention 500