Oracle11g更改数据库名
Oracle数据库名有两个,一个在参数文件里面记录,一个在控制文件中记录
前期准备工作:
在控制文件没有损坏之前,先在SQL Plus(使用sysdba权限执行)下面执行alter database backup controlfile to TRACE as D:\Oracle\dbtest\2022.trc;
会生成trc文件,提供正确的数据文件和重做日志文件清单,用于创建控制文件。
具体步骤如下:
1.在pfile文件中将db_name属性改成想要修改的名字(这里以ORCLL为例),然后保存(若保存的时候权限不够,就去属性安全里面修改权限)
可以直接保存的将第一张图忽略
2.创建spfile到某一个路径
create spfile='D:\Oracle\dbtest\SPFILEORCL.ORA' from pfile;
3.关闭数据库(一定是immediate)
shutdown immediate
4.删除原来的spfile文件spfileorcl.ora,将D:\Oracle\dbtest\SPFILEORCL.ORA下面的SPFILEORCL.ORA文件复制到默认路径下。(也就是替换默认的)
5.启动实例到nomount状态
startup nomount
select value from v$parameter where name=’db_name’;
用于查看是否修改
6.建立控制文件
将前期中准备的trc文件里面的内容进行运行
将注释的那一行删除,并加入set
CREATE CONTROLFILE REUSE set DATABASE "ORCLL" RESETLOGS NOARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 'E:\APP\LENOVO\ORADATA\ORCL\REDO01.LOG' SIZE 50M BLOCKSIZE 512, GROUP 2 'E:\APP\LENOVO\ORADATA\ORCL\REDO02.LOG' SIZE 50M BLOCKSIZE 512, GROUP 3 'E:\APP\LENOVO\ORADATA\ORCL\REDO03.LOG' SIZE 50M BLOCKSIZE 512 DATAFILE 'E:\APP\LENOVO\ORADATA\ORCL\SYSTEM01.DBF', 'E:\APP\LENOVO\ORADATA\ORCL\SYSAUX01.DBF', 'E:\APP\LENOVO\ORADATA\ORCL\UNDOTBS01.DBF', 'E:\APP\LENOVO\ORADATA\ORCL\USERS01.DBF', 'E:\APP\LENOVO\ORADATA\ORCL\EXAMPLE01.DBF' CHARACTER SET ZHS16GBK ;
首先加入set,并修改数据库名,将NORESETLOGS 改成RESETLOGS
(这里的数据库名要大写)(上面的代码只是例子,需要根据自己的trc文件修改)
7.打开数据库
alter database open resetlogs;
8.增加临时文件(为了进行排序)
alter tablespace temp add tempfile 'E:\app\LENOVO\oradata\orcl\TEMP01.DBF' size 10485760 reuse autoextend off;
(路径根据自己的路径修改)
整个修改完成!感谢