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迁移、复制数据库,如需转载请自行联系原博主。

相关文章
|
4天前
|
SQL 存储 监控
关系型数据库做好备份
关系型数据库做好备份
19 6
|
2天前
|
Oracle Java 关系型数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
14 6
|
2天前
|
SQL Oracle 关系型数据库
零基础入门 Oracle数据库:轻松上手
零基础入门 Oracle数据库:轻松上手
6 0
|
2天前
|
Oracle 关系型数据库 Java
java操作多数据源将oracle数据同步达梦数据库
java操作多数据源将oracle数据同步达梦数据库
|
2天前
|
关系型数据库 MySQL 数据库连接
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
用Navicat备份Mysql演示系统数据库的时候出:Too Many Connections
|
4天前
|
存储 Oracle 关系型数据库
oracle 数据库 迁移 mysql数据库
将 Oracle 数据库迁移到 MySQL 是一项复杂的任务,因为这两种数据库管理系统具有不同的架构、语法和功能。
15 0
|
7天前
|
存储 SQL Oracle
关系型数据库的备份和恢复
关系型数据库的备份和恢复是确保数据安全性和完整性的重要手段。需要根据具体的需求和场景选择合适的备份和恢复方法,并遵循相关的注意事项来确保备份和恢复的成功。
28 2
|
SQL Oracle 关系型数据库
Oracle自动恢复设置
一、背景说明:一个朋友需要定期把正式库的备份还原到一个测试系统中,便于系统进行测试;从需求上来讲这个需求是比较奇怪的,但是作为技术人员还是得进行配合完成相应的需求。
679 0
|
12天前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
30 0
|
19天前
|
存储 Oracle 网络协议
Oracle 11gR2学习之二(创建数据库及OEM管理篇)
Oracle 11gR2学习之二(创建数据库及OEM管理篇)