1. åå¤
åæ°æ®åºçå®ä¾å为linuxdbï¼æ§å¶æ件ãæ°æ®æ件ãèæºæ¥å¿æ件åæ¾å¨/home/oracle/ora9/oradata/linuxdbç®å½ï¼å°ææçæ件æ·è´å°å¦å¤ä¸ä¸ªç®å½/home/oracle/ora9/oradata/dbtestã
åå°linuxdb çåå§åæ件ä¹å¤å¶ä¸ä»½åºæ¥ï¼æ§è¡å¦ä¸çsqlï¼
Create pfile='/home/oracle/ora9/oracle/dbs/pfiledbtest.ora' from spfile='/home/oracle/ora9/oracle/dbs/spfilelinuxdb.ora';
æ们å°ä¿®æ¹å®ä¾å为dbtestã
ä¸é¢æ们å¼å§ä¸æ¥ä¸æ¥å°è¿è¡å¤çã
2. å è½½åå§åæ件
æå¼pfiledbtest.oraæ件ï¼ä¿®æ¹å¯¹åºçdumpå±æ§çè·¯å¾åï¼å®ä¾ååï¼æ§å¶æ件路å¾çã
ç¶åæ§è¡å¦ä¸å½ä»¤:
[oracle@localhost oracle]$ export ORACLE_SID=dbtest
[oracle@localhost oracle]$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on Mon Aug 17 16:57:36 2009
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to an idle instance.
SQL> startup pfile='/home/oracle/ora9/oracle/dbs/pfiledbtest.ora' nomount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
SQL>
è¿æ ·å è½½åå§åæ件就æåäºã
ä¸é¢æ¥çè¿è¡ï¼å è½½æ§å¶æ件ã
3. å è½½æ§å¶æ件
å æ§è¡å¦ä¸å½ä»¤ã
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-00205: error in identifying controlfile, check alert log for more info
好åæ¯æ§å¶æ件çè·¯å¾ä¸å¯¹ï¼ä¿®æ¹åå§æ件å次å è½½ã
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-01103: database name 'LINUXDB' in controlfile is not 'DBTEST'
æ ¹æ®é误信æ¯æ示ï¼æ¯å®ä¾ååä¸ä¸è´ï¼ä½æ¯æ§å¶æ件æ¯äºè¿å¶çï¼ç¨viæå¼ä¹å没æ³ç¼è¾ï¼åªè½éè¿ç¨é建æ§å¶æ件å¯ä»¥è§£å³ã
å¨/home/oracle/ora9/oradata/dbtestç®å½ä¸å é¤èçä¸ä¸ªæ§å¶æ件ãç¶åå¼å§é建æ§å¶æ件ã
SQL> CREATE CONTROLFILE SET DATABASE "DBTEST" RESETLOGS FORCE LOGGING NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 '/home/oracle/ora9/oradata/dbtest/redo01.log' SIZE 50M,
9 GROUP 2 '/home/oracle/ora9/oradata/dbtest/redo02.log' SIZE 50M,
10 GROUP 3 '/home/oracle/ora9/oradata/dbtest/redo03.log' SIZE 50M
11 DATAFILE
12 '/home/oracle/ora9/oradata/dbtest/cwmlite01.dbf',
13 '/home/oracle/ora9/oradata/dbtest/devbase_20090408.dbf',
14 '/home/oracle/ora9/oradata/dbtest/drsys01.dbf',
15 '/home/oracle/ora9/oradata/dbtest/example01.dbf',
16 '/home/oracle/ora9/oradata/dbtest/indx01.dbf',
17 '/home/oracle/ora9/oradata/dbtest/odm01.dbf',
18 '/home/oracle/ora9/oradata/dbtest/system01.dbf',
19 '/home/oracle/ora9/oradata/dbtest/tools01.dbf',
20 '/home/oracle/ora9/oradata/dbtest/undotbs01.dbf',
21 '/home/oracle/ora9/oradata/dbtest/users01.dbf',
22 '/home/oracle/ora9/oradata/dbtest/xdb01.dbf'
23 CHARACTER SET ZHS16GBK;
CREATE CONTROLFILE SET DATABASE "DBTEST" RESETLOGS FORCE LOGGING NOARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01990: error opening password file '/home/oracle/ora9/oracle/dbs/orapw'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
æ ¹æ®é误æ示ï¼æ¯ç¼ºå°å¯ç éªè¯æ件ï¼ç¨ä¸é¢çå½ä»¤å建å¯ç æ件ã
$cd $ORACLE_HOME/dbs
orapwd password=chenli file=orapwdbtest
SQL> CREATE CONTROLFILE SET DATABASE 'dbtest' RESETLOGS FORCE LOGGING NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 '/home/oracle/ora9/oradata/dbtest/redo01.log' SIZE 50M,
9 GROUP 2 '/home/oracle/ora9/oradata/dbtest/redo02.log' SIZE 50M,
10 GROUP 3 '/home/oracle/ora9/oradata/dbtest/redo03.log' SIZE 50M
11 DATAFILE
12 '/home/oracle/ora9/oradata/dbtest/cwmlite01.dbf',
13 '/home/oracle/ora9/oradata/dbtest/devbase_20090408.dbf',
14 '/home/oracle/ora9/oradata/dbtest/drsys01.dbf',
15 '/home/oracle/ora9/oradata/dbtest/example01.dbf',
16 '/home/oracle/ora9/oradata/dbtest/indx01.dbf',
17 '/home/oracle/ora9/oradata/dbtest/odm01.dbf',
18 '/home/oracle/ora9/oradata/dbtest/system01.dbf',
19 '/home/oracle/ora9/oradata/dbtest/tools01.dbf',
20 '/home/oracle/ora9/oradata/dbtest/undotbs01.dbf',
21 '/home/oracle/ora9/oradata/dbtest/users01.dbf',
22 '/home/oracle/ora9/oradata/dbtest/xdb01.dbf'
23 CHARACTER SET ZHS16GBK;
Control file created.
ç°å¨å建æåäºã
å建æ§å¶æ件æåäºï¼ä¸é¢éæ°å¯å¨æ°æ®åºã
SQL> startup nomount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
SQL> alter database mount;
Database altered.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open RESETLOGS;
Database altered.
æ¥ç表ä¸çè®°å½ï¼æ£ç¡®çã
ä¿®æ¹å®ä¾åæåã
4. æ»ç»
ç±ä¸é¢çæä½å¯ä»¥çå°ï¼å¨æ°æ®åºç»´æ¤ä¸ï¼æéè¦çæ¯æ°æ®æ件ï¼åå§åæ件å¯ä»¥ä»å«çå®ä¾æ·è´è¿æ¥ï¼ç¶åä¿®æ¹ãæ§å¶æ件å¯ä»¥éæ°å建ï¼åªè¦æ°æ®æ件æ£ç¡®ï¼å°±å¯ä»¥é建åå§åæ件åæ§å¶æ件ä¹åï¼æ¢å¤æ°æ®åºã
éå°çé误ï¼
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-00200: controlfile could not be created
ORA-00202: controlfile: '/home/ora/ora9/oradata/dbtest/control01.ctl'
ORA-27040: skgfrcre: create error, unable to create file
Linux Error: 2: No such file or directory
请æ¥çåå§åæ件ä¸ï¼æ§å¶æ件çè·¯å¾æ¯æ£ç¡®ï¼æ§å¶æ件çè·¯å¾ä¸çç®å½æ¯å¦ææéå建æ件ï¼å¦æè¿äºé®é¢é½è§£å³äºï¼é£ä¹åºè¯¥è½æåå建æ§å¶æ件ã
1、先查询oracle当前的db_name和sid;
SYS@test > select instance_name from v$instance;关闭数据库;
SYS@test > shutdown immediate;启动到mount状态;
SYS@test > startup mount;修改数据文件中,控制文件中的数据库名称;
SYS@test > !nid target=sys/oracle dbname=mai logfile=/tmp/change_name.log关闭数据库;
SYS@test > shutdown immediate;2、启动到mount状态,这个时候会提示数据库名称不一致(ORA-01103: database name 'MAI' in control file is not 'TEST'),木有关系;