数据库通过异机恢复后,想将其db_name和SID修改,以下总结两种修改方式
方法一:重建控制文件方式
--日志归档
alter system archive log current;
--备份控制文件
alter database backup controlfile to trace resetlogs;
--控制文件备份生成路径
show parameter user_dump_dest
--控制文件路径
show parameter control_files
create pfile from spfile;
shutdown immediate
cd /u01/diag/rdbms/prod/prod/trace
cp prod_ora_3163.trc create_cf.sql
vi
create_cf.sql
--编辑文件
--(1) "--"开头的可删除
--(2) " STARTUP NOMOUNT" 以上的删除
--(3) CREATE CONTROLFILE REUSE DATABASE "PROD" RESETLOGS FORCE LOGGING ARCHIVELOG 这句的
REUSE
修改成SET
PROD 修改成你要的的名字,如 test(如果仅是修改dbname什么的,下面数据文件之类的路径可不用修改)
--(4)
RECOVER DATABASE USING BACKUP CONTROLFILE这句可用 -- 注释掉,这里不做recover
--备份原来控制文件
mv /u01/oradata/prod/control01.ctl /u01/oradata/prod/control01.ct.bak
mv /u01/oradata/prod/control02.ctl /u01/oradata/prod/control02.ctl.bak
cp
/u01/oracle/db_1/dbs/
initprod.ora
/u01/oracle/db_1/dbs/
inittest.ora
vi
/u01/oracle/db_1/dbs/
initprod.ora
--db_name和 db_unique_name等都修改一下
--db_name和 db_unique_name等都修改一下
*.db_name='test'
*.db_unique_name='test'
export ORACLE_SID=test
startup nomout pfile='
/u01/oracle/db_1/dbs/
inittest.ora
'
create spfile from pfile;
shutdown immediate
orapwd file=$ORACLE_HOME/dbs/orapwtest password=oracle entries=5
--执行重建控制文件
sqlplus / as sysdba
@
create_cf.sql
注意:这种方法最后是 alter database open resetlogs;
方法二:用oracle自带的工具nid改数据库名
shutdown immediate
--nid需要在mount状态下才能做。
startup mount
exit
nid 修改 dbname=新的名字,要知道sys 密码
nid target=sys/password dbname=test
Change database ID and database name PROD to TEST? (Y/[N]) => y
orapwd file=$ORACLE_HOME/dbs/orapwtest password=oracle entries=5
cp
/u01/oracle/db_1/dbs/
initprod.ora
/u01/oracle/db_1/dbs/
inittest.ora
vi
/u01/oracle/db_1/dbs/
initprod.ora
--db_name和 db_unique_name等都修改一下
--db_name和 db_unique_name等都修改一下
*.db_name='test'
*.db_unique_name='test'
export ORACLE_SID=test
startup nomout pfile='
/u01/oracle/db_1/dbs/
inittest.ora
'
create spfile from pfile;
shutdown immediate
startup mount
alter database open resetlogs;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29863023/viewspace-1849796/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29863023/viewspace-1849796/