手动转移Oracle数据库步骤
2007-11-11 04:29:30 来源:WEB开发网核心提示:有时候我们会遇到这样的情况,现有的数据库要从一个机器转移到另外一个机器上,手动转移Oracle数据库步骤,一般我们会使用导出,导入,修改/etc/oratab文件,以能够使用dbstart和dbshut脚本,但是如果数据库的数据非常多,数据文件尺寸很大
有时候我们会遇到这样的情况,现有的数据库要从一个机器转移到另外一个机器上,一般我们会使用导出,导入。但是如果数据库的数据非常多,数据文件尺寸很大,那么在导出导入的过程就很可能会出现问题,并且漫长的过程也是我们无法容忍的。在这种情况下,我们可以简单地使用操作系统的copy命令,直接进行数据库的转移。以下示例均在Redhat Fedora Core 1上的Oracle(大型网站数据库平台)9.2.0.1中操作,其它操作系统和Oracle(大型网站数据库平台)版本同样适用。假设我们的数据库在服务器A上,$Oracle(大型网站数据库平台)_BASE是/Oracle(大型网站数据库平台),$Oracle(大型网站数据库平台)_HOME是 /Oracle(大型网站数据库平台)/product/9.2.0。现在我们要将此数据库转移到服务器B上,并且新的$Oracle(大型网站数据库平台)_BASE是/u01/Oracle(大型网站数据库平台),$ Oracle(大型网站数据库平台)_HOME是/u01/Oracle(大型网站数据库平台)/product/9.2.0。SID是oralinux。
操作步骤如下: /system01.dbf,保证目录的逻辑结构一样,实际上物理结构已经发生了变化(A上$Oracle(大型网站数据库平台)_BASE是/Oracle(大型网站数据库平台),而B上是 /u01/Oracle(大型网站数据库平台))。其它的文件均作相同处理,如果服务器B上还没有相应的目录,那么就手工创建。
六. 编辑上传到服务器B上的init.ora文件,将其中涉及的目录结构全部改为B中目前的目录结构,比如本例中就是将/Oracle(大型网站数据库平台)改为/u01/Oracle(大型网站数据库平台)。
操作步骤如下:
一. 在服务器B上安装Oracle(大型网站数据库平台),安装过程中不要创建数据库。 用户的profile直接从服务器A上copy过来即可,注意需要修改原先的$Oracle(大型网站数据库平台)_HOME到现在的位置。二. 如果服务器A上的Oracle(大型网站数据库平台)使用的是spfile,那么根据此spfile创建pfile: create pfile from spfile;三. 关闭服务器A上的数据库,shutdown immediate。如果数据库不允许关闭, 那么可以使用联机备份,这种情况数据库必须处于archivelog模式, 转移的原理和允许关闭的情况一样,此处不作讨论。四. 备份服务器A上的所有数据文件,包括以下:a) 所有的datafile(临时文件可以不copy,比如temp01.dbf)b) 所有的online redo logc) 所有的archive redo logd) 所有的control filee) $Oracle(大型网站数据库平台)_HOME/dbs/init五.通过FTP或者别的工具将上述的备份文件,全部上传到服务器B的相应目录中。比如说原来在服务器A上$Oracle(大型网站数据库平台)_BASE/oradata/< SID>/system01.dbf,现在就上传到服务器B上$Oracle(大型网站数据库平台)_BASE/oradata/.ora(此文件是在上面第二步中创建的)f) $Oracle(大型网站数据库平台)_HOME/dbs/orapw (这是password file)g) $Oracle(大型网站数据库平台)_HOME/network/listener.ora(这步可以省略,以后重新生成也可以)h) $Oracle(大型网站数据库平台)_BASE/admin/ /下的所有目录,一般是udump, cdump, bdump(这步可以省略,以后手工创建目录也可以)
六. 编辑上传到服务器B上的init
七. 在服务器B上,sqlplus “/ as sysdba”,提示进入空闲进程。八. 根据修改过的pfile创建spfile,create spfile from pfile;九. 启动数据库到mount状态,startup mount;十. 修改control file中所有数据文件的位置,可以通过spool生成所有的SQL:SQL> alter database rename file '/Oracle(大型网站数据库平台)/oradata/oralinux/system01.dbf' 2 to '/u01/Oracle(大型网站数据库平台)/oradata/oralinux/system01.dbf';按照以上语法修改所有的数据文件位置。十一. 此时数据库已经可以使用了,alter database open;十二. 将临时文件添加到TEMP表空间中:alter tablespace TEMP add tempfile ‘'/u01/Oracle(大型网站数据库平台)/oradata/oralinux/temp01.dbf’ size 20M;十三.还有一些后续工作,包括更新数据库B上的监听配置文件(其实可以不用管,因为9i的实例已经可以自动注册到监听程序上了,如果是先起监听再起数据库,那么立刻就会注册,如果是先起数据库再起监听,那么会稍微有些延时才注册),修改/etc/oratab文件,以能够使用dbstart和dbshut脚本。 这样数据库就算完全转移了。
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
更多精彩
赞助商链接