数据库的导入导出问题,在线等!

[复制链接]
查看11 | 回复9 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
IBM H80主机两台。AIX433。ORACLE816
目前有一个生产数据库,我在另外一台主机上新建了一个数据库,想要把生产数据库里的东西全部导到新建的数据库上来,并且需要改变目录结构,比方说原来的system01.dbf在/u1/app/oracle/shencan/目录下,我希望导到新的数据库后,该文件放在/yanglao/oradata/test/这个目录下,请问用什么方法最好?
我是希望整个数据库里的数据全部导到新的数据库里来。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
先按你想的在另一台机建好数据库,再用exp/imp
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
我已经建好了数据库,就是对exp/imp这块不是很了解,所以想请大家帮忙参考一下。怎样才能实现?我是用exp对数据库做个full导出,然后在新的数据库上做imp,那样的话,目录结构应该还是原来数据库里的目录结构吧?是不是应该在新的数据库中先一个个按原来的名字建好表空间,然后一个个的导过来?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
如果是Sybase数据库,这是一项很简单的工作,只需将相关的环境变量改一下,以体现目录结构的变化即可,因为master等系统数据库和用户数据库都在共享阵列上,只需在生产机上关闭数据库,并用varyoffvg释放卷组,再在备份机上用varyonvg命令将共享卷组激活即可利用,不必做任何数据库的导出导入动作。对Oracle我是外行,只能请Oracle专家解答。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
先在数据库里面建立相应的用户,设定这个用户默认的表空间及临时表空间,然后用imp user/user@sid file=full.dmp log=log.log fromuser=user1,user2,user3 touser=user1,user2,user3 ignore=y
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
一、EXP/IMP
首先全库备份EXP FILE=FILENAME LOG=LOGNAME USERID=USERNAME/PASSWD FULL=Y
然后导入IMP FILE=FILENAME LOG=LOGNAME FULL=Y IGNORE=Y
(提示:这种办法导入之前,首先要手工创建目录结构,可用 IMP FILE=FILENAME LOG=LOGNAME FULL=Y SHOW=Y 生成的日志查看文件目录结构)。
二、复制
先建立正式数据库的控制文件脚本(ALTER DATABASE CREATE CONTROL FILE TO TRACE)。更改脚本中文件目录的结构(改成现在的目录结构),改SID NAME,改REUSE DATABASE 为 SET DATABASE,注解下列语句: RECOVER DATABASE, ALTER DATABASE OPEN。
拷贝正式数据库的所有数据文件(DATAFIEL,REDO FILE)到新建立数据库上的任一目录中。
使用: RECOVER DATABASE USING BACKUP CONTROLFILE 应用上联机日志(1不行用2,2不行用3、、、)
使用: ALTER DATBASE OPEN RESETLOGS;
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
看了你的另一个帖子,我觉得你不用重建VG的。在那个帖子里有我的回复。
现在的关键是备份机上的Oracle要“认”到用户数据库,如果你现在通过备份和恢复的方式“认”到了数据库,还是没有解决问题,毕竟要做到双机热备,始终无法回避双机皆能认到用户数据库的问题(因为不是并行数据库及Concurrent Resource,不能同时“认”到)。
事实上跟做Oracle双机有所区别的就是:涉及Oracle系统的改变(存储所在及目录结构的变化),而用户数据库不必改变。
一. 最理想的情形:Oracle能够适应目录结构的改变,可通过如重新设置环境变量、拷贝某些设置文件、重建控制文件之类的方法自动“认”到用户数据库。
二. 最坏的情形:Oracle无法适应目录结构的改变,那要做的工作就是:
1.在生产机上备份数据库;
2.在备份机上重装Oracle,恢复数据库
3.在生产机上重装Oracle,并从生产机上拷贝某些设置文件,保证双机配置的一致性。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
因为是生产系统,尽量不动生产数据为宜。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
thinkless,如果我的dump文件做的时候是/u1下的某个目录,我怎样才能保证我imp后的文件会放在我希望的目录中?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
exp/imp是逻辑上的,在新机器上建好数据库,用户,表空间,然后imp就ok了
btw:感觉你的应用需要两边数据库需要同步把
如果是的话,用oracle的高级复制
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行