window下实现oracle数据库简单(异机)【rman备份】+【rman恢复】

环境准备

两台虚拟机:win10 + Oracle11.2.0.4.0

备份机

开启自动归档

(cmd) sqlplus / as sysdba (cmd 下输入此命令)
(sql) archive log list; (查看是否开启存档模式)

(sql) shutdown immediate; (立即关闭数据库)
(sql) startup mount; (启动实例并加载数据库,但不打开)
(sql) alter database archivelog; (更改数据库为归档模式)
(sql) alter database open; (打开数据库)
(sql) alter system archive log start; (启用自动归档)

(sql) archive log list; (再次查看是否开启存档模式)

![[image/Pasted image 20240515225124.png]]
![[image/Pasted image 20240515225059.png]]


创建目录:C:\backup(待会会用到)


查看现存数据

(cmd) sqlplus / as sysdba;
(sql) select * from table1;
(sql) insert into table1 (id,name) values(3,'name3');
(sql) commit;
(sql) select * from table1;
(sql) exit

![[image/Pasted image 20240515214031.png]]


备份
进行一次完整的数据库备份(增量0级别备份),包括数据库、控制文件、归档日志和spfile,并且使用两个磁盘通道以并行的方式进行备份操作。

(cmd) rman target /
(rman) run{
	allocate channel c1 type disk;
	allocate channel c2 type disk;
	backup incremental level 0 database
	include current controlfile format 'C:\backup2\db_%T_%s_%p.lv0'
	plus archivelog delete all input format 'C:\backup2\arc%T_%s_%p.arc';
	backup spfile format='C:\backup2\spfile_tpy100_%T_%s_%p.bak';
	release channel c1;
	release channel c2;
}
(rman) exit

![[image/Pasted image 20240515214449.png]]
![[image/Pasted image 20240515214733.png]]


导出的备份:

![[image/Pasted image 20240515214850.png]]



恢复机

创建目录:C:\backup ,将上述备份出的文件放入到恢复机中

![[image/Pasted image 20240515214938.png]]


备份原数据库

-- 查询数据库文件在哪里
(cmd) sqlplus / as sysdba
(sql) select name from v$datafile

![[image/Pasted image 20240515203644.png]]

-- 关闭数据库,为了方便备份 备份机 自己的原数据库
(sql) shut immediate

![[image/Pasted image 20240515211438.png]]


找到上述datafile显示的路径:存储数据的地方

![[image/Pasted image 20240515203312.png]]
![[image/Pasted image 20240515204000.png]]
![[image/Pasted image 20240515204103.png]]


恢复

-- 启动数据库
(sql) startup nomount
(sql) exit

![[image/Pasted image 20240515211338.png]]

-- 进入rman
(cmd) rman target /

-- 恢复控制文件
(rman) restore controlfile from 'C:\backup\DB_20240515_64_1.LV0';

![[image/Pasted image 20240515211924.png]]

-- 在rman中执行sql语句,挂载数据库
(rman) sql 'alter database mount';

-- 将新的备份信息导入到控制文件中,noprompt表示不进行确认提示
catalog start with 'C:\backup\' noprompt;

![[image/Pasted image 20240515212516.png]]

-- 恢复
(rman) run{
	allocate channel c1 type disk;
	allocate channel c2 type disk;
	restore database;
	switch datafile all;
	recover database;
	release channel c1;
	release channel c2;
}
(rman) exit

![[image/Pasted image 20240515212909.png]]![[image/Pasted image 20240515213013.png]]

-- 打开数据库,并退出方便重新连接
(cmd) sqlplus / as sysdba
(sql) alter database open resetlogs;
(sql) exit

![[image/Pasted image 20240515213210.png]]


检验

-- 检验
(cmd) sqlplus / as sysdba
(sql) select * from table1;

![[image/Pasted image 20240515213338.png]]

在恢复机上恢复成功!

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle RMAN(Recovery Manager)是一个强大的工具,它提供了灵活的命令集来管理数据库备份恢复RMAN语法有很多用途,包括备份恢复等操作。 备份语法: RMAN备份语法包括备份数据库备份特定文件/表空间、备份归档日志等。以下是RMAN备份语法示例: - 备份整个数据库RMAN> backup database; - 备份表空间: RMAN> backup tablespace users; - 备份归档日志: RMAN> backup archivelog all; 恢复语法: RMAN恢复语法包括从备份还原数据库恢复特定文件/表空间等。以下是RMAN恢复语法示例: - 从备份恢复整个数据库RMAN> restore database; RMAN> recover database; - 恢复表空间: RMAN> restore tablespace users; RMAN> recover tablespace users; - 恢复归档日志: RMAN> restore archivelog all; RMAN> recover database; 其他语法: RMAN提供了其他有用的语法,如列出备份信息、清除备份、设置保留策略等。以下是RMAN其他语法示例: - 列出备份信息: RMAN> list backup; RMAN> list backup of archivelog all; - 清除备份RMAN> delete backupset 3; RMAN> delete obsolete; - 设置保留策略: RMAN> configure retention policy to recovery window of 7 days; 总的来说,RMAN语法十分灵活和多样化,这使得它成为了Oracle数据库备份恢复过程中不可或缺的工具。掌握RMAN语法可以让数据库管理员更加方便地备份恢复数据库,并可以通过设置保留策略、清除备份等操作管理备份
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值