oracle中通过数据文件建立新库
说明:这个文件夹中只有数据库的数据文件,*.dbf,要通过这几个数据文件建立新的数据库.新数据库名字是DDD
[root@doo onlydbf]# ll
总计 768896
-rw-r----- 1 oracle oinstall 251666432 06-08 21:38 sysaux01.dbf
-rw-r----- 1 oracle oinstall 503324672 06-08 21:38 system01.dbf
-rw-r----- 1 oracle oinstall 20979712 06-08 21:38 temp01.dbf
-rw-r----- 1 oracle oinstall 26222592 06-08 21:38 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 06-08 21:38 users01.dbf
(1)首先要建立这几个目录,参数文件中也要表明这几个文件的位置
[oracle@doo onlydbf]$ mkdir {a,b,c,u}dump
(2)手动建立新的参数文件,可以从其他的参数文件中直接拷贝过来,进行修改.仅保留所必须的参数即可.
主要是更改其中的路径和数据库的名字.还要修改SID来找到这个文本形式的参数文件。
[root@doo dbs]# cat initDDD.ora
shared_pool_size=230686720
*.audit_file_dest='/onlydbf/adump'
*.background_dump_dest='/onlydbf/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/onlydbf/control01.ctl','/onlydbf/control02.ctl','/onlydbf/control03.ctl'
*.core_dump_dest='/onlydbf/cdump'
*.db_domain=''
*.db_name='DDD'
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/onlydbf/udump'
(3)以SYSDBA的身份进入sql,启动数据库,会进入到nomount阶段,说明实例已经启动了.以为没有参数文件,需要手动建立.
SQL> startup
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219136 bytes
Variable Size 255854016 bytes
Database Buffers 50331648 bytes
Redo Buffers 7168000 bytes
ORA-00205: error in identifying control file, check alert log for more info
(4)手动建立参数文件,设置数据库的新名字,如果不知道原先的库名,会有提示.然后是 resetlogs 要重做日志.设置数据文件的位置.
SQL> ed
Wrote file afiedt.buf
1 CREATE CONTROLFILE REUSE DATABASE DOO1 set database DDD RESETLOGS NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 '/onlydbf/redo01.log' SIZE 50M,
9 GROUP 2 '/onlydbf/redo02.log' SIZE 50M,
10 GROUP 3 '/onlydbf/redo03.log' SIZE 50M
11 DATAFILE
12 '/onlydbf/system01.dbf',
13 '/onlydbf/undotbs01.dbf',
14 '/onlydbf/sysaux01.dbf',
15 '/onlydbf/users01.dbf'
16* CHARACTER SET AL32UTF8
SQL> /
Control file created.
(5)参数文件建立成功,会直接进入到mount阶段,仅仅差open阶段了,使用resetlogs,会启动数据库到open阶段.
如下,说明新的数据库已经建立成功.
SQL> alter database open RESETLOGS;
Database altered.
(6)关于临时文件,由于只有表空间而没有数据文件,所以还要关联一下临时表空间和数据文件.
SQL> alter tablespace temp add tempfile '/onlydbf/temp01.dbf';
注:初学者,欢迎指点,不断改进。doo