复制产品数据库时在参数文件中修改了数据库名,startup时会出现ORA-01103错误。
SQL> startup mount ORACLE instance started. Total System Global Area 167772160 bytes Fixed Size 1247876 bytes Variable Size 71304572 bytes Database Buffers 88080384 bytes Redo Buffers 7139328 bytes ORA-01103: database name 'ORCL' in control file is not 'TESTDB'
这表示测试数据库中的参数DB_NAME跟控制文件中的不一致。解决办法是:
1. 修改DB_NAME。
2. 重建控制文件。
先备份产品数据库的控制文件:
SQL > alter database backup controlfile to trace;
Database altered.
SQL> select c.value || '\' || d.instance_name || '_ora_' || a.spid || '.trc' trace
2 from v$process a,v$session b, v$parameter c, v$instance d
3 where a.addr = b.paddr
4 and b.audsid = userenv('sessionid')
5 and c.name = 'user_dump_dest'
6 /
TRACE
-----------------------------------------------------------
C:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\UDUMP\orcl_ora_4012.trc
orcl_ora_4012.trc文件中包含创建控制文件的SQL语句。打开它,修改相关参数:
1. REUSE DATABASE “ORCL” 改为 SET DATABASE “TESTDB”
2. NORESETLOGS 改为 RESETLOGS
3. 修改相关的路径名
SQL> STARTUP NOMOUNT ORACLE instance started. Total System Global Area 167772160 bytes Fixed Size 1247876 bytes Variable Size 71304572 bytes Database Buffers 88080384 bytes Redo Buffers 7139328 bytes SQL> CREATE CONTROLFILE SET DATABASE "TESTDB" RESETLOGS FORCE LOGGING ARCHIVELOG 2 MAXLOGFILES 16 3 MAXLOGMEMBERS 3 4 MAXDATAFILES 100 5 MAXINSTANCES 8 6 MAXLOGHISTORY 292 7 LOGFILE 8 GROUP 1 'D:\ZEENO\ORADATA\TESTDB\REDO01.LOG' SIZE 50M, 9 GROUP 2 'D:\ZEENO\ORADATA\TESTDB\REDO02.LOG' SIZE 50M, 10 GROUP 3 'D:\ZEENO\ORADATA\TESTDB\REDO03.LOG' SIZE 50M 11 DATAFILE 12 'D:\ZEENO\ORADATA\TESTDB\SYSTEM01.DBF', 13 'D:\ZEENO\ORADATA\TESTDB\UNDOTBS01.DBF', 14 'D:\ZEENO\ORADATA\TESTDB\SYSAUX01.DBF', 15 'D:\ZEENO\ORADATA\TESTDB\USERS.DBF' 16 CHARACTER SET ZHS16GBK 17 ; Control file created. SQL> ALTER DATABASE OPEN RESETLOGS; Database altered.