You cannot see this page without javascript.

진주성 블로그 방문하기

기술문서 Tibero 관리 3

2023.10.25 14:32

구피천사 조회 수:11

Tibero 관리 3

 

tibero 초기화

 

 

SQL> select name from v$controlfile;

 

NAME

--------------------------------------------------------------------------------

/tibero/tbdata/control_1/c1.ctl

/tibero/tbdata/control_2/c2.ctl

 

2 rows selected.

 

리두로그파일 그룹3개 -> 파일 6개

 

SQL> SELECT * FROM V$LOG; --> 온라인 리두로그 그룹 조회

 

GROUP# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME

-------- --------- --------- ---------- -------- -------- ------------- ----------

0 5 10485760 2 NO INACTIVE 18210 2007/01/01

1 6 10485760 2 NO CURRENT 23247 2007/01/01

2 4 10485760 2 NO INACTIVE 12100 2007/01/01    --> 가장 오래된 로그, 시퀀스가 오래된 번호부터 바뀜

 

리두로그 파일 경로 다르게 설정

아카이브 모드일경우 ARCHIVED YES, 자동으로 복사

아카이브 Full - 장애 , 백업받고 삭제

 

 

 

select * from v$log; --> 온라인 리두로그 그룹 조회

# THREAD# GROUP# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME

1 0 0 25 52,428,800 2 YES INACTIVE 92,132 2023/09/21

2 0 1 26 52,428,800 2 NO CURRENT 92,245 2023/09/21

3 0 2 24 52,428,800 2 YES INACTIVE 91,689 2023/09/21

 

select * from v$logfile; --> 온라인 리두로그 파일 조회

 

 

 

select * from v$archived_log;  --> 정보의 출처는 컨트롤파일

 

# NAME THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# RESETLOGS_CHANGE# RESETLOGS_TIME

1 /tibero/tbdata/arch/log-t0-r0-s4.arc 0 4 38,744 2023/04/25 42,095 0 <NULL>

2 /tibero/tbdata/arch/log-t0-r0-s5.arc 0 5 42,095 2023/04/25 42,102 0 <NULL>

3 /tibero/tbdata/arch/log-t0-r0-s6.arc 0 6 42,102 2023/04/25 48,721 0 <NULL>

4 /tibero/tbdata/arch/log-t0-r0-s7.arc 0 7 48,721 2023/09/20 52,753 0 <NULL>

5 /tibero/tbdata/arch/log-t0-r0-s8.arc 0 8 52,753 2023/09/20 53,583 0 <NULL>

6 /tibero/tbdata/arch/log-t0-r0-s9.arc 0 9 53,583 2023/09/20 54,473 0 <NULL>

7 /tibero/tbdata/arch/log-t0-r0-s10.arc 0 10 54,473 2023/09/20 55,036 0 <NULL>

8 /tibero/tbdata/arch/log-t0-r0-s11.arc 0 11 55,036 2023/09/20 55,350 0 <NULL>

9 /tibero/tbdata/arch/log-t0-r0-s12.arc 0 12 55,350 2023/09/20 84,984 0 <NULL>

10 /tibero/tbdata/arch/log-t0-r0-s13.arc 0 13 84,984 2023/09/21 85,501 0 <NULL>

11 /tibero/tbdata/arch/log-t0-r0-s14.arc 0 14 85,501 2023/09/21 85,608 0 <NULL>

12 /tibero/tbdata/arch/log-t0-r0-s15.arc 0 15 85,608 2023/09/21 89,025 0 <NULL>

13 /tibero/tbdata/arch/log-t0-r0-s16.arc 0 16 89,025 2023/09/21 89,695 0 <NULL>

14 /tibero/tbdata/arch/log-t0-r0-s17.arc 0 17 89,695 2023/09/21 89,781 0 <NULL>

15 /tibero/tbdata/arch/log-t0-r0-s18.arc 0 18 89,781 2023/09/21 90,012 0 <NULL>

16 /tibero/tbdata/arch/log-t0-r0-s19.arc 0 19 90,012 2023/09/21 90,477 0 <NULL>

17 /tibero/tbdata/arch/log-t0-r0-s20.arc 0 20 90,477 2023/09/21 90,707 0 <NULL>

18 /tibero/tbdata/arch/log-t0-r0-s21.arc 0 21 90,707 2023/09/21 91,182 0 <NULL>

19 /tibero/tbdata/arch/log-t0-r0-s22.arc 0 22 91,182 2023/09/21 91,570 0 <NULL>

20 /tibero/tbdata/arch/log-t0-r0-s23.arc 0 23 91,570 2023/09/21 91,689 0 <NULL>

21 /tibero/tbdata/arch/log-t0-r0-s24.arc 0 24 91,689 2023/09/21 92,132 0 <NULL>

22 /tibero/tbdata/arch/log-t0-r0-s25.arc 0 25 92,132 2023/09/21 92,245 0 <NULL>

 

 

select * from v$archive_dest_files;   -- 정보의 출처는 아카이브로그파일

 

 

# NAME THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# RESETLOGS_CHANGE# RESETLOGS_TIME

1 /tibero/tbdata/arch/log-t0-r0-s4.arc 0 4 38,744 2023/04/25 42,095 0 <NULL>

2 /tibero/tbdata/arch/log-t0-r0-s5.arc 0 5 42,095 2023/04/25 42,102 0 <NULL>

3 /tibero/tbdata/arch/log-t0-r0-s6.arc 0 6 42,102 2023/04/25 48,721 0 <NULL>

4 /tibero/tbdata/arch/log-t0-r0-s7.arc 0 7 48,721 2023/09/20 52,753 0 <NULL>

5 /tibero/tbdata/arch/log-t0-r0-s8.arc 0 8 52,753 2023/09/20 53,583 0 <NULL>

6 /tibero/tbdata/arch/log-t0-r0-s9.arc 0 9 53,583 2023/09/20 54,473 0 <NULL>

7 /tibero/tbdata/arch/log-t0-r0-s10.arc 0 10 54,473 2023/09/20 55,036 0 <NULL>

8 /tibero/tbdata/arch/log-t0-r0-s11.arc 0 11 55,036 2023/09/20 55,350 0 <NULL>

9 /tibero/tbdata/arch/log-t0-r0-s12.arc 0 12 55,350 2023/09/20 84,984 0 <NULL>

10 /tibero/tbdata/arch/log-t0-r0-s13.arc 0 13 84,984 2023/09/21 85,501 0 <NULL>

11 /tibero/tbdata/arch/log-t0-r0-s14.arc 0 14 85,501 2023/09/21 85,608 0 <NULL>

12 /tibero/tbdata/arch/log-t0-r0-s15.arc 0 15 85,608 2023/09/21 89,025 0 <NULL>

13 /tibero/tbdata/arch/log-t0-r0-s16.arc 0 16 89,025 2023/09/21 89,695 0 <NULL>

14 /tibero/tbdata/arch/log-t0-r0-s17.arc 0 17 89,695 2023/09/21 89,781 0 <NULL>

15 /tibero/tbdata/arch/log-t0-r0-s18.arc 0 18 89,781 2023/09/21 90,012 0 <NULL>

16 /tibero/tbdata/arch/log-t0-r0-s19.arc 0 19 90,012 2023/09/21 90,477 0 <NULL>

17 /tibero/tbdata/arch/log-t0-r0-s20.arc 0 20 90,477 2023/09/21 90,707 0 <NULL>

18 /tibero/tbdata/arch/log-t0-r0-s21.arc 0 21 90,707 2023/09/21 91,182 0 <NULL>

19 /tibero/tbdata/arch/log-t0-r0-s22.arc 0 22 91,182 2023/09/21 91,570 0 <NULL>

20 /tibero/tbdata/arch/log-t0-r0-s23.arc 0 23 91,570 2023/09/21 91,689 0 <NULL>

21 /tibero/tbdata/arch/log-t0-r0-s24.arc 0 24 91,689 2023/09/21 92,132 0 <NULL>

22 /tibero/tbdata/arch/log-t0-r0-s25.arc 0 25 92,132 2023/09/21 92,245 0 <NULL>

 

 

 

## 아카이브로그 옮기고 조회 , 리두로그는 옮기면 안됨 - 장애

select * from v$archived_log;

select * from v$archive_dest_files;

 

 

select name from v$archive_dest_files;

 

!mv /tibero/tbdata/arch/log-t0-r0-s25.arc /tibero/tbdata

 

 

수동 로그스위치

select  GROUP# , SEQUENCE#, STATUS from v$log;

# GROUP# SEQUENCE# STATUS

1 0 25 INACTIVE

2 1 26 CURRENT

3 2 24 INACTIVE

 

 

 

alter system switch logfile;

 

select  GROUP# , SEQUENCE#, STATUS from v$log;

 

# GROUP# SEQUENCE# STATUS

1 0 25 INACTIVE

2 1 26 INACTIVE

3 2 27 CURRENT

 

 

select name from v$archive_dest_files; 

# NAME

23 /tibero/tbdata/arch/log-t0-r0-s26.arc   == 만들어 졌음

 

 BLOCK_SIZE, 변경 불가, 데이타 베이스 신규로 생성하면서 변경할수 있음

 

티베로 스튜디오 -> DBA --> tablespace manager

 

테이블스페이스별 연결된 데이터파일 조회

select * from dba_data_files;

 

 

# FILE_NAME FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUTOEXTENSIBLE MAXBYTES MAXBLOCKS INCREMENT_BY

1 /tibero/tbdata/data_1/system001.dtf 0 SYSTEM 115,343,360 14,080 AVAILABLE 0 YES 1,073,741,824 131,072 1,280

2 /tibero/tbdata/data_1/undo001.dtf 1 UNDO 209,715,200 25,600 AVAILABLE 1 YES 1,073,741,824 131,072 1,280

3 /tibero/tbdata/data_1/usr001.dtf 2 USR 104,857,600 12,800 AVAILABLE 2 YES 1,073,741,824 131,072 1,280

4 /tibero/tbdata/data_1/syssub001.dtf 3 SYSSUB 20,971,520 2,560 AVAILABLE 3 YES 34,359,738,368 4,194,304 1,280

5 /tibero/tbdata/data_1/KL01.dtf 4 KL 10,485,760 1,280 AVAILABLE 4 YES 34,359,738,368 4,194,304 80

6 /tibero/tbdata/data_1/EXAMPLE01.dtf 5 EXAMPLE 10,485,760 1,280 AVAILABLE 5 YES 34,359,738,368 4,194,304 80

7 /tibero/tbdata/data_1/USERS01.dtf 6 USERS 10,485,760 1,280 AVAILABLE 6 YES 34,359,738,368 4,194,304 80

 

 

select * from dba_segments;

select * from dba_extents where owner='TIBERO';

select * from dba_free_space;

 

 

 

## 데이터파일 경로 변경

 

1. 오프라인(tbdown)

2. 파일 이동 (mv /tibero/tbdata/data_1/EXAMPLE01.dtf /tibero/tbdata/EXAMPLE02.dtf)

3. 정보수정 (마운트모드로 구동)

ALTER TABLESPACE 명령으로 Datafiles 이름 변경

ALTER DATABASE RENAME file ‘/tibero/tbdata/data_1/EXAMPLE01.dtf’ TO ‘/tibero/tbdata/EXAMPLE02.dtf’;

ALTER DATABASE BACKUP CONTROLFILE TO ‘filename’ 으로 컨트롤 파일을 백업 필요.

4. 노말 모드

 

[tibero@T1:/tibero/tibero7/config]$ mv /tibero/tbdata/data_1/EXAMPLE01.dtf /tibero/tbdata/EXAMPLE02.dtf

[tibero@T1:/tibero/tibero7/config]$ ls -la /tibero/tbdata/EXAMPLE02.dtf

-rw------- 1 tibero dba 10485760 Sep 22 14:16 /tibero/tbdata/EXAMPLE02.dtf

 

 

SQL> ALTER DATABASE RENAME file '/tibero/tbdata/data_1/EXAMPLE01.dtf' TO '/tibero/tbdata/EXAMPLE02.dtf';

 

Database altered.

 

tbdown

tbboot

 

 

사용자관리

 

select * from dba_users;

 

DBA -- 시큐리티메니져

 

 

--tibero 유져 3회 암호 잘못 입력시 계정 잠금

 

프로파일 생성

CREATE PROFILE prof LIMIT 

failed_login_attempts 3 ;

유저에게 프로파일 할당

SQL> ALTER USER tibero PROFILE prof;

티베로 유저에게 할당된 프로파일 조회

select * from dba_users;

 

# USERNAME USER_ID PASSWORD ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE DEFAULT_TABLESPACE CREATED PROFILE DEFAULT_TEMP_TABLESPACE AUTHENTICATION_TYPE LAST_LOGIN

5 TIBERO 18 <NULL> OPEN <NULL> <NULL> USR 2023/04/25 PROF TEMP PASSWORD 2023-09-21 14:37:26.0

 

tibero 유저가 잘못된 패스워드로 로그인 3회시도

3회 실패

 

# USERNAME USER_ID PASSWORD ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE DEFAULT_TABLESPACE CREATED PROFILE DEFAULT_TEMP_TABLESPACE AUTHENTICATION_TYPE LAST_LOGIN

5 TIBERO 18 <NULL> LOCKED(TIMED) 2023/09/22 <NULL> USR 2023/04/25 PROF TEMP PASSWORD 2023-09-21 14:37:26.0

 

[tibero@T1:/tibero/tibero7/config]$ tbsql tibero/tmax

 

tbSQL 7

 

TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.

 

TBR-17006: Account is locked.

 

관리자가 잠금 해제 조치

alter user tibero account unlock;

 

# USERNAME USER_ID PASSWORD ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE DEFAULT_TABLESPACE CREATED PROFILE DEFAULT_TEMP_TABLESPACE AUTHENTICATION_TYPE LAST_LOGIN

5 TIBERO 18 <NULL> OPEN <NULL> <NULL> USR 2023/04/25 PROF TEMP PASSWORD 2023-09-22 15:03:54.0

 

select ACCOUNT_STATUS from dba_users;

 

 

SQL> quit

[tibero@T1:/tibero/tibero7/config]$ tbsql tibero/tmax

 

tbSQL 7

 

TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.

 

Connected to Tibero.

 

 

 

권한(Privilege)

− 데이터베이스나 데이터베이스 오브젝트에 접근하여 SQL문을 실행하기 위한 권리

GRANT ANY PRIVILEGE 

 

 

REVOKE SELECT ANY TABLE FROM tibero;

 

부여된 시스템 권한 조회

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='SYS';

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='tibero';   --> 유져한테 권한 할당 없음

 

 

User 에게 부여된 Role 조회

SELECT GRANTEE, GRANTED_ROLE

FROM DBA_ROLE_PRIVS

WHERE GRANTEE IN ('SYS');

 

SELECT GRANTEE, GRANTED_ROLE

FROM DBA_ROLE_PRIVS

WHERE GRANTEE IN ('tibero');   --> 롤할당된거

 

 

SELECT GRANTEE, PRIVILEGE

FROM DBA_SYS_PRIVS

WHERE GRANTEE IN ('RESOURCE');

 

SELECT GRANTEE, PRIVILEGE

FROM DBA_SYS_PRIVS

WHERE GRANTEE IN ('CONNECT');

 

# GRANTEE PRIVILEGE

1 CONNECT CREATE SESSION

 

 

 

CREATE TABLESPACE TBS_EDU1

DATAFILE

'TBS_EDU1_01.dtf' SIZE 10M AUTOEXTEND OFF,

'TBS_EDU1_02.dtf' SIZE 10M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED

NOLOGGING

ONLINE

EXTENT MANAGEMENT LOCAL AUTOALLOCATE

--BLOCKSIZE 8K

SEGMENT SPACE MANAGEMENT AUTO

--FLASHBACK ON;

 ;

CREATE TABLESPACE TBS_EDU2

DATAFILE

'TBS_EDU2_01.dtf' SIZE 10M AUTOEXTEND OFF,

'TBS_EDU2_02.dtf' SIZE 10M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED

NOLOGGING

ONLINE

EXTENT MANAGEMENT LOCAL AUTOALLOCATE

--BLOCKSIZE 8K

SEGMENT SPACE MANAGEMENT AUTO

--FLASHBACK ON;

;

 

 

CREATE TEMPORARY TABLESPACE TEMP1

TEMPFILE

'TEMP1_01.dtf' SIZE 10M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED,

'TEMP1_02.dtf' SIZE 10M AUTOEXTEND ON NEXT 128K MAXSIZE UNLIMITED

--TABLESPACE GROUP ''

EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M

--FLASHBACK ON;

;

 

CREATE USER EDU1 IDENTIFIED BY "EDU1"

DEFAULT TABLESPACE TBS_EDU1

TEMPORARY TABLESPACE TEMP1

PROFILE DEFAULT

ACCOUNT UNLOCK;

 

 

SELECT USERNAME, PROFILE, ACCOUNT_STATUS

 , DEFAULT_TABLESPACE, DEFAULT_TEMP_TABLESPACE

 FROM DBA_USERS

 WHERE USERNAME = 'EDU1';

 

 

GRANT CONNECT TO EDU1;

GRANT RESOURCE TO EDU1;

 ALTER USER EDU1 DEFAULT ROLE ALL;

 

SELECT GRANTEE, GRANTED_ROLE

FROM DBA_ROLE_PRIVS

WHERE GRANTEE = 'EDU1';

 

 

 ALTER USER EDU1 QUOTA 5M ON TBS_EDU1;

 ALTER USER EDU1 QUOTA UNLIMITED ON TBS_EDU2;

 

 SELECT * FROM DBA_TS_QUOTAS;

 

# TABLESPACE_NAME USERNAME BYTES MAX_BYTES BLOCKS MAX_BLOCKS DROPPED

1 TBS_EDU1 EDU1 0 5,242,880 0 640 NO

2 TBS_EDU2 EDU1 0 -1 0 -1 NO

 

 

CREATE TABLE "EDU1".T1 (

C1 NUMBER,

C2 VARCHAR(20 BYTE)

)

TABLESPACE TBS_EDU2

 

STORAGE (

BUFFER_POOL DEFAULT

)

 

;

 

 

insert into edu1.t1 select 1,'tibero_tibero' from dual

connect by level <=100000;

 

 

스키마 객체(Schema Objects)

 

 Index-Organized Tables  --> 성능이 좋아짐 , 기존 테이블을 iot 테이블로 변경

 

 

제3장 External 테이블

 

External 테이블의 특징은 다음과 같다.

● 읽기 전용 테이블이다.

● DML 작업이 불가능하다.

● 인덱스 생성이 불가능하다

 

장점 – 대용량의 데이터를 로딩하기 위해 SQLLOAD 및 ETL을 사용할 필요가 없다.

– 테이블 생성시간이 0초에 가깝고, 생성 즉시 SELECT가 가능하다.

– 이기종의 대용량 데이터를 전환하는 방법으로 사용이 가능하다.

단점 – 데이터 컬럼 개수가 많아지면 SELECT 속도가 저하된다.

– 디스크 I/O가 많아진다.

– 인덱스를 생성할 수 없다.

 

 

분리된 레코드 형태

mkdir /home/tibero/samdata

cd /home/tibero/samdata

touch DEPT1.dat

 

 

SQL>  CREATE DIRECTORY SAMDATA AS '/home/tibero/samdata';

 

Directory 'SAMDATA' created.

 

SQL> GRANT READ,WRITE ON DIRECTORY SAMDATA TO edu1;

 

Granted.

 

 

CREATE TABLE DEPT1_EXT_TBL

 (

 DEPTNO NUMBER(4),

 DEPTNAME VARCHAR(30 BYTE),

 MGRNO NUMBER(6),

 LOCNO NUMBER(4)

 )

 ORGANIZATION EXTERNAL -- External 테이블 생성 명시

 (

 DEFAULT DIRECTORY SAMDATA -- 디렉토리 객체명 지정

 ACCESS PARAMETERS

 (

 LOAD DATA INTO TABLE DEPT1_EXT_TBL

 FIELDS TERMINATED BY ',' -- 필드 구분자 지정

 OPTIONALLY ENCLOSED BY '"' -- 필드를 감싸고 있는 문자 지정

 ESCAPED BY '\\' -- 특수문자 사용을 위한 ESCAPE 문자 지정

 LINES TERMINATED BY '\n' -- 레코드 종료 문자 지정

 IGNORE 0 LINES -- 제외할 라인 지정 (5면 1~5행 제외)

 (

 DEPTNO,

 DEPTNAME,

 MGRNO,

 LOCNO

 )

 )

 

 

 

 Reverse-Key Indexes

 

 Rebuilding Indexes Online

 

 CREATE INDEX ord_idx ON orders(ord_id) ONLINE;

 ALTER INDEX ord_idx COALESCE;

    DROP INDEX prod_id_pk; 

 

인덱스 적용 기준

• 테이블에서 사용하는 블록수가 적은 경우(DB_FILE_MULTIBLOCK_READ_COUNT 값 이하)

• 컬럼의 분포도가 10 ~ 15 % 이내인 경우 적용

• 분포도가 범위 이내더라도 절대량이 많은 경우에는 다른 방법 적용

• 분포도가 범위 이상이더라도 부분범위처리를 목적으로 하는 경우에는 적용

• 인덱스만을 사용하여 요구를 해결하는 경우는 분포도가 나쁘더라도 적용할 수 있음(손익분

기점)

 

 인덱스 컬럼 선정

• 분포도가 좋은 컬럼은 단독적으로 생성하여 활용도 향상

• 자주 조합되어 사용되는 경우는 결합인덱스 생성

• 액세스 경우의 수를 만족할 수 있도록 각 인덱스간의 역할 분담 (Application 별이 아닌 사용

형태별)

• 가능한 수정이 빈번하지 않는 컬럼

• 가능한 한 컬럼이 여러 인덱스에 포함되지 않게 할 것

• 결합 인덱스의 컬럼순서 선정에 주의 (사용빈도, 유일성, SORT유형, 부분범위처리 고려)

• 반복 수행되는 조건은 가장 빠른 수행속도를 낼 수 있도록 하는데 초점을 맞출 것

• 실제 조사된 액세스 종류를 토대로 선정 및 검증

 

 

 

 Single 파티션과 Composite 파티션 비교

 

 

진주성 블로그 방문하기
CLOSE