阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用RMAN增量备份来更新传输表空间

466次阅读
没有评论

共计 10463 个字符,预计需要花费 27 分钟才能阅读完成。

要使用 RMAN 增量备份来更新传输表空间需要了解传输表空间与 RMAN 的增量备份。这里主要介绍使用增量备份来更新传输表空间,就不介绍传输表空间与 RMAN 增量备份。下面是使用 RMAN 增量备份来更新传输表空间的操作。目标主机是 weblogic29,原主机是 weblogic28。

1. 在两台数据库服务器上配置 NFS
配置 /etc/exports
 nfs 允许挂载的目录及权限需在文件 /etc/exports 中进行定义。例如,我们要将数据文件所在目录
/u01/app/Oracle/oradata/jytest/ 与 /backup 目录共享出来,那么我们需要编辑 /etc/exports 文件,追加两行
/u01/app/oracle/oradata/jytest/ *(rw,sync)
/backup/ *(rw,sync)

[root@weblogic29 oracle]# vi /etc/exports
/u01/app/oracle/oradata/jytest/ *(rw,sync)
/backup/ *(rw,sync)

启动 nfs 服务
[root@weblogic29 oracle]# service portmap start
Starting portmap: [OK]
[root@weblogic29 oracle]# service nfs start
Starting NFS services: [OK]
Starting NFS quotas: [OK]
Starting NFS daemon: [OK]
Starting NFS mountd: [OK]

在客户端主机上挂载共享目录
[root@weblogic28 ~]# service portmap start
Starting portmap: [OK]

[root@weblogic28 ~]# service nfs start
Starting NFS services: [OK]
Starting NFS quotas: [OK]
Starting NFS daemon: [OK]
Starting NFS mountd: [OK]

在客户端使用 showmount -e IP 查看 nfs 主机共享情况:
[root@weblogic28 ~]# showmount -e 10.138.130.29
Export list for 10.138.130.29:
/backup *
/u01/app/oracle/oradata/jytest *

在客户端建立 NFS 文件夹并执行 mount 挂载命令:
[root@weblogic28 ~]# mkdir /jytest_data
[root@weblogic28 ~]# mkdir /backup
[root@weblogic28 ~]# chown -R oracle:oinstall /jytest_data
[root@weblogic28 ~]# chown -R oracle:oinstall /backup
[root@weblogic28 ~]# chmod -R 777 /jytest_data
[root@weblogic28 ~]# chmod -R 777 /backup

[root@weblogic28 ~]# mount -t nfs 10.138.130.29:/u01/app/oracle/oradata/jytest /jytest_data
[root@weblogic28 ~]# mount -t nfs 10.138.130.29:/backup /backup

[root@weblogic28 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 240G 158G 71G 70% /
/dev/sda1 190M 12M 169M 7% /boot
tmpfs 16G 0 16G 0% /dev/shm
10.138.130.29:/u01/app/oracle/oradata/jytest
240G 22G 206G 10% /jytest_data
10.138.130.29:/backup
240G 22G 206G 10% /backup

 

2. 在源数据库中创建一个表空间 jytest 与用户 jytest
SQL> create tablespace jytest datafile ‘/u01/app/oracle/oradata/jytest/jytest01.dbf’ size 5M autoextend off extent management local segment space management auto;

Tablespace created.

SQL> create user jytest identified by “jytest” default tablespace jytest temporary tablespace temp;

User created.

SQL> grant connect,dba,resource to jytest;

Grant succeeded.

SQL> conn jytest/jytest
Connected.
SQL> create table t1 as select * from dba_tables;

Table created.

SQL> select count(*) from t1;

COUNT(*)
———-
1607
SQL> insert into t1 select * from t1;

1607 rows created.

SQL> insert into t1 select * from t1;

3214 rows created.

SQL> insert into t1 select * from t1;

6428 rows created.

SQL> commit;

Commit complete.

3. 将原数据库的 jytest 表空间设置为只读模式
SQL> alter tablespace jytest read only;

Tablespace altered.

4. 对原数据库中的表空间 jytest 使用 rman 生成镜像副本并存储在 NFS 所挂载的 /jytest_data 目录中
[oracle@weblogic28 ~]$ rman target/

Recovery Manager: Release 10.2.0.5.0 – Production on Wed Apr 13 12:36:05 2016

Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database: JYTEST (DBID=3911337604)

RMAN> run
2> {
3> allocate channel c1 type disk format ‘/jytest_data/jytest01.dbf’;
4> backup incremental level 1 tag “INCR_JYTEST” for recover of copy with tag “INCR_JYTEST” tablespace jytest;
5> }

using target database control file instead of recovery catalog
allocated channel: c1
channel c1: sid=157 devtype=DISK

Starting backup at 13-APR-16
WARNING: TAG INCR_JYTEST option is ignored; backups will be tagged with INCR_JYTEST
no parent backup or copy of datafile 8 found
channel c1: starting datafile copy
input datafile fno=00008 name=/u01/app/oracle/oradata/jytest/jytest01.dbf
output filename=/jytest_data/jytest01.dbf tag=INCR_JYTEST recid=2 stamp=909059896
channel c1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 13-APR-16
released channel: c1

虽然这里使用的是 incremental level 1,因为这里不存在表空间数据文件 jytest01.dbf 的 0 级增量副本,因此会创建一个 0 级增量副本文件。
SQL> alter tablespace jytest read write;

Tablespace altered.

5. 将表空间 jytest 附加到目标数据库
SQL> create or replace directory test_dump as ‘/backup/’;

Directory created.

SQL> grant read,write on directory test_dump to public;

Grant succeeded.

SQL> create public database link dblink_jytest
2 connect to jytest identified by “jytest”
3 using ‘(DESCRIPTION =
4 (ADDRESS = (PROTOCOL = TCP)(HOST = 10.138.130.28)(PORT = 1521))
5 (CONNECT_DATA =
6 (SERVICE_NAME = jytest)
7 )
8 )’;

Database link created.
SQL> select count(*) from t1@dblink_jytest;

COUNT(*)
———-
12856
[oracle@weblogic29 jytest]$ impdp jytest/jytest directory=test_dump network_link=dblink_jytest transport_tablespaces=jytest transport_full_check=n transport_datafiles=\’/u01/app/oracle/oradata/jytest/jytest01.dbf\’

Import: Release 10.2.0.5.0 – 64bit Production on Wednesday, 13 April, 2016 14:47:43

Copyright (c) 2003, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting “JYTEST”.”SYS_IMPORT_TRANSPORTABLE_01″: jytest/******** directory=test_dump network_link=dblink_jytest transport_tablespaces=jytest transport_full_check=n transport_datafiles=’/u01/app/oracle/oradata/jytest/jytest01.dbf’
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Job “JYTEST”.”SYS_IMPORT_TRANSPORTABLE_01″ successfully completed at 14:47:48
SQL> show parameter compatible

NAME TYPE VALUE
———————————— ———– ——————————
compatible string 10.2.0.3.0
SQL> select count(*) from jytest.t1;

COUNT(*)
———-
12856

6. 将表空间 jytest 从目标数据库中删除, 但保留数据文件
SQL> drop tablespace jytest including contents;

Tablespace dropped.

7. 将原数据库中的表空间 jytest 联机, 继续向表 t1 插入记录
SQL> alter tablespace jytest read write;

Tablespace altered.
SQL> insert into t1 select * from t1;
insert into t1 select * from t1
*
ERROR at line 1:
ORA-01653: unable to extend table JYTEST.T1 by 128 in tablespace JYTEST

由于表空间 jytest 没有空间了,如是向表这僮 jytest 增加一个数据文件 jytest02.dbf 来增加表空间
SQL> alter tablespace jytest add datafile ‘/u01/app/oracle/oradata/jytest/jytest02.dbf’ size 5M;

Tablespace altered.

SQL> insert into t1 select * from t1;

12856 rows created.

SQL> commit;

Commit complete.

SQL> select count(*) from t1;

COUNT(*)
———-
25712

8. 如果自上次增量备份以后原数据库表空间 jytest 增加了新的数据文件,因此执行以下命令来为新增加的数据文件创建镜像副本。
SQL> alter tablespace jytest read only;

Tablespace altered.
SQL> select file#,name from v$datafile;

FILE# NAME
———- ————————————————————————-
1 /u01/app/oracle/oradata/jytest/system01.dbf
2 /u01/app/oracle/oradata/jytest/undotbs01.dbf
3 /u01/app/oracle/oradata/jytest/sysaux01.dbf
4 /u01/app/oracle/oradata/jytest/users01.dbf
5 /u01/app/oracle/oradata/jytest/example01.dbf
6 /u01/app/oracle/oradata/jytest/tspitr01.dbf
7 /u01/app/oracle/oradata/jytest/test01.dbf
8 /u01/app/oracle/oradata/jytest/jytest01.dbf
9 /u01/app/oracle/oradata/jytest/jytest02.dbf

9 rows selected.
RMAN> run
2> {
3> allocate channel c1 type disk format ‘/jytest_data/jytest02.dbf’;
4> backup incremental level 1 tag “INCR_JYTEST” for recover of copy with tag “INCR_JYTEST” datafile 9;
5> }

allocated channel: c1
channel c1: sid=141 devtype=DISK

Starting backup at 13-APR-16
WARNING: TAG INCR_JYTEST option is ignored; backups will be tagged with INCR_JYTEST
no parent backup or copy of datafile 9 found
channel c1: starting datafile copy
input datafile fno=00009 name=/u01/app/oracle/oradata/jytest/jytest02.dbf
output filename=/jytest_data/jytest02.dbf tag=INCR_JYTEST recid=4 stamp=909069392
channel c1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 13-APR-16
released channel: c1

9. 对原数据库执行 RMAN 增量备份并使用目标数据库文件目录中的数据文件与其合并,因些创建一组
 新的数据文件
RMAN> run
2> {
3> allocate channel c1 type disk format ‘/jytest_data/jytest01_%t.dbf’;
4> allocate channel c2 type disk format ‘/jytest_data/jytest02_%t.dbf’;
5> backup incremental level 1 tag “INCR_JYTEST” for recover of copy with tag “INCR_JYTEST” tablespace jytest;
6> recover copy of tablespace jytest with tag “INCR_JYTEST”;
7> }

allocated channel: c1
channel c1: sid=141 devtype=DISK

allocated channel: c2
channel c2: sid=139 devtype=DISK

Starting backup at 13-APR-16
WARNING: TAG INCR_JYTEST option is ignored; backups will be tagged with INCR_JYTEST
channel c1: starting incremental level 1 datafile backupset
channel c1: specifying datafile(s) in backupset
input datafile fno=00008 name=/u01/app/oracle/oradata/jytest/jytest01.dbf
channel c1: starting piece 1 at 13-APR-16
channel c2: starting incremental level 1 datafile backupset
channel c2: specifying datafile(s) in backupset
input datafile fno=00009 name=/u01/app/oracle/oradata/jytest/jytest02.dbf
skipping datafile 00009 because it has not changed
channel c2: backup cancelled because all files were skipped
channel c1: finished piece 1 at 13-APR-16
piece handle=/jytest_data/jytest01_909069660.dbf tag=INCR_JYTEST comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
Finished backup at 13-APR-16

Starting recover at 13-APR-16
channel c1: starting incremental datafile backupset restore
channel c1: specifying datafile copies to recover
recovering datafile copy fno=00008 name=/jytest_data/jytest01.dbf
channel c1: reading from backup piece /jytest_data/jytest01_909069660.dbf
channel c1: restored backup piece 1
piece handle=/jytest_data/jytest01_909069660.dbf tag=INCR_JYTEST
channel c1: restore complete, elapsed time: 00:00:02
Finished recover at 13-APR-16
released channel: c1
released channel: c2

10. 将表空间 jytest 重新附加到目标数据库中
[oracle@weblogic29 jytest]$ impdp jytest/jytest directory=test_dump network_link=dblink_jytest transport_tablespaces=jytest transport_full_check=n transport_datafiles=\’/u01/app/oracle/oradata/jytest/jytest01.dbf\’,\’/u01/app/oracle/oradata/jytest/jytest02.dbf\’

Import: Release 10.2.0.5.0 – 64bit Production on Wednesday, 13 April, 2016 15:50:37

Copyright (c) 2003, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting “JYTEST”.”SYS_IMPORT_TRANSPORTABLE_01″: jytest/******** directory=test_dump network_link=dblink_jytest transport_tablespaces=jytest transport_full_check=n transport_datafiles=’/u01/app/oracle/oradata/jytest/jytest01.dbf’,’/u01/app/oracle/oradata/jytest/jytest02.dbf’
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Job “JYTEST”.”SYS_IMPORT_TRANSPORTABLE_01″ successfully completed at 15:50:42

SQL> select count(*) from jytest.t1;

COUNT(*)
———-
25712

SQL> alter tablespace jytest read write;

Tablespace altered.

与原数据库中表 t1 记录数一样,说明增量更新传输表空间成功。

总结:使用增量备份来前更新数据文件要比复制整个数据文件所花的时间少。这里使用了 NFS 来执行数据文件的传输避免了使用 ftp 等方式传输文件,使用 impdp network_link 避免了导入和导出元数据与传输元数据这也能节省了时间。

————————————– 推荐阅读 ————————————–

RMAN 备份时遭遇 ORA-19571  http://www.linuxidc.com/Linux/2015-07/120409.htm

RMAN 配置归档日志删除策略 http://www.linuxidc.com/Linux/2013-11/92670.htm

Oracle 基础教程之通过 RMAN 复制数据库 http://www.linuxidc.com/Linux/2013-07/87072.htm

RMAN 备份策略制定参考内容 http://www.linuxidc.com/Linux/2013-03/81695.htm

RMAN 备份学习笔记 http://www.linuxidc.com/Linux/2013-03/81892.htm

Oracle 数据库备份加密 RMAN 加密 http://www.linuxidc.com/Linux/2013-03/80729.htm

RMAN 备份时遇到 ORA-19588  http://www.linuxidc.com/Linux/2015-07/120410.htm

————————————– 分割线 ————————————–

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-04/130340.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计10463字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7805072
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛 NAS-4:飞牛 NAS 安装 istore 旁路由,家庭网络升级的最佳实践 开始 大家好我是...
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛NAS-5:飞牛NAS中的Docker功能介绍

星哥带你玩飞牛 NAS-5:飞牛 NAS 中的 Docker 功能介绍 大家好,我是星哥,今天给大家带来如何在...