首页 >数据库 >Oracle >oracle怎么修改db name

oracle怎么修改db name

WBOY
WBOY原创
2022-05-25 18:02:163505浏览

修改方法:1、将“pfile.ora”参数文件中的“db_name”值修改为指定值并保存;2、将原环境变量中的sid修改为新的“db_name”值;3、重启数据库后,使用resetlogs方式打开数据即可完成修改。

oracle怎么修改db name

本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。

oracle怎么修改db name

整体操作步骤如下:

  • 生成重建空间语句相关的trace,以及生成数据库实例的pfile文件

  • 关闭数据库

  • 修改参数文件内容

  • 执行创建控制文件的语句并启动数据库到mount

  • 打开数据库到open状态

  • 查看数据库的名称

修改db_name过程中涉及到的隐含内容

创建控制文件过程中的参数区别

redolog损坏的情况下,恢复数据库的方法

物理修改数据库文件位置之后,快速的恢复数据库的方法

上面内容只做修改名称演示,其他场景请参考另外技术文章。

修改过程

现数据库的db_name信息如下:

60.png

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

61.png

生成控制文件的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

使用创建控制文件的语句启动数据库

62.png

实际执行的过程中,需要将上面的reuse 替换成 set ,将NORESETLOGS 修改为 RESETLOGS ,实际执行过程如下:

63.png

具体参数说明如下:

| 参数名称 | 参数说明 | | ------ | ------ | | 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>

结果验证

64.png

过程总结

建议避免在生产环境使用该方法修改数据库名称

使用场景为不同的业务需要不同的环境名称,做完异机恢复之后,按照环境要求修改相应的名称。

整个过程难度不大,但是需细心,尤其是参数文件的修改和控制文件的重新生成

推荐教程:《Oracle视频教程

以上是oracle怎么修改db name的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn