Oracle 11g数据迁移

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

情景描述:我需要将聚合支付的测试环境1(40.60段)里的2台Oracle服务器的数据库导出迁移到测试环境2(40.50)段的2台Oracle服务器。目前只知道数据库的实例名,账号密码都不知道。

1.从测试环境1的商户管理后台应用的数据文件中查找有关“orcl”或者“17

2.16”的数据,我

是将整个应用文件夹拷贝到本地机器上,然后使用notepad++搜索:

2.在搜索结果中筛查有用的数据,由此获得了2个数据库账号和密码。

3.接下来做导出操作。在导出数据库之前有一个重要的问题:Oracle 11g对于在导出空表

时如果没有先分配表空间的话,会导出不了空表,从而导致表丢失。因此我们需要先使

用plsql远程连接上去数据库服务器,执行下列语句:

select 'alter table '||table_name||' allocate extent(size 64k);'

from tabs t

where not exists (select segment_name from user_segments s where

s.segment_name=t.table_name);

将查询结果全部复制,然后新打开一个命令窗口(Command Window),使用粘贴的快捷键,系统就会开始运行赋予空表表空间的操作了。

4.接下来使用SSH远程到数据库服务器,直接执行导出命令,如下:

exp用户名/密码@实例名file=/tmp/expfile.dmp log=/tmp/explog.log owner=用户名5.同时在新的数据库服务器上新建同样的用户和表空间:

su – oracle #切换到oracle用户

sqlplus / as sysdba #以dba身份直接登录数据库

create tablespace表空间名datafile‘/data/oracle/oradata/表空间名.dbf size 5G extent management local autoallocate; #创建表空间

create user 用户名identified by 密码default tablespace默认表空间temporary tablespace临时表空间; #创建用户并给用户分配好默认/临时表空间

grant dba to 用户名; #赋予用户dba的权限

6.将导出后的dmp文件拷贝到新数据库服务器,执行导入命令,如下:

imp 用户名/密码@实例名file=/tmp/expfile.dmp log=/tmp/imp20170828.log fromuser=导出时的用户touser=用户名ignore=y buffer=5400000

7.导入如果没有什么严重的错误的话,即说明导入成功;若有错误的话,需要按照错误代

码来处理,重新导入。

相关文档
最新文档