Skip navigation.

Pythian Group

Syndicate content
Official Pythian Blog - Love Your Data
Updated: 10 hours 19 min ago

12c Multi-tenant Environment and DBRM for Container Database

Wed, 2014-05-07 09:15

In multi-tenant environment, Database Resource Manager (DBRM), at the Container Database (CDB) level enables us to manage the resources like CPU usage and number of parallel execution servers among the plugabble databases (PDBs). Then within each PDB, DBRM enables us to manage resources like CPU, parallelism and managing the runaway queries which exceed the certain thresholds of CPU, physical IO, logical IO or elapsed time.

In 12c version of Oracle database, at the CDB level, a CDB plan is implemented. This CDB plan allocates resources to the PDBs. A CDB plan is made up of directives, with each directive aimed at a single PDB. The directive controls the allocation of CPU and Parallel execution servers. The default CDB plan is DEFAULT_CDB_PLAN. CDB plan deals in share values and utilization limits.

Shares are like counters. More the share a PDB has, the more resources it would enjoy. The utilization limit for a PDB limits resource allocation to the PDB. By default, share value for each PDB is 1, and utilization limit is 100. Utilization limit restrains the system resource usage of a specific PDB. parallel_server_limit and PARALLEL_SERVERS_TARGET are used to limit parallel servers.

Example of a CDB Plan:

Following example enforces a CDB plan ‘cdb_plan’ for two databases ‘PROD’ and ‘DEV’. Prod has 2 shares and 100% utilization limit, whereas DEV has half of it’s shares i.e. 1 and 50% of utilization limit. Pending area is just a staging area to create, edit, and validate the plans.

exec DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();

BEGIN
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN(
plan    => ‘cdb_plan’,
comment => ‘CDB plan for CDB’);
END;
/

BEGIN
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE(
plan                  => ‘cdb_plan’,
pluggable_database    => ‘Prod’,
shares                => 2,
utilization_limit     => 100,
parallel_server_limit => 100);
END;
/

BEGIN
DBMS_RESOURCE_MANAGER.CREATE_CDB_PLAN_DIRECTIVE(
plan                  => ‘cdb_plan’,
pluggable_database    => ‘Dev’,
shares                => 1,
utilization_limit     => 50,
parallel_server_limit => 50);
END;
/

exec DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();

exec DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();

You may use the DBA_CDB_RSRC_PLANS view to display all of the CDB resource plans defined in the CDB.

Categories: DBA Blogs

Dream DBA

Mon, 2014-05-05 08:01

When I was 6 I dreamed about dinosaurs – the bigger ones, like the T-Rex. I loved them. As I reached 16, I dreamed about the girl next door, and everything else was simply invisible. When I was 26, I was already a DBA of few years, going through the final years of being a rookie. I dreamed about becoming a true DBA. That’s a night dream and a day dream. A dream which I am still living day in and day out. As I have crossed 36, the journey of dreams go on.

I believe that if you want to be a champion DBA, you need to be a dreamer. What databases are today and what they would be tomorrow, will only be shaped by the database dreamers. Without these dreamers, these databases would be just a bland labor of bits and bytes. Dreamers live in an ideal world where they strive to create and nurture the things around them. So a dreamer’s database is the stainless vision of its lofty ideals.

A dreamer DBA cherishes his visions. A dreamer DBA only hears that music which stirs the chords of heart. A dreamer DBA only adopts what’s most beautiful for his database. He only drapes the configuration of his darling database with purest of parameters, for out of them grows all delightful conditions, a heavenly optimized environment, and when he remains true to it, an ideal database system gets created.

So dream big. Dream ideally, because a database dream is the prophecy which will dawn one day, and dawn it will.

Everything initially is a dream. Rose is a dream in a seed, initially. A Rainbow Lorikeet sits like a dream in an egg, for some time. At the start, every database is a bunch of files and processes. Let your dreams flourish and evolve positively, and channel them to become great implementations. From dreams, originate realities.

If you are a DBA, mired in crisis-hit databases; you only need to worry about if you don’t dream of improvement and resolution. If in difficult circumstances, you are dreaming about refinements, solutions, and elegance; only then you will be available to achieve that. To aspire is to achieve. To dream is to get. Dreams are kind of thoughts. Keep them positive and hopeful, your acts will get aligned accordingly, and you will be the victor; a true champion DBA.

If you are looking at today’s big names in databases and wondering in awe, that’s alright. But don’t attribute that to luck, fortune or chance. Don’t say that how lucky those cool DBA kids are, because they are not. They dreamed big, and then followed their dreams, and dreams enabled them do great things. They have their share of struggles and failures, but they persisted. They put in efforts and got the results. They were able to do that, because they didn’t want their dreams to crash.

You will become what your dreams are.

Categories: DBA Blogs