Oracle 11G Impdp不落地迁移
impdp 数据库迁移
因业务场景不一致,所以我们选择的迁移方式不尽相同,以下为我们通过impdp使用创建dblink数据不落地方式进行迁移。impdp优势是速度快、效率高、不需要单独的存储空间。
迁移准备工作
在迁移之前我们要分别在源端及目标端做相应的准备工作,以满足不落地迁移需要:
- 源端 创建dump directory;
create directory dump as '/datafile';
- 目标端 配置Net Manager;
Olddb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.16)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.18)(PORT=1521))
(CONNECT_DATA =
(SERVICE_NAME = dbsjk)
)
)
- 目标端 创建dblink;
-- Create database link
create public database link test
connect to admin identified by admin
using 'Olddb';
- 目标端 创建和源端一致的表空间和数据文件;
#启动em
emctl start dbconsole
#登录源端em,查询到所有用户的表空间
https://127.0.0.1:1158/em
#根据源端,在目标端创建表空间
CREATE SMALLFILE TABLESPACE "DT_SQ_DAT" DATAFILE '+SSD_DATA' SIZE 30G AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
/
迁移
- 目标端 在oracle用户下执行Impd命令;
nohup impdp \'/ as sysdba\' parallel=8 NETWORK_LINK=test directory=datafile EXCLUDE=STATISTICS cluster=N schemas=admin >admin.log&
- 目标端 迁移完成后对数据进行比对验证;
select sl-s2 from (select count(*) s1 from NET_SYS_USER) a,(select count(*) s2 from NET_SYS_USER@test) b;
注意:迁移时不需要创建目标端用户,在迁移过程中自动完成用户创建。