https://docs.oracle.com/cd/B28359_01/server.111/b28310/schema003.htm
https://oracle-base.com/articles/misc/reclaiming-unused-space
Показаны сообщения с ярлыком tablespace. Показать все сообщения
Показаны сообщения с ярлыком tablespace. Показать все сообщения
вторник, 20 сентября 2016 г.
вторник, 18 августа 2015 г.
Размер табличных пространств Oracle
Другой запрос для вычисления размера табличных пространств Oracle:
http://www.dba-oracle.com/t_tablespace_script.htm
http://www.dba-oracle.com/t_tablespace_script.htm
set lines 132
set pages 105
set pause off
set echo off
set feedb on
column "TOTAL ALLOC (MB)" format 9,999,990.00
column "TOTAL PHYS ALLOC (MB)" format 9,999,990.00
column "USED (MB)" format 9,999,990.00
column "FREE (MB)" format 9,999,990.00
column "% USED" format 990.00
select
a.tablespace_name,
a.bytes_alloc/(1024*1024) "TOTAL ALLOC (MB)",
a.physical_bytes/(1024*1024) "TOTAL PHYS ALLOC (MB)",
nvl(b.tot_used,0)/(1024*1024) "USED (MB)",
(nvl(b.tot_used,0)/a.bytes_alloc)*100 "% USED"
from
(select
tablespace_name,
sum(bytes) physical_bytes,
sum(decode(autoextensible,'NO',bytes,'YES',maxbytes)) bytes_alloc
from
dba_data_files
group by
tablespace_name ) a,
(select
tablespace_name,
sum(bytes) tot_used
from
dba_segments
group by
tablespace_name ) b
where
a.tablespace_name = b.tablespace_name (+)
and
a.tablespace_name not in
(select distinct
tablespace_name
from
dba_temp_files)
and
a.tablespace_name not like 'UNDO%'
order by 1;
понедельник, 26 мая 2014 г.
Перемещение файлов табличных пространств
CREATE OR REPLACE DIRECTORY SOURCE_DIR AS '/opt/oracle/oradata/ORACL11';
CREATE OR REPLACE DIRECTORY DEST_DIR AS '/mnt/hdd2tb2/oradata/ORACL11';
ALTER TABLESPACE USERS OFFLINE NORMAL;
-- БЛОК ПОВТОРЕНИЙ - НАЧАЛО --
/* Этот блок нужно повторить для каждого перемещаемого файла */
BEGIN
DBMS_FILE_TRANSFER.COPY_FILE(
source_directory_object => 'SOURCE_DIR',
source_file_name => 'users08.dbf',
destination_directory_object => 'DEST_DIR',
destination_file_name => 'users08.dbf');
END;
/
alter tablespace USERS rename datafile '/opt/oracle/oradata/ORACL11/users08.dbf' to '/mnt/hdd2tb2/oradata/ORACL11/users08.dbf';
-- БЛОК ПОВТОРЕНИЙ - КОНЕЦ --
ALTER TABLESPACE USERS ONLINE; /* Поднимать ТП лучше после перемещения каждого файла для проверки целостности */
/* Послеу успешного включения ТП можно удалить файлы из SOURCE_DIR */
CREATE OR REPLACE DIRECTORY DEST_DIR AS '/mnt/hdd2tb2/oradata/ORACL11';
ALTER TABLESPACE USERS OFFLINE NORMAL;
-- БЛОК ПОВТОРЕНИЙ - НАЧАЛО --
/* Этот блок нужно повторить для каждого перемещаемого файла */
BEGIN
DBMS_FILE_TRANSFER.COPY_FILE(
source_directory_object => 'SOURCE_DIR',
source_file_name => 'users08.dbf',
destination_directory_object => 'DEST_DIR',
destination_file_name => 'users08.dbf');
END;
/
alter tablespace USERS rename datafile '/opt/oracle/oradata/ORACL11/users08.dbf' to '/mnt/hdd2tb2/oradata/ORACL11/users08.dbf';
-- БЛОК ПОВТОРЕНИЙ - КОНЕЦ --
ALTER TABLESPACE USERS ONLINE; /* Поднимать ТП лучше после перемещения каждого файла для проверки целостности */
/* Послеу успешного включения ТП можно удалить файлы из SOURCE_DIR */
вторник, 11 февраля 2014 г.
Переименование и перемещение файлов данных табличных пространств Oracle 11g
Проверить рекомендации:
1) http://docs.oracle.com/cd/B28359_01/server.111/b28310/dfiles005.htm#ADMIN11430
2) http://docs.oracle.com/cd/E16655_01/server.121/e17636/dfiles.htm#ADMIN012
3) https://community.oracle.com/thread/920272?tstart=0
P.S. Текущая версия СУБД: Oracle 11.2.0.4
1) http://docs.oracle.com/cd/B28359_01/server.111/b28310/dfiles005.htm#ADMIN11430
2) http://docs.oracle.com/cd/E16655_01/server.121/e17636/dfiles.htm#ADMIN012
3) https://community.oracle.com/thread/920272?tstart=0
P.S. Текущая версия СУБД: Oracle 11.2.0.4
пятница, 27 декабря 2013 г.
Oracle и дохлый винчестер
Началось все с сообщений о поврежденных файлах табличного пространства USERS (пример сообщения для одного из таких файлов):
26.12.13 17:24:20.523,ORB-12117208(57),ERROR,TransactJob,
com.bssys.db.jdbc.DBSQLException: ORA-01115: ошибка ввода/вывода при чтении блока из файла (блок # )
ORA-01110: файл данных 25: '/mnt/hdd2tb/oracle/ORACLE11/users20.dbf'
ORA-27072: Ошибка ввода/вывода файла
Additional information: 3
Additional information: 3632835
Additional information: 8192
Таких сообщений становилось все больше и больше.
В чем моя ошибка?
Во-первых, в том, что я не включил режим "ARCHIVELOG", поэтому восстановить файлы в RMAN не удалось.
Во-вторых, в том, что я его включил уже после ошибки: это привело к аварийной остановке Oracle, т.к. быстро растущие файлы FAST-RECOVERY сожрали все оставшееся свободное место на HDD с системой.
Ладно, довольно-таки быстро сообразил режим отключить и удалить файлы. Место свободное появилось.
После этого настала очередь борьбы с проблемой: Что делать, если умер HDD с частью табличных пространств и Oracle из-за этого не запускается, сообщая при startup'е:
ORA-01157: cannot identify/lock data file 15 - see DBWR trace file
ORA-01110: data file 15: '/mnt/hdd2tb/oracle/ORACLE11/USERS2/users2_07.dbf'
ORA-27037: unable to obtain file status
?
Помогло отключение недостающих DATA-файлов:
alter database datafile '/mnt/hdd2tb/oracle/ORACLE11/users10.dbf' offline drop;
После этого Oracle запустился.
Далее дело техники: либо удалить схемы, которые лежали на недостающих DATA-файлах (drop user cascade;), либо пересоздать табличное пространство
- drop tablespace including contents;
- см. описание "create tablespace".
----после 3-х часов безуспешных попыток удалить датафайлы, чтобы освободить место на диске---
В итоге, на Oracle 11g система не позволяет удалить датафайлы из USERS, сообщая:
SQL> alter tablespace USERS drop datafile '/opt/oracle/oradata/ORACLE11/users25.dbf';
alter tablespace USERS drop datafile '/opt/oracle/oradata/ORACLE11/users25.dbf'
*
ERROR at line 1:
ORA-01662: tablespace 'USERS' is non-empty and cannot be made temporary
Плюнул. Пересоздал БД Oracle.
26.12.13 17:24:20.523,ORB-12117208(57),ERROR,TransactJob,
com.bssys.db.jdbc.DBSQLException: ORA-01115: ошибка ввода/вывода при чтении блока из файла (блок # )
ORA-01110: файл данных 25: '/mnt/hdd2tb/oracle/ORACLE11/users20.dbf'
ORA-27072: Ошибка ввода/вывода файла
Additional information: 3
Additional information: 3632835
Additional information: 8192
Таких сообщений становилось все больше и больше.
В чем моя ошибка?
Во-первых, в том, что я не включил режим "ARCHIVELOG", поэтому восстановить файлы в RMAN не удалось.
Во-вторых, в том, что я его включил уже после ошибки: это привело к аварийной остановке Oracle, т.к. быстро растущие файлы FAST-RECOVERY сожрали все оставшееся свободное место на HDD с системой.
Ладно, довольно-таки быстро сообразил режим отключить и удалить файлы. Место свободное появилось.
После этого настала очередь борьбы с проблемой: Что делать, если умер HDD с частью табличных пространств и Oracle из-за этого не запускается, сообщая при startup'е:
ORA-01157: cannot identify/lock data file 15 - see DBWR trace file
ORA-01110: data file 15: '/mnt/hdd2tb/oracle/ORACLE11/USERS2/users2_07.dbf'
ORA-27037: unable to obtain file status
?
Помогло отключение недостающих DATA-файлов:
alter database datafile '/mnt/hdd2tb/oracle/ORACLE11/users10.dbf' offline drop;
После этого Oracle запустился.
Далее дело техники: либо удалить схемы, которые лежали на недостающих DATA-файлах (drop user
- drop tablespace
- см. описание "create tablespace".
----после 3-х часов безуспешных попыток удалить датафайлы, чтобы освободить место на диске---
В итоге, на Oracle 11g система не позволяет удалить датафайлы из USERS, сообщая:
SQL> alter tablespace USERS drop datafile '/opt/oracle/oradata/ORACLE11/users25.dbf';
alter tablespace USERS drop datafile '/opt/oracle/oradata/ORACLE11/users25.dbf'
*
ERROR at line 1:
ORA-01662: tablespace 'USERS' is non-empty and cannot be made temporary
Плюнул. Пересоздал БД Oracle.
среда, 5 июня 2013 г.
Oracle: Temporary tablespace
Temporary tablespace shrink/clean/recreate:
http://stackoverflow.com/questions/1824572/how-to-shrink-temp-tablespace-in-oracle
http://stackoverflow.com/questions/1824572/how-to-shrink-temp-tablespace-in-oracle
четверг, 17 ноября 2011 г.
Oracle - free space in tablespace
Проверка свободного места в табличном пространстве
http://www.orafaq.com/wiki/Tablespace#Check_free.2Fused_space_per_tablespace
http://www.orafaq.com/wiki/Tablespace#Check_free.2Fused_space_per_tablespace
пятница, 28 октября 2011 г.
Увеличение tablespace в Oracle
На примере tablespace USERS, с автоматическим увеличением файла и начальным размером 1 МБ:
alter tablespace USERS add datafile '<путь к dbf>' size 1 M autoextend on;
alter tablespace USERS add datafile '<путь к dbf>' size 1 M autoextend on;
среда, 17 августа 2011 г.
Дефрагментация табличного пространства в Oracle
Необходимо автоматизировать дефрагментацию табличного пространства.
Подписаться на:
Сообщения (Atom)
Архив
-
►
2019
(44)
- декабря (2)
- октября (6)
- сентября (9)
- августа (1)
- июля (1)
- июня (2)
- мая (2)
- апреля (2)
- марта (2)
- февраля (9)
- января (8)
-
►
2018
(54)
- декабря (4)
- ноября (3)
- октября (6)
- сентября (4)
- августа (2)
- июля (2)
- мая (3)
- апреля (4)
- марта (11)
- февраля (6)
- января (9)
-
►
2017
(55)
- декабря (4)
- ноября (14)
- октября (1)
- сентября (3)
- августа (10)
- июля (2)
- июня (5)
- мая (2)
- апреля (3)
- марта (4)
- февраля (4)
- января (3)
-
►
2016
(111)
- декабря (12)
- ноября (4)
- октября (14)
- сентября (7)
- августа (7)
- июля (14)
- июня (12)
- мая (8)
- апреля (5)
- марта (16)
- февраля (10)
- января (2)
-
►
2015
(96)
- декабря (2)
- ноября (4)
- октября (3)
- сентября (6)
- августа (2)
- июля (2)
- июня (2)
- мая (11)
- апреля (14)
- марта (24)
- февраля (21)
- января (5)
-
►
2014
(72)
- декабря (18)
- ноября (16)
- октября (2)
- сентября (7)
- августа (4)
- июля (1)
- июня (4)
- мая (5)
- апреля (3)
- марта (3)
- февраля (6)
- января (3)
-
►
2013
(33)
- декабря (3)
- ноября (2)
- октября (3)
- сентября (2)
- августа (1)
- июля (1)
- июня (2)
- мая (5)
- апреля (2)
- марта (2)
- февраля (1)
- января (9)
-
►
2012
(181)
- ноября (6)
- октября (11)
- сентября (6)
- августа (5)
- июля (6)
- июня (25)
- мая (24)
- апреля (14)
- марта (20)
- февраля (38)
- января (26)