`

IMP数据到指定的表空间

阅读更多

IMP数据到指定的表空间

一直以来,我都认为只要指定用户的默认表空间,向该用户导入数据时,会自动进入到默认表空间。后来发现从System导出的dmp文件在导入时,即使指定新用户的默认表空间,还是要往System表空间中导数据。

上网搜了一下,还是有解决方法的,常见的方法如下:

SQL> create user myhuang identified by myhuang default tablespace myhuang;

SQL> grant resource,connect to myhuang;

SQL> grant dba to myhuang;//DBA权限

SQL> revoke unlimited tablespace from myhuang;//撤销此权限

SQL> alter user myhuang quota 0 on system;//将用户在System表空间的配额置为0

SQL> alter user myhuang quota unlimited on myhuang;//设置在用户在myhuang表空间配额不受限。

 

经过上述设置后,就可以用imp导入数据,数据将会进入指定的myhuang表空间:

C:\Documents and Settings\myhuang>imp system/123456@vdb fromuser=lnxh tous

er=myhuang file=G:\myhuang\lnxh.dmp ignore=y grants=n

 

顺便说两个小问题:

1IMP-00003: 遇到 ORACLE 错误 1658

ORA-01658: 无法为表空间 MYHUANG 中的段创建 INITIAL

通常这个问题可以通过Resize增加表空间数据文件大小来解决。

 

2)删除表空间

SQL> drop tablespace myhuang including contents and datafiles;

10g中实验,drop表空间之后,仍然需要手动去删除数据文件。

 
//2008-08-24补充————————————————————————
另一种比较好的方法:

Create tablespace {tbs_name} datafile ‘{file_path}’ size 500M autoextend on next 10M;

Create user {u_name} identified by {u_pwd} default tablespace {tbs_name} quota unlimited on {tbs_name};

Grant connect,imp_full_database to {u_name};

Imp {u_name}/{u_pwd}@{local_svrname} fromuser={from_user} touser={u_name} file={dmp_file_path} ignore=y tablespaces={tbs_name};

此方法不需要授予新用户DBA权限。
此方法的存在的问题是:可能导致包含BLOB、CLOB字段的表导入失败,这种情况下可以先用sql脚本将表结构建立起来,再导入相应的数据。

 

 

SQL> create user atf_ygj identified by mas123 default tablespace ygj_atf_data temporary tablespace ygj_atf_temp quota unlimited on ygj_atf_data ;

用户已创建。

SQL> grant connect,imp_full_database to atf_ygj;

授权成功。

D:\>imp atf_ygj/mas123@orcl_192.168.6.19 fromuser=atf_back touser=atf_ygj file=d:/atf_back20090927.dmp ignore=y tablespaces=ygj_atf_data;

 

 

方法三 改变用户数据所在的表空间

以后以该用户登录,创建的任何数据库对象都属于test_temp 和test_data表空间,这就不用在每创建一个对象给其指定表空间了。

=============  移动数据到表空间  ================= 
查询需要移动的表所在的表空间
  select tt.table_name,tt.tablespace_name  from user_all_tables tt where tt.tablespace_name like '%YGJ%'
 移动表到指定表空间
 alter table employees move tablespace ygj_data;
查询要移动的索引所在的表空间
select ii.index_name,ii.table_name,ii.tablespace_name,ii.temporary from user_indexes ii where index_name like  '%EMP_PK%'
 移动(重建)索引到指定表空间
 alter index EMP_PK rebuild tablespace ygj_data;

 

分享到:
评论
1 楼 keyuxi1984 2011-09-19  
public void static main(String[] args) {
System.out.println("Hello World!");
}

相关推荐

    ORACLE导入数据文件到指定的表空间

    如果是文本数据,可能需要先转换成Oracle可以识别的格式,然后使用`SQL Loader`工具加载到表空间。 5. **表空间管理**:在导入前,检查目标表空间的可用空间,必要时扩展或创建新的表空间。通过`ALTER TABLESPACE`...

    从一个表空间 另一个表空间

    我以前一直使用users表空间作为默认空间,最近想把现有用户的数据都转到一 个新建的表空间中,可是发现Imp后所有表还是在users表空间里面,查阅了一些 资料,说是Oracle自己没有提供分配表空间的功能,Exp的时候把表的...

    oracle数据更新及arcsde空间数据更新.pdf

    该过程通常涉及到数据表的创建、删除、修改和维护等操作。在本文档中,我们将介绍如何使用 PL/SQL 语言来更新 Oracle 数据库中的数据,并介绍 ArcSDE 空间数据的更新。 删除用户与表空间 在 Oracle 数据库中,删除...

    Imp和Exp命令详解

    5. **部分数据导出**:通过指定查询条件导出表的部分数据。例如: ``` exp pafirc/pafirc@orcl file=e:\pafirc.dmp tables=(tab_proj) query=\"where budget ``` Exp命令还支持各种参数,如`OWNER`、`FULL`、`...

    Oracle11G导入导出(imp和exp)少表解决方法.docx

    - 导入到指定用户:`impdp system/manager DIRECTORY=db_bak DUMPFILE=expdp.dmp SCHEMAS=system` - 更改表的所有者:`impdp system/manager DIRECTORY=db_bak DUMPFILE=expdp.dmp TABLES=system.dept REMAP_...

    更改Oracle数据库表的表空间实践.pdf

    在完成上述步骤后,可以通过`IMP`命令将导出的数据导入到新表空间中,从而完成表空间的迁移。需要注意的是,在导入时,应确保新表空间有足够的空间容纳所有数据,并根据实际情况调整导入参数,如行锁定、表重命名等...

    oracle11G_64位的imp.exe及exp.exe BIN包

    `imp.exe`是Oracle数据库的导入工具,它用于将通过`exp.exe`导出的数据文件导入到数据库中。这个过程通常称为数据泵导入。在64位环境中,使用64位版本的`imp.exe`可以确保与系统架构的兼容性,提高性能。 1. 数据泵...

    oracle命令 exp&imp命令详解

    2. 表空间:导入数据时,需要确保目标数据库有足够的表空间来容纳新数据。 3. 范围控制:通过指定`tables`参数,可以控制只导出特定的表或视图,避免不必要的数据迁移。 4. 一致性:为了确保数据一致性,通常在导出...

    oracle11g的imp exp

    - **功能**:IMP用于将之前使用EXP导出的数据文件导入到Oracle数据库中。它可以导入整个数据库、特定用户、表或对象。 - **命令格式**:`imp [username/password] file=filename log=logfile` - **参数**:`...

    oracle11g创建表空间 .docx

    在 Oracle 11g 中,创建表空间是一个非常重要的步骤,它直接关系到数据库的性能和安全性。在本文中,我们将详细介绍如何使用控制台命令创建表空间,并对相关的知识点进行详细的解释。 一、控制台命令创建表空间 要...

    导入数据库(imp)

    这条命令创建了一个名为GJJMX12的表空间,数据文件位于d:\GJJMX12.dbf,初始大小为10G,自动扩展,最大大小不限。 二、创建用户 创建用户是指在数据库中创建一个新的用户账户,例如 create user wasys3_nmbm ...

    Oracle数据库用户角色、表空间创建、删除命令 (2).pdf

    在这种情况下,可以连接到数据库以系统管理员身份执行相关命令,例如先强制关闭数据库,然后挂载数据库,使用`ALTER DATABASE DATAFILE`将丢失的数据文件标记为离线并删除,最后打开数据库并删除表空间。 以上是...

    oracle 10G 导出至 11G 不同用户不同表空间

    Oracle数据库在不同用户...总之,Oracle数据库在不同用户和表空间间的迁移涉及到多个步骤,包括数据泵工具的使用、目录对象的管理和权限的管理,以及可能的表空间映射。正确理解并执行这些步骤对于成功迁移至关重要。

    imp/exp oracle 全库

    如果将 full 参数设置为 n,那么 IMP 命令将只导入指定的 schema 或表。 六、小结 使用 IMP 和 EXP 命令可以实现 Oracle 数据库的全库迁移。但是,需要注意 full 参数的使用,以避免意外的数据丢失或导入错误。在...

    Oracle 创建表空间,用户

    综上所述,创建Oracle的表空间和用户是数据库管理的基础工作,而数据泵导入操作则涉及到数据迁移和恢复。在实际应用中,还需要根据具体需求调整表空间的参数,以及用户的权限设置,确保数据库的安全和高效运行。同时...

    exp/imp导出导入工具的使用

    - `$exp scott/tiger tables=(emp,dept) file=/directory/scott.dmp grants=y` 导出 scott 用户的 emp 和 dept 表到指定文件。 - `$exp scott/tiger tables=emp query="where job='salesman' and sal带查询条件...

    oracle 10g imp.exe文件

    impdp不仅能够导入表、索引、存储过程等对象,还能够导入角色、权限、表空间等元数据。 2. **使用imp.exe**: 在Oracle 10g中,imp.exe实际上是Data Pump Import的一个链接,它会调用实际的impdp命令。运行imp.exe时...

    oracle 数据泵详解

    * 导出表空间:EXPDP 可以导出整个表空间的数据。 * 导出数据库:EXPDP 可以导出整个数据库的数据。 五、IMPDP 参数 IMPDP 命令也有很多参数,以下是一些常用的参数: * DIRECTORY:指定数据泵的目录。 * SCHEMAS...

    ORACLE EXPIMP的使用详解

    对于表空间的传输,`TRANSPORT_TABLESPACE`参数允许导出特定表空间的元数据,而`TABLESPACES`参数用于指定要传输的表空间列表。这种功能在数据库迁移或硬件升级时非常有用。 总的来说,Oracle EXPIMP工具虽然在大...

    采用Oracle表空间传输模式的数据库系统升级研究.pdf

    表空间传输技术是Oracle提供的逻辑导出工具exp/imp的一种扩展,允许用户在保持数据完整性的前提下,仅导出一组自包含、只读的表空间的元数据,然后通过操作系统层面复制数据文件到目标平台,再导入元数据到目标...

Global site tag (gtag.js) - Google Analytics