数据库覆盖完整过程

注意:为避免影响用户正常使用,请等待系统发布停机公告后进行操作。

1、停应用:跟业务人员确认,当前无用户进行业务操作

ps -ef | grep 中间件名称

kill -9 进程id

2、停止数据库监听

lsnrctl stop

3、kill掉当前已连接用户

select 'alter system kill session '''||sid||','||serial#||''';' username,status from v$session where username='用户名';

4、在需要导出数据的服务器上操作。导出备份原来的数据,并检查其完整性

#空间充足的话导出全表数据
nohup expdp 用户名/密码 directory=要导出的路径 dumpfile=%U.dmp文件(自己命名 %U配合parallel使用,分割为parallel份文件,每份文件%U从01自增至parallel设置数) logfile=.log(日志文件) parallel=分割份数 cluster=N(是否多实例Y为是,N为否) &


#只导出LOG表数据:
nohup expdp  用户名/密码   directory=文件夹路径   dumpfile= xxx.dmp  logfile= xxx.log  TABLES= LOG  cluster=N  &


#导出除LOG表之外的其他表数据   
nohup expdp  用户名/密码   directory=文件夹路径  dumpfile=xxx%U.dmp logfile=xxx.log  
EXCLUDE=TABLE:\"IN\(\'LOG\')\"\  parallel=8 cluster=N  version=11.2  &


#执行导出数据命令之后,在数据库查询JOB是否在执行。
 SELECT job_name,state from dba_datapump_jobs;
#如下图,如果执行命令之后,state有显示running的,便是执行导出数据成功了。

在这里插入图片描述

5、以下是在需要导入数据的服务器的操作:

##删除导入服务器上原表空间
DROP tablespace 表空间名 including contents and datafiles cascade constraint;

导入数据时需要确认,空间是否够用,一般保留400G空间,若存储够,可不进行此操作。

6、创建用户并赋权

#创建500G的表空间
create bigfile  tablespace  表空间名称  datafile '+DATADG'  SIZE 500g AUTOEXTEND ON; 

##创建用户并指定表空间
create user 用户名
  identified by 密码 --(必须设置密码)
  default tablespace 表空间名
  --(指定表空间)
  temporary tablespace TEMP
  profile DEFAULT;
  
##赋权
grant execute on CTXSYS.CTX_DDL to 用户名;
grant connect to 用户名;
grant dba to 用户名;
grant create any index to 用户名;
grant create procedure to 用户名;
grant create sequence to 用户名;
grant create session to 用户名;
grant create synonym to 用户名;
grant create table to 用户名;
grant create trigger to 用户名;
grant create type to 用户名;
grant create view to 用户名;
grant unlimited tablespace to 用户名;

8、导入原来的数据(import),并检查准确性

nohup impdp 用户名/密码 directory=dmp文件所在目录 dumpfile=.dmp文件(dmp文件,根据具体文件变化) logfile=.log文件(日志文件,可随意命名) remap_schema=导用户名:要导入的用户名 remap_tablespace=导出表空间名:要导入的表空间名 table_exists_action=replace transform=segment_attributes:n parallel=8(导入文件数量) cluster=N &

## 例如
nohup impdp 用户/密码  directory=im_qas dumpfile=EXP-20200306_%U.dmp logfile=IMP-20200306.log  remap_schema=用户1:用户2 remap_tablespace=表空间1:表空间2  parallel=8 cluster=N  exclude=statistics &

9、启数据库监听,并使用plsql进行连接测试

lsnrctl start

10、对导入的数据问题处理
主要涉及方法,存储过程,包,包体,视图等。一般重新编译,具体问题具体分析

11、数据的脱敏处理

注意:

一、导入导出期间停止工作进程

1、查看备份JOB

select job_name,state from dba_datapump_jobs;

2、在退出导出监视界面后,可以通过下面语句重新打开expdp界面

expdp   system/system2019 ATTACH=SYS_EXPORT_SCHEMA_09;

输入用户名和密码

3、结束job(EXPORT/IMPORT)通用

Export> kill_job

4、修改正在执行导入操作的impdp并行度,提高导入效率

impdp uname/password attach=SYS_IMPORT_SCHEMA_01

回车,可以查看该任务的详细情况。

import > parallel = 20

回车,可以直接修改并行度,指同时有20个dmp文件在执行导入操作,默认并行度为1

import> exit   ---回车

exit直接退出impdp的命令交互模式

二、数据库导入导出版本不一致

  1. 使用查看文本的软件(如notpad ++)打开导出的dmp文件,查看头部标识,发现其头部标识为V12.2.0.1

  2. 发现两者版本不一致,故将导出的dmp文件头部标识改成oracle版本一致。将V12.2.0.1改为V11.2.4

  3. 再执行导入语句就不会报错了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值