0、对整个数据库做一个关闭状态下的完全一致性备份;


1、alter database backup controlfile to trace;


2、shutdown immediate;


3、找到含有重建控制文件脚本的那个TRACE文件,并作适当的修改:


——1)把CREATE CONTROLFILE reuse DATABASE "old_name" NORESETLOGS ...改成CREATE CONTROLFILE set DATABASE "new_name"  RESETLOGS ...;

——2)另外,如果想把数据库文件的路径也随数据库名作响应改动的话,在脚本中修改数据文件和日志文件的路径;


4、(如果使用SPFILE,从它创建一个PFILE),修改PFILE:

——1)把DB_NAME注释掉;

——2)(如果需要)修改DUMP、控制文件和归档日志文件的存放地址;


5、保证存放控制文件的目录中不存在和需要创建的控制文件同名的文件;


6、startup nomount pfile=...;


7、运行修改好的控制文件重建命令,新的控制文件就会出现在步骤4中设定的目录中;


8、recover database using backup controlfile until cancel; 输入cancel当出现提示时;


9、alter database open resetlogs;


10、做一些验证工作:

——select name from v$database;

——select instance_name from v$instance;(注意INSTANCE和DATABASE名的区别,一般默认建库时二者相同)

——select name from v$datafile;

——select member from v$logfile;

——archive log list;


11、shutdown immediate;


12、马上进行整个数据库在关闭状态下的完全一致性备份;


13、修改PFILE,加上db_name='????',设成新的数据库名,如果愿意使用SPFILE,就生成一个新的,替换旧的SPFILE;


14、STARTUP;启动实例并打开数据库;(碰到一次提示密码文件错误,重建一个替换原来的就文件就行了,后来没碰到这个问题) 。


15、呵呵,写到这,想想改数据库名有什么实际意义吗?只是看有人问到,自己试了一遍,拿来和大家共享。不过,想改的大哥小 妹们,小心点儿,别搞崩了。



oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html