新手学习oracle之迁移数据表空间

简介:

新手学习之迁移数据表空间

  为了一些大量基础数据的测试案例,IMP导入数据速度太慢,则使用下面方法可以对当前数据库中个某个表空间数据快速备份恢复;下面的方法也适合两个数据库(必须相同操作系统,相同数据库版本,相同字符集)之间的数据表空间移植。

实验环境:

source192.168.1.249     tablespace: anenjoy  

Target192.168.1.248      tablespaceanenjoy02

步骤一:先确保你oracle运行的平台支持transport tablespace (基本上都是支持的,学习下查看平台的命令)

SQL> select * from v$transportable_platform; (查看当前oracle下支持的平台)

SQL>  select platform_name from v$database;(查看当前oracle 运行的平台)

SQL> select d.platform_name,endian_format from v$transportable_platform tp , v$database d where tp.platform_name=d.platform_name; (查看oracle运行的平台是否在oracle 支持平台下,返回数据则为true

步骤二:在source 上创建一个数据表空间和数据文件

SQL> create tablespace anenjoy datafile '/opt/oracle/oradata/test05/test05.dbf' size 50m extent management local autoallocate;

Tablespace created.

基于表空间创建表

SQL> create table test (name varchar2(15),work varchar2(10))  tablespace anenjoy; (两个字段 namework

Table created.

    插入一些数据,

insert into test (name,work) values ('frank','IT');

SQL> select * from test;

NAME                           WORK

------------------------------ --------------------

frank                          IT

alex                           caiwu

leon                           yanfa

步骤三:Pick a Self-Contained Set of Tablespaces (查看是不是自含,也就是说需要传输的表空间是独立的)

execute dbms_tts.transport_set_check('anenjoy',true);

如果你有多个表空间的话呢,用逗号隔开如:’anenjoy01anenjoy02

输出日志:

PL/SQL procedure successfully completed.

执行命令,检查下是否存在不能传输的表空间

SQL> select * from transport_set_violations;   如果有返回行,则需要处理后才可以传输

步骤四:生成传输字符集

首先要先将源表空间置于只读状态,以防表空间数据的修改

SQL> alter tablespace anenjoy read only;

接下来就是数据的导出步骤了(重要)

执行导入操作。导入操作应该与导出操作相对应,若是以exp导出的,需要以imp导入,若是以expdp导出的,需要以impdp导入,参考使用官方的expdpimpdp

Host expdp system  dumpfile=expdat.dmp directory=data_pump_dir transport_tablespaces='anenjoy' logfile=tts_export.log;

中间会提示输入system的密码,如果你忘记这个密码的话呢,可以参考上篇文章,学习下如何更改密码

提示点一:这里使用的是system的用户,如果你使用的是你自己定义的用户,那么你需要在target 主机上创建此用户

提示点二:命令行directory 参数data_pump_dir的路径是在/opt/oracle/admin/test05/dpdump下,test05是数据库名,这个目录在oracle database安装好之后就会创建的

可以通过SQL命令查看data_pump_dir 路径

select * from dba_directories;

日志输出为:

Job "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 13:36:16

步骤五:copy数据到target 主机上

Transport both the datafiles and the export (dump) file of the tablespaces to a place that is accessible to the destination database.

scp test05.dbf  oracle@192.168.1.248:/opt/oracle/oradata/test02/ (target database 下)

scp -r dpdump/ oracle@192.168.1.248:/home/oracle/ (这个是export files

然后呢,再将dpdump的文件copytarget 相应的data_pump_dir下,也就是你/opt/oracle/admin/ORALE_SID/dpdump

步骤六:数据导入

impdp system dumpfile=expdat.dmp directory=data_pump_dir transport_datafiles='/opt/oracle/oradata/test02/test05.dbf' logfile=tts_import.log

正常的日志输出:

Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at 00:41:33

之后,更改源和目标主机上的表空间属性

Alter tablespace anenjoy read write; (两台server上都去执行下)

验证阶段:

target上,通过SQL 命令查看是否同步过来表空间anenjoy

SQL> select * from v$tablespace;

      TS# NAME  INCLUD BIGFIL FLASHB ENCRYP

6 ANENJOY  YES NOYES

查看表空间anenjoy下的表数据

SQL> select * from test;

NAME                           WORK

------------------------------ --------------------

frank                          IT

alex                           caiwu

leon                           yanfa

现在就可以向表test中插入数据,也可以再target anenjoy 表空间下创建新的数据表和索引

   新手学习oracle 技术交流群:329638713,欢迎加入




      本文转自天真花语  51CTO博客,原文链接: http://blog.51cto.com/caibird/1274921 ,如需转载请自行联系原作者


相关文章
|
存储 Oracle 关系型数据库
【YashanDB 知识库】YMP 校验从 yashandb 同步到 oracle 的数据时,字段 timestamp(0) 出现不一致
在YMP校验过程中,从yashandb同步至Oracle的数据出现timestamp(0)字段不一致问题。原因是yashandb的timestamp(x)存储为固定6位小数,而Oracle的timestamp(0)无小数位,同步时会截断yashandb的6位小数,导致数据差异。受影响版本:yashandb 23.2.7.101、YMP 23.3.1.3、YDS联调版本。此问题会导致YMP校验数据内容不一致。
|
Oracle 关系型数据库 Linux
【YashanDB 知识库】通过 dblink 查询 Oracle 数据时报 YAS-07301 异常
客户在使用 YashanDB 通过 yasql 查询 Oracle 数据时,遇到 `YAS-07301 external module timeout` 异常,导致 dblink 功能无法正常使用,影响所有 YashanDB 版本。原因是操作系统资源紧张,无法 fork 新子进程。解决方法包括释放内存、停掉不必要的进程或增大进程数上限。分析发现异常源于 system() 函数调用失败,返回 -1,通常是因为 fork() 失败。未来 YashanDB 将优化日志信息以更好地诊断类似问题。
|
Oracle 关系型数据库 Java
【YashanDB知识库】Flink CDC实时同步Oracle数据到崖山
本文介绍通过Flink CDC实现Oracle数据实时同步至崖山数据库(YashanDB)的方法,支持全量与增量同步,并涵盖新增、修改和删除的DML操作。内容包括环境准备(如JDK、Flink版本等)、Oracle日志归档启用、用户权限配置、增量日志记录设置、元数据迁移、Flink安装与配置、生成Flink SQL文件、Streampark部署,以及创建和启动实时同步任务的具体步骤。适合需要跨数据库实时同步方案的技术人员参考。
【YashanDB知识库】Flink CDC实时同步Oracle数据到崖山
|
存储 Oracle 关系型数据库
【YashanDB 知识库】YMP 校验从 yashandb 同步到 oracle 的数据时,字段 timestamp(0) 出现不一致
【YashanDB 知识库】YMP 校验从 yashandb 同步到 oracle 的数据时,字段 timestamp(0) 出现不一致
|
Oracle 关系型数据库
【YashanDB知识库】YMP从oracle到yashan迁移评估报OCI相关错误
本文来自YashanDB官网,主要解决在使用YMP(yashan-migrate-platform)进行迁移评估时出现的OCI版本检查错误问题。错误原因为操作系统重装后,OCI所需依赖缺失(如`libnsl.so.1`、`libnnz19.so`等)。文章提供了排查步骤和解决方法:一是检查并配置环境变量`LD_LIBRARY_PATH`,二是若依赖仍缺失,则需手动下载并安装对应依赖文件。适用于使用YMP迁移平台的用户遇到OCI相关问题时参考。
|
Oracle 关系型数据库 Linux
【YashanDB知识库】通过dblink查询Oracle数据时报YAS-07301异常
【YashanDB知识库】通过dblink查询Oracle数据时报YAS-07301异常
|
Oracle 关系型数据库 网络安全
崖山异构数据库迁移利器YMP初体验-Oracle迁移YashanDB
文章是作者小草对崖山异构数据库迁移利器 YMP 的初体验分享,包括背景、YMP 简介、体验环境说明、YMP 部署(含安装前准备、安装、卸载、启动与停止)、数据迁移及遇到的问题与解决过程。重点介绍了 YMP 功能、部署的诸多细节和数据迁移流程,还提到了安装和迁移中遇到的问题及解决办法。
|
SQL Oracle 关系型数据库
Oracle向YashanDB迁移的丝滑体验
这篇文章主要介绍了从 Oracle 向 YashanDB 迁移的过程,包括 YashanDB 迁移平台 YMP 的介绍、下载安装准备、安装步骤、运行状态及访问方式,迁移中的添加数据源、创建任务、迁移配置、离线迁移、一致性校验等环节,还分享了迁移后的体验,认为 YMP 不错但希望增加在线迁移等功能。
|
SQL Oracle 关系型数据库
【YashanDB知识库】YMP迁移oracle不兼容给用户授权高级包
【YashanDB知识库】YMP迁移oracle不兼容给用户授权高级包
|
SQL Oracle 关系型数据库
基于YMP工具实现Oracle迁移YashanDB
这篇文章主要介绍了基于 YMP 工具实现 Oracle 迁移 YashanDB 的相关内容,包括 YMP 工具的简介、架构、规格,迁移前的环境准备和工具部署,迁移过程中的创建任务、评估、配置、离线迁移、校验等步骤,以及迁移体验,指出其部署简单、数据类型兼容但存在部分功能不支持等情况。

推荐镜像

更多
下一篇
开通oss服务