RMAN数据迁移

源库Oracle环境检查

开启归档

sqlplus / as sysdba

首先关闭数据库

shutdown immediate;

打开mount状态

startup mount;

更改数据库为归档模式

alter database archivelog;

打开数据库

alter database open;

再次检查

archive log list;

查看构造的表和数据

SELECT table_name FROM user_tables;

SELECT index_name FROM user_indexes;

SELECT view_name FROM user_views;

备份准备

创建存放备份文件目录

#源库和目标库都创建此目录

mkdir /u01/backup

为目录赋予用户权限

chown -R oracle:oinstall /u01/backup

chmod 775 /u01/backup

全库备份

进入sqlplus

sqlplus / as sysdba

alter system switch logfile;

使用RMAN:

rman target /

备份数据文件

RMAN> backup database format '/u01/backup/data_%U.dbf';

备份控制文件

RMAN> backup current controlfile format '/u01/backup/control_%f.dbf';

查看

拷贝参数文件

准备工作

在源库中查看参数文件路径

SQL> show parameter spfile

#在目标库中查看是否有源库参数文件的路径,没有则需创建

cd  /u01/app/oracle/product/19.3.0/db_1/dbs

ls

目标库如果有参数文件,删掉目标库的参数文件

首先关闭数据库

shu immediate

然后在dbs目录下删除参数文件

cd  /u01/app/oracle/product/19.3.0/db_1/dbs

rm -rf init.ora

拷贝文件

源库复制参数文件到目标库

cd $ORACLE_HOME/dbs

scp init.ora oracle@192.168.145.184:/u01/app/oracle/product/19.3.0/db_1/dbs

scp spfileoracle.ora

oracle@192.168.145.184:/u01/app/oracle/product/19.3.0/db_1/dbs

目标库查看

修改参数及环境变量

确认文件路径

SQL> select name from v$datafile;

在目标库查看参数文件init.ora

cat init.ora

创建路径

目标库创建文件

#如果存在路径则不用创建

mkdir -p /u01/app/oracle/admin/oracle/adump

mkdir -p /u01/app/oracle/flash_recovery_area

删除原文件

cd /u01/app/oradata

rm -rf *

更改环境变量

#如果目标库跟源库一致则不用

查看源库环境变量

cat .bash_profile

修改目标库环境变量跟源库一致

vim .bash_profile

source .bash_profile

cat .bash_profile

复制归档文件

查看归档文件路径

select name from v$archived_log order by 1;

拷贝归档文件

cd /u01/app/oracle/product/19.3.0/db_1/dbs

ll

将这归档文件拷贝过去

scp arch1_1* c-2037386630-20240408-0* 192.168.145.184:/u01/app/oracle/product/19.3.0/db_1/dbs

拷贝备份文件

cd /u01/backup

scp * oracle@192.168.145.184:/u01/backup

备份恢复

恢复文件

在目标库中的操作,开启数据库到nomount状态

sqlplus / as sysdba

SQL> startup nomount

打开RMAN开始恢复

rman target /

恢复控制文件

RMAN>  restore controlfile from '/u01/backup/control_0.dbf';

恢复数据文件

RMAN> sql 'alter database mount';

RMAN> restore database;

归档日志

检查归档日志

RMAN> crosscheck archivelog all;

将归档日志catalog

RMAN> catalog archivelog '/u01/app/oracle/flash_recovery_area/arch1_18_1164309192.dbf';

修复数据库

RMAN> recover database;

此时发现报错,则通过以下命令执行

RMAN> recover database until sequence 20;

RESETLOGS启库

RMAN> sql 'alter database open RESETLOGS';

确认数据库

查看状态

SQL> select status from v$instance;

查看测试表

SQL> select table_name from user_tables;

数据迁移完成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值