今天接到一任务把数据库中一个用户的数据全部迁移到另一个用户下,想用这个用户来做测试。
实现步骤:
1. 如果你的机器上没装oracle客户端或者oracle 但你又只想装个客户端不想装服务端 那么如下url 去下载一个oracle11g_r2 的客户端
http://download.oracle.com/otn/nt/oracle11g/112010/win32_11gR2_client.zip
下载完进行安装
将sql*plus 勾选 会安装sql*plus 工具
之后一直下一步就行 直到完成安装, 安装完成后检查系统环境变量中是否将oracle的bin设置成全局了 如图:
看看有此值没 D:\oracle\Administrator\product\11.2.0\oracle11g_R2_client\bin; 如果没有则要自己设置,否则不能用exp imp sqlplus 等命令.. 到这里roacle客户端已经安装完成了。
下面是安装过程中遇到的问题
INS-20802] Oracle Net Configuration Assistant 失败 此问题不影响使用,可以在安装完成后通过下图设置:
这是配置监听服务的
注册服务
点击net Manager 注册一个服务 来进行连接 目录\oracle\Administrator\product\11.2.0\oracle11g_R2_client\NETWORK\ADMIN\SAMPLE 这里面保存的是oracle11g_r2 客户端的监听和服务的配置文件
此图配置监听和服务
上面注册服务点击添还有点问题,一会找找再改。。
上面一切设置完毕后我们来正式开始使用exp和imp 命令完成任务 此命令可以通过sqlplus 或dos 窗口来执行首先介绍dos窗口方式 cmd打开 然后如下面是你可以输入和输出的结果:
C:\Users\Administrator>exp help=y -- 显示exp命令参数详情
Export: Release 11.2.0.1.0 - Production on 星期四 7月 18 11:26:47 20
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights
通过输入 EXP 命令和您的用户名/口令, 导出
操作将提示您输入参数:
例如: EXP SCOTT/TIGER
或者, 您也可以通过输入跟有各种参数的 EXP 命令来控制导出
的运行方式。要指定参数, 您可以使用关键字:
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
例如: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表
USERID 必须是命令行中的第一个参数。
关键字 说明 (默认值) 关键字 说明 (默认值)
--------------------------------------------------------------------
USERID 用户名/口令 FULL 导出整个文件 (N)
BUFFER 数据缓冲区大小 OWNER 所有者用户名列表
FILE 输出文件 (EXPDAT.DMP) TABLES 表名列表
COMPRESS 导入到一个区 (Y) RECORDLENGTH IO 记录的长度
GRANTS 导出权限 (Y) INCTYPE 增量导出类型
INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y)
DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y)
LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE)
ROWS 导出数据行 (Y) PARFILE 参数文件名
CONSISTENT 交叉表的一致性 (N) CONSTRAINTS 导出的约束条件 (Y)
OBJECT_CONSISTENT 只在对象导出期间设置为只读的事务处理 (N)
FEEDBACK 每 x 行显示进度 (0)
FILESIZE 每个转储文件的最大大小
FLASHBACK_SCN 用于将会话快照设置回以前状态的 SCN
FLASHBACK_TIME 用于获取最接近指定时间的 SCN 的时间
QUERY 用于导出表的子集的 select 子句
RESUMABLE 遇到与空格相关的错误时挂起 (N)
RESUMABLE_NAME 用于标识可恢复语句的文本字符串
RESUMABLE_TIMEOUT RESUMABLE 的等待时间
TTS_FULL_CHECK 对 TTS 执行完整或部分相关性检查
TABLESPACES 要导出的表空间列表
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
TEMPLATE 调用 iAS 模式导出的模板名
成功终止导出, 没有出现警告。
C:\Users\Administrator>exp chtrans/chtrans@192.168.1.198/orcl full=y
kup.dmp owner=(chtrans) --- 指定了full=y 是要导出整个数据库前提是chtrans有dba权限要不就是导出当前chtrans用户所有数据, owner是指定要导出那个用户的数据(全部数据),这两个参数不能同时出现否则报错如下
Export: Release 11.2.0.1.0 - Production on 星期四 7月 18 11:27:59 20
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 -
tion
With the Partitioning, OLAP, Data Mining and Real Application Testin
EXP-00026: 指定了冲突模式
EXP-00000: 导出终止失败
C:\Users\Administrator>exp chtrans/chtrans@192.168.1.198/orcl file=D:\backup.dmp
log=D:\backu.log owner=(chtrans) ---------导出chtrans用户的全部数据 当前登录用户的要有足够的权限才可以。
Export: Release 11.2.0.1.0 - Production on 星期四 7月 18 11:29:09 20
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 -
tion
With the Partitioning, OLAP, Data Mining and Real Application Testin
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
服务器使用 AL32UTF8 字符集 (可能的字符集转换)
即将导出指定的用户...
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 CHTRANS 的外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出用户 CHTRANS 的对象类型定义
即将导出 CHTRANS 的对象...
. 正在导出数据库链接
. 正在导出序号
. 正在导出簇定义
. 即将导出 CHTRANS 的表通过常规路径...
. . 正在导出表 CH_CARD导出了 56 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_CARD_APPLY导出了 41 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_CARD_OPEN导出了 26 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_CATEGORY导出了 4 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_CCCHANGE_HISTORY导出了 464 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_CCMOVE_HISTORY导出了 212 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_COMMISSION_ACOUNTING导出了 8 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_DEAL导出了 158 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_DEAL_STAT导出了 38 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_ERROR_LOG导出了 195 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_GOODS_DETAIL导出了 77 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_LOG导出了 21 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_OPERATE_LOG导出了 25 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_ORDER导出了 88 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_ORDER_CANCEL导出了 34 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_ORDER_HISTORY导出了 31 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_ORDER_STAT导出了 0 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_ORG_COMMISSION导出了 266 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_PRODUCT导出了 25 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_PRODUCT_RULE导出了 505 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_PRODUCT_WULIU_RULE导出了 21 行
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_PROTOCOL导出了 3 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_PROTOCOL_SIGN导出了 0 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_QUEUE导出了 36 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_REALTIME_STATISTICS导出了 69079 行
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_SEQUENCE导出了 2 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_SUBSCRIBE导出了 177 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_SUBSCRIBE_BAK导出了 4 行
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_USER导出了 1095 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_USERCOMMSION导出了 0 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_USER_BANK导出了 0 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_USER_GOODS导出了 50 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_YAOHAO导出了 1969 行
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_ZCCHANGE_HISTORY导出了 316 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_ZCFREEZE_HISTORY导出了 223 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 CH_ZCMOVE_HISTORY导出了 223 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 PLSQL_PROFILER_DATA导出了 0 行
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 PLSQL_PROFILER_RUNS导出了 0 行
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 PLSQL_PROFILER_UNITS导出了 0 行
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 SC_ACCOUNT导出了 228 行
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 TMP_BUY导出了 0 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 TMP_SELL导出了 0 行
EXP-00091: 正在导出有问题的统计信息。
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 UCT_ACT导出了 14 行
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 UCT_LOCK导出了 2 行
EXP-00091: 正在导出有问题的统计信息。
. . 正在导出表 UCT_UNLOCK导出了 11 行
EXP-00091: 正在导出有问题的统计信息。
. 正在导出同义词
. 正在导出视图
. 正在导出存储过程
. 正在导出运算符
. 正在导出引用完整性约束条件
. 正在导出触发器
. 正在导出索引类型
. 正在导出位图, 功能性索引和可扩展索引
. 正在导出后期表活动
. 正在导出实体化视图
. 正在导出快照日志
. 正在导出作业队列
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计信息
导出成功终止, 但出现警告。
C:\Users\Administrator>
导出成功了。。。。
下面来看看导入
和导出一样就不在重复做实验了 只给出导入命令
imp chtrans/chtrans@192.168.1.198/orcl fromuser=chtrans touser=chtranscs file=D:\backup.dmp log=D:\imp.log
解释: 将backup.dmp 中chtrans用户的数据全部迁移给chtranscs用户
因为服务名没有注册好所以上面都是用ip做的实验其实可以把ip换成你已经注册好的服务名。 通过这两个命令就可以在不同数据库上任意迁移数据了。。
sqlplus 用法
打开cmd
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\Administrator>sqlplus --输入sqlplus
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 7月 18 13:08:35 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
请输入用户名: chtrans/chtrans@192.168.1.198/orcl
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> exp chtrans/chtrans@192.168.1.198/orcl file=D:\b.dmp owner=(chtrans);
SP2-0734: 未知的命令开头 "exp chtran..." - 忽略了剩余的行。------有错误待解决
SQL>
直接打开sql*plus
其实和cmd打开一样 只是cmd比sql plus 方便些 因为可以复制 不过也有上面一样的错误 待解决 另外在输入用户名的时候如果报 sqlpuls ora-12154:tns 无法解析指定的标识符 那就是你@后面的字符串错了 如果是写的服务名则打开 net manager 选择打开网络配置文件目录 \oracle\Administrator\product\11.2.0\oracle11g_R2_client\NETWORK\ADMIN\SAMPLE 去看看tnsnames.ora 是不是配错了 sqlplus读取这个 (待测试)
exp imp 用法实例
http://blog.csdn.net/zwfwgood/article/details/9366565
11gR2 在导出时空表不进行导出问题解决
1、insert一行,再rollback就产生segment了。
该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。
2、设置deferred_segment_creation 参数
show parameter deferred_segment_creation
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean TRUE
SQL> alter system set deferred_segment_creation=false;
系统已更改。
SQL> show parameter deferred_segment_creation
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean FALSE
该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment。
需注意的是:该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能用第一种方法。
3.
先查询一下当前用户下的所有空表
select table_name from user_tables where NUM_ROWS=0;
用以下这句查找空表
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0
把查询结果导出,执行导出的语句
'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
-----------------------------------------------------------
alter table AQ$_AQ$_MEM_MC_H allocate extent;
alter table AQ$_AQ$_MEM_MC_G allocate extent;
alter table AQ$_AQ$_MEM_MC_I allocate extent;
alter table AQ$_AQ_PROP_TABLE_T allocate extent;
alter table AQ$_AQ_PROP_TABLE_H allocate extent;
alter table AQ$_AQ_PROP_TABLE_G allocate extent;
alter table AQ$_AQ_PROP_TABLE_I allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_T allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_H allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_G allocate extent;
alter table AQ$_KUPC$DATAPUMP_QUETAB_I allocate extent;
'ALTERTABLE'||TABLE_NAME||'ALLOCATEEXTENT;'
-----------------------------------------------------------
alter table AQ$_SYS$SERVICE_METRICS_TAB_T allocate extent;
alter table AQ$_SYS$SERVICE_METRICS_TAB_H allocate extent;
alter table AQ$_SYS$SERVICE_METRICS_TAB_G allocate extent;
alter table AQ$_SYS$SERVICE_METRICS_TAB_I allocate extent;
然后再执行
exp 用户名/密码@数据库名 file=/home/oracle/exp.dmp log=/home/oracle/exp_smsrun.log
成功!
下面说说卸载 引用 :
http://blog.csdn.net/pan_tian/article/details/9272089
在用universal install 卸载oracle 客户端时出现
请运行命令‘D:\app\jxfjohnny\product\11.2.0\dbhome_1/deinstall/deinstall'来卸载oracle主目录
解决方法:
卸载时候,在那个“内容”复选框里,除了Universal和oracle主目录复选框不要选择,其他的组件全部打勾,然后就可以进行卸载。如果全选的话就会出现上述问题。