Oracle11.2数据库迁移总结

背景:在服务器上有一个Oracle11.2数据库,可以通过浏览器访问服务器中web服务器来访问数据库。本人准备将服务器中的数据库迁移到本地PC机,然后将web服务器也部署到本地PC机,这样就可以在VS2017中进行调试和学习了,过程如下,主要是记录下来供自己以后参考。

1、本地PC创建数据库ITWATER,并确定能够登陆数据库,此时只有sys等系统用户
2、为用户创建表空间
oracle查看表空间及相应文件所在路径的方法:PL/SQL中打开一个命令窗口,输入下面的命令,然后执行查询就会有结果
select file_name,tablespace_name,bytes from dba_data_files;

在PL/SQL中选择文件-》新建-》命令窗口
SQL> Create tablespace WAF2TBS
  2  logging
  3  datafile 'C:\app\znsb\oradata\db\WAF2.ORA'
  4  size 50m
  5  autoextend on
  6  next 50m
  7  extent management local;
 
Tablespace created
 
SQL> 

SQL> Create tablespace DEMOTBS
  2  logging
  3  datafile 'C:\app\znsb\oradata\db\DEMO.ORA'
  4  size 50m
  5  autoextend on
  6  next 50m
  7  extent management local;
 
Tablespace created

SQL> Create tablespace WAFTBS
  2  logging
  3  datafile 'C:\app\znsb\oradata\db\WAF.ORA'
  4  size 50m
  5  autoextend on
  6  next 50m
  7  extent management local;
Tablespace created
 
SQL> 

3、创建用户WAFUSER2、demo、WAFUSER并确定能登陆数据库
直接在PL/SQL的Users文件中创建WAFUSER2用户,选择用户表空间WAF2TBS,给用户赋予角色权限、对象权限
直接在PL/SQL的Users文件中创建demo用户,选择用户表空间DEMOTBS,给用户赋予角色权限、对象权限
直接在PL/SQL的Users文件中创建WAFUSER用户,选择用户表空间WAFTBS,给用户赋予角色权限、对象权限 connect dba

4、先完全备份服务器中ITWATER数据库中用户名为WAFUSER2、demo的全部数据
exp demo/xxxxx@ITWATER  buffer=4096 file=\\tsclient\F\ITWaterDataBaseBackup\demo.dmp full=y log=\\tsclient\F\ITWaterDataBaseBackup\demo.log
①:因为demo为dba权限,在完全导出的时候,在另一台机器恢复数据的时候提示很多错误,所以可以如下选择只导出用户数据,并且不导出权限。
C:\Users\Administrator>exp demo/xxxxx@ITWATER
Export: Release 11.2.0.1.0 - Production on 星期日 12月 1 20:24:38 2019
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
连接到: Oracle Database 11g Release 11.2.0.1.0 - 64bit Production
输入数组提取缓冲区大小: 4096 >
 导出文件: EXPDAT.DMP > \\tsclient\F\ITWaterDataBaseBackup\demo.dmp
(1)E(完整的数据库), (2)U(用户) 或 (3)T(表): (2)U > U
导出权限 (yes/no): yes > no
导出表数据 (yes/no): yes >
压缩区 (yes/no): yes >
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不导出对表/视图/序列/角色的授权

②:WAFUSER的数据库备份同demo用户 
C:\Users\Administrator>exp wafuser/xxxxx@ITWATER
Export: Release 11.2.0.1.0 - Production on 星期一 12月 2 13:53:57 2019
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
连接到: Oracle Database 11g Release 11.2.0.1.0 - 64bit Production
输入数组提取缓冲区大小: 4096 >
 导出文件: EXPDAT.DMP > \\tsclient\F\ITWaterDataBaseBackup\WAFUSER.dmp
(1)E(完整的数据库), (2)U(用户) 或 (3)T(表): (2)U > U
导出权限 (yes/no): yes > no
导出表数据 (yes/no): yes >
压缩区 (yes/no): yes >
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不导出对表/视图/序列/角色的授权
即将导出指定的用户...
要导出的用户: (按 RETURN 退出) > 按回车就可以了

③:在服务器上WAFUSER2用户没有dba权限,所以可以用下面的备份方式:
exp WAFUSER2/xxxxx@ITWATER  buffer=4096 file=\\tsclient\F\ITWaterDataBaseBackup\WAFUSER2.dmp full=y log=\\tsclient\F\ITWaterDataBaseBackup\WAFUSER2.log

5、还原数据库
①:imp WAFUSER2/xxxxx@ITWATER file=F:\ITWaterDataBaseBackup\WAFUSER2.dmp full=y ignore=y log=F:\ITWaterDataBaseBackup\impwafuser2log.txt
指定log很重要,便于分析错误进行补救。

②:imp demo/xxxxx@ITWATER file=F:\ITWaterDataBaseBackup\demo.dmp  full=y ignore=y log=F:\ITWaterDataBaseBackup\impdemolog.txt
按照下面方式导入demo用户的数据:
C:\Users\znsb>imp demo/xxxxx@ITWATER
Import: Release 11.2.0.1.0 - Production on 星期日 12月 1 21:08:16 2019
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
仅导入数据 (yes/no): no >
导入文件: EXPDAT.DMP> F:\ITWaterDataBaseBackup\demo.dmp
输入插入缓冲区大小 (最小为 8192) 30720>
经由常规路径由 EXPORT:V11.02.00 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
只列出导入文件的内容 (yes/no): no >
由于对象已存在, 忽略创建错误 (yes/no): no > yes
导入权限 (yes/no): yes > no
导入表数据 (yes/no): yes >
导入整个导出文件 (yes/no): no > yes
. 正在将 DEMO 的对象导入到 DEMO
. . 正在导入表                      "TAMARQUE"导入了           0 行
. . 正在导入表               "TAPPENVIRONMENT"导入了           0 行

③:
imp WAFUSER/xxxxx@ITWATER file=F:\ITWaterDataBaseBackup\WAFUSER.dmp full=y ignore=y log=F:\ITWaterDataBaseBackup\impwafuserlog.txt

你可能感兴趣的:(研发人生)