How high can I set undo retention on Oracle 11gR2 Is it viable to set a very high undo retention, as to allow flashback queries several weeks back in time?

Naturally, enough space must be available in the undo tablespaces to contain the amount of undo data required. Are there other limitations I should be aware of?

What happens if there is not enough undo space available? Will production be affected in any way, or is it just a matter of flashback and rollback being limited (snapshot too old etc).

Update:

With a typical undo generation of a little less than 1 GB per day per instance, and up to 64 GB worth of undo space per instance it sounds viable to run with a 30-day undo retention target. No?
Very high is a relative term that depends on perspective.  You could mean 1 hour, 1 month, 1 year, etc.  Assuming you mean something between one minute and one month, the answer will depend on how much undo is being produced and how much storage you have available.  I haven't seen anything higher than two weeks.  

Oracle automatically manages the undo space and will dynamically decrease the retention below the undo retention setting if space constraints require it.  The caveat to that is when the undo tablespace has guaranteed retention.

The Oracle Database Administrator's Guide covers all this information on one page.  Here are some excerpts:


  Oracle Database automatically tunes the undo retention period based on
  undo tablespace size and system activity. You can optionally specify a
  minimum undo retention period (in seconds) by setting the
  UNDO_RETENTION initialization parameter. The exact impact this
  parameter on undo retention is as follows:
  
  
  The UNDO_RETENTION parameter is ignored for a fixed size undo tablespace. The database always tunes the undo retention period for
  the best possible retention, based on system activity and undo
  tablespace size. See "Automatic Tuning of Undo Retention" for more
  information.
  For an undo tablespace with the AUTOEXTEND option enabled, the database attempts to honor the minimum retention period specified by
  UNDO_RETENTION. When space is low, instead of overwriting unexpired
  undo information, the tablespace auto-extends. If the MAXSIZE clause
  is specified for an auto-extending undo tablespace, when the maximum
  size is reached, the database may begin to overwrite unexpired undo
  information. The UNDOTBS1 tablespace that is automatically created by
  DBCA is auto-extending.
  
  
  ...
  
  To guarantee the success of long-running queries or Oracle Flashback
  operations, you can enable retention guarantee. If retention guarantee
  is enabled, the specified minimum undo retention is guaranteed; the
  database never overwrites unexpired undo data even if it means that
  transactions fail due to lack of space in the undo tablespace. If
  retention guarantee is not enabled, the database can overwrite
  unexpired undo when space is low, thus lowering the undo retention for
  the system. This option is disabled by default.