Bonjour,
Oracle 9.2.0.8.0
Je souhaiterais copier un schéma d'une base à une autre (sur 2 serveurs différents) en utilisant rman.
Comment puis-je procéder ?
Bonjour,
Oracle 9.2.0.8.0
Je souhaiterais copier un schéma d'une base à une autre (sur 2 serveurs différents) en utilisant rman.
Comment puis-je procéder ?
Rman effectue des backup "physique" (bloc Oracle). Il n'est pas adapté pour copier un seul schéma d'une base.
Si tu souhaites copier l'utilisateur USER_A de la base BASE_A et l'intégrer dans la base BASE_B, il y a deux cas figure:
cas 1) tu écrases BASE_B en dupliquant avec RMAN la base BASE_A
cas 2) tu fais un export/import de BASE_A vers BASE_B pour l'utilisateur USER_A
Acceptes tu de perdre tout le contenu de BASE_B ? Si c'est le cas, tu peux utiliser RMAN, sinon il faudra passer par un export/import
Christophe
Dans ce cas,
comme le user_A a 6 tablespaces qui lui sont propres, puis-je utiliser rman pour backuper les 6 tablespaces de la BASE_A et les restaurer dans la BASE_B ?
C'est ce que j'ai voulu essayé, mais je n'arrive déjà pas à restaurer sur la même base, alors sur une autre .....
Voici mon script shell de backup à chaud qui a fonctionné (j'espère qu'il est bien adapté pour la restauration) :
Comment faire pour la restauration sur la même base ou sur une autre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 rman << FIN connect target / run { # OUverture canal sauvegarde disque ALLOCATE CHANNEL d1 DEVICE TYPE DISK; # Sauvegarde des tablespaces BACKUP TABLESPACE TB_MPP_SMALL format '/data/local/hotbkp_TB_MPP_SMALL_%d_%T.%s.%p.bkp' TAG 'HOT FULL TB_MPP_SMALL'; BACKUP TABLESPACE TB_MPP_MEDIUM format '/data/local/hotbkp_TB_MPP_MEDIUM_%d_%T.%s.%p.bkp' TAG 'HOT FULL TB_MPP_MEDIUM'; BACKUP TABLESPACE TB_MPP_LARGE format '/data/local/hotbkp_TB_MPP_LARGE_%d_%T.%s.%p.bkp' TAG 'HOT FULL TB_MPP_LARGE'; BACKUP TABLESPACE IX_MPP_SMALL format '/data/local/hotbkp_IX_MPP_SMALL_%d_%T.%s.%p.bkp' TAG 'HOT FULL IX_MPP_SMALL'; BACKUP TABLESPACE IX_MPP_MEDIUM format '/data/local/hotbkp_IX_MPP_MEDIUM_%d_%T.%s.%p.bkp' TAG 'HOT FULL IX_MPP_MEDIUM'; BACKUP TABLESPACE IX_MPP_LARGE format '/data/local/hotbkp_IX_MPP_LARGE_%d_%T.%s.%p.bkp' TAG 'HOT FULL IX_MPP_LARGE'; # Liberation canal disque RELEASE CHANNEL d1; } # Allocation canal pour mainteance ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK; # Supprime les fichiers et entree dictionnaire selon retention DELETE FORCE NOPROMPT OBSOLETE; # Liberation canal de maintenance RELEASE CHANNEL; FIN
Merci d'avance pour votre aide
Pour copier les tablespaces et les "plugger" sur BASE_B, il faut utiliser les transportable tablespace.
1) mettre les tablespaces en READONLY
2) export des metadata sur BASE_A avec l'utilitaire exp
3) rman ou cp pour copier les datafiles sur la machine de BASE_B
4) imp sur BASE_B
Il y a pas mal de contraintes lors de l'utilisation des transportable tablespace ( tablespace en readonly, indépendance des objets exportés par rapport à ce qui n'est pas exporté ... )
Sinon, le plus simple pour copier un schéma (pas trop gros) d'une base vers une autre reste l'export/import (mais il y a aussi des contraintes/limites avec cette méthode).
Christophe
Il existe maintenant un moyen plus simple de gerer les tablespaces transportable via RMAN depuis la version d'oracle 10.2.0
Via RMAN :
RMAN > Tablespace transportable <Nom du TableSpace>
Très Efficace aussi bien pour l'export que pour l'import
Karim
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager