注:数据泵是基于服务器的,如果没有生产环境主机的权限,我们可以用数据泵的impdp的network_link参数。
帮助手册:$impdp help=y
例:倒换生产datadb库的数据 到 测试data630中
1、需要开通data630主机(192.168.202.168)到datadb主机(192.168.218.1或192.168.218.3) 的网络。检查网络是否开通:
data630库主机执行:tnsping datadb1 或 tnsping datadb2 -返回ok则为已开通。
或登录data630库执行:select * from dual@dbl_to_datadb; -有结果则为已开通。
2、登录data630库,创建访问datadb的dblink:
select * from dba_db_links; ---查看库中已存在的dblink
---system用户登录data630用户创建dblink
create database link DBL_TO_dataDB connect to bakuser identified by "123456"
using '(DESCRIPTION =
(ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.218.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.218.3)(PORT = 1521)))
(CONNECT_DATA =
(SERVICE_NAME =datadb)(FAILOVER_MODE =(TYPE = SELECT)(METHOD =
BASIC)))
)';
---drop database link DBL_TO_dataDB;
3、创建DIRECTORY
select * from dba_directories; ---查看库中已存在的directory
---system用户登录data630创建directory
create directory trans_work as '/databak/liuqi/';
GRANT READ, WRITE ON DIRECTORY dmpdir TO user;
---drop directory trans_work;
注:directory对应着数据库主机上的系统路径。
4、以oracle用户登录192.168.202.168主机,到目录/databak/liuqi/下操作。
======== 常用倒换举例 =======
---倒换用户
$vi impdp_user.par
userid=system/manager@data630
directory=trans_work
logfile=impdp_user.log
schemas=usera
skip_unusable_indexes=y
table_exists_action=replace
network_link=dbl_to_datadb
parallel=6 ---并发谨慎使用,容易报错!
$nohup impdp parfile=impdp_user.par &
---倒换表(表的全部内容)
$vi impdp_table.par
userid=system/manager@data630
directory=trans_work
logfile=impdp_table.log
tables=ucr_data1.tablea,
ucr_data1.tableb
skip_unusable_indexes=y
table_exists_action=replace
#content=metadata_only ---只倒换表的结构
network_link=dbl_to_datadb
$nohup impdp parfile=impdp_table.par &
---倒换表(只倒表的数据)
$vi impdp_table.par
userid=system/manager@data630
directory=trans_work
logfile=impdp_table.log
tables=ucr_data1.tablea,
ucr_data1.tableb
#skip_unusable_indexes=y
#table_exists_action=replace
content=data_only
network_link=dbl_to_datadb
$nohup impdp parfile=impdp_table.par &
注:常用的数据泵参数还有很多,如:
#exclude=statistics,index ---不倒 统计信息和索引
#include=statistics,index ---只倒 统计信息和索引
#exclude=table:"like 'td_s_dbinfo%'" ---不倒的表
#exclude=table:"in ('td_s_dblogin')" ---不倒的表
#remap_tablespace=tbs_old:tbs_data_def ---转换表空间
#query='where rownum < 3000' ---根据查询条件倒数据
nologfile=y
reuse_dumpfiles=y
5、如需做统计信息收集,sql如下参考:
---对用户做统计信息收集
exec dbms_stats.gather_schema_stats('usera',estimate_percent=>10,cascade=>true,no_invalidate =>false,degree=>8);
---对表做统计信息收集
exec dbms_stats.gather_table_stats(ownname => 'usera',tabname => 'tablea', estimate_percent => 10, method_opt=> 'for all indexed columns',degree=>8);
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27126919/viewspace-1654374/
,如需转载,请注明出处,否则将追究法律责任。