What Is New in Oracle Database 10g Release 1
Oracle Database 10g Release 1 (10.1) marks a fundamental shift in how Oracle positions its database platform -- from a manually administered engine to a self-managing, grid-aware system. The "g" in 10g stands for Grid, and nearly every major feature in this release reflects that design intent: automate the tedious, absorb storage complexity, and give the DBA diagnostic intelligence instead of raw instrumentation.
| Category | Highlights |
|---|---|
| New Features | Automatic Storage Management (ASM), Automatic Workload Repository (AWR), Automatic Database Diagnostic Monitor (ADDM), Active Session History (ASH), SQL Tuning Advisor, Flashback Database, Flashback Drop with Recycle Bin, Flashback Table, Flashback Version Query, Data Pump (expdp/impdp), DBMS_SCHEDULER, Regular Expression support in SQL/PL/SQL, Bigfile Tablespaces, Cross-Platform Transportable Tablespaces, SYSAUX tablespace, Browser-based Enterprise Manager Database Control |
| Improvements | Automatic SGA Memory Management (ASMM), Automatic Statistics Collection, CBO optimizer enhancements, Online Table Redefinition (COPY_TABLE_DEPENDENTS), Fine-Grained Auditing extended to DML (INSERT/UPDATE/DELETE), RAC rolling patches, UTL_MAIL, UTL_COMPRESS, DBMS_MONITOR for end-to-end tracing, OPTIMIZER_MODE default changed to ALL_ROWS |
| Breaking Changes | OPTIMIZER_MODE default changed from CHOOSE to ALL_ROWS -- existing plans may change; SYSAUX tablespace is now mandatory and created automatically during install/upgrade |
| Deprecations | Rule-Based Optimizer (RBO) is formally desupported -- no bug fixes provided; original EXP/IMP utilities superseded by Data Pump; NOPARALLEL, NOPARALLEL_INDEX, and NOREWRITE hints deprecated in favor of NO_PARALLEL, NO_PARALLEL_INDEX, NO_REWRITE; OPTIMIZER_MODE values CHOOSE, RULE, and FIRST_ROWS removed |
What is Automatic Storage Management (ASM) in Oracle 10g and how does it replace a volume manager?
Automatic Storage Management (ASM) is a new integrated file system and volume manager introduced in Oracle Database 10g Release 1 that allows the database to manage datafiles, controlfiles, and redo logs directly -- without a third-party logical volume manager or file system product.
In practice, ASM replaces the traditional raw-device or third-party LVM setup with a concept called disk groups. You assign physical disks (or LUNs) to a disk group, and ASM handles striping, mirroring, and rebalancing automatically. When a new disk is added to a disk group, ASM begins rebalancing I/O in the background without any downtime. When a disk fails, ASM automatically re-mirrors the affected extents onto surviving disks.
ASM runs as a separate Oracle instance (with no data dictionary of its own) and introduces three new background processes: ASMB, RBAL, and ARBx. Watch out for the COMPATIBLE.ASM and COMPATIBLE.RDBMS disk group attributes -- they default to 10.1 and must be explicitly advanced to unlock features from later releases. Only RMAN can be used to back up files stored in ASM disk groups.
The syntax to use ASM is straightforward. Reference a disk group with a "+" prefix wherever a filename is expected:
-- Create a tablespace backed by an ASM disk group
CREATE TABLESPACE sales_data
DATAFILE '+DATA' SIZE 500M AUTOEXTEND ON;
-- Add a disk to an existing disk group (rebalancing is automatic)
ALTER DISKGROUP DATA ADD DISK '/dev/sdd1';
-- Check rebalance progress
SELECT GROUP_NUMBER, OPERATION, STATE, POWER, SOFAR, EST_WORK
FROM V$ASM_OPERATION;
Most teams migrating from 9i to 10g adopt ASM incrementally -- keeping existing cooked file systems and moving only new databases or new tablespaces to ASM. The migration path from a disk-based backup to full ASM storage is well-documented and does not require a full cold migration.
How does Oracle 10g automate performance diagnostics with AWR, ADDM, and ASH?
Oracle Database 10g Release 1 introduces a trio of tightly integrated self-tuning components -- the Automatic Workload Repository (AWR), the Automatic Database Diagnostic Monitor (ADDM), and Active Session History (ASH) -- that together replace manual Statspack workflows and ad-hoc tuning sessions.
The Automatic Workload Repository (AWR) is the successor to Statspack. It automatically captures, processes, and retains performance statistics at configurable intervals (default: every 60 minutes, retained for 7 days). Unlike Statspack, AWR is integrated into the kernel and feeds all other advisory components. The underlying data is stored in the new mandatory SYSAUX tablespace.
The Automatic Database Diagnostic Monitor (ADDM) runs automatically after each AWR snapshot and analyzes the collected data to identify the most significant performance bottleneck in the previous interval. Rather than presenting raw wait statistics, ADDM produces ranked findings with specific, actionable recommendations -- whether that is adding an index, enabling parallel query, or increasing the buffer cache. This matters if your team previously spent hours correlating Statspack reports by hand.
The Active Session History (ASH) samples active sessions every second and retains the in-memory history for real-time analysis. It fills the gap between AWR snapshots, enabling sub-minute diagnosis of transient problems that would otherwise vanish before the next AWR report.
-- Run an ADDM report for a specific AWR snapshot range
DECLARE
task_name VARCHAR2(30) := 'my_addm_task';
begin_snap NUMBER := 100;
end_snap NUMBER := 101;
BEGIN
DBMS_ADVISOR.CREATE_TASK(
advisor_name => 'ADDM',
task_name => task_name
);
DBMS_ADVISOR.SET_TASK_PARAMETER(task_name, 'START_SNAPSHOT', begin_snap);
DBMS_ADVISOR.SET_TASK_PARAMETER(task_name, 'END_SNAPSHOT', end_snap);
DBMS_ADVISOR.EXECUTE_TASK(task_name);
END;
/
-- Or use the supplied script directly (simpler in most cases)
@$ORACLE_HOME/rdbms/admin/addmrpt.sql
In addition to ADDM, the SQL Tuning Advisor works with the Automatic Tuning Optimizer (ATO) to analyze high-load SQL from the AWR workload history and generate recommendations for new indexes, SQL profiles, or query restructuring -- all without manual intervention unless a recommendation requires a schema change.
Automatic SGA Management (ASMM) completes the picture by dynamically resizing the shared pool, buffer cache, and other SGA components based on real-time workload data from AWR, eliminating the need to manually tune DB_CACHE_SIZE and SHARED_POOL_SIZE for most workloads.
What flashback features does Oracle 10g Release 1 introduce for accidental data recovery?
Oracle Database 10g Release 1 dramatically expands Flashback Technology beyond the row-level Flashback Query introduced in 9i, adding Flashback Database, Flashback Table, Flashback Drop, and Flashback Version Query -- each targeting a different tier of accidental loss.
Flashback Database allows you to rewind the entire database to a past point in time using flashback logs stored in the Flash Recovery Area, without restoring from backup. This is orders of magnitude faster than a conventional point-in-time recovery (PITR) via RMAN for most scenarios. Watch out: flashback logs must be enabled before the incident, and the Flash Recovery Area must be appropriately sized to retain enough history.
Flashback Drop introduces an Oracle Recycle Bin. When a table is dropped without the PURGE keyword, 10g renames the segment and places it in the recycle bin rather than immediately deallocating space. You can query the recycle bin and restore the table -- with its indexes and constraints -- using a single command. Space is reclaimed only when the database needs it.
-- Show what is in the recycle bin for the current user
SHOW RECYCLEBIN;
-- Restore a dropped table (optionally rename it on recovery)
FLASHBACK TABLE orders TO BEFORE DROP RENAME TO orders_recovered;
-- Permanently drop, bypassing the recycle bin
DROP TABLE orders PURGE;
-- Flash the entire database back to a restore point (requires MOUNT mode)
STARTUP MOUNT;
FLASHBACK DATABASE TO RESTORE POINT before_batch_load;
ALTER DATABASE OPEN RESETLOGS;
Flashback Table rewinds a live, online table to a past SCN or timestamp using undo data -- no downtime, no export/import cycle. Row Movement must be enabled on the table first. Flashback Version Query uses the VERSIONS BETWEEN clause to show every version a specific row passed through during a time range, including the transaction ID responsible for each change -- invaluable for root-cause analysis on data corruption issues.
In practice, these features reduce the blast radius of runaway batch jobs, errant DML, and developer mistakes in production environments. Many teams retire their "export before the batch" safety scripts once Flashback Database and Flashback Drop are properly configured.
What replaces the original EXP and IMP utilities in Oracle 10g and why does it matter?
Oracle Data Pump -- invoked via the expdp and impdp command-line clients -- replaces the original exp and imp utilities in Oracle Database 10g Release 1, delivering significantly faster bulk data movement through a server-side architecture and direct path I/O.
The key architectural difference is that Data Pump operations execute inside the database server, not in the client process. This eliminates the client-server network bottleneck that plagued large exp/imp jobs and makes parallel execution practical. A PARALLEL parameter controls the degree of parallelism directly.
-- Export a schema with 4 parallel workers, compressed
expdp hr/hr SCHEMAS=hr DIRECTORY=DATA_PUMP_DIR \
DUMPFILE=hr_%U.dmp PARALLEL=4 LOGFILE=hr_exp.log
-- Import into a different schema, remapping
impdp system/manager DIRECTORY=DATA_PUMP_DIR \
DUMPFILE=hr_%U.dmp REMAP_SCHEMA=hr:hr_test \
LOGFILE=hr_imp.log
-- Estimate export size without writing data
expdp hr/hr SCHEMAS=hr ESTIMATE_ONLY=YES
Data Pump also introduces fine-grained filtering via INCLUDE and EXCLUDE parameters, the ability to remap tablespaces and schemas at import time, and an interactive attach mode that lets you monitor or modify a running job without cancelling it. Cross-Platform Transportable Tablespaces are also extended in 10g to support movement between different operating system platforms -- a major improvement over 9i which restricted tablespace transport to the same platform.
This matters if your team runs nightly logical backups via exp or performs regular schema refreshes between environments. The original exp/imp utilities remain available in 10g for backward compatibility but should be considered legacy; they are not enhanced in this or subsequent releases.
What SQL and PL/SQL developer features are new in Oracle Database 10g Release 1?
Oracle Database 10g Release 1 adds a substantial set of SQL and PL/SQL enhancements that directly reduce application-level complexity, with Regular Expression support and DBMS_SCHEDULER being the two changes most likely to affect day-to-day development.
Regular Expressions in SQL and PL/SQL arrive via four new functions: REGEXP_LIKE, REGEXP_INSTR, REGEXP_SUBSTR, and REGEXP_REPLACE. These use POSIX Extended Regular Expression (ERE) syntax and integrate with NLS settings through the NLS_COMP=LINGUISTIC parameter, which ensures consistent linguistic comparison behaviour across all SQL string operations.
-- Validate email format using REGEXP_LIKE
SELECT email
FROM customers
WHERE REGEXP_LIKE(email, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$');
-- Replace multiple consecutive spaces with a single space
SELECT REGEXP_REPLACE('too many spaces', ' {2,}', ' ') AS cleaned
FROM DUAL;
-- Extract the domain part of a URL
SELECT REGEXP_SUBSTR('https://www.example.com/page', 'www\.[^/]+') AS domain
FROM DUAL;
DBMS_SCHEDULER replaces the aging DBMS_JOB package with a production-grade job scheduling framework. Unlike DBMS_JOB, DBMS_SCHEDULER supports named programs and schedules, job classes with resource manager integration, OS command execution (shell scripts, executables), calendar-based repeat intervals, and event-driven execution. Most teams should migrate existing DBMS_JOB logic to DBMS_SCHEDULER during any 9i-to-10g upgrade.
Additional developer-facing additions include: UTL_MAIL for simple SMTP email from PL/SQL, UTL_COMPRESS for gzip-compatible compression of RAW and BLOB data, the PL/SQL optimizing compiler (which reorders and reorganizes code at compile time for better runtime performance), and compiler warning messages surfaced via DBMS_WARNING. The MERGE statement is also enhanced to support DELETE in the WHEN MATCHED clause and to allow unconditional INSERT without a matching source row.
Frequently Asked Questions about Oracle Database 10g Release 1
Does upgrading from Oracle 9i to 10g Release 1 require manual creation of the SYSAUX tablespace?
No, the SYSAUX tablespace is created automatically by the upgrade scripts; however, you must ensure sufficient disk space is available before running the upgrade because SYSAUX is mandatory in 10g and cannot be dropped or made read-only after creation.
Will existing applications using the Rule-Based Optimizer (RBO) continue to work in Oracle 10g Release 1?
The RBO is technically still present in the binary but is formally desupported in 10g Release 1 -- no bug fixes are applied to it. OPTIMIZER_MODE now defaults to ALL_ROWS, meaning queries that previously fell through to RULE mode (due to missing statistics under the CHOOSE default) will now use the Cost-Based Optimizer with dynamic sampling instead. Applications that relied on RBO hints such as RULE or that used OPTIMIZER_MODE=RULE in the init.ora should be tested carefully before upgrading.
How does Oracle 10g Data Pump (expdp/impdp) differ from the original exp/imp in terms of performance?
Data Pump executes entirely server-side using direct path I/O and supports true parallelism via the PARALLEL parameter, whereas the original exp/imp ran in the client process and transferred data row-by-row over the client-server connection; for large schemas, Data Pump can be multiple times faster because it bypasses the SQL layer and avoids network round-trips for each row.
What must be configured before Flashback Database can be used to rewind an entire Oracle 10g instance?
Flashback Database requires the Flash Recovery Area (controlled by DB_RECOVERY_FILE_DEST and DB_RECOVERY_FILE_DEST_SIZE) to be configured and FLASHBACK logging to be enabled on the database before the incident occurs -- run ALTER DATABASE FLASHBACK ON while the database is open to enable it; flashback logs are written to the Flash Recovery Area and are consumed during a FLASHBACK DATABASE operation performed in MOUNT mode.
Is it safe to keep using the original EXP and IMP utilities after upgrading to Oracle 10g Release 1?
The original exp and imp utilities remain functional in 10g for backward compatibility, but Oracle considers them superseded by Data Pump and will not add new features to them; teams running regular logical backups or schema refreshes should migrate to expdp and impdp to benefit from parallel execution, REMAP_SCHEMA, REMAP_TABLESPACE, and interactive job control.
What is the easiest way to enable automatic SGA memory management in Oracle 10g Release 1?
Set the SGA_TARGET initialization parameter to the desired total SGA size (for example, SGA_TARGET=1G) and set SGA_MAX_SIZE to the upper bound; Oracle will then automatically distribute memory among the buffer cache, shared pool, large pool, and Java pool based on real-time workload data from AWR -- individual component parameters such as DB_CACHE_SIZE and SHARED_POOL_SIZE become advisory lower bounds rather than fixed allocations.