exp迁移测试库10.2.0.5

目的:

将一套10.2.0.5的UP-UNIX系统的数据,迁移到一台Windows环境下。

迁移方案:由于不同的操作系统,为了方便迁移,只是测试,使用EXP/IMP方式。

迁移流程:

一.源端导出

1)确定数据库大小

SQL>select round(sum(bytes)/1024/1024/1024,2) from dba_segments;

2)确定数据库版本,及字符集

SQL>select * from nls_database_parameters;

NLS_CHARACTERSET               US7ASCII            数据库字符集

NLS_NCHAR_CHARACTERSET  AL16UTF16          国家字符集

NLS_RDBMS_VERSION             10.2.0.4.0             数据库版本

3)迁移的用户数量

SQL> select 'create user '||a.username||' identified by values '''||b.password||''';' from dba_users a,user$ b where

b.name=a.username and a.username not like '%SYS%' and a.account_status='OPEN';

4)数据导出

$imp system/oracle file=/u01/dump/exp_full_20190325.dmp log=/u01/dump/exp_full_20190325.log full=y

5)  Dump文件传输

选择二进制方式,使用ftp传输不要选择默认方式,否则默认转换后dump文件损坏

· ascii -   设置文件传输类型为ASCII,默认类型

· binary -   设置文件传输类型为binary(二进制传输) 

ftp> binary         --传输前进行修改传输类型,选择binary方式

200 Switching to Binary mode.

传输后,通过ls -lrt 等方式对比字节数量,确认无误.

IMP-00010 During Import using a Transferred File (文档 ID 157954.1)

CHANGES
Copied export dump file from Windows to Solaris.
CAUSE
Export file was copied/transferred as ASCII file instead of binary.
SOLUTION
Copy/Transfer the export dump file as binary not ASCII.

二、目标端导入前准备

1)数据库版本与源端一致。

2)创建永久、临时表空间

select tablespace_name,sum(bytes)/1024/1024/1024 g,sum(maxbytes)/1024/1024/1024 maxg from dba_data_files group by tablespace_name;
select tablespace_name,sum(bytes)/1024/1024/1024 g,sum(maxbytes)/1024/1024/1024 maxg from dba_temp_files group by tablespace_name;

3)迁移用户

3.1备份
新库,导入前,备份系统用户名称:
select username from dba_users;
3.2创建批量删除用户脚本:{导入不成功,使用脚本进行回退操作}
select 'drop user '||username||' cascade;' from dba_users where username not in('A','B');

3.2创建用户{源端查询后,将文本拷贝编辑,目标端执行即可}
SQL> select 'create user '||a.username||' identified by values '''||b.password||''';' from dba_users a,user$ b where

b.name=a.username and a.username not like '%SYS%' and a.account_status='OPEN';

对用户修改默认表空间
SQL> select 'alter user '||username||' default tablespace '||DEFAULT_TABLESPACE||';' from dba_users where ACCOUNT_STATUS='OPEN' and username not like '%SYS%';

4)用户授权【备选方案,实际操作中imp导入自动进行】
源端TEST4需要检查是否存在非默认角色
SQL> select 'grant '||GRANTED_ROLE||' TO '||GRANTEE||';' FROM DBA_ROLE_PRIVS;
SQL> select 'grant '||PRIVILEGE||' to '||GRANTEE||';' from dba_sys_privs;

5)参数修改

5.1.参数值备份
show parameter workarea_size_policy
show parameter sort_area_size
show parameter db_file_multiblock_read_count
show parameter "_sort_multiblock_read_count"

5.2.参数修改
alter system set workarea_size_policy = manual;
alter system set sort_area_size=1024000000 scope=spfile;
alter system set db_file_multiblock_read_count= 128;
 

6).导入操作
imp user/pwd  file=/u01/dump/exp_full_20190325.dmp log=/u01/dump/imp_full_20190325.log full=y

commit=y feedback=10000 buffer=10240000 ignore=y

7)数据对比

SQL> select object_type,count(*) from dba_objects group by object_type order by 2;

SQL> select object_type,count(*) from dba_objects where owner='SYS' group by object_type order by 2;

SQL>select round(sum(bytes)/1024/1024/1024,2) from dba_segments;

SQL> select tablespace_name,count(*) from dba_segments group by tablespace_name;

SQL> select SEGMENT_TYPE,count(*) from dba_segments where tablespace_name='USERS' group by SEGMENT_TYPE;

7)参数回退

SQL>  alter system set workarea_size_policy =AUTO;
SQL> alter system set sort_area_size=65536 scope=spfile;
SQL> alter system set db_file_multiblock_read_count= 16;

8)失效对象重新编译

编译失效对象:
SQL>@$ORACLE_HOME/rdbms/admin/utlrp.sql

原文地址:https://www.cnblogs.com/lvcha001/p/10592458.html