返回顶部
首页 > 资讯 > 数据库 >Oracle12.2怎么将分区移动到不同的表空间中
  • 668
分享到

Oracle12.2怎么将分区移动到不同的表空间中

2024-04-02 19:04:59 668人浏览 安东尼
摘要

本篇内容主要讲解“oracle12.2怎么将分区移动到不同的表空间中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle12.2怎么将分区移动到不同的表空

本篇内容主要讲解“oracle12.2怎么将分区移动到不同的表空间中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle12.2怎么将分区移动到不同的表空间中”吧!

下面的例子将演示如何联机重定义多个分区并将基于范围分区的表salestable的两个分区移动到新表空间中。原始表jy.salestable的创建如下:

sql> create table jy.salestable
  2  (s_productid number,
  3  s_saledate date,
  4  s_custid number,
  5  s_totalprice number)
  6  tablespace users
  7  partition by range(s_saledate)
  8  (partition sal10q1 values less than (to_date('01-apr-2010', 'dd-mon-yyyy')),
  9  partition sal10q2 values less than (to_date('01-jul-2010', 'dd-mon-yyyy')),
 10  partition sal10q3 values less than (to_date('01-oct-2010', 'dd-mon-yyyy')),
 11  partition sal10q4 values less than (to_date('01-jan-2011', 'dd-mon-yyyy')));

Table created.

这个例子会将分区sal10q1与sal10q2移动到example表空间中。sal10q3与sal10q4分区不会被移动。为了移动分区表空间example必须存在。这里已经先创建好了表空间example。对原始表jy.salestable创建一个本地分区索引,操作如下:

SQL> create index jy.sales_index on jy.salestable (s_saledate, s_productid, s_custid) local;

Index created.

注意,在12.2中也可以执行alter table ... move partition ... online语句来将分区移动到其它表空间中。

联机重定义操作如下:
1.用要执行联机重定义操作的用户登录数据库

SQL> conn jy/jy@jypdb
Connected.

2.验证原始表jy.salestable是否可以执行联机重定义

SQL> begin
  2  dbms_redefinition.can_redef_table(
  3    uname => 'jy',
  4    tname => 'salestable',
  5    options_flag => DBMS_REDEFINITION.CONS_USE_ROWID,
  6    part_name => 'sal10q1, sal10q2');
  7  end;
  8  /

PL/SQL procedure successfully completed.

3.在新表空间example中创建中间表。因为这是对分区执行联机重定义,因此中间表不能是分区表。

SQL> create table jy.int_salestb1
  2  (s_productid number,
  3  s_saledate date,
  4  s_custid number,
  5  s_totalprice number)
  6  tablespace example;

Table created.

SQL> create table jy.int_salestb2
  2  (s_productid number,
  3  s_saledate date,
  4  s_custid number,
  5  s_totalprice number)
  6  tablespace example;

Table created.

4.使用rowid方法来执行重定义操作

SQL> begin
  2  dbms_redefinition.start_redef_table(
  3    uname => 'jy',
  4    orig_table => 'salestable',
  5    int_table => 'int_salestb1, int_salestb2',
  6    col_mapping => NULL,
  7    options_flag => DBMS_REDEFINITION.CONS_USE_ROWID,
  8    part_name => 'sal10q1, sal10q2',
  9    continue_after_errors => TRUE);
 10  end;
 11  /

PL/SQL procedure successfully completed.

注意,part_name参数用来指定所有要重定义的分区,int_table参数用来指定每个分区所对应的中间表,continue_after_errors参数被设置为true,因此重定义操作即使当某个特定分区遇到错误也会继续执行。

5.在中间表上创建任何本地索引

SQL> create index jy.int_sales1_index on jy.int_salestb1
  2  (s_saledate, s_productid, s_custid)
  3  tablespace example;

Index created.

SQL> create index jy.int_sales2_index on jy.int_salestb2
  2  (s_saledate, s_productid, s_custid)
  3  tablespace example;

Index created.

6.可选操作同步中间表

SQL> begin
  2  dbms_redefinition.sync_interim_table(
  3    uname => 'jy',
  4    orig_table => 'salestable',
  5    int_table => 'int_salestb1, int_salestb2',
  6    part_name => 'sal10q1, sal10q2',
  7    continue_after_errors => TRUE);
  8  end;
  9  /

PL/SQL procedure successfully completed.

7.完成重定义操作

SQL> begin
  2  dbms_redefinition.finish_redef_table(
  3    uname => 'jy',
  4    orig_table => 'salestable',
  5    int_table => 'int_salestb1, int_salestb2',
  6    part_name => 'sal10q1, sal10q2',
  7    continue_after_errors => TRUE);
  8  end;
  9  /

PL/SQL procedure successfully completed.

8.可选操作,查询dba_redefinition_status视图来确保对每个分区都重定义操作成功

SQL> select base_table_owner, base_table_name, operation, status from dba_redefinition_status;

no rows selected

如果有任何分区重定义失败,视图dba_redefinition_errors会显示出错误原因,修正故障重新执行联机重定义操作。

下面的查询显示了表jy.salestable有两个分区已经移动到了新的表空间example中了

SQL> select partition_name, tablespace_name from dba_tab_partitions where table_name = 'SALESTABLE' and table_owner='JY';
PARTITION_NAME                                                                   TABLESPACE_NAME
-------------------------------------------------------------------------------- ------------------------------
SAL10Q1                                                                          EXAMPLE
SAL10Q2                                                                          EXAMPLE
SAL10Q3                                                                          USERS
SAL10Q4                                                                          USERS

到此联机重定义操作完成

到此,相信大家对“Oracle12.2怎么将分区移动到不同的表空间中”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

您可能感兴趣的文档:

--结束END--

本文标题: Oracle12.2怎么将分区移动到不同的表空间中

本文链接: https://lsjlt.com/news/59227.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle12.2怎么将分区移动到不同的表空间中
    本篇内容主要讲解“Oracle12.2怎么将分区移动到不同的表空间中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle12.2怎么将分区移动到不同的表空...
    99+
    2024-04-02
  • 怎么理解数据库移动分区表和分区索引的表空间
    这篇文章主要介绍“怎么理解数据库移动分区表和分区索引的表空间”,在日常操作中,相信很多人在怎么理解数据库移动分区表和分区索引的表空间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • 将用户当前表空间中的表和索引迁移到另一个表空间
    查看INV用户的对象的存储情况select * from dba_segments ds where ds.owner='INV';--default tablespac...
    99+
    2024-04-02
  • 怎么在PHP中将时间戳转换为不同时区的时间
    本文小编为大家详细介绍“怎么在PHP中将时间戳转换为不同时区的时间”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么在PHP中将时间戳转换为不同时区的时间”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。了解时区概...
    99+
    2023-07-05
  • MOS怎么利用RMAN可传输表空间迁移数据库到不同字节序的平台
    小编给大家分享一下MOS怎么利用RMAN可传输表空间迁移数据库到不同字节序的平台,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • vue中怎么区分不同的环境
    目录如何区分不同环境方式一、手动修改不同的变量方式二、使用process.env.NODE_ENV来区分方式三、编写不同的环境变量配置文件vue配置不同环境需要配置以下文件如何区分不...
    99+
    2024-04-02
  • Oracle中怎么将字典管理的表空间转换为本地管理表空间
    这篇文章主要介绍“Oracle中怎么将字典管理的表空间转换为本地管理表空间”,在日常操作中,相信很多人在Oracle中怎么将字典管理的表空间转换为本地管理表空间问题上存在疑惑,小编查阅了各式资料,整理出简单...
    99+
    2024-04-02
  • Ueditor自动排版内容不自动同步到表单中怎么修复
    本篇内容介绍了“Ueditor自动排版内容不自动同步到表单中怎么修复”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Ueditor有自动排版功...
    99+
    2023-06-26
  • windows我的文档移动到d盘后C盘空间没变怎么解决
    这篇文章主要讲解了“windows我的文档移动到d盘后C盘空间没变怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“windows我的文档移动到d盘后C盘空间没变怎么解决”吧!我的文档移...
    99+
    2023-07-02
  • HDFS怎么实现数据在不同存储层之间的自动迁移
    在HDFS中,数据在不同存储层之间的自动迁移通常是通过数据生命周期管理功能来实现的。数据生命周期管理功能可以根据数据的访问频率、存储...
    99+
    2024-05-08
    HDFS
  • 怎么用冷拷贝表空间的形式进行Oracle部分数据迁移
    这篇文章主要介绍“怎么用冷拷贝表空间的形式进行Oracle部分数据迁移”,在日常操作中,相信很多人在怎么用冷拷贝表空间的形式进行Oracle部分数据迁移问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2024-04-02
  • 在Linux系统中怎么将tar文件解压到不同的目录中
    本篇内容主要讲解“在Linux系统中怎么将tar文件解压到不同的目录中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在Linux系统中怎么将tar文件解压到不同的目录中”吧!你不必使用cd命令切...
    99+
    2023-06-13
  • javascript当页面中的一部分或者全部的内容将被移离当前页面[剪贴]并移动到浏览者的系统剪贴板时触发此事件使用什么函数,详细讲解
    这篇文章将为大家详细讲解有关javascript当页面中的一部分或者全部的内容将被移离当前页面[剪贴]并移动到浏览者的系统剪贴板时触发此事件使用什么函数,详细讲解,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作