Oracle nologging impact for REDO Generation
To get to the bottom of this you likely need to identify the SQL statements that are generating the REDO.  Unfortunately I don't think there is any simple, completely automated way to detect REDO per SQL.

But it's usually not too difficult to track down the worst SQL statement.  Since you've already got AWR, look at the SQL Statistics section, ordered by Elapsed Time.  If there's a lot of REDO then one of those statements may stick out.  For example, if the top statement is an UPDATE, DELETE, MERGE (UPDATE), or an INSERT without a hint (or with a bad hint).

Possibly the top statements are all CTAS or INSERT /*+ APPEND */.  In that case, look at the explain plan for each of those top statements, for example by using select * from table(dbms_xplan.display_awr(sql_id =&gt; 'sql_id from AWR'));  If the execution plan says LOAD AS SELECT then it's using direct path inserts and is OK.  If it says LOAD TABLE CONVENTIONAL, that's the problem statement.

Possibly they are all ok, but the REDO is generated by the indexes.  The only way an index will not generate REDO is if the index is set to NOLOGGING and if the index is built after the INSERT.  Index NOLOGGING only applies to index DDL.  You may need to drop/disable and recreate/rebuild indexes to reduce REDO.

In my experience, the most likely causes of an INSERT statement not running in direct-path write are:


Foreign key indexes enabled on the target table, except when reference partitioning is used.
Bad hint syntax.  For example, if there's a space before the plus sign, like this: /* +.  Or if the hint is placed in a slightly wrong position, like this
INSERT INTO /*+ append */ ....
Weird data types that aren't supported.  I can't remember exactly, but I think with LOBs there are some extra limitations, like you may need to have partitioning.
Triggers on the target table.
There are likely some other reasons I'm forgetting.


Post the entire SQL statement and execution plan and we may be able to help investigate.

If none of that helps, than maybe it is an AWR bug.  15GB per second is very high, but not impossible.  I wouldn't be too surprised if an Exadata system could achieve that.