기술문서 Tibero 관리 3
2023.10.25 14:32
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 파티션 비교
댓글 0
번호 | 제목 | 날짜 | 조회 수 |
---|---|---|---|
170 | 급증하는 키싱(Qishing) 공격 | 2023.11.14 | 112 |
169 | tibero 7 install for linux | 2023.11.06 | 169 |
168 | Red Hat Enterprise Linux Certification Matrix for Dell PowerEdge Servers | 2023.11.02 | 70 |
167 | Tibero test sql문, SCHEMA_OBJECT_SAMPLE | 2023.10.25 | 112 |
» | Tibero 관리 3 | 2023.10.25 | 562 |
165 | Tibero 관리 2 | 2023.10.25 | 145 |
164 | Tibero 접속 및 관리 | 2023.10.25 | 189 |
163 | Jeus 8.5 + WebtoB 연동및 운영 | 2023.10.24 | 156 |
162 | Jeus 8.5 설치및 운영 | 2023.10.24 | 230 |
161 | Webtob Install for Windows and command | 2023.10.24 | 156 |
160 | Webtob Install for Linux | 2023.10.23 | 193 |
159 | HPUX Apache 2.4.53 다운로드 및 설치 | 2022.07.20 | 131 |
158 | qlogic qaucli command - HBA카드 온도체크 | 2022.07.05 | 1465 |
157 | 2021년도 주요정보통신기반시설 기술적 취약점 분석ㆍ평가 방법 상세가이드 | 2022.06.23 | 139 |
156 | Apache Log4j 취약점및 대응방안 | 2022.02.05 | 102 |