Oracle备份与恢复系列 五 续 EXP/IMP迁移、复制数据库

简介:
+关注继续查看

迁移数据库可以采用三种方式。首先可以采用操作系统的文件拷贝进行物理数据库的还原和恢复,并重新创建数据库控制文件。其次可以用Oracle Export和Import工具将原数据库逻辑还原到一个新的数据库。最后可以用Oracle恢复管理器RMAN进行数据文件和可控制文件的一个物理还原。
迁移数据库不像复制word文档那样简单。需要注意Oracle中三种类型的文件(数据文件、重做日志文件和控制文件)必须协调一致。

本次试验采用EXP/IMP的逻辑备份方式把Oracel 11g 11.2.0.3 RAC复制到Oracle 11g 11.2.0.3单实例数据库上。试验步骤如下

1,在新主机DBCA建库,实例名和原主机数据库名一致
2,在新主机创建用户
3,dbms_metadata.get_ddl导出表空间生成语句
4,在新主机创建表空间
5,exp导出原库全部数据
6,imp导入复制数据库

注意原库的字符集

SYS@devdb1 >select userenv('language') from dual;

USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.WE8MSWIN1252

1,在新主机DBCA建库
步骤省略,注意实例名与原库数据库名一致,这里采用devdb

2,在新主机创建用户
查看原主机用户

SYS@devdb1 >select username from dba_users order by username;

在复制主机上创建原主机用户

SQL> create user TPCC identified by tpcc;
SQL> create user SNOW identified by snow;

3,dbms_metadata.get_ddl导出表空间生成语句
查看原主机表空间

SYS@devdb1 >select name from v$tablespace;

生成原主机表空间创建语句

SYS@devdb1 >set linesize 200
SYS@devdb1 >set long 999999
SYS@devdb1 >SELECT DBMS_METADATA.GET_DDL('TABLESPACE', GOLDENGATE) FROM dba_tablespaces;

CREATE TABLESPACE "GOLDENGATE" DATAFILE
  '+DATA/devdb/datafile/goldengate.dbf' SIZE 104857600
  AUTOEXTEND ON NEXT 8192 MAXSIZE 32767M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO

根据导出的创建表空间语句修改成我们需要的创建语句

CREATE TABLESPACE "GOLDENGATE" DATAFILE
  '/u01/app/oracle/oradata/devdb/goldengate.dbf' SIZE 104857600 AUTOEXTEND ON;

SYS@devdb1 >SELECT DBMS_METADATA.GET_DDL('TABLESPACE','EXAMPLE') from dba_tablespaces;
CREATE TABLESPACE "EXAMPLE" DATAFILE
  SIZE 104857600
  AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M

  NOLOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO
   ALTER DATABASE DATAFILE
  '+DATA/devdb/datafile/example.264.853490879' RESIZE 32
8335360

根据导出的创建表空间语句修改成我们需要的创建语句

CREATE TABLESPACE "EXAMPLE" DATAFILE
  '/u01/app/oracle/oradata/devdb/example.dbf' SIZE 104857600 AUTOEXTEND ON;


SYS@devdb1 >SELECT DBMS_METADATA.GET_DDL('TABLESPACE','TOOLS') from dual;

CREATE TABLESPACE "TOOLS" DATAFILE
  SIZE 20971520
  AUTOEXTEND ON NEXT 20971520 MAXSIZE 32767M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO

根据导出的创建表空间语句修改成我们需要的创建语句

CREATE TABLESPACE TOOLS DATAFILE '/u01/app/oracle/oradata/devdb/tools01.dbf.dbf' SIZE 20971520 AUTOEXTEND ON;

SYS@devdb1 >SELECT DBMS_METADATA.GET_DDL(‘TABLESPACE','INDX') from dual;

  CREATE TABLESPACE "INDX" DATAFILE
  SIZE 20971520
  AUTOEXTEND ON NEXT 20971520 MAXSIZE 32767M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192

  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO

根据导出的创建表空间语句修改成我们需要的创建语句

CREATE TABLESPACE INDX DATAFILE '/u01/app/oracle/oradata/devdb/indx01.dbf.dbf' SIZE 20971520 AUTOEXTEND ON;

4,在新主机创建表空间

SQL> CREATE TABLESPACE "GOLDENGATE” DATAFILE '/u01/app/oracle/oradata/devdb/goldengate.dbf' SIZE 104857600 AUTOEXTEND ON;
SQL> CREATE TABLESPACE "EXAMPLE” DATAFILE '/u01/app/oracle/oradata/devdb/example.dbf' SIZE 104857600 AUTOEXTEND ON;
SQL> CREATE TABLESPACE TOOLS DATAFILE '/u01/app/oracle/oradata/devdb/tools01.dbf.dbf' SIZE 20971520 AUTOEXTEND ON;
SQL> CREATE TABLESPACE INDX DATAFILE '/u01/app/oracle/oradata/devdb/indx01.dbf.dbf' SIZE 20971520 AUTOEXTEND ON;
imp \'sys/oracle as sysdba\' file=/home/oracle/full.dmp full=y

5,exp导出原库全部数据

[oracle@node1~]$  exp \'sys/oracle as sysdba\' file=/home/oracle/full.dmp full=y direct=y
将导出文件scp到复制主机
[oracle@node1 ~]$ scp full.dmp oracle@192.168.1.176:/home/oracle

6,imp导入原库全部数据

[oracle@node3 ~]$ imp \'sys/oracle as sysdba\' file=/home/oracle/full.dmp full=y

本文转自ICT时空 dbasdk博客,原文链接:Oracle备份与恢复系列 五 续 EXP/IMP迁移、复制数据库,如需转载请自行联系原博主。

相关文章
|
存储 SQL Oracle
10 PostgreSQL 表级复制-物化视图篇, 支持异地,异构如 Oracle 到 pg 的物化视图|学习笔记
快速学习10 PostgreSQL 表级复制-物化视图篇,支持异地,异构如 Oracle 到 pg 的物化视图
350 0
10 PostgreSQL 表级复制-物化视图篇, 支持异地,异构如 Oracle 到 pg 的物化视图|学习笔记
|
运维 Oracle 关系型数据库
Tomcat集群session复制与Oracle的坑。。
问题描述 公司某个系统使用了tomcat自带的集群session复制功能,然后后报了一个oracle驱动包里面的连接不能被序列化的异常。
141 0
|
Oracle 关系型数据库
Oracle新建表时,复制另一张旧表的结构和数据
1、创建一张和已经存在的表一样结构的表,同时复制数据 create table newTableName as select * from oldTableName; //--newTabl...
1186 0
|
人工智能 Java 大数据
Tomcat集群session复制与Oracle的坑。。
​ image 问题描述 公司某个系统使用了tomcat自带的集群session复制功能,然后后报了一个oracle驱动包里面的连接不能被序列化的异常。
1629 0
|
Oracle 关系型数据库 数据库
推荐文章
更多
推荐镜像
更多