分享

[Oracle数据库迁移]使用expdp/impdp进行迁移

 宅必备 2022-05-30 发布于江苏

这期内容为使用expdp/impdp进行迁移的一般步骤

分为如下五个部分:

源库环境确认

目标端操作

源库端导出数据

目标端导入数据

事后检查

1.源库环境确认

1.1 查看数据库用户

SQL>select * from dba_users;

1.2 查看数据库角色

SQL>select * from dba_roles;

1.3 查看数据库表空间

SQL>select * from  dba_tablespaces;

1.4 查看物化视图

SQL>select * from dba_mviews;

1.5 查看物化视图日志

SQL>select * from dba_mview_logs;

1.6 查看job及scheduler

SQL>select * from dba_jobs;

SQL>select * from dba_scheduler_jobs;

1.7 查看dblink

SQL>select * from dba_db_links;

1.8 查看其他数据库有无关联

这里查看环境中其他数据库的dblink是否和该数据库有关联

2. 目标端操作

2.1 建立表空间

SQL>CREATE SMALLFILE TABLESPACE "EMAPTBS" DATAFILE  SIZE 25G LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

SQL>ALTER TABLESPACE "EMAPTBS" ADD DATAFILE  SIZE 25G;

具体查看:

[Oracle 数据库日常操作] 表空间的日常运维命令

2.2 建立角色

没有需要建立的角色

2.3 建立用户和权限

SQL>create user emap identified by emap default tablespace emaptbs ;

SQL>create user emaptest identified by emaptest default tablespace emaptbs;

SQL>grant connect,resource to emap;

SQL>grant connect,resource to emaptest;

SQL>grant select on v_$session to emap;

SQL>grant select on v_$session to emaptest;

SQL>grant unlimited tablespace to emap;

SQL>grant unlimited tablespace to emaptest;

2.4 建立dblink(只需建立public用户的)

create public database link MESASSY

connect to username IDENTIFIED BY password

using '(description=(address=(protocol=TCP)

(host=10.65.1.113)(port=1521))(connect_data=(SERVICE_NAME = MESASSY)))';

3. 源库端导出数据

这里使用sys账号进行

3.1 查看数据库目录信息

SQL>select * from dba_directories;

3.2 建立新的目录用于存放导出文件

SQL>CREATE OR REPLACE DIRECTORY dump_dir AS '/oradata/dump';

3.3 导出emap/emaptest用户数据

导出前锁定emap/emaptest账号

SQL>alter user emap acccount lock;

SQL>alter user emaptest account lock;

注意oracle 11.2.0.1 之后空表如没有数据则会不导出 

请事先找出这些表

新建parfile:expdp_emap.txt

userid='sys/ase_sys_1 as sysdba'

job_name=job_emp_emptest_exp

directory=dump_dir

filesize=15G

dumpfile=expdp_emap_%U.dmp

logfile=emp_emptest_expdp.log

schemas=emap,emaptest

parallel=4

content=all

3.4 导出数据

expdp parfile=expdp_emap.txt

4. 目标端导入数据

4.1 查看数据库目录信息

SQL>select * from dba_directories

4.2 建立新的目录用于存放导出文件

SQL>CREATE OR REPLACE DIRECTORY dump_dir AS '/oradata/dump/';

4.3 拷贝expdp文件至该目录

scp expdp_emp_0* oracle@10.65.202.201:/oradata/dump/

4.4 导入emap/emaptest用户数据

新建parfile:impdp_emap.txt

userid='sys/ase_password as sysdba'

job_name=job_emp_emptest_imp

directory=dump_dir

dumpfile=expdp_emap_%U.dmp

logfile=emp_emptest_impdp.log

schemas=emap,emaptest

parallel=4

content=all

导入数据

impdp parfile=exp_emap.txt

5. 事后检查

5.1 检查对象是否迁移完成

参见Python脚本

[Python程序]数据库迁移比对小工具

5.2 检查对象是否失效

检查如下对象是否失效

物化视图 

Job及scheduler

Procedure

Package等等

5.2 新环境参数检查

检查如下参数是否和源库一致或设置合理(不保证全面)

sga 

pga 

PROCESSES 

SESSIONS 

case_sensitive 

deffer_creation_segement 

open_cursor 

job_queue_processes

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多