Skip to Main Content
  • Questions
  • DBT-11211 when running DBCA in silent mode

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Hakan.

Asked: May 14, 2020 - 11:40 am UTC

Last updated: May 18, 2020 - 2:46 am UTC

Version: 12.2 and 19c

Viewed 1000+ times

You Asked

Hi,

I have a few questions if someone can help with. We have an OLTP system with various user counts across the system so memory allocations are different currently. We have a mixture or user reporting/user processing happening all day.

So we have ASMM set across our systems and as an example have the below set for one client

pga_aggregate_limit
big integer
2655M
pga_aggregate_target
big integer
0

memory_max_target
big integer
3G

memory_target
big integer
3G

shared_pool_size
big integer
0

db_keep_cache_size
big integer
0

My aim is to

1) Devise a figure to set minimums for shared_pool_size and db_keep_cache_size. Is there a formula to set these initially during the db creation such as 30% shared_pool_size and 30% db_keep_cache_size leaving the rest for other memory areas to manage as needed?
2) Should we set a minimum for PGA? How would I do this? would i need to set pga_aggregate_target? If i set this am i moving away from ASMM to AMM?

In addition,

When we try and run dbca in our 19c test environments we get

FATAL DBT-11211

We are unable to enable ASMM. This is a pain as our silent installs are failing currently so we need to change these to set SGA Target instead.

Am I missing something above.

Hope I explained the situation properly and if anyone can help or provide guidance that would be great and appreciated.

Thanks

Hakan

and Connor said...

Don't use memory_target. We had more issues than benefits with this mechanism, so we reverted to recommending the combination of sga_target and pga_agg_target for recent versions when the memory sizes are anything above tiny databases.

Other than that, set db_keep_cache_size *only* if really need to, and can prove there is a benefit to doing so. If you can do that, then I'd set it to the sum of the objects you plan to keep in there. But its rare to need a keep cache nowadays.

In terms of SGA vs PGA split, choose that based on OLTP vs DSS style operations you expect. In terms of total allocation, choose allocations that leave sufficient room for OS and database processes, you can monitor the latter from v$sesstat or start with say 2MB * connected sessions as *rough* guide.

Rating

  (1 rating)

Is this answer out of date? If it is, please let us know via a Comment

Comments

ASMM

Hakan Yusuf, May 15, 2020 - 7:29 am UTC

Thanks for the response Connor. My only follow up would be why does Oracle recommend setting ASMM? Is there any notes I can read to understand?

Just to make sure I understand we should set SGA_TARGET and SGA_MAX_SIZE?

Then setting pga_aggregate_target accordingly.

In addition if we want to set minimums within this memory area then set shared_pool_size and db_cache_size.

Thanks

Hakan
Connor McDonald
May 18, 2020 - 2:46 am UTC

Correct.

Full auto memory management is for a different use case. We might have an Oracle database embedded within a server or device, and it will never be interacted with. There won't be a DBA, there might not even be an IT person. It just sits there as a database store.

In those cases, typically the database is small, the RAM is small and we want the absolute minimum management interaction. AMM is good for that. But if you've got a DBA or any form of management of the DB, then the separation of SGA and PGA makes more sense.

More to Explore

Administration

Need more information on Administration? Check out the Administrators guide for the Oracle Database