一、旧服务器上首先汇总需要拷贝的文件,分别执行以下SQL:
- 需要切换到 oracle 用户
- 使用 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、打开数据库配置
2、点击下一步,一直到步骤三数据库标识,全局数据库名:为数据库的后缀名
3、
默认点击下一步有时候系统会蹦出弹窗说没有监听,明明是有的,我们就需要创建一个
4、如果需要配置监听
配置NetCA
cmd--NetCA(cmd命令安装)
或者
5、配置登录密码,可以自己设定也可分别设定
6、初始化参数,设定数据库内存
7、修改字符集,建议修改成AL32UTF-8
三、停掉新旧数据库
service oracle stop
四、将第一步的文件拷贝到新的数据库服务器上相同路径(拷贝完需要重启各种oracle服务,最好是重启计算机)
拷贝完后重启就可以了,如之后连接数据库出现五六错误,分别按以下方法解决。
以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服务就可以了