修改方法:1、将“pfile.ora”参数文件中的“db_name”值修改为指定值并保存;2、将原环境变量中的sid修改为新的“db_name”值;3、重启数据库后,使用resetlogs方式打开数据即可完成修改。
本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。
oracle怎么修改db name
整体操作步骤如下:
-
生成重建空间语句相关的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 open SQL> SQL> SQL> alter database open resetlogs; Database altered. SQL>
结果验证
过程总结
建议避免在生产环境使用该方法修改数据库名称
使用场景为不同的业务需要不同的环境名称,做完异机恢复之后,按照环境要求修改相应的名称。
整个过程难度不大,但是需细心,尤其是参数文件的修改和控制文件的重新生成
推荐教程:《Oracle视频教程》