1. Перемещение таблиц.
SELECT 'ALTER TABLE '
|| owner
|| '.'
|| segment_name
|| ' MOVE TABLESPACE USERS;'
FROM dba_segments
WHERE tablespace_name = 'USERS2' AND segment_type = 'TABLE'
2. Перемещение LOB.
SELECT 'ALTER TABLE '
|| A.owner
|| '.'
|| TABLE_NAME
|| ' MOVE LOB('
|| COLUMN_NAME
|| ') STORE AS (TABLESPACE USERS);'
FROM dba_segments A, DBA_LOBS B
WHERE a.tablespace_name = 'USERS2'
AND segment_type = 'LOBSEGMENT'
AND A.SEGMENT_NAME = B.SEGMENT_NAME
3. Перемещение индексов.
SELECT 'ALTER INDEX '
|| owner
|| '.'
|| segment_name
|| ' REBUILD TABLESPACE USERS;'
FROM dba_segments
WHERE tablespace_name = 'USERS2' AND segment_type = 'INDEX'
4. Индексы из перемещенных таблиц, находящиеся в других ТП после перемещиня таблиц станут "битыми". Их тоже нужно перестроить.
SELECT 'ALTER INDEX ' || OWNER || '.' || INDEX_NAME || ' REBUILD;'
FROM dba_indexes
WHERE status <> 'VALID' AND owner NOT IN ('SYS', 'SYSTEM')
SELECT 'ALTER TABLE '
|| owner
|| '.'
|| segment_name
|| ' MOVE TABLESPACE USERS;'
FROM dba_segments
WHERE tablespace_name = 'USERS2' AND segment_type = 'TABLE'
2. Перемещение LOB.
SELECT 'ALTER TABLE '
|| A.owner
|| '.'
|| TABLE_NAME
|| ' MOVE LOB('
|| COLUMN_NAME
|| ') STORE AS (TABLESPACE USERS);'
FROM dba_segments A, DBA_LOBS B
WHERE a.tablespace_name = 'USERS2'
AND segment_type = 'LOBSEGMENT'
AND A.SEGMENT_NAME = B.SEGMENT_NAME
3. Перемещение индексов.
SELECT 'ALTER INDEX '
|| owner
|| '.'
|| segment_name
|| ' REBUILD TABLESPACE USERS;'
FROM dba_segments
WHERE tablespace_name = 'USERS2' AND segment_type = 'INDEX'
4. Индексы из перемещенных таблиц, находящиеся в других ТП после перемещиня таблиц станут "битыми". Их тоже нужно перестроить.
SELECT 'ALTER INDEX ' || OWNER || '.' || INDEX_NAME || ' REBUILD;'
FROM dba_indexes
WHERE status <> 'VALID' AND owner NOT IN ('SYS', 'SYSTEM')
Комментарии
Отправить комментарий