ORACLE Nologging 지식
1) Nologging 은 데이터베이스 실행 모드 와 관련 이 있 습 니 다. 8i 와 9i 의 기본 설 치 는 모두 비 압축 파일 모드 이 고 자동 압축 파일 은 기본적으로 사용 하지 않 습 니 다.
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Unabled
Archive destination C:/oracle/ora92/RDBMS
Oldest online log sequence 85
Current log sequence 87
2) 데이터베이스 닫 기
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
3)
SQL> startup mount
ORACLE instance started.
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
Database mounted.
4) 압축 파일 모드 로 변경
SQL> alter database archivelog;
Database altered.
5) 데이터베이스 열기
SQL> alter database open;
Database altered.
6)
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Unabled
Archive destination C:/oracle/ora92/RDBMS
Oldest online log sequence 85
Next online log sequence 87
Current log sequence 87
7) Automatic archival à Unabled 로 인해
SQL> archive log start;
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination C:/oracle/ora92/RDBMS
Oldest online log sequence 85
Next online log sequence 87
Current log sequence 87
8) 이때 데이터 베 이 스 를 닫 고 백업 하 는 것 을 추천 합 니 다.
SQL> shutdown immediate
9)
SQL> startup
10) 9i 환경 에서 FORCE LOGGING 을 설정 하면 nologging 작업 이 무효 이 고 속도 가 빨 라 지지 않 으 므 로 다음 문 구 를 통 해 NO FORCE LOGGING 으로 설정 할 수 있다.
SQL>Alter database no force logging;
FORCE LOGGING 이 열 렸 는 지 여 부 는 다음 문장 으로 볼 수 있 습 니 다.
SQL> select force_logging from v$database;
FORCE_
------
NO
11) CTAS nologging 을 사용 하여 redo size 를 비교 하 는 예
SQL> CREATE OR REPLACE VIEW redo_size
2 AS
3 SELECT VALUE
4 FROM v$mystat, v$statname
5 WHERE v$mystat.statistic# = v$statname.statistic#
6 AND v$statname.NAME = 'redo size';
View created.
SQL> connect sys/sys@oratest as sysdba;
SQL> create table t nologging as select * from dba_objects;
Table created.
-- T 가 낳 은 레 도
SQL> select * from redo_size;
VALUE
----------
48504
SQL> create table tt as select * from dba_objects;
Table created.
SQL> select * from redo_size;
VALUE
----------
3457796
-- TT 가 만들어 내 는 Redo
SQL> select 3457796 - 48504 from dual;
3457796-48504
-------------
3409292
SQL> select table_name,logging from dba_tables where table_name in ('T','TT');
TABLE_NAME LOGGIN
------------------------------------------------------------ ------
T NO
TT YES
참조 원본:http://www.itpub.net/showthread.php?s=&threadid=609347&perpage=10&pagenumber=2
12) index 에서 nologging 속성 을 사용 하 는 예
-- Table T 만 들 기
colm@COLM> create table t as select * from all_objects;
colm@COLM> connect colm/colm@colm
연결 되 었 습 니 다.
-- 현재 redo size 살 펴 보기
colm@COLM> @c:/script/mystat "redo size";
colm@COLM> set echo off
NAME VALUE
--------------------------
redo size 560
-- 색인 만 들 기
colm@COLM> create index t_idx on t(object_name);
-- 이때 redo size 를 살 펴 보면
colm@COLM> @c:/script/mystat "redo size";
colm@COLM> set echo off
NAME VALUE
--------------------------------
redo size 1252680
-- 해당 index 재건 축
colm@COLM> alter index t_idx rebuild;
색인 이 변경 되 었 습 니 다.
-- 기 존 에 발생 한 redo size 와 비교 해 보면 V 는 현재 redo 를, Diff 는 재건 축 에 의 한 redo 를 나타 내 며, creat index 와 alter index 가 발생 하 는 redol 의 양 이 거의 같다 는 것 을 알 수 있다.
colm@COLM> @c:/script/mystat2
colm@COLM> set echo off
NAME- V DIFF
---------- ------------------------------------------
redo size 2511720 1,259,040
--alter index nologging
colm@COLM> alter index t_idx nologging;
색인 이 변경 되 었 습 니 다.
colm@COLM> @c:/script/mystat2;
colm@COLM> set echo off
NAME V DIFF
---------- ------------------
redo size 2515968 2,124
-- 다시 색인 을 재 구성 해 45K 의 레 도 사이즈 가 기 존 1.2M 에 비해 많이 줄 었 다
colm@COLM> alter index t_idx rebuild;
색인 이 변경 되 었 습 니 다.
colm@COLM> @c:/script/mystat2;
colm@COLM> set echo off
NAME V DIFF
---------- ------------------
redo size 2559308 45,464
첨부: 위 에 사 용 된 스 크 립 트 2 개
--mystat.sql
set echo off
set verify off
column value new_val V
define S="&1"
set autotrace off
select a.name, b.value
from v$statname a, v$mystat b
where a.statistic# = b.statistic#
and lower(a.name) like '%' || lower('&S')||'%'
/
set echo on
--mystat2.sql
set echo off
set verify off
column diff format a18
select a.name, b.value V, to_char(b.value-&V,'999,999,999,999') diff
from v$statname a, v$mystat b
where a.statistic# = b.statistic#
and lower(a.name) like '%' || lower('&S')||'%'
/
set echo on
13) Direct insert append 에 redo 양 이 발생 하 는 문제 에 대해 eygle 은 테스트 를 한 적 이 있다.
a). :
create table test as select * from dba_objects where 1=0;
insert into test select * from dba_objects;
insert
/*+ append */
into test select * from dba_objects;
Noarchivelog , Direct insert append redo
create table test nologging as select * from dba_objects where 1=0;
insert into test select * from dba_objects;
insert
/*+ append */
into test select * from dba_objects;
Noarchivelog , nologging Direct insert append redo
b). :
create table test as select * from dba_objects where 1=0;
insert into test select * from dba_objects;
insert
/*+ append */
into test select * from dba_objects;
, insert append insert redo
insert append .
append
create table test nologging as select * from dba_objects where 1=0;
insert into test select * from dba_objects;
insert
/*+ append */
into test select * from dba_objects;
archivelog , nologging Direct insert append redo,
Noarchivelog Direct insert append
:http://www.itpub.net/showthread.php?s=&postid=1618916
14) nologging,direct insert,UNDO ,biti_rainy
nologging , direct insert, undo, insert rowid
direct insert ,
。 , redo,
logging direct insert , undo undo
http://www.itpub.net/showthread.php?threadid=217094
:
Nologging
1. CTAS
2. Index
3.
Insert /*+ append */ into tes
t
select
—
4. remove, split 와 같은 대체 표 조작
더 많은 정보http://search.itpub.net/search.php?s=5ee7a3ad7109a32ae7033f52d68be149&action=showresults&searchid=399212&sortby=lastpost&sortorder=descending
또한, 자신 이 테스트 할 때 buffer cache 를 비 워 야 한다 고 생각 할 수 있 으 므 로 참고 하 시기 바 랍 니 다.
http://www.eygle.com/archives/2005/12/oracle_howto_flush_buffer_cache.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.