|
1 |
要求: 目前有两台虚拟机windows1和windows2 windows2上只有数据库软件 在windows1上创建表空间enmo_tbs;创建用户enmo_user;然后在此用户下创建三个表------>as dba_objects; 然后进行全库导出;------使用copy的方式,使数据库一致性关闭。 |
|
2 |
SQL> create tablespace enmo_tbs datafile 'c:\enmo_tbs01.dbf' size 30m;
表空间已创建。 SQL> create user enmo_user identified by oracle default tablespace enmo_tbs;
用户已创建。 SQL> grant resource to enmo_user;
授权成功。
SQL> create table enmo_user.t1 as select * from dba_objects;
表已创建。
SQL> create table enmo_user.t2 as select * from dba_objects;
表已创建。
SQL> create table enmo_user.t3 as select * from dba_objects; create table enmo_user.t3 as select * from dba_objects * 第 1 行出现错误: ORA-01652: 无法通过 128 (在表空间 ENMO_TBS 中) 扩展 temp 段------------表空间不足
SQL> alter database datafile 'c:\enmo_tbs01.dbf' resize 100m;--------------修改表空间大小 数据库已更改。
SQL> create table enmo_user.t3 as select * from dba_objects;
表已创建。
|
|
3 |
因为我的虚拟机windows2 上只有数据库软件,所以我必须得先创建一个实例(此实例名必须和windows的实例名是一样的)
C:\Documents and Settings\Administrator>oradim -new -sid win101 实例已创建。
然后设置实例名: C:\Documents and Settings\Administrator>set ORACLE_SID=win101
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on 星期二 3月 15 22:25:46
Copyright (c) 1982, 2013, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup ORA-01261: Parameter db_recovery_file_dest destination string cann ed ORA-01263: Name given for file destination directory is invalid OSD-04018: ?????????????????????????? O/S-Error: (OS 2) ?????????????????????? SQL> create pfile from spfile;------------创建静态参数文件,然后删除快速恢复区那一行(此参数文件是从windows1中copy过来的)
文件已创建。
SQL> create spfile from pfile;------删除修改完之后,创建一份动态参数文件,然后启动数据库
文件已创建。 SQL> startup--------启动数据库会出错,因为缺少控制文件 ORACLE 例程已经启动。
Total System Global Area 855982080 bytes Fixed Size 2286032 bytes Variable Size 549457456 bytes Database Buffers 297795584 bytes Redo Buffers 6443008 bytes ORA-00205: ?????????, ??????, ???????
SQL> show parameter control
NAME TYPE ------------------------------------ ---------------------- VALUE ------------------------------ control_file_record_keep_time integer 7 control_files string C:\APP\ADMINISTRATOR\ORADATA\W IN101\CONTROL01.CTL, C:\APP\AD MINISTRATOR\FAST_RECOVERY_AREA \WIN101\CONTROL02.CTL control_management_pack_access string DIAGNOSTIC+TUNING
现在我们修改windows2上的控制文件的位置,然后 把windows 1上的控制文件传到windows2上指定的位置中;
SQL> alter system set control_files='C:\APP\CONTROL01.CTL' scope=spfile;---------修改控制文件的路径
系统已更改。
SQL> startup force-------------还是启动不了,因为还缺少数据文件,所以下一步我们把数据文件也给传过来 ORACLE 例程已经启动。
Total System Global Area 855982080 bytes Fixed Size 2286032 bytes Variable Size 549457456 bytes Database Buffers 297795584 bytes Redo Buffers 6443008 bytes ORA-00205: ?????????, ??????, ???????
SQL> alter database mount 2 ;
数据库已更改。
SQL> select name from v$datafile;----------------数据文件传到windows2上的时候必须路径和下面是一样的;
NAME ------------------------------------------------------
C:\APP\ADMINISTRATOR\ORADATA\WIN101\SYSTEM01.DBF C:\APP\ADMINISTRATOR\ORADATA\WIN101\SYSAUX01.DBF C:\APP\ADMINISTRATOR\ORADATA\WIN101\UNDOTBS01.DBF C:\APP\ADMINISTRATOR\ORADATA\WIN101\USERS01.DBF C:\APP\ADMINISTRATOR\ORADATA\WIN101\EXAMPLE01.DBF C:\ENMO_TBS01.DBF
已选择6行。
SQL> alter database open; alter database open * 第 1 行出现错误: ORA-01157: ????/?????? 6 - ??? DBWR ???? ORA-01110: ???? 6: 'C:\ENMO_TBS01.DBF'-----------是因为我之前在Windows1中创建的表空间没有copy到Windows2中,现在我copy过来再启动看发现会怎样??
SQL> alter database open;
数据库已更改。
SQL> select * from t1;
BANNER --------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi PL/SQL Release 10.2.0.5.0 - Production CORE 10.2.0.5.0 Production TNS for 64-bit Windows: Version 10.2.0.5.0 - Production NLSRTL Version 10.2.0.5.0 - Production
|
|
4 |
参数文件记录着控制文件的位置,控制文件中记录着数据文件的位置; |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30606702/viewspace-2058411/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30606702/viewspace-2058411/
本文详细介绍了一种Oracle数据库从一台虚拟机迁移到另一台的过程。包括调整表空间大小、创建实例、配置参数文件、解决控制文件及数据文件缺失等问题。
&spm=1001.2101.3001.5002&articleId=100374330&d=1&t=3&u=4f119f2f48614cd3b68b213aecf4c6c9)
872

被折叠的 条评论
为什么被折叠?



