来自 澳门威尼斯人注册网站 2020-04-29 04:02 的文章
当前位置: 澳门威尼斯人平台 > 澳门威尼斯人注册网站 > 正文

将EXP出来的数据IMP进不同的表空间

经常有人会问:原来的数据在USERS表空间里面,我想把它IMP进APP表空间,我已经修改了目的用户的默认表空间,为什么结果还是IMP到USERS表空间中了呢。

迁移数据

注意事项:

Log= 加这个是为了看有没有导入成功。这个导入导出是会100%丢失数据的。这个只能当迁移,不能做为备份。

Buffer=把这个放大,一般10M,这个是为了提速的

Rows=n 不导数据

字体集NLS 这个是必须要设置的。

数据坏了显示方式:??列宽度不够,这个是立刻报错的。我就知道迁移失败了

Select * from v$nls_database_parameters;

Exp  system/sys  file=/oracle/qyl.dmp  owner=qyl  log=/tmp/qyl.log

空间的问题

在导出时最好先将表挪动到其它表空间然后再进行导出导入。再导出数据要确定导入的表空间是不是和导出的是一样的

异构平台迁移:问的一些问题

1.平台是不是一样

2.版本是什么样的了 9i 10g  11g 可以知道用什么软件

3.数据量     3T

4.停机时间   比如5天

 

往目标机导入数据:先建表空间再建用户  然后再导入数据

 

使用参数文件进行导出

只能导出表这些

1.用命令先查出大表

1---20个大表,一个一个写

2.编写脚本

第21个脚本,剩下的小表一次导完      Director=y 直接导出,提速的

大表一个一个导,最后剩下的全部

第22个脚本最后运行

3.空用户导出

 

导入

导出按用户,导入可以单独按用户导入。可以只导入一个表

EXP 导出 IMP 导入

注意事项:

File 放到哪  from 用户A

加提交=y 确保提交成功

Undo表空间

源端是普通表,目标端是分区表,那么我们要用:忽略=Y,先建分区,导入数据然后建索引

索引记录是要排序的

 

导入一个大表的话,一定要先导入数据,然后再建索引

建立索引,加一个并发。根据CPU个数。少于几个就行

 

图片 1

然后就是加LOG,这个是一定要的

 

ORACLE最耗资源就是回滚

 

11g导出到导入目标,会出现不能用。有个段的新特性延迟分配

 

图片 2

 

11G 密码过期是半年,在pfile中加admin。  审计关掉没有。占用空间。把表空间TRUNCK.

 

使用db_link会报错:无效SCN错误,

 

数据泵导入导出

并发可以5—10个

文件一般是50—200G之间

导出文件个数控制在100个之内。不能超过99个。开并发

图片 3

图片 4

Oradim –new –sid test 添加实例删除实例

 

平台版本不一样,高的打开低的,一定要用升级的方式打开。

图片 5

 

关闭审计

Select count(*) from aud$

Truncate table aud$;

 

高版本挂低本的库,一定要用upgrade升级模式打开。然后运行@?/rdbms/admin/catupgrd.sql

如果这个时候报错ORA—00904:‘TZ_VERSION’错误,那是因为里面有一个文件少了一行,我们可以加上,错误如下图所示:

1) If the registry$database table does not get created by the Pre-Upgrade Script,then it may be created using the below SQL statement:

SQL> 'CREATE TABLE registry$database(
platform_id NUMBER,
platform_name VARCHAR2(101),
edition VARCHAR2(30),
tz_version NUMBER
)';

2) Then manually insert the Platform DST Patch information using the below SQL statement:

SQL> 'INSERT into registry$database
(platform_id, platform_name, edition, tz_version)
VALUES ((select platform_id from v$database),
(select platform_name from v$database),
NULL,
(select version from v$timezone_file))';

 

图片 6

图片 7

 

基本语法和实例: 
    1、EXP: 
      有三种主要的方式(完全、用户、表) 
      1、完全: 
          EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:FULL.DMP FULL=Y 
          如果要执行完全导出,必须具有特殊的权限 
      2、用户模式: 
          EXP SONIC/SONIC    BUFFER=64000 FILE=C:SONIC.DMP OWNER=SONIC 
          这样用户SONIC的所有对象被输出到文件中。 
      3、表模式:
          EXP SONIC/SONIC    BUFFER=64000 FILE=C:SONIC.DMP OWNER=SONIC TABLES=(SONIC) 
          这样用户SONIC的表SONIC就被导出 
    2、IMP: 
      具有三种模式(完全、用户、表) 
      1、完全: 
          IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:FULL.DMP FULL=Y 
      2、用户模式: 
          IMP SONIC/SONIC    BUFFER=64000 FILE=C:SONIC.DMP FROMUSER=SONIC TOUSER=SONIC 
          这样用户SONIC的所有对象被导入到文件中。必须指定FROMUSER、TOUSER参数,这样才能导入数据。 
      3、表模式: 
          EXP SONIC/SONIC    BUFFER=64000 FILE=C:SONIC.DMP OWNER=SONIC TABLES=(SONIC) 
          这样用户SONIC的表SONIC就被导入。

关于此问题,作如下解释:


1.1  实验:

 

Oracle并没有提供什么参数来指定要导入哪个表空间,数据默认将导入到原本导出时数据所在的表空间中,但是我们可以通过以下的方法来实现导入到不同的表空间。

        在数据迁移时,希望把数据导入不同于原系统的表空间,在导入后表现数据被导入到了原表空间。这是由于原用户具有unlimited tablespace 权限,就会导入到原用户的表空间。

1.1.1数据库导出

先编写一个脚本如下:

userid=system/oracle

buffer=10000

file=i:bkfull.dmp

log=i:bkfull.log

feedback=1000

full=y

然后exp parfile=参数文件名

 1.1.2表空间导出

有些受保护的表是不能导出的,会出错误警告。可能是因为是逻辑导出,所以加了指定导出路径方式

userid=system/oracle

buffer=10000

file=1.dmp

log=1.log

feedback=100

tablespaces=users

direct=y 

 

本文由澳门威尼斯人平台发布于澳门威尼斯人注册网站,转载请注明出处:将EXP出来的数据IMP进不同的表空间

关键词: