生成重建空间语句相关的trace,以及生成数据库实例的pfile文件
关闭数据库
修改参数文件内容
执行创建控制文件的语句并启动数据库到mount
打开数据库到open状态
查看数据库的名称
修改db_name过程中涉及到的隐含内容
创建控制文件过程中的参数区别
redolog损坏的情况下,恢复数据库的方法
物理修改数据库文件位置之后,快速的恢复数据库的方法
上面内容只做修改名称演示,其他场景请参考另外技术文章。
修改过程
现数据库的db_name信息如下:
1、生成参数文件:
SQL> create pfile='/home/oracle/pfile.ora' from spfile;File created.
将生成出来参数文件(pfile.ora)的db_name 修改为 testdb
*.db_name='testdb'*.db_recovery_file_dest='+FRA'*.db_recovery_file_dest_size=4621074432*.diagnostic_dest='/u01/app/oracle'*.dispatchers='(PROTOCOL=TCP) (SERVICE=testdbXDB)'
将修改完的pfile文件生成为新的spfile
生成控制文件的trace文件
为session加上标记,方便查找trace文件
alter session set tracefile_identifier='bak_control';
将当前controlfile文件的创建语句放到了trace文件中
alter database backup controlfile to trace;
获得第二步中生成的trace文件的路径
select tracefile from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat));
关闭数据库
shutdown immediate;
2、修改参数文件的内容和操作系统环境变量
将原来环境变量中的SID修改为新的名称testdb
使用创建控制文件的语句启动数据库
实际执行的过程中,需要将上面的reuse 替换成 set ,将NORESETLOGS 修改为 RESETLOGS ,实际执行过程如下:
具体参数说明如下:
| 参数名称 | 参数说明 | | —— | —— | | set | 一般是更改数据库名字 | | reuse | 重新创建控制文件 | | noresetlogs | 打开数据库的时候不用resetlogs | | resetlogs | 打开数据库的时候要求resetlogs |
3、打开数据库到open状态
必须用resetlogs 的方式打开数据,否则报错。
SQL> alter database open;alter database open*ERROR at line 1:ORA-01589: must use RESETLOGS or NORESETLOGS option for database openSQL> SQL> SQL> alter database open resetlogs;Database altered.SQL>
结果验证
过程总结
建议避免在生产环境使用该方法修改数据库名称
使用场景为不同的业务需要不同的环境名称,做完异机恢复之后,按照环境要求修改相应的名称。
整个过程难度不大,但是需细心,尤其是参数文件的修改和控制文件的重新生成
推荐教学:《Oracle视频教学》