В Oracle 10g появились следующие новые возможности по работе с табличными пространствами:
1) Возможность переименовать табличные пространства
2) Установка постоянного табличного пространства по умолчанию (default permanent tablespace)
3) Поддержка больших файлов (bigfile tablespaces)
4) Возможность переносить табличные пространства на другие платформы (cross platform transportable tablespaces)
5) Группы временных табличных пространств (temporary tablespace groups)
6) Передача файлов (DBMS_FILE_TRANSFER)
1) Возможность переименовать табличные пространства
SQL> select tablespace_name, count(*) from dba_segments where tablespace_name like 'USERS%' group by tablespace_name;
TABLESPACE_NAME COUNT(*)
------------------------------ ----------
USERS 43
SQL> alter tablespace users rename to users_new;
Tablespace altered
SQL> select tablespace_name, count(*) from dba_segments where tablespace_name like 'USERS%' group by tablespace_name;
TABLESPACE_NAME COUNT(*)
------------------------------ ----------
USERS_NEW 43
Правда, если вы не используете OMF, то файл данных не переименуется автоматически.
SQL> select tablespace_name, file_name from dba_data_files where tablespace_name like 'USERS%';
TABLESPACE_NAME FILE_NAME
------------------------------ --------------------------------------------------------------------------------
USERS D:\ORACLE\PRODUCT\ORADATA\TESTDB\USERS01.DBF
SQL> alter tablespace users rename to users_new;
Tablespace altered
SQL> select tablespace_name, file_name from dba_data_files where tablespace_name like 'USERS%';
TABLESPACE_NAME FILE_NAME
------------------------------ --------------------------------------------------------------------------------
USERS_NEW D:\ORACLE\PRODUCT\ORADATA\TESTDB\USERS01.DBF
Табличные пространства SYSTEM и SYSAUX нельзя переименовать таким образом.
SQL> alter tablespace sysaux rename to sysaux2;
alter tablespace sysaux rename to sysaux2
ORA-13502: Cannot rename SYSAUX tablespace
SQL> alter tablespace system rename to system2;
alter tablespace system rename to system2
ORA-00712: cannot rename system tablespace
При переименовании табличного пространства UNDO, ссылка на него в файле параметров тоже автоматически меняется после перегруза, если используется spfile.
Если экземпляр был старторван с pfile, но в alert.log выводится напоминание вручную обновить pfile.
SQL> show parameter pfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string D:\ORACLE\PRODUCT\10.2.0\DATAB
ASE\SPFILETESTDB.ORA
SQL>
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL>
SQL> alter tablespace undotbs1 rename to undotbs_new;
Tablespace altered.
SQL>
SQL>
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL>
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 612368384 bytes
Fixed Size 1292036 bytes
Variable Size 348129532 bytes
Database Buffers 255852544 bytes
Redo Buffers 7094272 bytes
Database mounted.
Database opened.
SQL>
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS_NEW
SQL>
2) Установка постоянного табличного пространства по умолчанию (default permanent tablespace)
SQL> alter database default tablespace example;
Database altered
SQL> select property_name, property_value from database_properties where property_name like 'DEFAULT_PERMANENT_TABLESPACE%';
PROPERTY_NAME PROPERTY_VALUE
------------------------------ --------------------------------------------------------------------------------
DEFAULT_PERMANENT_TABLESPACE EXAMPLE
SQL> create user rahat identified by agivetova;
User created
SQL> select username, default_tablespace from dba_users where username ='RAHAT';
USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
RAHAT EXAMPLE
3) Поддержка табличных пространств состоящих из большого файла (bigfile tablespaces)
Одним из основных новинок в работе с табличными пространствами в Oracle 10g являются поддержка больших файлов.
Табличные пространства bigfile состоят только из 1 файла данных, который может расти до 128TB в зависимости от размера блока.
Например, если размер блока табличного пространства 8К, то табличное пространство может расти до 32ТВ.
Внизу таблица с максимальными размерами табличных пространств в зависимости от размера блока:
Размер блока табличного пространства Максимальный размер табличного пространства
2K 8TB
4K 16TB
8K 32TB
16K 64TB
32K 128TB
В представление dba_tablespaces добавлено поле bigfile, которое указывает, является ли табличное пространство - bigfile tablespace.
SQL> select tablespace_name, bigfile from dba_tablespaces;
TABLESPACE_NAME BIGFILE
------------------------------ -------
SYSTEM NO
UNDOTBS_NEW NO
SYSAUX NO
TEMP NO
USERS NO
EXAMPLE NO
6 rows selected
SQL> create bigfile tablespace big_users datafile 'D:\ORACLE\PRODUCT\ORADATA\TESTDB\BIG_USERS01.DBF' size 10M autoextend on next 10M;
Tablespace created
SQL> select tablespace_name, bigfile from dba_tablespaces;
TABLESPACE_NAME BIGFILE
------------------------------ -------
SYSTEM NO
UNDOTBS_NEW NO
SYSAUX NO
TEMP NO
USERS NO
BIG_USERS YES
EXAMPLE NO
7 rows selected
На практике оказывается, что многие операционные системы не поддерживают настолько большие файлы, поэтому прежде тем,
как решить использовать bigfile табличные пространства, следует узнать поддерживает ли ОС большие файлы.
В противном случае можно оказаться в ситуации, что невозможно будет увеличить табличное пространство, так как
bigfile tablespace состоит только из одного файла данных и к нему невозможно добавить дополнительные файлы данных.
SQL> alter tablespace big_users add datafile 'D:\ORACLE\PRODUCT\ORADATA\TESTDB\BIG_USERS02.DBF' size 20M;
alter tablespace big_users add datafile 'D:\ORACLE\PRODUCT\ORADATA\TESTDB\BIG_USERS02.DBF' size 20M
ORA-32771: cannot add file to bigfile tablespace
По умолчанию, все табличные пространства создаются c smallfile, но эту настройку можно изменить следующей командой:
SQL> select property_name, property_value from database_properties where property_name like 'DEFAULT_TBS_TYPE';
PROPERTY_NAME PROPERTY_VALUE
------------------------------ --------------------------------------------------------------------------------
DEFAULT_TBS_TYPE SMALLFILE
SQL> alter database set default bigfile tablespace;
Database altered
SQL> select property_name, property_value from database_properties where property_name like 'DEFAULT_TBS_TYPE';
PROPERTY_NAME PROPERTY_VALUE
------------------------------ --------------------------------------------------------------------------------
DEFAULT_TBS_TYPE BIGFILE
Теперь, команда create tablespace будет создавать bigfile табличные пространства.
19 апреля 2008 г.
Табличные пространства в Oracle 10g
Ярлыки: Oracle Database 10g
Автор: Oracle DBA на 12:36 PM
Подписаться на:
Комментарии к сообщению (Atom)
1 коммент.:
Рахат здравствуйте ! Можно командой alter изменить bigtbs в smalltbs ?
Отправить комментарий