Oracle数据库迁移的几种方式
ドラゴンボールのLong Lv4

Oracle数据库迁移的几种方式

我们常常需要对数据进行迁移,迁移到更性能配置更高级的主机OS上、迁移到远程的机房、迁移到不同的平台下,以下介绍ORACLE的几种数据库迁移方案:

一、exp/imp逻辑备份与恢复:

它是最常用最简单的方法,一般是基于应用的owner级做导出导入。

操作方法为

在新库建立好owner和表空间,停老库的应用,在老库执行:

1
$ exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.log buffer=6000000

导入dmp文件到新库,在新库执行如下命令:

1
$ imp user/pwdfromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y

优缺点:优点是可以跨平台使用;缺点是停机时间长,停机时间为从exp到网络传输到新库,再加上imp的时间。

  • 迁移实例,列如:
  1. 检查Linux上数据库实例的编译格式
1
2
3
4
5
6
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK

--牢记这个编码格式
  1. 设置windows的环境变量
1
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
  1. 导出windows数据库中的数据库文件
1
d:\app\administrator\product\11.2.0\client_1\BIN\exp.exe test/pwd@orcl direct=n "file=D:\db_20200918.dmp" "log=D:\db_20200918.exp"
  1. 通过工具将dmp文件上传到Linux上

  2. 设置Linux的环境变量

1
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
  1. 在Linux上创建相关用户及表空间
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
--创建表空间
create tablespace TESTDB
datafile '/u01/app/oracle/oradata/TESTDB.DBF'
size 100M
reuse
autoextend on
next 100M
maxsize unlimited
online
nologging
segment space management auto
default nocompress;

--创建用户
create user test identified by "pwd" ;
grant connect, resource,dba to test ;
grant create any sequence to test ;
GRANT SELECT ANY TABLE TO test ;
GRANT UPDATE ANY TABLE TO test ;
alter user test DEFAULT TABLESPACE TESTDB;
  1. 导入dmp文件
1
imp userid=test/pwd@orcl full=y ignore=y file='/dmp/db_20200918.dmp' log='/dmp/db_20200918.imp'

二、Storage存储迁移:

这种情况下,数据文件、控制文件、日志文件、spfile都在存储上(一般情况下是裸设备),我们可以直接把存储挂到新机器上,然后在新机器上启动数据库。

操作方法

将老库的pfile(因为里面有指向裸设备的spfile链接),tnsnames.ora,listener.ora,密码文件传到新库的对应位置。将存储切至新机,或者用文件拷贝或dd的方式复制数据文件,启动数据库。

优缺点:优点是该迁移方式非常简单,主要的工作是主机工程师的工作,dba只需配合即可,停机时间为停库、切存储、起库的时间;缺点是要求新老库都是同一平台,是相同的数据库版本。

三、利用data guard迁移:

用dg我们不仅可以用来做容灾,物理的dg我们还可以作为迁移的方式。
关于DG的操作方式,详情点击 => DG搭建

  • 本文标题:Oracle数据库迁移的几种方式
  • 本文作者:ドラゴンボールのLong
  • 创建时间:2021-02-06 20:10:12
  • 本文链接:https://zhongshenglong.xyz/2021/02/06/Oracle数据库迁移的几种方式/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论