当前位置:  数据库>oracle

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

    来源: 互联网  发布时间:2017-06-22

    本文导语: 要使用RMAN增量备份来更新传输表空间需要了解传输表空间与RMAN的增量备份。这里主要介绍使用增量备份来更新传输表空间,就不介绍传输表空间与RMAN增量备份。下面是使用RMAN增量备份来更新传输表空间的操作。目标主机是weblo...

要使用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 

RMAN 配置归档日志删除策略

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

RMAN备份时遇到ORA-19588 

--------------------------------------分割线 --------------------------------------


    
 
 

您可能感兴趣的文章:

  • 使用mysqldump导入数据和mysqldump增量备份(mysqldump使用方法)
  • clonezilla-live备份LINUX使用问题
  • linux下如何使用磁带机备份数据
  • 使用Acronis True Image备份CentOS5.4遇到的问题。
  • cvs / cvsup / rsync , 关于cvs库的使用、备份、镜像 < 专题讨论 >
  • 使用dreamhost空间实现MYSQL数据库备份方法
  • 在Linux使用crontab设置自动执行备份脚本问题?
  • linux系统mysql自动备份并使用ftp上传的方法
  • MySQL笔记之数据备份与还原的使用详解
  • linux使用scp命令备份文件 scp拷贝文件
  • MySQL定时备份之使用Linux下的crontab定时备份实例
  • 使用mksysb命令备份系统到磁带上,提示有文件没有写入,该怎么解决
  • 使用批处理异地备份数据(winrar)
  • 解析Mysql备份与恢复简单总结与tee命令的使用介绍
  • 如何恢复数据库备份到一个已存在的正在使用的数据库上
  • python使用7z解压软件备份文件脚本分享
  • 使用PHP备份MYSQL数据的多种方法
  • c#使用file.copy实现文件备份示例
  • oracle冷备份恢复和oracle异机恢复使用方法
  • 使用FORFILES命令来删除SQLServer备份的批处理
  • 使用mydumper多线程备份MySQL数据库
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 使用TCP传输文件,文件传输成功了,大小也一样,但无法打开
  • linux无线网络传输也可以直接使用socket接口编程吗?
  • 请教使用openobex库实现蓝牙传输的问题
  • 可不可以在程序中直接使用ftp客户端的函数实现文件传输?
  • DM9000如何使用100M模式传输?
  • 如何使用http协议实现流媒体的传输?
  • 使用TCP协议通讯,如果有很多种数据要传输,如:注册信息等,在C++中,我们可以使用结构,java中通常大家又是如何打包的呢?
  • JQuery中使用ajax传输超大数据的解决方法
  • 怎么样使用方式applet/servelet从客户端的某个位置将一个文件传输到服务器端
  • 如何在UNIX 和 WINDOWS 平台之间进行数据传输,使用TCP/IP 通信协议
  • unix支持ssh吗?能够使用sftp进行文件传输吗?
  • java使用rmi传输大文件示例分享
  • 使用原始套接字传输数据
  • 探讨:使用httpClient在客户端与服务器端传输对象参数的详解
  • 使用C#实现RTP数据包传输 参照RFC3550
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • unix/linux知识 iis7站长之家
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍
  • 使用了QWidget的程序,如何使用后台程序启动它?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 共享内存一般是怎么使用的,是同消息队列配合使用么
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • Jsp可否使用带有GUI的JavaBean,如何使用?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3