帶有LOB欄位的表遷移
在建立含有lob欄位的表時,oracle會自動為lob欄位建立兩個單獨的segment,一個用來存放lob資料,另一個用來存放lob索引,並且它們都會儲存在對應表指定的表空間中。但是當我們用alter table tb_name move tablespace tbs_name; 對錶做表空間之間遷移時只能遷移非lob欄位以外的segment,而如果要在移動表資料同時移動lob相關欄位,就必需用如下的含有特殊引數據的文句來完成:alter table tb_name move tablespace tbs_name lob (column_lob1,column_lob2) store as(tablesapce tbs_name);
實驗如下:
C:\>set ORACLE_SID=icmnlsdb
C:\>sqlplus /nolog
SQL*Plus: Release 9.2.0.8.0 - Production on 星期五 6月 13 16:52:08 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn / as sysdba;
已連線。
SQL> select file_name from dba_data_files;
FILE_NAME
-----------------------------------------------------------------------
D:\ORACLE\ORA92\ICMNLSDB\SYSTEM01.DBF
D:\ORACLE\ORA92\ICMNLSDB\UNDOTBS01.DBF
D:\ORACLE\ORA92\ICMNLSDB\INDX01.DBF
D:\ORACLE\ORA92\ICMNLSDB\TOOLS01.DBF
D:\ORACLE\ORA92\ICMNLSDB\USERS01.DBF
D:\ORACLE\ORA92\ICMNLSDB\ALAN.DBF
D:\ORACLE\ORA92\ICMNLSDB\MYCR.DBF
D:\ORACLE\ORA92\ICMNLSDB\LMT.DBF
D:\ORACLE\ORA92\ICMNLSDB\PERFSTAT.DBF
D:\ORACLE\ORA92\ICMNLSDB\MYTEXT01.DBF
已選擇10行。
SQL> create tablespace HJP
2 datafile 'D:\ORACLE\ORA92\ICMNLSDB\hjp.dbf' size 100M
3 autoextend on
4 next 10M
5 maxsize unlimited;
表空間已建立。
SQL> conn alan/passw0rd@abc
已連線。
SQL> select segment_name,segment_type
2 from dba_segments
3 where wner='ALAN';
未選定行
SQL> create table test_lob
2 (id blob,
3 name clob);
表已建立。
SQL> select segment_name,segment_type,tablespace_name
2 from dba_segments
3 where wner='ALAN';
SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
------------------------------ ------------------ --------------------
TEST_LOB TABLE USERS
SYS_IL0000026875C00001$$ LOBINDEX USERS
SYS_IL0000026875C00002$$ LOBINDEX USERS
SYS_LOB0000026875C00001$$ LOBSEGMENT USERS
SYS_LOB0000026875C00002$$ LOBSEGMENT USERS
SQL> alter table test_lob move tablespace hjp;
表已更改。
SQL> select segment_name,segment_type,tablespace_name
2 from dba_segments
3 where wner='ALAN';
SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
------------------------------ ------------------ ------------------
TEST_LOB TABLE HJP
SYS_IL0000026875C00001$$ LOBINDEX USERS
SYS_IL0000026875C00002$$ LOBINDEX USERS
SYS_LOB0000026875C00001$$ LOBSEGMENT USERS
SYS_LOB0000026875C00002$$ LOBSEGMENT USERS
這裡lob段並沒有移動到指定的tablespace去。因此需要額外的命令進行移動
SQL> alter table test_lob move tablespace hjp lob(id,name) store as(tablespace hjp);
表已更改。
SQL> select segment_name,segment_type,tablespace_name
2 from dba_segments
3 where wner='ALAN';
SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
------------------------------ ------------------ ------------------------------
TEST_LOB TABLE HJP
SYS_IL0000026875C00001$$ LOBINDEX HJP
SYS_IL0000026875C00002$$ LOBINDEX HJP
SYS_LOB0000026875C00001$$ LOBSEGMENT HJP
SYS_LOB0000026875C00002$$ LOBSEGMENT HJP
實驗如下:
C:\>set ORACLE_SID=icmnlsdb
C:\>sqlplus /nolog
SQL*Plus: Release 9.2.0.8.0 - Production on 星期五 6月 13 16:52:08 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn / as sysdba;
已連線。
SQL> select file_name from dba_data_files;
FILE_NAME
-----------------------------------------------------------------------
D:\ORACLE\ORA92\ICMNLSDB\SYSTEM01.DBF
D:\ORACLE\ORA92\ICMNLSDB\UNDOTBS01.DBF
D:\ORACLE\ORA92\ICMNLSDB\INDX01.DBF
D:\ORACLE\ORA92\ICMNLSDB\TOOLS01.DBF
D:\ORACLE\ORA92\ICMNLSDB\USERS01.DBF
D:\ORACLE\ORA92\ICMNLSDB\ALAN.DBF
D:\ORACLE\ORA92\ICMNLSDB\MYCR.DBF
D:\ORACLE\ORA92\ICMNLSDB\LMT.DBF
D:\ORACLE\ORA92\ICMNLSDB\PERFSTAT.DBF
D:\ORACLE\ORA92\ICMNLSDB\MYTEXT01.DBF
已選擇10行。
SQL> create tablespace HJP
2 datafile 'D:\ORACLE\ORA92\ICMNLSDB\hjp.dbf' size 100M
3 autoextend on
4 next 10M
5 maxsize unlimited;
表空間已建立。
SQL> conn alan/passw0rd@abc
已連線。
SQL> select segment_name,segment_type
2 from dba_segments
3 where wner='ALAN';
未選定行
SQL> create table test_lob
2 (id blob,
3 name clob);
表已建立。
SQL> select segment_name,segment_type,tablespace_name
2 from dba_segments
3 where wner='ALAN';
SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
------------------------------ ------------------ --------------------
TEST_LOB TABLE USERS
SYS_IL0000026875C00001$$ LOBINDEX USERS
SYS_IL0000026875C00002$$ LOBINDEX USERS
SYS_LOB0000026875C00001$$ LOBSEGMENT USERS
SYS_LOB0000026875C00002$$ LOBSEGMENT USERS
SQL> alter table test_lob move tablespace hjp;
表已更改。
SQL> select segment_name,segment_type,tablespace_name
2 from dba_segments
3 where wner='ALAN';
SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
------------------------------ ------------------ ------------------
TEST_LOB TABLE HJP
SYS_IL0000026875C00001$$ LOBINDEX USERS
SYS_IL0000026875C00002$$ LOBINDEX USERS
SYS_LOB0000026875C00001$$ LOBSEGMENT USERS
SYS_LOB0000026875C00002$$ LOBSEGMENT USERS
這裡lob段並沒有移動到指定的tablespace去。因此需要額外的命令進行移動
SQL> alter table test_lob move tablespace hjp lob(id,name) store as(tablespace hjp);
表已更改。
SQL> select segment_name,segment_type,tablespace_name
2 from dba_segments
3 where wner='ALAN';
SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
------------------------------ ------------------ ------------------------------
TEST_LOB TABLE HJP
SYS_IL0000026875C00001$$ LOBINDEX HJP
SYS_IL0000026875C00002$$ LOBINDEX HJP
SYS_LOB0000026875C00001$$ LOBSEGMENT HJP
SYS_LOB0000026875C00002$$ LOBSEGMENT HJP
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12361284/viewspace-345706/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20181020]lob欄位的索引段.txt索引
- ORACLE LOB大欄位維護Oracle
- [20181022]lob欄位的lobid來之那裡.txt
- [20210208]lob欄位與查詢的問題.txt
- [20181031]lob欄位與布隆過濾.txt
- postgresql單個表可以有多少欄位SQL
- [重慶思莊每日技術分享]-重建LOB欄位上的IndexIndex
- 表單欄位
- 【ORA-01555】Oracle LOB欄位匯出 報錯 ORA-01555Oracle
- Oracle資料庫高水位釋放——LOB欄位空間釋放Oracle資料庫
- JPA使用pg資料庫時,bool欄位不能跨庫遷移的解決方案資料庫
- win10如何使用自帶遷移工具 win10使用自帶遷移工具的方法Win10
- MySQL 更新一個表裡的欄位等於另一個表某欄位的值MySql
- oracle 修改表欄位的長度Oracle
- LOB欄位相關概念(自動建立LOB索引段和重建索引方法)索引
- Oracle中表空間、表、索引的遷移Oracle索引
- [BUG反饋]模型管理 > 欄位管理看不見任何欄位。這表明顯有欄位、!模型
- 5_MySQL 表的欄位約束MySql
- oracle增加欄位帶預設值Oracle
- mysqldump 欄位值帶單引號MySql
- mysql 大表mysqldump遷移方案MySql
- MySQL 遷移表空間,備份單表MySql
- 查詢資料庫表及表欄位資料庫
- 資料遷移(1)——通過資料泵表結構批量遷移
- mysql建立表的時候對欄位和表新增COMMENTMySql
- table/index/LOBINDEX遷移表空間Index
- ORACLE 資料匯出LOB欄位報錯ORA-31693,ORA-02354,ORA-22924Oracle
- 共有的表單欄位屬性
- SQLServer2012刪除表欄位SQLServer
- 包括clob segment 大欄位 表的大小統計
- Sql查詢 一個表中某欄位的資料在另一個表中某欄位中不存在的SQL
- 【STATS】Oracle遷移表統計資訊Oracle
- mysql表操作(alter)/mysql欄位型別MySql型別
- mysql修改表欄位學習筆記MySql筆記
- MySQL 更新同一個表不同欄位MySql
- 資料庫表欄位命名規範資料庫
- Laravel-admin 給表單追加欄位Laravel
- pydantic 欄位欄位校驗
- win10自帶系統遷移工具怎麼用 win10自帶系統遷移工具使用方法Win10