I needed to change the SID of an Oracle XE database (not the Service Name) to match a production database.
When I tried searching online, most of the pages were describing changing or adding a service name through tnsnames.ora; that’s not what I needed to do.
The asktom article has the answer, but the formatting and verbosity makes it hard to follow, so here’s a summary:
[XE_HOME] means where Oracle XE is installed. Normally this is
C:\oraclexe\app\oracle\product\10.2.0\server.Make sure you have Administrator privileges or the procedure will fail.
copy [XE_HOME]\dbs\spfileXE.ora [XE_HOME]\dbs\spfileNEW_SID_NAME.oracopy [XE_HOME]\database\initXE.ora [XE_HOME]\database\initNEW_SID_NAME.ora[XE_HOME]\database\initNEW_SID_NAME.ora: It should contain a single line like this:SPFILE='[XE_HOME]\server\dbs/spfileNEW_SID_NAME.ora'sqlplus / as sysdbaand executeshutdownlsnrctl stoporadim -new -sid NEW_SID_NAME -startmode auto -pfile [XE_HOME]\database\initNEW_SID_NAME.oraoradim -delete -sid XElsnrctl startsqlplus / as sysdbaand executealter system register;You can verify that the SID was changed by executing the following query:
select instance_name from v$instance;