Oracle【备份迁移篇】04:使用RMAN进行数据库备份:全备以及0级备份并恢复

一、环境准备

1、环境信息

192.168.184.161  p19c01
192.168.184.162  p19c02

在这里插入图片描述

2、集群网络规划

interfacep19c01p19c02
public ip192.168.184.161192.168.184.162
private ip1.1.1.11.1.1.2
vip192.168.184.171192.168.184.172
scan192.168.184.181

3、查看集群状态

su - grid
crsctl status res -t

在这里插入图片描述

二、创建测试数据

1、进行连接

scan ip :192.168.184.181
服务名称 :p19c0

在这里插入图片描述

2、创建用户和表空间

创建test用户,以及对应的表空间并授权,注意如果在CDB环境创建用户要加c##

create tablespace TEST datafile '+DATA/P19C0/DATAFILE/test.dbf' size 100m autoextend on next 100m maxsize 400m extent management local;

CREATE TEMPORARY TABLESPACE TEST_TEMP
TEMPFILE '+DATA/P19C0/TEMPFILE/test_temp.dbf' 
SIZE 20M 
AUTOEXTEND ON 
NEXT 5M MAXSIZE 100M;



CREATE USER C##test IDENTIFIED BY admin
DEFAULT TABLESPACE TEST    
TEMPORARY TABLESPACE TEST_TEMP;

-- 2. 授予公共用户权限(需显式指定CONTAINER=ALL)
GRANT CONNECT, RESOURCE TO C##test CONTAINER=ALL;

-- 3. 授予表空间配额(需确认表空间存在)
ALTER USER C##test QUOTA UNLIMITED ON TEST;

在这里插入图片描述

注意这里的表空间和临时表空间的位置,和单机不一样了,不清楚的使用下面命令查询一下

+DATA/P19C0/DATAFILE/
select * from dba_data_files;

在这里插入图片描述

select *from dba_temp_files;
+DATA/P19C0/TEMPFILE/

在这里插入图片描述

3、使用创建的用户进行登录

我这里是C##test
在这里插入图片描述

4、创建测试数据

CREATE TABLE student_info (
    student_id   NUMBER(10)    PRIMARY KEY,
    name         VARCHAR2(50)  NOT NULL,
    gender       CHAR(1)       CHECK (gender IN ('M', 'F')),
    birth_date   DATE,
    email        VARCHAR2(100) UNIQUE,
    create_time  TIMESTAMP     DEFAULT SYSTIMESTAMP
);

-- 单条记录插入
INSERT INTO student_info VALUES 
(1, '张三', 'M', TO_DATE('2000-01-15', 'YYYY-MM-DD'), 'zhangsan@edu.cn',  DEFAULT);
-- 多条记录插入
INSERT ALL 
INTO student_info VALUES (2, '李四', 'M', DATE '2001-03-22', 'lisi@example.com',  SYSTIMESTAMP)
INTO student_info VALUES (3, '王芳', 'F', TO_DATE('1999-12-05', 'YYYY-MM-DD'), 'wangfang@mail.com',  DEFAULT)
SELECT * FROM DUAL;

commit;
SELECT * FROM student_info;

在这里插入图片描述

三、进行备份

1、创建备份目录

su - oracle
mkdir -p /u01/app/oracle/backup/

在这里插入图片描述

2、归档切换

sqlplus / as sysdba
alter system checkpoint;
alter system switch logfile;

在这里插入图片描述

3、进行全备

(1)全备

rman target sys/oracle@p19c0 nocatalog
backup database format '/u01/app/oracle/backup/wb_%U';

在这里插入图片描述

(2)查看备份文件

cd /u01/app/oracle/backup/
ll

在这里插入图片描述

4、做0级备份

(1)0级备份

backup incremental level 0 database plus archivelog delete all input format '/u01/app/oracle/backup/all_%U';

在这里插入图片描述
在这里插入图片描述

(2)查看备份文件

cd /u01/app/oracle/backup/
ll

在这里插入图片描述

四、修改数据

SELECT * FROM student_info;
update student_info set name = '张三_更新' where name = '张三';
commit;
SELECT * FROM student_info;

在这里插入图片描述

五、做1级增量备份

一般在做备份前都进行归档切换操作

1、归档切换

su - oracle
sqlplus / as sysdba

在这里插入图片描述

alter system checkpoint;
alter system switch logfile;

在这里插入图片描述

2、进行1级增量备份

rman target sys/oracle@p19c0 nocatalog

backup incremental level 1 database plus archivelog delete all input format '/u01/app/oracle/backup/all_%U';

在这里插入图片描述
在这里插入图片描述

3、查看1级增量备份

cd /u01/app/oracle/backup/
ll

在这里插入图片描述
在这里插入图片描述

4、退出RMAN

quit;

在这里插入图片描述

5、查看数据库文件位置

select file#,name from v$datafile;

在这里插入图片描述

六、制造异常

1、停止数据库

停止集群数据库,接触ASM磁盘占用的情况,方便后边删除,人工制造异常

su - oracle
srvctl stop database -d p19c0

在这里插入图片描述
查看数据库状态

srvctl status database -d p19c0

在这里插入图片描述

2、删除数据文件

连接到asm实例,删除所有数据文件

(1)连接到asmcmd

su - grid
asmcmd

在这里插入图片描述

(2)查询数据文件

ls +DATA/P19C0/DATAFILE/

在这里插入图片描述

(3)删除数据文件

cd +DATA/P19C0/DATAFILE/
rm +DATA/P19C0/DATAFILE/*

在这里插入图片描述

六、进行恢复数据

1、数据库启动到mount状态

su - oracle
srvctl start database -d p19c0 -o mount

在这里插入图片描述

2、查看数据库状态

srvctl status database -d p19c0

在这里插入图片描述

3、连接RMAN

su - oracle
rman target sys/oracle@p19c0 nocatalog

在这里插入图片描述

4、还原数据库

RMAN选择合适的备份集开始恢复,我们发现在有全备和0级增量备份的时候,RMAN优先选择了0级增量备份进行恢复

restore database;

5、恢复数据库

recover database;

6、打开数据库

alter database open;

7、查询数据

使用c##test进行连接,查询数据

SELECT * FROM student_info;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做一个有趣的人Zz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值