powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перенос данных в другой TABLESPACE
25 сообщений из 53, страница 2 из 3
Перенос данных в другой TABLESPACE
    #38555454
смотря как переносить будешь.
если move/rebuild, то остаются. если drop/create - то нет
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #38555584
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=Koba=-Вопрос при переносе таблиц и индексов в другое пространство

Синонимы и гранты на них остаются или нет?
Добрый Э - Эхсмотря как переносить будешь.
если move/rebuild, то остаются. если drop/create - то нет

... если не всё в одну кучу, то точнее будет:
- гранты на таблицы при drop слетят;
- синонимы на таблицы останутся, даже если сами таблицы канут в лету;
- индексам перпендикулярно, они сами по себе...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Перенос данных в другой TABLESPACE
    #39319344
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопросик, данные перенесены в другое табличное пространство, в старом подрезала и удалила файлы пустые какие могла, один не удаляется, есть unmapped блоки, и при попытке удаления пишет не могу удалить первичный ключ...
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319347
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IOT ?
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319349
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,

Есть, но я для пользователя указало другое табличное пространство по умолчанию, они ночью там пересоздались.

Корзину отключила и у всех пользователей почистила кроме Spotlight, не могу к нему пароль подобрать.
Да и данные в корзине все равно хоть как-то как сегменты отображаются, а тут сегментов нет, а unmapped блоки есть.

И еще не могу найти, где v$bh находится, хоть посмотреть куда он ссылается, у меня во всяких dba_segments и тд. есть все таблицы, а в v$bh их нету после переноса.
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319350
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причем тут v$bh ?

Смотришь в dba_segments / dba_extents (они могут не совпадать из-за корзины) какие экстенты выделены в данном ТП и переносишь их
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319351
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,

В dba_segments и dba_extents все красиво и нет ничего, связанного с этим табличным пространством.
И в OEM смотрю Show Tablespace Contents тоже нет никаких сегментов, а на карте экстентов есть черные отметки.
И в dba_free_space есть 4 строки по этому табличному пространству.


v$bh меня независимо волнует по другим вопросам.
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319352
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nata44845Вячеслав Любомудров,

В dba_segments и dba_extents все красиво и нет ничего, связанного с этим табличным пространством.
И в OEM смотрю Show Tablespace Contents тоже нет никаких сегментов, а на карте экстентов есть черные отметки.
И в dba_free_space есть 4 строки по этому табличному пространству.Ну показывай команду, как удаляешь, и что тебе в ответ пишет
Только не надо своими словами пересказывать


nata44845v$bh меня независимо волнует по другим вопросам.Описание v$bh? Открой для себя v$fixed_view_definition
Только (в данном случае) увидишь ты там обращение к псевдо-таблицам (x$)
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319354
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,

Удаляю в OEM, данные из Alert.log

DROP TABLESPACE "X" INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS
ORA-00604: ошибка на рекурсивном SQL-уровне 1 ORA-02429: нельзя удалить индекс, использованный для реализации уникальн./первичн. ключа
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319356
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, смотрю зависимости, на вкладке Dependents куча индексов из пользователей TEST и ARCHIVE, которых я раскидала по другим табличным пространствам.

Это которых тестово поднимали и не указали табличное пространство и они сюда поднялись.

Любопытно.
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319357
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, и в DBA_SEGMENTS их не видно, откуда он их берет интересно, когда зависимости просчитывает.
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319358
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перестроение помогло перетащить индекс в другое табличное пространство, но в DBA_SEGMENTS он все равно не появился.
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319362
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее, он был в UNUSABLE (или вообще не создавался, см. DEFERRED_SEGMENT_CREATION), поэтому и не светился в DBA_SEGMENTS/EXTENTS
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319404
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,

Самое грустное, что не похоже

Вот скрипт из dbforge

Код: sql
1.
2.
3.
4.
5.
CREATE UNIQUE INDEX Y ON Z (ПОЛЯ)
TABLESPACE X
STORAGE (INITIAL 6 M
         NEXT 4 M)
LOGGING;



Никакого криминала, и таких 47 по TEST и 47 по ARCHIVE, их видно в DBA_OBJECTS, но не видно в DBA_SEGMENTS.

А еще все такие объекты похоже пустые. По крайней мере dbforge с ними работает без ошибок и данные выбирает (пустые), но опять же пустые объекты у меня и другие есть, чем эти такие особенные, что под них места не выделено...
Большая часть конечно временные, но есть не временные.

Вопрос возник, как тогда смотреть на какое табличное пространство завязан объект, через сегменты значит не получится.


Код: sql
1.
2.
3.
4.
5.
select * from dba_objects do where not exists
(select 1 from dba_segments ds where ds.segment_name=do.object_name
  and ds.owner=do.owner and do.object_type=ds.segment_type )
  and owner='X'
and object_type='TABLE'



Проверила на другой базе маленькой, там в dba_segments не видны только временные таблицы и IOT.
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319422
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В твоем случае ключевое слово DEFERRED_SEGMENT_CREATION
Тут неоднократно обсасывалось

Временные хранятся (если хранятся) в темпе, там своя структура, а для IOT имя сегмента совпадает не с именем таблицы, а с именем первичного ключа
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319427
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,

select name, value from v$parameter
where name = 'deferred_segment_creation'

FALSE...
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319432
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если речь только про индексы -- проверь статус
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
tst> create table t1 as select 1 a from dual;

Table created.

tst> create index t1_idx on t1(a);

Index created.

tst> select status, segment_created from user_indexes where index_name='T1_IDX';

STATUS   SEG
-------- ---
VALID    YES

tst> select count(*) from user_segments where segment_name='T1_IDX';

  COUNT(*)
----------
         1

tst> alter table t1 move;

Table altered.

tst> select status, segment_created from user_indexes where index_name='T1_IDX';

STATUS   SEG
-------- ---
UNUSABLE NO

tst> select count(*) from user_segments where segment_name='T1_IDX';

  COUNT(*)
----------
         0

...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319436
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,

И таблицы тоже

Везде VALID
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319446
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ Oracle11g R2 по умолчанию действует Deferred / Delayed Segment Creation.
То есть сегменты не создаются до того момента, пока в таблицу не будет добавлена первая строка.
Таким образом в Oacle 11.2 может быть таблица, у которой нет начального экстента, не содержащая строк.

Вот в чем дело наверное, но тогда вопрос как определить завязанные на табличное пространство сегменты остается, через зависимости он их как-то находит.
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319448
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пардон, не сегменты, а объекты.
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319451
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для таблиц, конечно, еще версии это кластер и секционирование
Но для индексов у секционированных будет явно не VALID, а N/A

Ну и поле SEGMENT_CREATED из DBA_INDEXES и DBA_TABLES что говорит?

А то ведь deffered_segment_creation можно выключить и после пересоздания. А можно и создавать с опцией SEGMENT CREATION DEFFERED
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319452
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nata44845авторВ Oracle11g R2 по умолчанию действует Deferred / Delayed Segment Creation.
То есть сегменты не создаются до того момента, пока в таблицу не будет добавлена первая строка.
Таким образом в Oacle 11.2 может быть таблица, у которой нет начального экстента, не содержащая строк.

Вот в чем дело наверное, но тогда вопрос как определить завязанные на табличное пространство сегменты остается, через зависимости он их как-то находит.Ты же сказала, что оно отключено
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319456
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nata44845Вот в чем дело наверное, но тогда вопрос как определить завязанные на табличное пространство сегменты остается, через зависимости он их как-то находит.Можно тупо заставить их материализоваться через DBMS_SPACE_ADMIN.MATERIALIZE_DEFERRED_SEGMENTS
Только, не уверен, что это хороший вариант
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319479
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,

Парено, из трассировки OEM сперла

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
SELECT 'ROLLBACK SEGMENT' segment_name , u.name, NULL, 'HARD', 'STORAGE', NULL   
  FROM  SYS.UNDO$ u, sys.ts$ ts WHERE ts.name = 'ТАБЛИЧНОЕ ПРОСТРАНСТВО' and u.ts#=ts.ts#  
  and  u.status$ != 1 and substr(u.name,1,7) != '_SYSSMU'  UNION   SELECT 'USER',   
  u.name, NULL, 'SOFT', 'DEF_TABLESPACE', NULL FROM sys.user$ u, sys.ts$ dts  
  WHERE   dts.name = 'ТАБЛИЧНОЕ ПРОСТРАНСТВО' and u.datats# = dts.ts#  
  and u.tempts# != u.datats# and  u.type# = 1  UNION   SELECT 'USER',   
  u.name, NULL, 'SOFT', 'TEMP_TABLESPACE', NULL FROM sys.user$ u, sys.ts$ tts  
  WHERE   tts.name = 'ТАБЛИЧНОЕ ПРОСТРАНСТВО' and u.tempts# = tts.ts#  and u.tempts# != u.datats# and  u.type# = 1   
  UNION   
  SELECT 'USER',   u.name, NULL, 'SOFT', 'DEF_AND_TEMP_TABLESPACE', NULL 
  FROM sys.user$ u,  sys.ts$ tts WHERE   tts.name = 'ТАБЛИЧНОЕ ПРОСТРАНСТВО' and u.tempts# = tts.ts#  and u.tempts# = u.datats# and  u.type# = 1     
  UNION       
  SELECT 'USER',   username, NULL, 'SOFT', 'TABLESPACE_QUOTA', NULL 
  FROM SYS.DBA_TS_QUOTAS   WHERE tablespace_name = 'ТАБЛИЧНОЕ ПРОСТРАНСТВО'   
  UNION   
  SELECT 'CLUSTER', o.name, u.name,   'HARD', 'STORAGE', NULL 
  FROM  sys.ts$ ts, sys.clu$ clu, sys.obj$ o, sys.user$ u 
  WHERE   ts.name =  'ТАБЛИЧНОЕ ПРОСТРАНСТВО' and clu.ts# = ts.ts# and o.obj# = clu.obj# and u.user# =  o.owner#      
  UNION   
  SELECT 'TABLE',DECODE(t.iot_type,'IOT_OVERFLOW', t.iot_name,  p.table_name),DECODE(t.iot_type,'IOT_OVERFLOW', t.owner,p.table_owner),  
  'HARD',     DECODE(t.iot_type,  'IOT_OVERFLOW','IOT_OVERFLOW_STORAGE','PARTITION_STORAGE'),  partition_name 
  FROM sys.dba_tab_partitions p, sys.dba_tables t 
  WHERE  p.tablespace_name = 'ТАБЛИЧНОЕ ПРОСТРАНСТВО' 
  AND p.table_name = t.table_name AND  p.table_owner = t.owner   
  UNION  
  SELECT 'INDEX', decode(i.index_type,'IOT-TOP',i.table_name,p.index_name),  decode(i.index_type,'IOT_TOP',i.table_owner,p.index_owner),  
  'HARD', 'PARTITION_STORAGE', PARTITION_NAME FROM SYS.DBA_IND_PARTITIONS p, SYS.DBA_INDEXES i 
  WHERE p.tablespace_name = 'ТАБЛИЧНОЕ ПРОСТРАНСТВО' 
  AND p.index_name =  i.index_name AND p.index_owner = i.owner AND i.index_type != 'LOB'  
  UNION 
  SELECT 'TABLE', pt.table_name, pt.owner, 'HARD', 'DEF_TABLESPACE', NULL 
  FROM   SYS.DBA_PART_TABLES pt, SYS.DBA_TABLES t 
  WHERE pt.def_tablespace_name =   'ТАБЛИЧНОЕ ПРОСТРАНСТВО' 
  AND pt.table_name = t.table_name AND pt.owner = t.owner 
  AND  (t.iot_type != 'IOT_OVERFLOW' OR t.iot_type IS NULL)  UNION  SELECT 'INDEX',  i.index_name, i.owner, 
  'HARD', 'DEF_TABLESPACE', NULL FROM  SYS.DBA_PART_INDEXES pi, SYS.DBA_INDEXES i 
  WHERE i.partitioned = 'YES' AND  i.index_type != 'LOB' AND i.index_name = pi.index_name AND i.owner =  pi.owner 
  AND pi.def_tablespace_name = 'ТАБЛИЧНОЕ ПРОСТРАНСТВО'  
  UNION   
  SELECT 'TABLE',   table_name, table_owner, 'HARD', 'PARTITION_STORAGE', PARTITION_NAME 
  FROM   SYS.DBA_TAB_SUBPARTITIONS WHERE tablespace_name = 'ТАБЛИЧНОЕ ПРОСТРАНСТВО'     
  UNION   
  SELECT   DECODE( i.type#, 8, 'TABLE', 4, 'TABLE', 'INDEX'),   DECODE( i.type#, 8, io.name, 4, io.name, o.name),     
  DECODE( i.type#, 8, iu.name,4, iu.name, u.name),   'HARD',  DECODE( i.type#, 8, 'LOB_INDEX_STORAGE', 'STORAGE'), NULL   
  FROM sys.ts$ ts, sys.ind$ i, sys.user$ u, sys.user$ iu, sys.obj$ o, sys.obj$  io 
  WHERE   ts.name = 'ТАБЛИЧНОЕ ПРОСТРАНСТВО' and i.ts# = ts.ts#   and bitand(i.flags, 4096) = 0   and bitand(i.property, 34) = 0   
  and i.type# != 9   and u.user# = o.owner#  and o.obj# = i.obj#   and i.bo# = io.obj#   and io.owner# = iu.user#   
  UNION   
  select 'TABLE',o.name, u.name,  'HARD','LOB_STORAGE',decode(bitand(c.property, 1), 1, ac.name, c.name)  
  from sys.obj$ o, sys.col$ c, sys.attrcol$ ac, sys.tab$ ta,       sys.lob$ l, sys.obj$ lo, sys.obj$ io, sys.user$ u, sys.ts$ ts  
  where   ts.name = 'ТАБЛИЧНОЕ ПРОСТРАНСТВО'   and o.owner# = u.user#  and o.obj# = c.obj#   and c.obj# = l.obj#   and c.intcol# = l.intcol#    
  and l.lobj# = lo.obj#    and l.ind# = io.obj#   and l.ts# = ts.ts#   and c.obj# = ac.obj#(+)   
  and c.intcol# = ac.intcol#(+)   and bitand(c.property,32768) != 32768          
  /* not unused column */   and o.obj# = ta.obj#   and bitand(ta.property, 32) != 32          
  /* not partitioned table */  
  union all
  select 'TABLE',o.name, u.name, 'HARD','LOB_STORAGE',decode(bitand(c.property,  1), 1, ac.name, c.name)   
  from sys.obj$ o, sys.col$ c, sys.attrcol$ ac, sys.partlob$ plob,       sys.lob$ l, sys.obj$ lo, sys.obj$ io, sys.ts$ ts1, sys.tab$ ta,       
  sys.partobj$ po, sys.ts$ ts2, sys.user$ u  where     ts1.name = 'ТАБЛИЧНОЕ ПРОСТРАНСТВО'   and o.owner# = u.user#   and o.obj# = c.obj#   
  and c.obj# = l.obj#   and c.intcol# = l.intcol#   and l.lobj# = lo.obj#   and l.ind# = io.obj#   and l.lobj# = plob.lobj#   and plob.defts# = ts1.ts# (+)   
  and c.obj# = ac.obj#(+)   and c.intcol# = ac.intcol#(+)   and bitand(c.property,32768) != 32768          
  /* not unused column */   and o.obj# = ta.obj#   and bitand(ta.property, 32) = 32                
  /* partitioned table */   and o.obj# = po.obj#   and po.defts# = ts2.ts#    
  UNION   
  select 'TABLE',  decode((bitand(t.property, 512)+bitand(t.flags,  536870912)),0, o.name, co.name),               
  u.name, 'HARD', decode((bitand(t.property, 512)+bitand(t.flags,  536870912)),0, 'STORAGE','IOT_OVERFLOW_STORAGE'), NULL     
  FROM     sys.ts$ ts, sys.tab$ t, sys.seg$ s ,sys.user$ u, sys.obj$ co, sys.obj$ o,       
  sys.obj$ cx, sys.user$ cu  where   ts.name = 'ТАБЛИЧНОЕ ПРОСТРАНСТВО'     and t.ts# = ts.ts#   and bitand(t.property, 4194400) = 0   
  and bitand(t.property, 1) = 0     and t.file# = s.file# (+)   and t.block# = s.block# (+)   and t.ts# = s.ts# (+)   and o.owner# = u.user#   
  and o.obj# = t.obj#   and t.bobj# = co.obj# (+)   and t.dataobj# = cx.obj# (+)    and cx.owner# = cu.user# (+)      and cx.owner# = cu.user# (+) 
...
Рейтинг: 0 / 0
Перенос данных в другой TABLESPACE
    #39319484
nata44845
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще мысль поняла, что кроме сегментов надо смотреть еще и зависимые объекты.
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 2 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Перенос данных в другой TABLESPACE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]