情况说明:
公司要把一个平台迁移到***市,为了保证平台迁移后没有问题,提交测试。
1.这个平台在公司用了有很长时间了,主要是为**市处理数据,基本功能不会有什么问题
2.此平台相关的开发人员早已辞职(1年以上),没有war包,只能够到服务器WebApps上直接拷贝文件夹进行测试。
3.新接手的开发人员也不明确,这个平台到底用到了库a里用户b的什么表(因为还涉及到工具,工具部分,新开发人员更不清楚,库a很乱很乱,里面有很多空表,还有很多其他项目生成的表,select count(*) from user_tables –查询总共有500多张表),所以就直接迁移库a用户b下的所有表
4.要求断网情况下测试,**市可能会部署到无网环境
5.本人,对oracle不了解,不了解,不了解!重要的事情说三遍
测试准备:
1.拷贝所有解压后的war包,修改相关配置文件,连接本地数据库
2.拷贝平台系统所有会用到的工具,修改相关配置文件。(what,还有单独的工具)
3.本地安装oracle服务端
1、2都好实现,只是3就。。
由于之前本地安装的是instantclient-basic,直接用PLSQL连接的远程数据库,本地并没有安装服务端,so先开始安装oracl。
安装完成后,开始进行数据库的迁移啦
1)选择SQL Plus
2)连上本地数据库
3)创建表空间
create tablespace TEST datafile
'D:\Oracle\oradata\orcl\TEST1.dbf' size
512m autoextend on,
'D:\Oracle\oradata\orcl\ TEST 2.dbf' size
512m autoextend on,
'D:\Oracle\oradata\orcl\ TEST 3.dbf' size
512m autoextend on;
create temporary
tablespace TEST _TEMP tempfile
'D:\Oracle\oradata\orcl\
TEST_TEMP1.dbf' size 2048m,
'D:\Oracle\oradata\orcl\ TEST_TEMP2.dbf'
size 2048m,
'D:\Oracle\oradata\orcl\ TEST_TEMP3.dbf'
size 2048m;
4)创建用户
create user B identified by 123456 default
tablespace TEST temporary tablespace TEST _TEMP;
5)给用户授权
grant dba to B;
grant create table to B;
我用Navicat Premium分别连接库a、本地数据库
选中库a用户b,右键,选择数据传输,然后目标库就选择本地oracl,点开始就行了
然后就是漫长的等待过程,so你认为这样就结束啦
报错啦!!!“ORA-01756:引号内的字符串没有正确结束”,查询得知数据中有很多带有单引号的,如:qqq’ssss 这种数据就会报错
于是乎换方法
cmd进入本地oracle的安装目录
直接用exp导出:
exp用户名/密码@库a的地址file=存放dmp文件的位置owner=用户名
eg:exp B/123456@192.168.100.12:1521/orcl file=D:\dmp\test.dmp wner=B
导出完毕后,直接再用imp导入
imp B/123456@localhost:1521/orcl
full=y file= D:\dmp\test.dmp ignore=y
(我已自动忽略中间的警告)
然后就ok啦