Sie sind auf Seite 1von 24

Escola Superior de Tecnologia

LEI e LTIM Instituto Politécnico de Castelo Branco

Bases de Dados II

Bases de Dados

Filipe Fidalgo
ffidalgo@est.ipcb.pt
Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Administração de Bases de Dados


Bases de Dados II

Alterar o estado das instâncias:


stratup
shutdown

Criar e manter bases de dados.

Criar e manter utilizadores


Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Exemplo de criação de BD
Bases de Dados II

CREATE DATABASE <nome_da_bd>


DATAFILE <nome_datafile> [AUTOEXTEND ON
[NEXT n ] [MAXZISE y] SIZE <tam> LOGFILE
[GROUP <numero_inteiro>] <nome_membro_logfile> [,
<nome_dos_restantes_membros_se_existirem> SIZE
<tam> ...]
MAXDATAFILES <numero_inteiro>
MAXLOGFILES <numero_inteiro>
MAXLOGMEMBERS <numero_inteiro>
MAXLOGHISTORY <numero_inteiro>
CHARACTER SET <tipo_conjunto_caracteres>;
Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Bases de Dados II

Descrição
Campo Descrição

<nome_bd> Nome da bd

<nome_datafile> Entre plicas o nome do datafile que irá ser o suporte físico do tablespace
SYSTEM

AUTOEXTEND ON Autoextend on - permite que o datafile se possa expandir sozinho em disco.


NEXT n Next n - indica o tamanho a ser reservado cada vez que o datafile crescer.
MAXSIZE y MAXSIZE y – indica qual o tamanho máximo que o datafile pode atingir.

Tamanho do ficheiro a que diz respeito.


Valores minimos aconselhados:
SIZE <tam> Datafile do tablespace SYSTEM: 50 m
Logfiles: 500 k
Nota: apesar de ser possivel não é aconselhavel ter grupos de logs com
tamanhos distintos.
Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Descrição (cont.)
Bases de Dados II

Campo Descrição

Os grupos podem ser numerdados explicitamente através


GROUP <numero_inteiro> desta cláusula. O número inteiro pode ter um valor máximo
de MAXLOGFILES. O número minimo é dois.

<nome_do_membro_logfile> Nome dos logfiles

MAXDATAFILES Número máximo de datafiles que a bd pode conter

MAXLOGFILES Numero máximo de grupos de logs

MAXLOGMEMBERS Número máximo de membros que cada grupo de logs pode


ter

MAXLOGHISTORY Número máximo de archived logs a serem processados


num processo de recuperação automática da base

Conjunto de caracteres permitidos para a bd. O valor por


CHARACTER SET defeito é US7ASCII, para nós europeus de oeste,
WE8ISO8859P1 (Western European 8-bit)
Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Exemplo
Bases de Dados II

Create database ORCL


Datafile ´d:\ora81\database\system1ORCL.ora´ SIZE 50m
Logfile
Group 1 : ´d:\ora81\database\log1ORCL.ora´ SIZE 500
k,
Group 2: ´d:\ora81\database\log2ORCL.ora´ SIZE 500
k;
Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Manter BD
Bases de Dados II

Depois de criar é necessário manter a BD.

Alterar valores da criação.

Definir politicas de Backup’s

Criar e manter utilizadores


Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Utilizadores
Bases de Dados II

Alterar as password’s iniciais!!!

Criar utilizador:
create user <nome_utilizador>
identified by <password_do_utilizador>;

Exemplo:
create user ffidalgo identified by fidalgo;

É possivel fazer autenticações pelo SO.


Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

User + Tablespace
Bases de Dados II

create user <nome_utilizador>


identified by <password_do_utilizador>
[default tablespace <nome_do_tablespace>]
[temporary tablesapce <nome_do_tablespace>];

Exemplo:
create user ffidalgo
identified by fidalgo
default tablespace DADOS
temporary tablespce TEMP;

Nota: é ainda possivel definir quotas de utlização...


Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Alterações
Bases de Dados II

Alter user <nome_utilizador>


Identifed by <nova_passoword>;

Exemplo:
Alter user ffidalgo identified by est;

Também é possivel alterar os tablespaces...

Eliminar users:
drop user <nome_do_utilizador>
Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Privilégios
Bases de Dados II

Grant <nome_previlegio[s]_sistema>
To {<nome_utilizador[es]> | PUBLIC}
[with ADMIN OPTION];

Lista de privilégios:
CREATE TABLE, CREATE ANY TABLE, ALTER ANY
TABLE, BACKUP ANY TABLE, DROP ANY TABLE,
LOCK ANY TABLE, COMMENT ANY TABLE, SELECT
ANY TABLE, INSERT ANY TABLE, UPDATE ANY
TABLE, DELETE ANY TABLE.

Nota: PUBLIC permite fornecer o previlegio de sistema a


todos os utilizadores da bd.
Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

With admin option...


Bases de Dados II

Grant create session, alter session to filipe, miguel, fidalgo;


Utilizador Utilizador Utilizador
Filipe Miguel Fidalgo

Grant create session to miguel


with admin option; Grant create session to fidalgo; -
Grant create table to miguel;

Retirar privilégios:
revoke <nome_previlegio[s]_sistema> from
{<nome_utilizador[es]> | PUBLIC}

Nota: Os previlégios do sistema não são retirados em cascata


Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Privilegios a um objecto
Bases de Dados II

Grant <privilégios> [(coluna[s])] on <objecto> to {utilizador[es] | PUBLIC} [with grant


option];

Exemplo:
SQL> show user
USER is “ffidalgo”
SQL> grant select on socio to miguel;
Grant succeeded

SQL> conn miguel


Enter password: *****
Connected.
SQL> select codigo, nome from ffidalgo.socio;
Codigo Nome
---------------------------------------
1 Filipe
Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Bases de Dados II
...

Retirar privilégios:
revoke {<nome_previlegio> | ALL PREVILEGES on
<nome_do_objecto> from <nome_utilizador> [CASCADE
CONSTRAINTS];

Nota: Os privilégios dos objectos são retirados em cascata


Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Roles
Bases de Dados II

Existe uma infinidade de privilégios. (Em ORACLE


83 de sistema e uma infinidade em objectos)

Mas existe uma forma de os agrupar: ROLES

Envolve três passos:


Criação
Carregamento
Atribuição
Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Criação
Bases de Dados II

Criação:
create role <nome_role> [identified {by <password> |
EXTERNALLY | GLOBALLY];

SQL > create role meu_role;


Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Carregamento
Bases de Dados II

Privilegio de sistema
Grant <nome_privilegio> to {<nome_utilizador> |
<nome_role>} [with admin option];

Privilegio de objecto
Grant <nome_privilegio> on <nome_objecto> to
{<nome_utilizador> | <nome_role>} [with admin option];

SQL > grant create session to meu_role;

Grant Succeeded.
Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Atribuição
Bases de Dados II

Grant {<privilegio_sistema> | <nome_role>} to


{<nome_utilizador> | <nome_role>} [with admin
option];

Grant meu_role to miguel;

Grant meu_role to outro role;

Existem roles predefinidos.

Podem activar-se e desactivar-se os roles.


Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Replicação de BD
Bases de Dados II

Client 1
Slave 1

… WWW Server …

Slave n
Client n
Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Replicação de BD
Bases de Dados II

Um exemplo em MYSQL:
VERSOES:

Compaq 4.0.18
Projdeti 5.0.16
Local 5.0.27

1- Verificar se as versões são compativeis

NOTA:
A replicação deve ser sempre feita de verões Master mais antigas do que as versões slaves.

2 - cria utilizador com permissoes de "replication slave"


Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Replicação de BD
Bases de Dados II

3-
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

###########

NOTA:
Se as querys anteriores derem vazio, os valores a usar são: (estão por manual)

slave's log file -> '' (string vazia)


position -> 4
Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Replicação de BD
Bases de Dados II

4-

##################Acrescentar no my.ini do MASTER


[mysqld]
log-bin=mysql-bin
server-id=1
#innodb_flush_log_at_trx_commit=1
#sync_binlog=1
#innodb_safe_binlog
############################

Depois fazer restart.

5-
##################Acrescentar no my.ini do SLAVE
[mysqld]
server-id=2 #tem de ser diferente do master
############################

Depois fazer restart.


Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Replicação de BD
Bases de Dados II

6-
##################################Correr os seguintes comandos sql no slave
CHANGE MASTER TO
MASTER_HOST='10.6.1.131',
MASTER_USER='replica',
MASTER_PASSWORD='replica',
MASTER_LOG_FILE='',
MASTER_LOG_POS=4;
####################################

OUTRO RESULTADO

mysql-bin.000004
389

CHANGE MASTER TO
MASTER_HOST='10.6.1.131',
MASTER_USER='replica',
MASTER_PASSWORD='replica',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=389;
Escola Superior de Tecnologia
LEI e LTIM Instituto Politécnico de Castelo Branco

Replicação de BD
Bases de Dados II

7-
start slave;
stop slave;
#############
NOTA:
A replicação é automática, e só é feita quando existe correspondência,
entre as BD e as tabelas do Master e do SLave:

##################EXEMPLO#######################################################

MASTER SLAVE

BD TESTE BD TESTE
TABELA LIXO TABELA LIXO

Das könnte Ihnen auch gefallen