本项目是疾控中心的一个oracle小数据量迁移过程分享,具体显示结果就不显示。
迁移数据分为以下几个步骤:
分为如下五个部分:
-
源数据库库环境确认
-
目标数据库操作
- 源数据库端导出数据
- 目标数据库导入数据
- 迁移后检查
-
源数据库库环境确认
- 查看数据库创建时间
select dbid,name,to_char(created,’yyyy-mm-dd hh24:mi:ss’),log_mode from v$DATABASE;
- 查看数据库字符集(一定目标库也一样)
select userenv(‘language’) from dual;
- 查看有效数据库用户以及角色
select * from dba_users;
select * from dba_roles;
-
查看数据库表空间
select * from dba_tablespaces;
-
查看物化视图
select * from dba_mviews;
select * from dba_mview_logs;
-
查看job及scheduler
select * from dba_jobs;
select * from dba_scheduler_jobs;
-
查看dblink
select * from dba_db_links; 以及其他数据库有没有link到此数据库
2.目标数据库操作
- 建立表空间
比如:
SQL>CREATE SMALLFILE TABLESPACE "jkzx" DATAFILE SIZE 100G autoextend on ;
-
建立用户和权限、角色
比如:
SQL>create user jsjk identified byjskjdefault tablespace jkzx ;
SQL>grant connect,resource to jkzx;
-
建立dblink(只需建立public用户的)
create public database link jkzx
connect to username IDENTIFIED BY password
using '(description=(address=(protocol=TCP)
(host=192.168.1.2)(port=1521))(connect_data=(SERVICE_NAME = jkzx)))';
3.源数据库端导出数据
-
查看数据库目录信息
select * from dba_directories;
-
建立新的目录用于存放导出文件
CREATE OR REPLACE DIRECTORY jsjk_dir AS '/oradata/';
-
导出用户数据(根据用户数)
SQL>alter user jsjk acccount lock;(导出前锁定账号)
expdp <username>/<password>@<SID> directory=<dir_name> dumpfile=xxxxxx.dat logfile=xxxx.log schemas=jsjk;
4.目标数据库导入数据
-
查看数据库目录信息
select * from dba_directories
-
建立新的目录用于存放导出文件
SQL>CREATE OR REPLACE DIRECTORY jsjk_dir AS '/oradata/';
-
拷贝导出文件至该目录
scp expdp_emp_0* oracle@192.168.1.10:/oradata/
-
导入用户数据
Impdp <username>/<password>@<SID> directory=<dir_name_1> dumpfile=xxxx.dat logfile=xxxx.log schemas=ARADMIN
5.迁移后检查(开发可以远程检查)
-
检查对象是否迁移完成
select count(*) from user_objects (查看源与目的数据库对应用户下面对象个数)
-
检查对象是否失效
物化视图
Job及scheduler
Procedure
Package等等
-
新环境初始参数检查
sga
pga
PROCESSES
SESSIONS
case_sensitive
deffer_creation_segement
open_cursor
job_queue_processes