新手,故整理此篇,以备后用。
先说原理:来自网上
1.为什么出现这样的需求?
无论什么情况,现在我们一个用户的数据存在于多个表空间里,现在想把数据统一放在一个表空间里
2.如何统一数据表同一个表空间,并保证以后同一个用户的数据保存在一个表空间?
分两步:表迁移、索引迁移。
------------------
1. 问题描述
目前,某服务系统数据库存在多个表空间,对数据库表的维护造成了一定的影响。
2. 问题解决方案
解决方案:采用脚本来转移数据库表、索引及特殊字段(lob字段类型)
------------------------------------------------------------------------
连接数据库命令:
sqlplus /nolog
conn /as sysdba
操作之前请先备份数据库 | 命令模式
运行步骤:
select a.tablespace_name,a.table_name from user_tables a;
select index_name, table_name, tablespace_name from user_indexes;
xxx:内容自定义 | 若是window下,将路径改为xxx\xxx\xxx。
1 建立表空间
数据表空间:create tablespace xxx_data logging datafile '/xxx/xxx/xxx_data01.dbf' size 32m autoextend on next 32m maxsize unlimited extent management local;
索引表空间:create tablespace xxx_index logging datafile '/xxx/xxx//xxx_index01.dbf' size 32m autoextend on next 32m maxsize unlimited extent management local;
clob等大字段表空间:create tablespace xxx_clob logging datafile '/xxx/xxx/xxx_clob01.dbf' size 32m autoextend on next 32m maxsize unlimited extent management local;
临时表空间:create temporary tablespace xxx_temp tempfile '/xxx/xxx/xxx_temp01.dbf' size 32m autoextend on next 32m maxsize 4096m extent management local;
2 修改用户默认表空间,clob字段特索引
首先,创建用户并指定表空间
create user /username/ identified by /password/
default tablespace xxx_data
temporary tablespace xxx_temp;
--------------
alter user xxx temporary tablespace xxx_temp;
alter user xxx default tablespace xxx_data;
迁移clob字段数据
ALTER TABLE /tablename/ MOVE TABLESPACE xxx_clob LOB (CONTENT) STORE AS (TABLESPACE xxx_clob);
ALTER TABLE /tablename/ MOVE TABLESPACE xxx_clob LOB (MESSAGE) STORE AS (TABLESPACE xxx_clob);
//运行alter user两行代码后,再运行迁移CLOB的代码,会报错:表或视图不存在,可能是因为我们要修改的表找不到,加上数据库名即可,即:xxx.tablename。
若加上数据库名还没有的话,说明数据库中没有该表,可以从以前的测试库先把表都导过来。
但发现运行后,还是会报错,错误如下:
ORA-01950:对表空间’BUSCARD_DATA’无权限
此时,需要对我们之前建的用户xxx用户进行授权,即:[color=red]grant resource to xxx;
-------------------
显示:授权成功!
再运行下列迁移的代码,显示:表已更改。
前面建好xxx用户,我们用xxx用户去登陆,发现会报错:
ora-1045 user lacks create session privilege;logon denied xxx
这是因为我们建好的xxx用户不具有session权限,用sysdba登陆oracle,进行赋权:
grant connect,resource to xxx;
--------------------
显示:授权成功!
xxx即可登陆数据库[/color]
3 迁移数据
SELECT 'alter table ' || table_name || ' move tablespace ' ||'xxx_DATA;' as ddl,table_name as tbname
FROM user_tables
where TABLESPACE_NAME = 'USERS';
执行得到的语句 alter table table_name move tablespace xxx_DATA;
(对上一行的解析,这个命令就是将某张表迁移到某个表空间,为了行到所有要迁移的表,所以我们才要执行红色部分的代码,目的是为了得到所有需要迁移的表。)
目的是把表迁移到表空间:结合实际业务的代码如下:
SELECT 'alter table ' || table_name || ' move tablespace ' ||'BUSCARD_DATA;' as ddl,table_name as tbname
FROM user_tables
where TABLESPACE_NAME = 'BUSCARD_DATA';
得到一堆结果集,执行结果集,即可迁移。
迁移索引
SELECT 'alter index ' || index_name || ' rebuild tablespace ' ||'xxx_index' as ddl,table_name as tbname
FROM user_indexes
where TABLESPACE_NAME = 'USERS'
执行得到的语句 alter index index_name rebuild tablespace xxx_INDEX;(解析同上。)
目的是把索引迁移到表空间:结合实际业务的代码如下:
SELECT 'alter index ' || index_name || ' rebuild tablespace ' ||'buscard_index;' as ddl,table_name as tbname
FROM user_indexes
where TABLESPACE_NAME = 'BUSCARD_DATA'
得到一堆结果集,(数量跟表差不多,是因为一个主键就是一个索引,所以索引大于等于表数量。),即可迁移。
-------------------------------------------------------------
至此,表空间转换成功!
我对此的理解就是对我们第一步建的4个表空间的整理。
即:数据库空间,索引表空间,clob等大字段表空间,临时表空间。
---------
参考资料:
原文地址:http://tech.ccidnet.com/art/1105/20080122/1349975_1.html
分享到:
相关推荐
空间数据的转换与处理是地理信息系统(GIS)领域中的核心操作之一,它涉及到空间数据的投影转换、数据格式转换以及数据处理等多个方面。空间数据是指能够表达地理位置和地理现象的数据,这些数据在地理信息系统中...
反解变换则是由一种投影的坐标反解出地理坐标(x、y→B、L),然后再将地理坐标代入另一种投影的坐标公式中(B、L→X、Y),从而实现由一种投影坐标到另一种投影坐标的变换(x、y→X、Y)。数值变换则是根据两种投影在变换...
空间数据的转换
投影变换就是将一种投影系统下的坐标转换到另一种投影系统的过程,以适应特定区域或应用的需求。常见的投影变换方法包括解析变换法、数值变换法和数值解析变换法。解析变换通过数学公式直接或间接地进行坐标转换,而...
如果是文本数据,可能需要先转换成Oracle可以识别的格式,然后使用`SQL Loader`工具加载到表空间。 5. **表空间管理**:在导入前,检查目标表空间的可用空间,必要时扩展或创建新的表空间。通过`ALTER TABLESPACE`...
- **正解变换**:通过解析式直接从一种投影坐标转换到另一种投影坐标。 - **反解变换**:先将一种投影坐标转换为地理坐标,再将地理坐标转换为另一种投影坐标。 - **数值变换**:基于两种投影之间共同的控制点,...
GIS空间数据转换与处理是GIS技术中一个非常重要的环节,它涉及到空间数据的投影变换、拓扑关系建立、矢量栅格数据的互相转换等操作。了解GIS空间数据转换与处理的概念和方法对于GIS技术的应用和发展至关重要。 1. ...
一个表空间可以由一个或多个数据文件组成,而每个数据文件只能归属于一个表空间。 表空间可以分为系统表空间和非系统表空间两大类: - **系统表空间**:这是默认创建的表空间,用于存储数据字典和其他系统元数据。...
空间数据编辑及投影转换是GIS(地理信息系统)中至关重要的环节,它涉及到对地理空间数据的管理和处理,以及不同坐标系之间的转换。本文件详细介绍了五个主要的空间数据处理操作,包括裁剪、拼接、融合、合并和相交...
- **表空间**(Tablespace):Oracle数据库中的逻辑存储单元,由一个或多个数据文件组成。 - **数据文件**(Data File):表空间的具体物理实现,每个表空间至少包含一个数据文件。 - **段**(Segment):表空间中...
总之,Excel中的数据透视表转换为普通表格是一个便捷的操作,可以帮助用户在完成分析后节省存储空间,或方便分享只包含最终分析结果的文件。通过上述步骤,你可以轻松地完成这一转换,确保数据的完整性和可读性。
坐标变换是将一个坐标系统转换到另一个坐标系统中,而投影变换是将三维空间坐标投影到二维平面上。 空间数据坐标转换基础知识是GIS和测绘行业中非常重要的一部分。它涉及到空间坐标系的建立、分类、转换等方面的...
### 地理空间数据云下载TIF格式DEM转换至GRID格式方法详解 #### 一、背景与需求 在地理信息系统(GIS)领域中,数字高程模型(DEM)是一种非常重要的地形数据形式,广泛应用于地形分析、水资源管理、城市规划等多个...
1. 安装PostGIS插件,并创建空间数据库实例,我们可以使用以下命令来创建一个名为pg_building的数据库实例: ```sql CREATE DATABASE pg_building; ``` 2. 扩展数据库支持空间数据存储,我们需要在数据库实例上执行...
空间信息栅格(SIG)的一个主要任务就是实现一体化、智能化的空间信息获取、存储、组织、分发、融合及互操作,形成空间信息资源共享与集成。通过比较目前主要的几种空间数据格式,在分析了数据转换的主要方法后,...
通过上述步骤,可以从一个现有的Oracle环境中导出DMP文件,并将其导入到不同的表空间和不同的用户下,从而实现数据的有效迁移和管理。这种方式在进行数据迁移、测试环境搭建等方面非常实用,能够有效避免数据丢失和...
标题中的“一个好用的各种空间数据转换工具ogr2gui”指的是OGR2GUI,这是一个基于开源库GDAL(Geospatial Data Abstraction Library)的图形用户界面应用,用于方便地进行空间数据格式之间的转换。GDAL是处理地理...
它涉及到如何将图像数据从一个颜色模型转换到另一个颜色模型,以便进行分析、编辑或优化显示。本压缩包包含了一个名为"颜色空间转换.m"的MATLAB程序,以及一个示例图像"36475354_3.png",用于演示颜色空间转换的过程...
本文将详细介绍如何利用Oracle的EXP/IMP工具进行表空间转换,并提供一个具体的示例加以说明。 #### 二、准备工作 在开始进行表空间转换之前,需要完成以下准备工作: 1. **创建目标表空间**:确保目标表空间已经...