用PlSql对Oracle数据库进行数据迁移
迁移的话,直接导出一个库的dmp文件,之后导入到另外一个库里面就可以了(导出和导入数据库版本必须一直,否则导入可能会报错)。
迁移数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
迁移数据的导入
1 将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
2024-08-23 广告
2、如果A、B两台机器都安装了数据库,然后再把A数据库移植到B,可采用EXP/IMP解决。
导出:EXP DBA用户/口令@服务名 file=文件名 direct=y full=y compress=y
导入:IMP DBA用户/口令@服务名 file=文件名 full=y
对于方法2,如果按EXP/IMP的方式 ,不是要先建立好表空间,否则的话有些表是导入不进去的,可是我要怎么样查看他的表空间?
如果用户数不多的话,按用户方式导出导入,不受表空间是否存在的影响。
能说明一下具体操作步骤吗?似乎在导入的时候要知道表空间吧?