Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Objetos administrativos no Oracle, Notas de estudo de Análise de Sistemas de Engenharia

Objetos administrativos no Oracle

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 09/07/2010

marcos-andre-franco-ferreira-11
marcos-andre-franco-ferreira-11 🇧🇷

4.8

(5)

11 documentos

1 / 68

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
OBJETOS ADMINISTRATIVOS – TABLESPACES
CONCEITOS
O ORACLE aloca espaço para todos os tipos de dados do banco de dados. Quando um objeto
é alocado, também é assegurada área para armazenamento das informações. Outro momento
de alocação de área é quando o objeto cresce, requerendo um aumento de sua área prevista.
Estas reservas de espaço são feitas em TABLESPACES, que corresponde a uma área lógica
para armazenamento de informações do banco de dados, no entanto, sabemos que o banco de
dados armazena suas informações em DATAFILES.
Resta-nos, então, conhecer como estes elementos se relacionam:
DATABASE x DATAFILES Um banco de dados Oracle consiste de um conjunto de
arquivos de dados, chamados DATAFILES. O sistema operacional onde o banco de
dados está instalado tem visibilidade destes arquivos, no entanto, sua organização
interna é totalmente de responsabilidade do banco de dados.
DATABASE x TABLESPACES – Um banco de dados Oracle consiste de um conjunto
de TABLESPACES, isto é, áreas para armazenamento de dados. O TABLESPACE é
uma estrutura lógica, interna ao banco de dados. Não é visível pelo sistema operacional.
TABLESPACES x DATAFILES – Um TABLESPACE está diretamente relacionado a um
DATAFILE, na medida em que quando criamos um TABLESPACE (lógico), criamos,
simultaneamente, o DATAFILE (físico) que receberá a informação. Desta forma cada
DATAFILE está associado a um TABLESPACE, em outras palavras, em um
DATAFILE todas as informações pertencem a um único TABLESPACE. No entanto,
poderemos atribuir mais de um DATAFILE a um único TABLESPACE. Sendo assim, o
relacionamento entre TABLESPACE e DATAFILE é do tipo 1(tablespace):N(datafiles).
Na figura ao lado encontramos, graficamente,
o relacionamento entre os elementos.
Para o sistema operacional existem dois
arquivos: ts_aluno1.ora e ts_aluno2.ora.
Internamente, no Oracle, existe apenas o
TABLESPACE TS_ALUNO. Os objetos que
viermos alocar dentro deste tablespace
podem ser acomodados pelo Oracle em
qualquer dos arquivos físicos associados ou,
até mesmo em partes.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44

Pré-visualização parcial do texto

Baixe Objetos administrativos no Oracle e outras Notas de estudo em PDF para Análise de Sistemas de Engenharia, somente na Docsity!

OBJETOS ADMINISTRATIVOS – TABLESPACES

CONCEITOS

O ORACLE aloca espaço para todos os tipos de dados do banco de dados. Quando um objeto é alocado, também é assegurada área para armazenamento das informações. Outro momento de alocação de área é quando o objeto cresce, requerendo um aumento de sua área prevista. Estas reservas de espaço são feitas em TABLESPACES, que corresponde a uma área lógica para armazenamento de informações do banco de dados, no entanto, sabemos que o banco de dados armazena suas informações em DATAFILES. Resta-nos, então, conhecer como estes elementos se relacionam: ◊ DATABASE x DATAFILES – Um banco de dados Oracle consiste de um conjunto de arquivos de dados, chamados DATAFILES. O sistema operacional onde o banco de dados está instalado tem visibilidade destes arquivos, no entanto, sua organização interna é totalmente de responsabilidade do banco de dados. ◊ DATABASE x TABLESPACES – Um banco de dados Oracle consiste de um conjunto de TABLESPACES, isto é, áreas para armazenamento de dados. O TABLESPACE é uma estrutura lógica, interna ao banco de dados. Não é visível pelo sistema operacional. ◊ TABLESPACES x DATAFILES – Um TABLESPACE está diretamente relacionado a um DATAFILE, na medida em que quando criamos um TABLESPACE (lógico), criamos, simultaneamente, o DATAFILE (físico) que receberá a informação. Desta forma cada DATAFILE só está associado a um TABLESPACE, em outras palavras, em um DATAFILE todas as informações pertencem a um único TABLESPACE. No entanto, poderemos atribuir mais de um DATAFILE a um único TABLESPACE. Sendo assim, o relacionamento entre TABLESPACE e DATAFILE é do tipo 1 (tablespace): N (datafiles). Na figura ao lado encontramos, graficamente, o relacionamento entre os elementos. Para o sistema operacional existem dois arquivos: ts_aluno1.ora e ts_aluno2.ora. Internamente, no Oracle, existe apenas o TABLESPACE TS_ALUNO. Os objetos que viermos alocar dentro deste tablespace podem ser acomodados pelo Oracle em qualquer dos arquivos físicos associados ou, até mesmo em partes.

CARACTERÍSTICAS DOS TABLESPACES

◊ Cada TABLESPACE consiste de um ou mais arquivos do sistema operacional. ◊ Os TABLESPACES podem ser colocados online enquanto o banco de dados estiver em execução. ◊ Os TABLESPACES podem ser colocados offline (exceto system ou um tablespace que tenham um segmento de rollback ativo) enquanto o banco de dados estiver em execução. ◊ Os TABLESPACES podem alternar de situação passando de read-write para read-only e vice-versa. ◊ Os objetos criados em um tablespace nunca podem alocar espaço fora de seu TABLESPACE original. VANTAGENS ◊ Controlar a alocação de espaço e associar cotas de espaço para os usuários. ◊ Controlar a disponibilidade de dados, colocando o tablespace específico online ou offline. ◊ Possibilidade de distribuição de área através de diversos discos para adicionar performance (I/O) e reduzir a contenção de I/O (em vez de usar um único disco). ◊ Possibilidade de operações de backup e recuperação parcial. ◊ Colocação de grandes quantidades de dados estáticos em meios de armazenamento read-only.

ALOCAÇÃO DE ESPAÇO PARA O BANCO DE DADOS

A quantidade total de espaço físico alocado pelos objetos do banco de dados Oracle, depende do tamanho dos arquivos (do sistema operacional) criados e associados a tablespaces individuais. Se desejarmos aumentar a área de dados de um banco de dados, podemos agir de três formas: ◊Adicionar um novo DATAFILE a um TABLESPACE já existente. Esta operação adiciona ao TABLESPACE uma área do tamanho do arquivo adicionado. ◊Adicionar um novo TABLESPACE ao banco de dados. Nesta opção o novo TABLESPACE, que possui o tamanho do DATAFILE associado a ele, disponibiliza mais espaço para o banco de dados. ◊ Aumentar o tamanho de um DATAFILE já associado a um TABLESPACE. Nesta opção o espaço adicional necessário a um TABLESPACE específico é adquirido pelo crescimento de um dos DATAFILES que compõem o TABLESPACE. Este incremento pode ser feito manualmente ou automaticamente.

CRIANDO UM TABLESPACE

A criação de um tablespace é feita com o comando CREATE TABLESPACE. SINTAXE CREATE TABLESPACE create_tablespace::= ( permanent_tablespace_clause, temporary_tablespace_clause, undo_tablespace_clause)

table_compression::= ( storage_clause::=) extent_management_clause ::= ( size_clause::=) segment_management_clause ::= flashback_mode_clause ::=

temporary_tablespace_clause::= ( file_specification::=, tablespace_group_clause, extent_management_clause ::=) tablespace_group_clause::= undo_tablespace_clause::= ( file_specification::=, extent_management_clause ::=, tablespace_retention_clause ::=) tablespace_retention_clause ::=

◊ TEMPORARY - especifica que o tablespace será usado somente para armazenar objetos temporários. (por exemplo, segmentos usados para ordenação implícita causada pelo uso de uma cláusula ORDER BY). ◊ extent_management_clause – especifica como as extensões do TABLESPACE serão administradas: ◊ DICTIONARY – indica que o TABLESPACE será administrado usando tabelas dicionário. Esta é a opção default. ◊ L OCAL – indica que o TABLESPACE é “locally managed”. Isto indica que parte do TABLESPACE é controlado por um BITMAP. Quando usamos esta cláusula não podemos especificar DEFAULT storage_clause , MINIMUM EXTENT ou TEMPORARY. ◊ AUTOALLOCATE – especifica que o TABLESPACE é gerenciado pelo sistema. Os usuários não podem determinar o tamanho de uma extensão. Esta é a opção default. ◊ UNIFORM – especifica que o TABLESPACE é gerenciado com extensões de tamanho uniforme. Devemos determinar este tamanho (em Kbytes ou Mbytes). O tamanho default é 1Mbyte. OBS: ◊ Quando um TABLESPACE é criado, seu estado inicial é READ-WRITE. Isto pode ser alterado posteriormente. ◊ Se omitirmos as opções ONLINE e OFFLINE, o ORACLE cria o TABLESPACE ONLINE, por default. A view do dicionário de dados chamada DBA_TABLESPACES indica o estado de cada tablespace. ◊ Se a opção REUSE for especificada, o arquivo deve existir, caso contrário a opção SIZE deve ser especificada e o arquivo não deve existir.

EXEMPLOS

Criar o tablespace TS_TESTE com um arquivo de dados chamado TS_TESTE.DBF de tamanho 1M, tornando-o disponível imediatamente para uso. A opção PCTINCREASE tem um valor default de 50. No exemplo foi usado zero (0) a fim de controlarmos (impedirmos) o crescimento de segmentos criados no tablespace. Criar o tablespace TS_BIG com um arquivo de dados chamado TS_BIG.DBF de tamanho 1M. Este tablespace poderá se expandir automaticamente desde que não ultrapasse o limite de 3M. A alocação de espaço neste tablespace deverá obedecer a múltiplos de 50K. SQL> CREATE TABLESPACE ts_teste 2 DATAFILE '/opt/oracle/oradata/orcl/ts_teste.dbf' SIZE 1M 3 DEFAULT STORAGE (INITIAL 50K 4 NEXT 50K 5 MINEXTENTS 10 6 MAXEXTENTS 121 7 PCTINCREASE 0); Espaço de tabela criado. SQL> CREATE TABLESPACE ts_big 2 DATAFILE '/opt/oracle/oradata/orcl/ts_big.dbf' SIZE 1M 3 AUTOEXTEND ON MAXSIZE 3M 4* MINIMUM EXTENT 50K Espaço de tabela criado.

TABLESPACES TEMPORÁRIOS

Podemos separar um tablespace para realização de operações de ordenação. Este uso traz como vantagem a eliminação do gerenciamento de espaço envolvendo operações de alocação de liberação de área para ordenação. Os tablespaces temporários têm esta finalidade, isto é, realizar todas as operações de ordenação (SORT OPERATIONS) para uma determinada instância, incluindo joins, construção de índices, ORDER BY, GROUP BY e ANALYZE. Estes tablespaces: ◊ Não podem conter qualquer objeto permanente. ◊ São gerenciados pelo DBA. Para criarmos um tablespace temporário, devemos usar o comando CREATE TABLESPACE (com a opção TEMPORARY) ou CREATE TEMPORARY TABLESPACE. OBS: A Oracle recomenda que: ◊Para um tablespace gerenciado localmente, usemos o comando CREATE TEMPORARY TABLESPACE. ◊Para um tablespace gerenciado pelo dicionário de dados usemos o comando CREATE TABLESPACE com a opção TEMPORARY. Podemos também alterar um tablespace de permanente para temporário e de temporário para permanente usando o comando ALTER TABLESPACE.

SINTAXE CREATE TEMPORARY TABLESPACE

filespec autoextend_clause

TABLESPACES READ-ONLY

O principal propósito de um tablespace read-only é eliminar a necessidade de execução de backup e recovery de grandes pedaços do banco de dados que são estáticos (não mudam). Desta forma estes arquivos podem residir em uma mídia read-only (CD-ROMs ou drives WORM). OBS: Quando criamos um novo tablespace, seu estado inicial é READ-WRITE. Antes do DBA tornar um tablespace READ-ONLY, as seguintes condições devem ser satisfeitas. OBS: É recomendado que atendamos estas restrições inicializando o banco de dados no modo restrito. ◊ O tablespace deve estar ONLINE. ◊ Não devem existir transações ativas. ◊ O tablespace não deve conter qualquer segmento de rollback ativo. ◊ O tablespace não deve estar envolvido (neste momento) em um backup online. É recomendado que o DBA remova (DROP) os segmentos de rollback presentes neste tablespace antes de torna-lo READ-ONLY. OBS: O tablespace SYSTEM nunca pode se tornar um tablespace read-only. EXEMPLOS Usar o comando de SQL ALTER TABLESPACE para tornar um tablespace para read-only. Usar o comando de SQL ALTER TABLESPACE para tornar um tablespace para read-write. OBS: Para alterarmos o estado de um tablespace READ-ONLY para READ-WRITE, todos os arquivos de dados do tablespace devem estar online. Podemos usar a opção DATAFILE ONLINE do comando ALTER DATABASE para colocar um arquivo de dados online. A view V$DATAFILE lista o estado corrente de um arquivo de dados. SQL> ALTER TABLESPACE tabspace_2 READ ONLY; Tablespace altered. SQL> ALTER TABLESPACE tabspace_2 READ WRITE; Tablespace altered.

O comando ALTER TABLESPACE...READ ONLY coloca o tablespace no modo transitional read-only e aguarda que as transações existents (COMMIT ou rollback) para este tablespace se completem. Este estado não permite qualquer operação de gravação para o tablespace, exceto rollback de transações existentes. Após todas as transações terem completado (com COMMIT ou ROLLBACK), a operação solicitada (READ ONLY) é concluída e o estado do tablespace é modificado. OBS: Este estado “transitional” somente ocorre se o valor do parâmetro de inicialização COMPATIBLE for 8.1.0 ou maior. Para parâmetros inferiores a este valor, o comando ALTER TABLESPACE READ ONLY falha se houver qualquer transação em atividade. Uma vez que tablespaces read-only não podem ser modificados, eles não precisam ser salvos repetidamente. Quando necessitarmos recuperar o banco de dados, não precisamos nos preocupar, porque eles não foram modificados. Podemos remover itens (tabelas, índices, etc) de um tablespace read-only, da mesma forma que podemos remover itens de um tablespace offline, porém não podemos criar ou alterar objetos. Por outro lado, também não podemos adicionar DATAFILES a este tipo de tablespace, mesmo se o colocarmos offline (quando adicionamos um datafile, o Oracle deve atualizar o file header do arquivo e esta operação de gravação não é permitida para tablespaces read-only).

ALTERANDO O TABLESPACE

A alteração de um tablespace permite que: ◊ modifiquemos seus parâmetros de armazenamento default ; ◊ tornemos o tablespace online ou offline , ◊ acrescentemos outros arquivos de dados, ◊ façamos a substituição (renomear) dos nomes dos arquivos de dados existentes, ◊ realizemos sua salva (backup). sintaxe ALTER TABLESPACE alter_tablespace::= ( table_compression ::=--part of ALTER TABLE, storage_clause::=, size_clause::=, datafile_tempfile_clauses ::=, tablespace_logging_clauses ::=, tablespace_group_clause::=,

tablespace_state_clauses::=, autoextend_clause ::=, flashback_mode_clause ::=, tablespace_retention_clause::=) datafile_tempfile_clauses ::= ( file_specification::=). tablespace_logging_clauses ::= ( logging_clause::=) tablespace_group_clause::=