Oracle数据迁移__直接拷贝数据文件

时间:2024-03-29 13:30:31

一、旧服务器上首先汇总需要拷贝的文件,分别执行以下SQL:

  1. 需要切换到 oracle 用户
  2. 使用 sqlplus 登录进 Oracle 数据库
sqlplus / as sysdba
SQL> show parameter pfile
SQL> show parameter control
SQL> select * from v$logfile;
SQL> select name from v$datafile;

汇总结果需要拷贝的文件:

/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora
/oracle/oradata/orcl/control01.ctl
/oracle/recovery_area/orcl/control02.ctl
/oracle/oradata/orcl/redo03.log
/oracle/oradata/orcl/redo02.log
/oracle/oradata/orcl/redo01.log
/oracle/oradata/orcl/system01.dbf
/oracle/oradata/orcl/sysaux01.dbf
/oracle/oradata/orcl/undotbs01.dbf
/oracle/oradata/orcl/users01.dbf
/oracle/oradata/orcl/users02.dbf
/oracle/oradata/orcl/users03.dbf
/oracle/oradata/orcl/temp01.dbf

二、新服务器上创建相同的实例:

1、打开数据库配置

 Oracle数据迁移__直接拷贝数据文件
2、点击下一步,一直到步骤三数据库标识,全局数据库名:为数据库的后缀名

 Oracle数据迁移__直接拷贝数据文件

Oracle数据迁移__直接拷贝数据文件

3、

默认点击下一步有时候系统会蹦出弹窗说没有监听,明明是有的,我们就需要创建一个

Oracle数据迁移__直接拷贝数据文件

4、如果需要配置监听

配置NetCA
cmd--NetCA(cmd命令安装)

或者

Oracle数据迁移__直接拷贝数据文件

5、配置登录密码,可以自己设定也可分别设定

 

Oracle数据迁移__直接拷贝数据文件

6、初始化参数,设定数据库内存

Oracle数据迁移__直接拷贝数据文件

7、修改字符集,建议修改成AL32UTF-8


Oracle数据迁移__直接拷贝数据文件

三、停掉新旧数据库

service oracle stop

四、将第一步的文件拷贝到新的数据库服务器上相同路径(拷贝完需要重启各种oracle服务,最好是重启计算机)

拷贝完后重启就可以了,如之后连接数据库出现五六错误,分别按以下方法解决。

五、如果出现ORACLE not available错误:

以dba登录sqlplus,开启实例

请输入用户名:  sys as sysdba
输入口令:
已连接到空闲例程。

先连接到管理员用户下将用例开启

SQL> startup;
ORACLE 例程已经启动。

然后就会出现一下


Total System Global Area 3390558208 bytes
Fixed Size                  2180464 bytes
Variable Size            1979714192 bytes
Database Buffers         1392508928 bytes
Redo Buffers               16154624 bytes
数据库装载完毕。
数据库已经打开。

然后就可以正常的使用了

SQL> conn scott/tiger;
已连接。

六、如果出现ORA-02778: Name given for the log directory is invalid

在Oracle安装路径找到本地实例对应的.ora的文件(因为是Oracle 10g的默认安装,所以我的文件时initOrcl.ora文件)。

      文件打开如图所示:

SPFILE='E:\oracle\product\10.2.0\db_1/dbs/spfileorcl.ora'

      按照路径找到文件的路径spfileorcl.ora,默认是无法打开该文件的。可以拷贝你方便找到的路径。

 

打开上文的spfileorcl.ora文件,按照文件提示,查看所有指示文件路径不是可以找到。比如:

*.user_dump_dest='E:\oracle\product\10.2.0\db_1/admin/orcl/udump'

查看该路径“E:\oracle\product\10.2.0\db_1/admin/orcl/udump”是否存在,不存在的话,就在对应存在目录下逐级新建。

然后重启oracle服务就可以了