select name,open_mode,database_role from v$database;
- Disable the monitoring for the database if any.
- Gather datafiles, control files and redo file count and location.
select file_name from dba_data_files;
show parameter control
set lines 1000
SELECT a.GROUP#, a.THREAD#, a.SEQUENCE#,
a.ARCHIVED, a.STATUS, b.MEMBER AS REDOLOG_FILE_NAME,
a.BYTES/1024/1024) AS SIZE_MB FROM v$log a
JOIN v$logfile b ON a.Group#=b.Group#
ORDER BY a.GROUP#;
create pfile='/tmp/initorcl.ora' from spfile
- Bring the database to mount state.
shut immediate
startup mount
- Run the NID utility to change the DB name.
nid sys/password@CURRENT_DBNAME DBNAME=NEW_DBNAME
- Change db_name parameter in parameter file.
shut immediate
startup nomount
alter system set db_name=<NEW_DBNAME> scope=spfile;
shut immediate
startup nomount
- Validate the DB name and bring it down.
show parameter db_name
shut immediate
- Rename the spfile and password file to to new DB.
cd $ORACLE_HOME/dbs
cp spfileold_dbname.ora spfile_new_dbname.ora
cp orapwold_dbname orapwnew_dbname
- Set the environment and bring up the database.
export ORACLE_SID=<NEW DB_NAME>
echo $ORACLE_SID
env | grep oracle
sqlplus / as sysdba
startup nomount;
create pfile from spfile;
shut immediate;
- If any datafiles, redo files, control files has DB name rename them to the new one. Update the pfile accordingly and start the DB.
startup nomount pfile='$ORACLE_HOME/dbs/init<NEW DBNAME>.ora';
show parameter service;
alter database mount;
alter database open resetlogs;
create spfile from pfile
shut immediate;
startup;
show parameter listener
alter system register;
select name,open_mode,database_role from v$database;
- Recreate temp tablespace.
SELECT v.file#, t.file_name, v.status
FROM dba_temp_files t, v$tempfile v
WHERE t.file_id = v.file#;
CREATE TEMPORARY TABLESPACE "TEMP1" TEMPFILE '<path>/<DB NAME>_temp02.dbf' SIZE 230686720;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP1;
DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES;
CREATE TEMPORARY TABLESPACE "TEMP" TEMPFILE '<path>/<DB NAME>_temp01.dbf' SIZE 230686720;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;
DROP TABLESPACE temp1 INCLUDING CONTENTS AND DATAFILES;
## Check the status of redo group
set lines 1000
SELECT a.GROUP#, a.THREAD#, a.SEQUENCE#,
a.ARCHIVED, a.STATUS, b.MEMBER AS REDOLOG_FILE_NAME,
(a.BYTES/1024/1024) AS SIZE_MB FROM v$log a
JOIN v$logfile b ON a.Group#=b.Group#
ORDER BY a.GROUP#;
Alter database drop logfile group 3;
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 3 ('<path>/<DB NAME>_log3a.rdo', '<path>/<DB NAME>_log3b.rdo') SIZE 500M;
Alter database drop logfile group 4;
ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 4 ('<path>/<DB NAME>_log4a.rdo', '<path>/<DB NAME>_log4b.rdo') SIZE 500M;
Alter database drop logfile group 4;
alter system switch logfile;
Comments
Post a Comment