Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am configuring data guard. So I want to calculate required bandwidth as formula:

Bandwidth in MBPS = (redo bytes per sec /0.7)8)/1,000,000

Can someone explain how would I be able to calculate the Redo bytes per second in order to calculate the above formula? I'm using Oracle 11g.



share|improve this question
up vote 2 down vote accepted

GV$ARCHIVED_LOG contains information about each archived log file that was generated (archived logs are just archived versions of the redo logs). So you can query that. Something like

SELECT SUM(blocks*block_size) total_bytes
  FROM gv$archived_log
 WHERE first_time BETWEEN <<some start date>> AND <<some end date>>

will give you the total amount of redo generated over that period of time. Divide by the number of seconds between the dates to get a redo rate. You'll need to use a date range that is large enough given the number of redo log switches you see to avoid huge variations if a log switch happens just before or just after the window but not so large that you average out an entire day's activities and find that you don't have enough bandwidth to handle peak redo load. It's probably reasonable to find the hour or two during the day that constitutes your peak load and compute the rate of redo generation over that window for, say, a week.

share|improve this answer
Hi Justin - I think the "sum(blocks) * << your block size>>" bit can be a bit misleading as someone might take it to be their standard tablespace block size (8kB, say). It implies your database tablespace blocksize. Better to use the block_size column in the view - for example: "sum(blocks * block_size) / 1024 / 1024 / 1024" will give the size in GB. – Nick Pierpoint Nov 21 '09 at 1:05
... if you group by "to_char(first_time, 'YYYYMMDD-HH24')" you can calculate the redo MB per sec in hourly blocks as "sum(blocks * block_size) / 1024 / 1024 / 60 / 60 redo_mb_per_sec" - often gives you a good estimate of peaks redo generation – Nick Pierpoint Nov 21 '09 at 1:13
Nick- Good suggestion. I modified my SQL statement to use the block_size from gv$archived_log. – Justin Cave Nov 21 '09 at 5:28
I have read some docs and it says that we can get redo rate per secs by running AWR report. Can you tell me the steps performed to get AWR report using Enterprise Manager? – Sarith Nov 23 '09 at 2:19

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.