DB Creation   «Prev  Next»

Module 6 Conclusion

Database Creation and Preparation in Oracle 26ai

Lesson 1 opened this module with five stated goals: review Optimal Flexible Architecture, create a database parameter file, size the SGA and buffer cache, decide on a block size, and size the initial database files. We did all five, and picked up a fair amount of ground beyond the original list along the way: a full preinstallation checklist, the Fault Diagnosability Infrastructure, and a handful of additional parameters worth knowing before you actually run CREATE DATABASE in the next module. This page pulls the whole nine lessons together, centered on the one artifact that's been under continuous construction the entire time: initCOIN.ora.

The initCOIN.ora File, As It Now Stands

Four lessons contributed directly to this file. Lesson 4 laid the foundation, Lesson 5 revised the control files, and Lesson 6 added the block size. Assembled together, here's where COIN's parameter file actually stands right now:
# initCOIN.ora

db_name='COIN'
db_unique_name='COIN'

# Memory: Automatic Memory Management (Lesson 4, confirmed still appropriate in Lesson 8)
memory_target=2G

# Control files: three copies on one mount point for this training environment
# (Lesson 5 revised Lesson 4's original two-file version)
control_files=(
  '/u01/app/oracle/oradata/COIN/control01.ctl',
  '/u01/app/oracle/oradata/COIN/control02.ctl',
  '/u01/app/oracle/oradata/COIN/control03.ctl'
)

# Diagnostics: Automatic Diagnostic Repository root (Lesson 4, elaborated in Lesson 9)
diagnostic_dest='/u01/app/oracle'

# Multitenant: bootstrap parameter for CDB creation (Lesson 4)
enable_pluggable_database=TRUE

# Block size: deliberately 4096, one of two typical values, not the 8192 default (Lesson 6)
db_block_size = 4096
That's six parameters, each one earning its place for a reason covered in an earlier lesson, not copied blindly from an old template. Lesson 9 introduced four more parameters, DB_FILES, PROCESSES, OPTIMIZER_MODE, and COMPATIBLE, but explicitly as situational settings to add if they apply to your environment, not as required additions to COIN specifically. Worth knowing they exist and what they control; not worth cluttering a small training database's parameter file with values you'd only be copying rather than choosing deliberately.

The Thread Running Through Every Lesson: CDB Is Not Optional

If one architectural fact shaped more of this module than any other, it's that multitenant container database architecture isn't a special configuration anymore, it's the only one. Lesson 2's preinstallation checklist flagged it as the single biggest structural surprise for anyone returning to Oracle after a few years away. Lesson 5 built on it directly: creating a database today means creating SYSTEM/SYSAUX datafiles twice, once for the CDB root and once for the seed pluggable database, PDB$SEED, not the single flat file set older material describes. Lesson 6 showed the same architecture constraining a decision you might not expect it to touch at all: DB_BLOCK_SIZE isn't modifiable at the PDB level, so choosing it isn't just a decision for COIN as a whole, it's a decision for every PDB you'll ever plug into COIN. And Lesson 9 closed the loop on diagnostics: the ADR records everything at the CDB level, so a trace file generated inside a PDB still carries the CDB's name, not the PDB's.

One Parameter Replaced Three, Twice Over

A second pattern repeated across this module: old, narrowly-scoped parameters getting consolidated into single, broader ones. Lessons 1, 4, and 9 all touched the same story from different angles, BACKGROUND_DUMP_DEST, USER_DUMP_DEST, and CORE_DUMP_DEST are all superseded by one parameter, DIAGNOSTIC_DEST, which governs the entire Automatic Diagnostic Repository structure, alert, cdump, trace, and incident subdirectories, all organized underneath it automatically. Lesson 9 traced the exact fallback chain if you never set it explicitly: your $ORACLE_BASE environment variable first, then whatever Oracle Universal Installer configured as ORACLE_BASE, and only as a last resort, $ORACLE_HOME/rdbms/log.
Lesson 8 showed the same consolidation pattern playing out for memory. The old two-parameter approach, db_block_buffers plus shared_pool_size, is genuinely broken today, not just outdated: db_block_buffers defaults to 0 and can't even coexist with the modern db_cache_size parameter in the same file. What COIN actually uses instead is memory_target, letting Oracle redistribute SGA and PGA memory automatically. Lesson 8 also introduced Unified Memory, a newer, single-parameter alternative (MEMORY_SIZE) built for consolidated, multi-workload environments, worth knowing about even though it's not what COIN uses, since it's mutually exclusive with memory_target, not layered on top of it.

A Third Pattern: The Read-Only Oracle Home Split

The same "one location moves elsewhere under a read-only Oracle home" pattern showed up three separate times. Lesson 1 introduced it for the ADR itself. Lesson 4 confirmed it for PFILE and SPFILE location, $ORACLE_HOME/dbs under the standard setup, $ORACLE_BASE_CONFIG/dbs under a read-only home. Lesson 7 confirmed the identical split for TNS_ADMIN and network files, right down to Oracle's actual documented search order: the TNS_ADMIN variable first, then /etc, then ORACLE_BASE_HOME/network/admin, then ORACLE_HOME/network/admin as the last fallback. This isn't a 26ai-specific change, all three lessons were careful to note it's an established, version-independent capability, but it's exactly the kind of thing worth knowing if you ever work in an environment where someone else made that configuration choice before you arrived.

Where Every Value We Chose for COIN Actually Came From

None of the specific values in COIN's parameter file were arbitrary:
  • 4096 for the block size (Lesson 6): one of two values Oracle's own documentation calls typical, deliberately not the 8192 default, chosen to illustrate that the default isn't the only reasonable choice for a small training database.
  • Three control files on one mount point (Lesson 5): a training-environment compromise. Real multiplexing benefit needs genuinely separate storage, physical disks or ASM failure groups, which Lesson 5 covered in detail for when this database eventually needs to look more like a production one.
  • Redo logs sized at the practical minimum (Lesson 7): not an arbitrary small number, but Oracle's actual enforced floor, 4 MB. Anything smaller doesn't just perform poorly, it fails outright with an error. This was chosen specifically to let COIN generate archive log files without first pushing a large volume of data through it.
  • 2G for memory_target (Lesson 4, revisited in Lesson 8): comfortably above Unified Memory's 1.5 GB floor, meaning COIN could switch to MEMORY_SIZE later without any real obstacle, though there's no reason to for a database this size.

What's Next

Lesson 1 promised that the module following this one would actually create the course project database we've been preparing for this entire time. That's still the plan. Everything built here, the parameter file, the directory structure following OFA, the block size decision, the redo log and control file placement, exists specifically so that CREATE DATABASE in the next module has something real to start from, not a blank slate. If you're running Oracle yourself, you now have a working initCOIN.ora ready to bootstrap an instance to NOMOUNT. If you're not, you've still walked through every decision a DBA actually has to make before that command runs, which is the more durable skill either way.

Names, Domains, Parameter File Settings - Quiz

Click the Quiz link below to test what you have learned.
Names, Domains, Parameter File Settings - Quiz

SEMrush Software 10 SEMrush Banner 10