Sobre exp/ imp

Tengo problemas al hacer el import en la bd, me dice q finalizo correctamente pero en realidad no hace nada, esta es la sentencia del export que hago correr exp usuario/contraseña full=y statistics=none file= nombre_archivo.dmp log= nombre_archivo.log y esta para el import: imp usuario/contraseña full=y statistics=none file= nombre_archivo.dmp. Solo si borro la tabla y hago el import me funciona pero creo q esta no es la manera correcta.
También me gustaría saber si como se hace para actualizar de una bd (q uso en mi trabajo) quiero actualizar en la bd(q tengo en mi casa) solo algunos datos q actualice, no son datos nuevos, sino modificaciones que hizo en una tabla, como tengo q especificar esto en el export/import?? 
Desde ya muchas gracias, expertos. Saludos. Carolina.

1 respuesta

Respuesta
1
carolina viendo tu exp lo veo bien revisaste el log del exp y observaste que te exporto? y en el import pruebalo asi como hicciste un full export significa que exportaste todo lo de la base de datos prueba en el impor importando un esquema en particular te creas un usuario con su espacio de tablas y sus privilegios y en el import lo haces asi
imp usuario/contraseña@bd file=archivo.dmp log=archivo.log ignore=y fromuser=esquema_del_exp touser=usuario_que_creaste buffer=1000000 pruebalo y me comentas
ahora si quieres actualizar tu base de datos haces lo mismo te creas un usuario y haces un import de lo que exportaste a ese usuario
1.Creas el usuario create user identified by contraseña
2. Le creas su espacio de tablas create tablespace tbs_usuario datafile 'ruta/tbs_usuario.dbf' size tamañoMegas
3. se lo asignas al usuario alter user usuario default tablespace tbs_usuario;
4. Le asignas el tablespace temp alter user usuario temporary tablespace temp
5 le haces los grant grant connect, resource to usuario aclaración si el esquema que vas a importar tiene rol de dba debes darle al usuario nuevo también el rol de dba para poder realizar la importación
6 haces el import  imp usuario/contraseña@bd file=archivo.dmp log=archivo.log ignore=y fromuser=esquema_del_exp touser=usuario_creado buffer=1000000
y listo te debe funcionar
saludos.
Estuve probando y no pasa nada, en primer lugar cuando pongo @bd no me acepta me dice = TNS no se ha podido resolver el identificador de conexión identificado, si no le pongo esto me acepta, después hice todo lo que me dijiste, cree un nuevo usuario con roles, privilegios y todo lo que me dijiste y solo si NO existe el esquema me importa sino, me tira este mensaje "la siguiente sentencia ha fallado porque el objeto ya existe", y por más que tenga datos la tabla que exporte, no actualiza, solo si borro la tabla y vuelvo a importar me crea la tabla y me importa los datos.
El usuario con que estaba haciendo inicialmente la exportación es con un usuario administrador, pero igualmente cree un nuevo usuario y seguí tus recomendaciones pero todo es igual, no importa los datos, pese a que lo exporto correctamente y sin advertencias, revisé el log y esta todo ok. Estoy trabajando en oracle 10g express.
Por favor si me puedes ayudar. Gracias.
Si no te acepta el @bd y te dice que no se ha podido resolver el nombre del servicio tienes que veirifacar que el nombre que estas colocando este registrado en el tnsnames. Ora pero me parece extraño que no te funcione ya que al crear un nuevo usuario y hacele el import debe fucnionar ya que no tiene objetos enviame nuevamente el expor y el impor y resuelve lo del tnsnames
Hola, ayer por la tarde estuve probando te paso lo q probe;
1. Cree un usuario user_backup con todos los privilegios, roles, etc
AGREGUE UNA FILA EN LA TABLA PERSONA
exporte con mi usuario MANANTIAL que es mi usuario administrador
ELIMINE LA FILA CREADA PARA VER SI ME IMPORTA
2. Importe con el nuevo usuario user_backupiu
imp manantial/caromanan@xe file=.. log=... ignore=y fromuser=persona touser=USER_BACKUP buffer=1000000
advertencia: fromuser=persona no encontrado en el archivo de exportacion
3. Importe con el nuevo usuario user_backup
imp manantial/caromanan@xe file=.. log=... ignore=y fromuser=persona touser=MANANTIAL buffer=1000000
advertencia: fromuser=persona no encontrado en el archivo de exportacion
4. Imp user_backup/caromanan@xe file=.... full=n tables=persona
advertencia:los objetos fueron exportados por manantial no por usted
5. Imp manantial/caromanan@xe file=.... full=n tables=persona
advertencia:la siguiente sentencia ha fallado porque el objeto ya existe
no me importo la fila que habia agregado
6. Despues importe de esta forma;
usuario= Manantial
contraseña
c:\....
mostrar solo el contenido.. NO
Ignorar error de creación debido a que el objeto ya exite SI
importar permiso NO
importar los datos de la tabla SI
importar todo el archivo de exportación NO
USUARIO=MANANTIAL
introduzca el nombre de la tabla= persona
Ahí recién me actualizo, fue rechazando todo lo que ya existía y me agrego la fila que había agregado
7.Después modifique un dato e hice una exportación solo de una tabla
me exporto correctamente
después hice el import
usuario manantial
contreseña
C:\....
mostrar solo el contenido.. NO
Ignorar error de creación debido a que el objeto ya exite SI
importar permiso NO
importar los datos de la tabla SI
importar todo el archivo de exportación NO
manantial
introduzca el nombre de la tabla persona
Me tiro un mensaje de que ya existía el objeto pero no me actualizo el dato que había modificado
Desde ya te agradezco por la paciencia y me puedas ayudar en lo que estoy haciendo mal. Gracias.
Carambas en lo que pude detallar de todo eso es lo siguiente estas haciendo mal el import
1. Creaste un usuario llamado user_backup eso esta bien
2. No se para que agregas una fila a la tabla persona.
3. si el import lo estas haciendo con el usuario manantial y es el administrador el import es asi
imp manantial/caroman@xe file=... log=... fromuser=aqui va el esquema que quieres hacerle el import de full backup no persona que es la tabla touser=user_backup buffer=10000000 ignore=y direct=y
asi te tiene que funcionar ahora bien si es solo esa tabla
entonces es asi
imp manantial/caroman@xe file=... log=... fromuser=aqui va el esquema que quieres hacerle el import de full backup no persona que es la tabla touser=user_backup tables=persona buffer=10000000 ignore=y direct=y
espero que te funcione
cualquier cosa me avisas
saludos
Ya me salio, gracias. Pero quiero saber si llegue a atender, estuve recorriendo por la web buscando más información y quiero saber si entendí: Si quiero actualizar mi base de datos tengo dos opciones:
1. Me creo un usuario con los privilegios, roles, etc correspondientes, hago el export con mi usuario administrador full=y. Lo importo utilizando fromuser.. touser.., entonces puedo tener los datos de mi bd actualizada con el nuevo esquema que cree
2. Se hace el export full=y con usuario administrador, deshabilito los constraints, se borra las tablas, después se borra todos los demás objetos; function, index, procedure, etc. luego se hace el import con fromuser.. touser.. después se habilitan los constraints del usuario, entonces tenemos todo lo modificado sin la necesidad de crear otro esquema.
Por favor si hay otra forma menos estresante que la segunda actualizando en un mismo esquema, ¿si me podes decir o es la única de forma de hacer?
Muchas gracias por la paciencia.
Por fin funciono jejeej si lo deseas mandame tu msn yo te agrego a mis contactos por si tienes más dudas pero solo me conectaría en la noche por que acá en la empresa no dejan. Si es la única manera una aclaración cuando utlicec full=y no se utiliza fromuser ni touser por que cuando le dices full=y vas a importar toda la base a tu nueva base de datos ya cuando quieres es importar los objetos de algún esquema en particular ahí si utilizas fromuser y touser y la manera más fácil de tener actualizada lo datos de un mismo esquema es hacer un exp borrar el usuario con todos sus objetos y después hacer un import a donde quieras mandarlos y listo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas