bonjour,
je voulais savoir s'il existait un script ou un package sous oracle permettant de générer un script de création de base de données (sans les données). le but étant de pouvoir utiliser un dump FULL de la base en question.
merci d'avance.
Version imprimable
bonjour,
je voulais savoir s'il existait un script ou un package sous oracle permettant de générer un script de création de base de données (sans les données). le but étant de pouvoir utiliser un dump FULL de la base en question.
merci d'avance.
Tu peux utiliser l'assistant graphique dbca (Database Creation Assistant) et sauvegarder les scripts qu'il génère
mais pour une base déjà existante ?
aussi, tu peux créer un template depuis une base existante et ensuite lancer la création de la base depuis ce template en ne cochant que la génération des scripts.
ces scripts peuvent être exécutés dans DBCA?
bien sûr... mais pas obligatoirement... d'ailleurs, ils ne sont pas forcément générés.
Essaye pour voir ;)
en fait je voulais demander si ces scripts pouvaient être exécutés sans DBCA et non pas dans DBCA
bien entendu, ce sont des scripts SQL et shell... encore une fois, testes la fonctionnalité, tu seras fixé ;)
Il sert a rien ton DUMP si ta base est vide !!! sauf si tu veut sauvegarder les tables ORACLE(SYS, SYSTEM SYSMAN ....) mais ya aucun intérêt
si il me sert à recréer une nouvelle base
Je suis pas sure que tu puisses recréer l'osature d'une base avec un dump....
tu vas perdre des données...
a voir...
peut etre alors avec datapump !
perso je te conseillerais d'utiliser uniquement les scripts... modulable, rapide et efficace
C'est le terme de dump qui est mal utilisé simplement. Il veut juste recréer une base vide ;) Enfin, avec le template c'est aussi bien :mrgreen:
je reviens sur ce sujet.
je viens de tester la génération d'un template via DBCA. Et ce qu'il me génère ce n'est pas un script sql mais un fichier XML.
moi ce que je veux c'est un script SQL me permettant de créer tous les USERS,TABLESPACES,ROLES etc d'une base donnée.
Le but est le suivant:
Quand un client m'envoie un dump (résultat d'un import ou datapump) de sa base. je suis obligé de recréer les users, les tablespaces et les grants pour que l'import marche. ce que je veux c'est pouvoir lui fournir un script qu'ils va éxecuter sur sa base et qui va génerer un script dans lequel il y'aura les commandes permettant de recréer les user et les tablespaces.
A défaut d'en trouver un chez oracle je t'en prête un... ;)
a remettre a ta sauce bien sure
Code:
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119 REM REM Creation d'une base en version 10.2.0 sous Unix REM REM Export ORACLE_SID=nico REM ORACLE_HOME et PATH doivent etre correctement positionne REM copie du script de creation et du fichier d'initialisation REM sqlplus /nolog REM connect / as sysdba REM @cre_base.sql REM ------------------------------------------------------------------------- REM * initialisation du spfile ------------------------------------------------------------------------- spool /appli/oracle/admin/logs/cre_basenico.log set echo on connect / as sysdba create spfile from pfile='/appli/oracle/admin/spfile/init.ora'; set echo on connect /as sysdba startup pfile='/appli/oracle/admin/spfile/spfile.ora' nomount CREATE DATABASE nico character set WE8ISO8859P15 datafile '/appli/oracle/oradata/data01/system_01.dbf' size 100M AUTOEXTEND ON NEXT 10M EXTENT MANAGEMENT LOCAL logfile group 1 ('/appli/oracle/oraredo/redo01/redo1_1.rdo', '/appli/oracle/oraredo/redo01/redo1_2.rdo') size 25M , group 2 ('/appli/oracle/oraredo/redo02/redo2_1.rdo', '/appli/oracle/oraredo/redo02/redo2_2.rdo') size 25M , group 3 ('/appli/oracle/oraredo/redo03/redo3_1.rdo', '/appli/oracle/oraredo/redo03/redo3_2.rdo') size 25M maxloghistory 1000 default temporary tablespace TEMP tempfile '/appli/oracle/oradata/data01/temp_01.dbf' size 50M AUTOEXTEND ON NEXT 10M MAXSIZE 1024M undo tablespace UNDO datafile '/appli/oracle/oradata/data01/undo_01.dbf' size 100M AUTOEXTEND ON NEXT 10M MAXSIZE 1024M SYSAUX datafile '/appli/oracle/oradata/data01/sysaux_01.dbf' size 100M AUTOEXTEND ON NEXT 10M; shutdown connect sys as sysdba startup ------------------------------------------------------------------------- REM * Execution de catalog et catproc ------------------------------------------------------------------------- connect / as sysdba set echo off @/logiciels/oracle/product/10.2.0/db_1/rdbms/admin/catalog.sql @/logiciels/oracle/product/10.2.0/db_1/rdbms/admin/catproc.sql set echo on ------------------------------------------------------------------------- REM * Execution de pupbld ------------------------------------------------------------------------- connect system/manager set echo off @/logiciels/oracle/product/10.2.0/db_1/sqlplus/admin/pupbld.sql set echo on ------------------------------------------------------------------------- REM * Modification des users SYS, SYSTEM et OUTLN ------------------------------------------------------------------------- alter user outln password expire account lock; alter user dbsnmp password expire account lock; ------------------------------------------------------------------------- REM * Creation des tablespaces ------------------------------------------------------------------------- create tablespace tools datafile '/appli/oracle/oradata/data01/tools_01.dbf' size 50M extent management local uniform size 1024 K segment space management auto; create tablespace data_01 datafile '/appli/oracle/oradata/data02/data_01.dbf' size 50M extent management local uniform size 1024 K; create tablespace index_01 datafile '/appli/oracle/oradata/data02/index_01.dbf' size 50M extent management local uniform size 1024 K segment space management auto; create tablespace mde_data_01 datafile '/appli/oracle/oradata/data03/data_01.dbf' size 50M extent management local uniform size 1024 K; create tablespace mde_index_01 datafile '/appli/oracle/oradata/data03/index_01.dbf' size 50M extent management local uniform size 1024 K segment space management auto; alter user outln default tablespace tools ; alter user dbsnmp default tablespace tools ; ------------------------------------------------------------------------- REM * Enlever le droit EXECUTE au groupe PUBLIC pour les packages sensibles ------------------------------------------------------------------------- connect /as sysdba revoke execute on utl_file from public; revoke execute on utl_http from public; revoke execute on utl_smtp from public; revoke execute on utl_tcp from public; revoke execute on dbms_random from public; QUIT REM Fin du script
merci
mais en fait ce que je veux c'est un script qui va me générer les bons "Create tablespace..." et les bons "create user..." pour une base donnée
oki dsl je viens de comprendre
toad permet de le faire "generate database scripte"
mais il faut toad ...
J'ai TOAD 9 mais je ne trouve pas cette fonctionnalité
Citation:
Envoyé par TOAD Help
I found it..thanks