血源本体加dlc容量:Oracle]手工转移数据库StepByStep
来源:百度文库 编辑:中财网 时间:2024/04/28 23:06:20
Oracle]手工转移数据库StepByStep
有时候我们会遇到这样的情况,现有的数据库要从一个机器转移到另外一个机器上,一般我们会使用导出,导入。但是如果数据库的数据非常多,数据文件尺寸很大,那么在导出导入的过程就很可能会出现问题,并且漫长的过程也是我们无法容忍的。在这种情况下,我们可以简单地使用操作系统的copy命令,直接进行数据库的转移。
以下示例均在Redhat Fedora Core 1上的OracleArray.2.0.1中操作,其它操作系统和Oracle版本同样适用。
假设我们的数据库在服务器A上,$ORACLE_BASE是/oracle,$ORACLE_HOME是/oracle/product/Array.2.0。现在我们要将此数据库转移到服务器B上,并且新的$ORACLE_BASE是/u01/oracle,$ORACLE_HOME是/u01/oracle/product/Array.2.0。SID是oralinux。 操作步骤如下:
一.在服务器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 log
c)所有的archive redo log
d)所有的control file
e)$ORACLE_HOME/dbs/init;.ora(此文件是在上面第二步中创建的)
f)$ORACLE_HOME/dbs/orapw;(这是password file)
g)$ORACLE_HOME/network/listener.ora(这步可以省略,以后重新生成也可以)
h)$ORACLE_BASE/admin/;/下的所有目录,一般是udump, cdump, bdump(这步可以省略,以后手工创建目录也可以)
五.通过FTP或者别的工具将上述的备份文件,全部上传到服务器B的相应目录中。比如说原来在服务器A上$ORACLE_BASE/oradata/;/system01.dbf,现在就上传到服务器B上$ORACLE_BASE/oradata/;/system01.dbf,保证目录的逻辑结构一样,实际上物理结构已经发生了变化(A上$ORACLE_BASE是/oracle,而B上是/u01/oracle)。其它的文件均作相同处理,如果服务器B上还没有相应的目录,那么就手工创建。
六.编辑上传到服务器B上的init;.ora文件,将其中涉及的目录结构全部改为B中目前的目录结构,比如本例中就是将/oracle改为/u01/oracle。
七.在服务器B上,sqlplus “/ as sysdba”,提示进入空闲进程。
八.根据修改过的pfile创建spfile,create spfile from pfile;
九.启动数据库到mount状态,startup mount;
十.修改control file中所有数据文件的位置,可以通过spool生成所有的SQL:
按照以上语法修改所有的数据文件位置。
十一.此时数据库已经可以使用了,alter database open;
十二.将临时文件添加到TEMP表空间中:
十三.还有一些后续工作,包括更新数据库B上的监听配置文件(其实可以不用管,因为Arrayi的实例已经可以自动注册到监听程序上了,如果是先起监听再起数据库,那么立刻就会注册,如果是先起数据库再起监听,那么会稍微有些延时才注册),修改/etc/oratab文件,以能够使用dbstart和dbshut脚本。
有时候我们会遇到这样的情况,现有的数据库要从一个机器转移到另外一个机器上,一般我们会使用导出,导入。但是如果数据库的数据非常多,数据文件尺寸很大,那么在导出导入的过程就很可能会出现问题,并且漫长的过程也是我们无法容忍的。在这种情况下,我们可以简单地使用操作系统的copy命令,直接进行数据库的转移。
以下示例均在Redhat Fedora Core 1上的OracleArray.2.0.1中操作,其它操作系统和Oracle版本同样适用。
假设我们的数据库在服务器A上,$ORACLE_BASE是/oracle,$ORACLE_HOME是/oracle/product/Array.2.0。现在我们要将此数据库转移到服务器B上,并且新的$ORACLE_BASE是/u01/oracle,$ORACLE_HOME是/u01/oracle/product/Array.2.0。SID是oralinux。 操作步骤如下:
一.在服务器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 log
c)所有的archive redo log
d)所有的control file
e)$ORACLE_HOME/dbs/init
f)$ORACLE_HOME/dbs/orapw
g)$ORACLE_HOME/network/listener.ora(这步可以省略,以后重新生成也可以)
h)$ORACLE_BASE/admin/
五.通过FTP或者别的工具将上述的备份文件,全部上传到服务器B的相应目录中。比如说原来在服务器A上$ORACLE_BASE/oradata/
六.编辑上传到服务器B上的init
七.在服务器B上,sqlplus “/ as sysdba”,提示进入空闲进程。
八.根据修改过的pfile创建spfile,create spfile from pfile;
九.启动数据库到mount状态,startup mount;
十.修改control file中所有数据文件的位置,可以通过spool生成所有的SQL:
alter database rename file "/oracle/oradata/oralinux/system01.dbf"
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上的监听配置文件(其实可以不用管,因为Arrayi的实例已经可以自动注册到监听程序上了,如果是先起监听再起数据库,那么立刻就会注册,如果是先起数据库再起监听,那么会稍微有些延时才注册),修改/etc/oratab文件,以能够使用dbstart和dbshut脚本。
怎样在Oracle中手工建立数据库,急求答案!
如何卸载oracle数据库
如何下载Oracle数据库!
数据库ORACLE问题
oracle数据库密码!!!
oracle数据库问题
oracle数据库创建问题?
oracle 数据库 多少钱
Stepby是什么意思
Oracle数据库如何导出表?
连接oracle数据库的问题
ORACLE数据库错误PLS-00225
更改oracle全局数据库路径
查看ORACLE数据库中的表
jsp连接数据库oracle 出错
数据库里面的oracle是什么意思
关于ORACLE数据库的书籍
oracle数据库 应该怎样学?
使用ORACLE如何连接数据库?
ORACLE数据库问题!!!急!!!高分!!
逐步精通数据库(oracle).iso
oracle客户端如何连接数据库
oracle 数据库怎么卸载啊?
oci驱动连接oracle数据库