REDO-LESS Operations (NOLOGGING option) in Oracle

REDO-LESS Operations (NOLOGGING option) in Oracle

It is possible not to generate redo data at some operations. The examples would be a direct loader, CREATE TABLE AS SELECT(CTAS), and CREATE INDEX with NOLOGGING option. However, even in these cases, a little redo will be generated when the operation changes data dictionary block and when the delayed block cleanout execute for a source object.

The NOLOGGING option can be used for the following SQL statements from Oracle 8.

Direct-load INSERT
ALTER TABLE … MOVE PARTITION
ALTER TABLE … SPLIT PARTITION
ALTER INDEX … SPLIT PARTITION
ALTER INDEX … REBUILD
ALTER INDEX … REBUILD PARTITION
From the Oracle8 Reference Manual:

With the NOLOGGING option, data is updated with minimal logging which means that it makes newly allocated extent invalid and it generates only logs to change its dictionary information. So in case of media recovery, the extent invalidation record shows some block is logically corrupt status because there no redo log for the recovery.

So, the data in the table should be kept, the backup should be done after the work with NOLOGGING.

The following is the example;
REDO RECORD – Thread:1 RBA: 0x0000cf.0000002a.01c0 LEN: 0x0028 VLD: 0x01
SCN scn: 0x04e2.0023a5da 10/07/98 09:54:20
CHANGE #1 INVLD AFN:8 DBA:0x02007277 BLKS:0x001f SCN:0x04e2.0023a5da SEQ: 1 OP:19.2

When the redo record is applied to this block, the ORA-273 error would be occurred on it.

ORA-00273 “media recovery of direct load data that was not logged”
Cause: A media recovery session encountered a table that was loaded by the direct loader without logging any redo information. Some or all of the blocks in this table are now marked as corrupt.
Action: The table must be dropped or truncated so that the corrupted blocks can be reused. If a more recent backup of the file is available, try to recover this file to eliminate this error.

When any operation try to read the block, the ORA-1578 error would be occurred.

Reference Ducumment : DSI305

 

 

 

 

일부 operation의 경우 redo를 생성시키지 않는 것이 가능하다. 예를 들어 direct loader나, CREATE TABLE AS SELECT 나 CREATE INDEX에 NOLOGGING 옵션을 사용하는 경우를 들 수 있다. 이 경우 redo 생성이 되지 않는다. 주의해야 할 것은 이 경우에도 data dictionary에 대한 변동 사항에 대해서는 operation에 의해 영향을 받는 block들에 대해 여전히 redo 가 생성이 된다는 것이다. 또한 source object에 대해 delayed block cleanout 이 수행될 경우에도 redo가 생성된다.

오라클 8 부터는 다음 SQL 문장들에 NOLOGGING 옵션을 사용 할 수 있는 기능이 추가 되었다.

Direct-load INSERT
ALTER TABLE … MOVE PARTITION
ALTER TABLE … SPLIT PARTITION
ALTER INDEX … SPLIT PARTITION
ALTER INDEX … REBUILD
ALTER INDEX … REBUILD PARTITION
From the Oracle8 Reference Manual:

NOLOGGING 모드에서는, 데이터는 최소한의 logging으로 수정이 된다 ( 최소한의 logging이란, 새로 할당된 extent를 invalid 상태로 만들고, dictionary 정보를 변경하는데 필요한 log 정보를 말한다 ). Media recovery중에는 extent invalidation record는 일정 범위의 block이 논리적으로 corrupt 상태임을 나타내는데, 이것은 복구에 필요한 완전한 redo log가 남아 있지 않기 때문이다.

따라서, 테이블의 내용이 유실되어서는 않되는 상황이라면, NOLOGGING 작업 후 BACKUP을 수행하여야 한다.

LOGGING 옵션을 사용했을 경우와 비교해 NOLOGGING 모드에서는 훨씬 적은 양의 redo log가 생성된다. Redo log에 invalidation record는 일정 범위의 block이 software corrupt상태임을 나타내기 위한 것이다. 이 경우 change vector의 type은 INVALID로 지정이 되며, 범위는 최초 시작 지점인 DBA에 의해 결정된 후, 연속된 block의 개수도 지정이 된다.

다음은 예이다.
REDO RECORD – Thread:1 RBA: 0x0000cf.0000002a.01c0 LEN: 0x0028 VLD: 0x01
SCN scn: 0x04e2.0023a5da 10/07/98 09:54:20
CHANGE #1 INVLD AFN:8 DBA:0x02007277 BLKS:0x001f SCN:0x04e2.0023a5da SEQ: 1 OP:19.2
Redo record가 적용될 경우, 이 블록에 대해서는 ORA-273 에러가 발생한다.

ORA-00273 “media recovery of direct load data that was not logged”
Cause: A media recovery session encountered a table that was loaded by the direct loader without logging any redo information. Some or all of the blocks in this table are now marked as corrupt.
Action: The table must be dropped or truncated so that the corrupted blocks can be reused. If a more recent backup of the file is available, try to recover this file to eliminate this error.

해당 block을 읽으려는 operation 역시 alert log에 ORA-1578이 남는다.

Reference Ducumment : DSI305

캐나다 BC주 구직사이트 모음(job search engine)

다음은 제가 한참 구직할때 유용하게 사용하던 구직사이트 모음입니다. 일부는 BC주에만 해당되거나 IT 업종에만 해당되는 사이트도 있으니 참고하세요.
제 경험상 Indeed.ca나 eluta.ca, 그리고 T-Net이 가장 효율이 좋았습니다.

Eluta.ca – www.eluta.ca
A meta-search engine which specializes in finding new job ads from employers in Canada. Besides up-to-date job postings, Eluta also provides employer profiles and information from the publishers of Canada’s Top 100 Employers on top companies, best diversity employers, best employers for newcomers and new graduates, most environmentally conscious companies, etc.

Indeed.ca – www.indeed.ca
Get jobs collected from job boards, newspaper classifieds and corporate sites. Read the Blog for information on trends, company profiles and labour market data from around the world.

BCjobs.ca – www.bcjobs.ca
BC Jobs has been in business for almost 10 years, providing BC job seekers with information about the local labour market and BC-based companies, as well as BC jobs.

T-Net – http://www.bctechnology.com/

Eluta와 Indeed는 일종의 job search 엔진입니다. 즉, company에서 자신의 회사 홈페이지 구인란에 구인공고를 내면 이 job search엔진이 그 내용을 찾아주는 구글과 비슷한 개념의 구직사이트이지요. 즉, 회사에서 구인공고를 Eluta나 Indeed에 직접 올리지 않아도 되는 시스템이지요. 요즘엔 이런 사이트가 많이 사용되고 있다고 합니다.

혹시 찾고자 하는 일자리가 IT 직종이고 BC주에 위치하는 회사라면 T-Net 이라는 웹사이트는 필수로 보셔야 하는 구직 사이트입니다. 구직 정보뿐 아니라 각종 IT 회사 동향에 대한 뉴스도 나오고 아주 선호도가 높은 웹사이트 입니다. IT 회사라면 자신의 회사 홈페이지에 구인 공고를 낼때 꼭 T-Net에도 함께 올리는게 일반화 되어 있습니다. 저도 매일매일 몇번씩 이 사이트를 방문했었고, 저의 현재 일하는 회사도 이 사이트에서 공고를 보고 잡게 된 것입니다.

 

아래는 기타 구직 사이트입니다. 참조하세요.

 

Here is a list of the job boards:

Finance Accounting – www.jobwings.com

Accounting & Bookkeeping – www.accountingjobs.ca

Human Resources – www.hrjob.ca

Sales – www.salesrep.ca

Computer Science – www.itjob.ca

Retail – www.retailjob.ca

Engineering – www.recrutech.ca

Administrative Support – www.adminjob.ca

Call Centers & Customer Service – www.callcenterjob.ca

Project Management – www.pmjob.ca

Business Analysis – www.bajob.ca

Pharmaceutical – www.pharmajob.ca

Healthcare – www.healthcarejob.ca

Legal – www.legaljob.ca

Paralegal – www.paralegaljob.ca

Part-time – www.part-time.ca

 

Other Job Posting Sites:

All Canadian Jobs www.allcanadianjobs.com

Allstar Jobs www.allstarjobs.ca

BetterJobs www.betterjobs.biz

BC Government Jobs  http://employment.gov.bc.ca

BCjobnetwork.com www.bcjobnetwork.com (online job matching)

Canadajobs.com www.canadajobs.com

Canadian Job Search www.webcrew.com/jobs/morejobs.htm

Canjobs.com www.canjobs.com

Careerjet.com www.careerjet.ca

CareerOwl www.careerowl.com

Jobs in Tourism and Hospitality www.cooljobscanada.com

Craigslist Vancouver http://vancouver.craigslist.org/jjj/

eFinancialCareers www.efinancialcareers-canada.com

Elance for Freelancers www.elance.com

Engineering www.recrutech.ca

Find A Job Canada www.find-a-job-canada.com

Groove Job www.groovejob.com

Higher Bracket: Job Postings for Executives www.higherbracket.ca

Job Bank www.jobbank.gc.ca

Jobboom www.jobboom.com

Job Bus Canada www.jobbus.com

Job Shark www.jobshark.ca

JobLineCanada.com www.joblinecanada.ca

Science Jobs Canada www.sciencejobs.ca

Monster.ca – Search Jobs Search for jobs all over Canada and the rest of World! www.monster.ca

Vancouver Vicinity Jobs www.vicinityjobs.com

WorkLink Employment Society www.worklink.bc.ca/temp

Workopolis www.workopolis.com