以下以oracle11g为例,进行数据库的重构(系统迁移)
步骤:
1、在web服务器端安装ODTwithODAC112030(若安装过程中遇到服务器开启失败,则下载一个vcredist_x86并执行),安装完成后配置环境变量LANG=zh_CN.GBK
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
2、在原数据库服务器上打开PLSQL,每个用户下都执行一遍以下操作(例如QXRL、QXHR、QXMM、QXOA都执行):
执行SQL语句:select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
然后复制检索结果到执行框,执行语句。目的是为空白表赋予空间。
3、执行完步骤2,然后在原生产数据库上导出数据表(会生成.pdm文件)
4、在新数据库服务器上安装Oracle11、安装PLSQL,并配置Oracle环境变量
5、在新数据库上进行数据导入
(1)如果之前有过导入,可以执行以下语句清除历史痕迹
//删除用户
drop user xxxx cascade;
//删除表空间
drop tablespace xxxx;
//删除数据库文件
e:/xxxxxx.dbf
(2)//创建表空间,并指定文件名,和大小。表空间名参照原来的命名
CREATE SMALLFILE TABLESPACE "xxxx" DATAFILE 'E:/ORADATA/ORCL/xxxx.DBF'
SIZE 100M
AUTOEXTEND ON NEXT 100M
MAXSIZE UNLIMITED
LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
(3)创建用户并授权
CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP
//给予用户权限
grant connect,resource,dba to xxxx
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO xxxx
(4)开始执行导入,其中.dmp文件为步骤3中导出的数据表
imp 用户名/密码@orcl full=y file=e:/xxx.dmp ignore=y log=e:/log.txt