Oracle database 23c was
released in March 2023, developer version. Oracle has provided complete
instructions to download and install oracle database 23c free version, Click
here to know more.
In the free version, oracle has
been given "FREE" as the container name and freepdb1 as
the pluggable database name, suppose you want to change to
"technodb", we can do it using the nid Oracle
tool, it comes default with the installation of Oracle software.
- old name - free
- new name - technodb
- oracle tool- nid
Step 1 : shutdown and
startup database in mount state
[oracle@localhost
Desktop]$ sqlplus sys@free as sysdba
SQL*Plus:
Release 23.0.0.0.0 - Developer-Release on Sat May 6 14:12:30 2023
Version
23.2.0.0.0
Copyright
(c) 1982, 2023, Oracle. All rights reserved.
Enter
password:
Connected
to:
Oracle
Database 23c Free, Release 23.0.0.0.0 - Developer-Release
Version
23.2.0.0.0
SQL>
show pdbs
CON_ID
CON_NAME OPEN
MODE RESTRICTED
----------
------------------------------ ---------- ----------
2
PDB$SEED READ
ONLY NO
3
FREEPDB1 READ
WRITE NO
SQL>
SQL>
SQL>
shu immediate
Database
closed.
Database
dismounted.
SQL>
startup mount
ORACLE
instance started.
Total
System Global Area 1608409424 bytes
Fixed
Size 10043728
bytes
Variable
Size 671088640 bytes
Database
Buffers 922746880 bytes
Redo
Buffers 4530176
bytes
Database
mounted.
SQL>
Step 2 : Run the nid
tool to change database name for FREE to TECHNODB
[oracle@localhost
Desktop]$ nid target = sys/oracle dbname=technodb
DBNEWID:
Release 23.0.0.0.0 - Developer's Release on Sat May 6 14:25:53 2023
Copyright
(c) 1982, 2023, Oracle and/or its affiliates. All rights reserved.
Connected
to database FREE (DBID=1405253007)
Connected
to server version 23.2.0
Control
Files in database:
/opt/oracle/oradata/FREE/control01.ctl
/opt/oracle/oradata/FREE/control02.ctl
Change
database ID and database name FREE to TECHNODB? (Y/[N]) => Y
Proceeding
with operation
Changing
database ID from 1405253007 to 2754615793
Changing
database name from FREE to TECHNODB
Control File /opt/oracle/oradata/FREE/control01.ctl - modified
Control File /opt/oracle/oradata/FREE/control02.ctl - modified
Datafile /opt/oracle/oradata/FREE/system01.db - dbid changed, wrote new
name
Datafile /opt/oracle/oradata/FREE/pdbseed/system01.db - dbid changed,
wrote new name
Datafile /opt/oracle/oradata/FREE/sysaux01.db - dbid changed, wrote new
name
Datafile /opt/oracle/oradata/FREE/pdbseed/sysaux01.db - dbid changed,
wrote new name
Datafile /opt/oracle/oradata/FREE/users01.db - dbid changed, wrote new
name
Datafile /opt/oracle/oradata/FREE/pdbseed/undotbs01.db - dbid changed,
wrote new name
Datafile /opt/oracle/oradata/FREE/FREEPDB1/system01.db - dbid changed,
wrote new name
Datafile /opt/oracle/oradata/FREE/FREEPDB1/sysaux01.db - dbid changed,
wrote new name
Datafile /opt/oracle/oradata/FREE/FREEPDB1/undotbs01.db - dbid changed,
wrote new name
Datafile /opt/oracle/oradata/FREE/FREEPDB1/users01.db - dbid changed,
wrote new name
Datafile /opt/oracle/oradata/FREE/undotbs2.db - dbid changed, wrote new
name
Datafile /opt/oracle/oradata/FREE/temp01.db - dbid changed, wrote new
name
Datafile /opt/oracle/oradata/FREE/pdbseed/temp01.db - dbid changed,
wrote new name
Datafile /opt/oracle/oradata/FREE/FREEPDB1/temp01.db - dbid changed,
wrote new name
Control File /opt/oracle/oradata/FREE/control01.ctl - dbid changed,
wrote new name
Control File /opt/oracle/oradata/FREE/control02.ctl - dbid changed,
wrote new name
Instance shut down
Database
name changed to TECHNODB.
Modify
parameter file and generate a new password file before restarting.
Database
ID for database TECHNODB changed to 2754615793.
All
previous backups and archived redo logs for this database are unusable.
Database
has been shutdown, open database with RESETLOGS option.
Succesfully
changed database name and ID.
DBNEWID
- Completed succesfully.
[oracle@localhost
Desktop]$
Step 3 : Now open the database
[oracle@localhost
Desktop]$ sqlplus
SQL*Plus:
Release 23.0.0.0.0 - Developer-Release on Sat May 6 14:27:45 2023
Version
23.2.0.0.0
Copyright
(c) 1982, 2023, Oracle. All rights reserved.
Enter
user-name: /as sysdba
Connected
to an idle instance.
SQL>
startup
ORACLE
instance started.
Total
System Global Area 1608409424 bytes
Fixed
Size
10043728 bytes
Variable
Size
671088640 bytes
Database
Buffers 922746880 bytes
Redo
Buffers
4530176 bytes
ORA-01103:
control file database name 'TECHNODB' does not match parameter file
DB_NAME
'FREE'
At first, you will not be able
to start the database as spfile has a different name
db_name than new name, use alter
system command to change the db name
and use the scope as spfile
SQL>
alter system set db_name =technodb scope=spfile;
System
altered.
Shutdown
the database
SQL>
shu abort
ORACLE
instance shut down.
Now startup the database with
resetlogs option and you are set with a new database name
SQL>
startup
ORACLE
instance started.
Total
System Global Area 1608409424 bytes
Fixed
Size
10043728 bytes
Variable
Size 671088640 bytes
Database
Buffers 922746880 bytes
Redo
Buffers 4530176
bytes
Database
mounted.
ORA-01589:
must use RESETLOGS or NORESETLOGS option for database open
SQL>
alter database open resetlogs;
Database
altered.
SQL>
show parameter db_name
NAME
TYPE VALUE
------------------
----------- ------------------------------
db_name
string TECHNODB
SQL>
SQL>
We can see the database name has
been changed from FREE to TECHNODB, you will not be able to change the instance
name as this is a free edition.