在服务器B上安装Linux Oracle

运维 系统运维
Linux Oracle在这种情况下,我们可以简单地使用操作系统的copy命令,直接进行数据库的转移。 以下示例均在Redhat Fedora Core 1上的Linux Oracle9.2.0.1中操作,其它操作系统和Linux Oracle版本同样适用

c经过长时间的发展,这里我发表一下个人理解,下面就这就来讲术Linux Oracle。有时候我们会遇到这样的情况,现有的数据库要从一个机器转移到另外一个机器上,一般我们会使用导出,导入。但是如果数据库的数据非常多,数据文件尺寸很大,那么在导出导入的过程就很可能会出现问题,并且漫长的过程也是我们无法容忍的。

在这种情况下,我们可以简单地使用操作系统的copy命令,直接进行数据库的转移。 以下示例均在Redhat Fedora Core 1上的Linux Oracle9.2.0.1中操作,其它操作系统和Linux Oracle版本同样适用。

假设我们的数据库在服务器A上,$Linux Oracle_BASE是/Linux Oracle,$Linux Oracle_HOME是/Linux Oracle/product/9.2.0。现在我们要将此数据库转移到服务器B上,并且新的$Linux Oracle_BASE是/u01/Linux Oracle,$Linux Oracle_HOME是/u01/Linux Oracle/product/9.2.0。SID是oralinux。

操作步骤如下:

一. 在服务器B上安装Linux Oracle,

安装过程中不要创建数据库。用户的profile直接从服务器A上copy过来即可,注意需要修改原先的$Linux Oracle_HOME到现在的位置。

二. 如果服务器A上的Linux Oracle使用的是spfile,

那么根据此spfile创建pfile: create pfile from spfile;

三. 关闭服务器A上的数据库,

shutdown immediate。如果数据库不允许关闭,那么可以使用联机备份,这种情况数据库必须处于archivelog模式,转移的原理和允许关闭的情况一样,此处不作讨论。

四. 备份服务器A上的所有数据文件,包括以下:
a) 所有的datafile(临时文件可以不copy,比如temp01.dbf)
b) 所有的online redo log
c) 所有的archive redo log
d) 所有的control file
e) $Linux Oracle_HOME/dbs/init<SID>;.ora(此文件是在上面第二步中创建的)
f) $Linux Oracle_HOME/dbs/orapw<SID>;(这是password file)
g) $Linux Oracle_HOME/network/listener.ora(这步可以省略,以后重新生成也可以)
h) $Linux Oracle_BASE/admin/<SID>;/下的所有目录,一般是udump, cdump, bdump(这步可以省略,以后手工创建目录也可以)

五. 通过FTP或者别的工具将上述的备份文件,全部上传到服务器B的相应目录中。比如说原来在服务器A上$Linux Oracle_BASE/oradata/<SID>;/system01.dbf,现在就上传到服务器B上$Linux Oracle_BASE/oradata/<SID>;/system01.dbf。

保证目录的逻辑结构一样,实际上物理结构已经发生了变化(A上$Linux Oracle_BASE是/Linux Oracle,而B上是/u01/Linux Oracle)。其它的文件均作相同处理,如果服务器B上还没有相应的目录,那么就手工创建。

六. 编辑上传到服务器B上的init<SID>;

.ora文件,将其中涉及的目录结构全部改为B中目前的目录结构,比如本例中就是将/Linux Oracle改为/u01/Linux Oracle。

七. 在服务器B上,sqlplus “/ as sysdba”,提示进入空闲进程。

八. 根据修改过的pfile创建spfile,create spfile from pfile;

九. 启动数据库到mount状态,startup mount;

十. 修改control file中所有数据文件的位置

可以通过spool生成所有的SQL: SQL>; alter database rename file '/Linux Oracle/oradata/oralinux/system01.dbf'
2 to '/u01/Linux Oracle/oradata/oralinux/system01.dbf'; 按照以上语法修改所有的数据文件位置。

十一. 此时数据库已经可以使用了,

alter database open;

十二. 将临时文件添加到TEMP表空间中:

alter tablespace TEMP add tempfile ‘'/u01/Linux Oracle/oradata/oralinux/temp01.dbf’ size 20M;

十三. 还有一些后续工作,

包括更新数据库B上的监听配置文件(其实可以不用管,因为9i的实例已经可以自动注册到监听程序上了,如果是先起监听再起数据库,那么立刻就会注册,如果是先起数据库再起监听,那么会稍微有些延时才注册),修改/etc/oratab文件,以能够使用dbstart和dbshut脚本。

这样数据库就算完全转移了,如果有什么问题,可以给我发邮件。没问题,只要全部online都在,但是因为是online备份,所以如果业务繁忙,缺少一些数据是无法避免的。 如果是在线备份需要先recover database。 如下:

  1. [zhangleyi@as orcl]$ sqlplus "/ as sysdba"  
  2. SQL*Plus: Release 9.2.0.4.0 - Production on Mon Jan 5 17:33:38 2004  
  3. Copyright (c) 1982, 2002, Linux Oracle Corporation. All rights reserved.  
  4. Connected to an idle instance.  
  5. SQL>; startup   
  6. Linux Oracle instance started.  
  7. Total System Global Area 118035836 bytes   
  8. Fixed Size                   451964 bytes   
  9. Variable Size              96468992 bytes   
  10. Database Buffers           20971520 bytes   
  11. Redo Buffers                 143360 bytes   
  12. Database mounted.   
  13. ORA-01113: file 1 needs media recovery   
  14. ORA-01110: data file 1: '/Linux Oracle/oradata/orcl/system01.dbf' 
  1. SQL>; recover database   
  2. Media recovery complete.  
  3. SQL>; shutdown   
  4. ORA-01109: database not open  
  5. Database dismounted.   
  6. Linux Oracle instance shut down.   
  7. SQL>; startup   
  8. Linux Oracle instance started.  
  9. Total System Global Area 118035836 bytes   
  10. Fixed Size                   451964 bytes   
  11. Variable Size              96468992 bytes   
  12. Database Buffers           20971520 bytes   
  13. Redo Buffers                 143360 bytes   
  14. Database mounted.   
  15. Database opened.   
  16. SQL>

【编辑推荐】

  1. Linux Oracle数据库文件移动的方法和步骤
  2. Linux Oracle访问MySQL的Client端软件
  3. Linux Oracle 10g软件安装数据库
  4. Linux Oracle可以装在WMware虚拟机上
  5. Linux管理工具安装包与添加源
责任编辑:佚名 来源: 博客园
相关推荐

2018-10-12 10:10:58

Ubuntu服务器Oracle Virt

2009-02-18 13:43:00

2009-07-28 19:18:44

物理服务器VMware ESXi服务器虚拟化

2021-12-14 16:15:47

LinuxNginxWeb

2010-07-01 09:47:18

DNS服务器BIND

2015-05-29 13:22:10

Linux挂载运维

2010-05-19 10:31:07

IIS服务器

2010-08-17 15:08:48

MySQL集群

2010-11-09 13:53:33

2011-01-13 10:01:27

2009-04-28 19:46:16

LinuxAIX服务器

2022-09-14 09:18:52

SubversionLinux系统

2009-06-27 21:35:50

Linux服务器

2010-10-29 14:04:49

2009-02-01 09:15:02

UbuntuTwitterMicroblog

2016-03-30 10:33:30

Linux服务器管理Cockpit

2010-10-26 13:54:45

连接Oracle服务器

2009-06-18 15:04:52

2010-02-04 15:53:16

Linux PyLuc

2012-12-03 10:22:49

Linux服务器
点赞
收藏

51CTO技术栈公众号