当前位置:文档之家› Oracle RMAN(备份与恢复管理器)

Oracle RMAN(备份与恢复管理器)

Oracle RMAN(备份与恢复管理器)
Oracle RMAN(备份与恢复管理器)

Oracle RMAN(备份与恢复管理器)

RMAN是 ORACLE提供的一个备份与恢复的工具,可以用来备份和还原数据库文件、归档日志和控制文件。它也可以用来执行完全或不完全的数据库恢复。

RMAN可以由命令行接口或者 OEM的 Backup Manager GUI 来控制。

4.1 基本知识

4.1.1 RMAN的组件、概念

1. RMAN 主要包括以下组件:

Target Database: (目标数据库)

就是需要 RMAN 对其进行备份与恢复的数据库,RMAN 可以备份数据文件,控制文

件,归档日志,spfile。(注意:RMAN不能用于备份联机日志、初始化参数文件和口令文件) Server Session: (服务器会话)

RMAN启动数据库上的 Oracle服务器进程,将建立一个与目标数据库的会话。由目标

数据库上的服务器进程进行备份、还原、恢复的实际操作。

服务器进程

RMAN 的服务进程是一个后台进程,用于与 RMAN工具与数据库之间的通信,也用于 RMAN 工具与磁盘/磁带等 I/O 设置之间的通信,服务进程负责备份与恢复的所有工作,在如下情况将产生一个服务进程:

当连接到目标数据库

分配一个新的通道

Channel: (通道)

一个通道是 RMAN和目标数据库之间的一个连接,"allocate channel"命令在目标数据库

启动一个服务器进程,同时必须定义服务器进程执行备份或者恢复操作使用的 I/O类型。

通道控制命令可以用来:

? 控制 RMAN使用的 O/S资源,影响并行度

? 指定 I/O带宽的限制值(设置 limit read rate 参数)

? 定义备份片大小的限制(设置 limit kbytes)

? 指定当前打开文件的限制值(设置 limit maxopenfiles)

recovery catalog: (恢复目录)

用来保存备份与恢复信息的一个数据库,不建议创建在目标数据库上。RMAN 利用恢复目录记载的信息去判断如何执行需要的备份恢复操作。

如果不采用恢复目录,备份信息可以存在于目标数据库的 control file 中。

如果存放在目标数据库的 control file 中,控件文件会不断增长,不能保存 RMAN 的Script。

CONTROL_FILE_RECORD_KEEP_TIME (default=7):控件文件中 RMAN 信息保存的

最短时间。

使用恢复目录的优势:可以存储脚本,记载较长时间的备份恢复操作。

RMAN Repository: (RMAN 恢复目录数据库)

存放 recovery catalog(恢复目录)的数据库。建议为恢复目录数据库创建一个单独的数据库。

MML: (媒体管理库)

Media Management Layer (MML)是第三方工具或软件,用于管理对磁带的读写与文件的跟踪管理。如果你想直接通过 RMAN 备份到磁带上,就必须配置媒体管理层,媒体管理层的工具如备份软件可以调用 RMAN来进行备份与恢复。

2.概念述语

Backup Sets (备份集合)

备份集合的特性:包括一个或多个数据文件或归档日志,以 oracle专有的格式保存,有一个完全的所有的备份片集合构成,构成一个完全备份或增量备份。

Backup Pieces (备份片)

一个备份集由若干个备份片组成。每个备份片是一个单独的输出文件。一个备份片的大小是有限制的;如果没有大小的限制,备份集就只由一个备份片构成。备份片的大小不能大于使用的文件系统所支持的文件长度的最大值。

Image Copies 镜像备份

镜像备份是独立文件(数据文件、归档日志、控制文件)的备份。它很类似操作系统级的文件备份。它不是备份集或备份片,也没有被压缩。

Full backup Sets 全备份集合

全备份是一个或多个数据文件中使用过的数据块的的备份。没有使用过的数据块是不被

备份的,也就是说,oracle 进行备份集合的压缩。

Incremental backup sets 增量备份集合

增量备份是指备份一个或多个数据文件的自从上一次同一级别的或更低级别的备份以

来被修改过的数据块。与完全备份相同,增量备份也进行压缩。

File multiplexing

多个数据文件可以在一个备份集中。

Recovery catalog resyncing 恢复目录同步

使用恢复管理器执行 backup、copy、restore 或者 switch 命令时,恢复目录自动进行更新,但是有关日志与归档日志信息没有自动记入恢复目录。需要进行目录同步。使用 resync catalog命令进行同步。

RMAN> resync catalog;

Incarnation 对应物

在不完全恢复完成之后,通常需要使用 resetlogs 选项来打开数据库。resetlogs 表示一个数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始。数据库的逻辑生存期也被称为一个对应物(incarnation)。每次使用 resetlogs 选项来打开数据库后都会创建一个新的数据库对应物。

4.1.2 RMAN的使用:命令行接口与脚本

数据库状态:

RMAN恢复目录数据库:必须OPEN

目标数据库:根据不同情况,必须MOUNT或OPEN

1. 使用不带恢复目录的 RMAN

设置目标数据库的 ORACLE_SID ,执行:

$ rman nocatalog

RMAN> connect target

RMAN> connect target user/pwd>@db

2. 使用带恢复目录的RMAN

$ rman catalogrman/rman

RMAN> connect target //连接本地数据库作为目标数据库

RMAN> connect target user/pwd>@db //连接远程数据库

$ rman catalogrman/rman targetuser/pwd>@db

3. 命令行接口

1、单个执行

RMAN> backup database;

2、运行一个命令块

RMAN> RUN {

2> copy datafile 10 to

3> '/oracle/prod/backup/prod_10.dbf';

4> }

3、运行存储在恢复目录中的脚本:

RMAN> RUN { EXECUTE SCRIPT backup_whole_db };

4、运行外部脚本:

$ rman catalog rman/rman target / @backup_db.rman

$ rman cmdfile=backup.rman msglog=backup.log

RMAN> @backup_db.rman

RMAN> RUN { @backup_db.rman }

如果在 cron 中执行,注意在脚本中设置正确的环境变量,例:

#set env

export ORACLE_HOME=/opt/oracle/product/9.2

export ORACLE_SID=test

export NLS_LANG="AMERICAN_AMERICA.zhs16gbk"

export PATH=$PATH:$ORACLE_HOME/bin rman cmdfile=backup_db.rman

4. 使用脚本

创建或者取代脚本:

RMAN> create script alloc_disk {

2> # Allocates one disk

3> allocate channel dev1 type disk;

4> setlimit channel dev1 kbytes 2097150 maxopenfiles 32 readrate 200;

5> }

RMAN> replace script rel_disk {

2> # releases disk

3> release channel dev1;

5> }

删除脚本:

RMAN> DELETE SCRIPT Level0Backup;

查看脚本:

RMAN> PRINT SCRIPT Level0Backup;

运行脚本:

RMAN> RUN { EXECUTE SCRIPT backup_whole_db };

5. 运行OS命令

RMAN支持通过执行 host命令暂时退出 RMAN的命令提示符而进入到操作系统的命令

环境。

6. 执行SQL语句

在 RMAN 的命令提示符后输入 SQL 命令,然后在一对单引号(双引号亦可)中输入要执行的 SQL 语句,例如:

RMAN> SQL 'ALTER SYSTEM CHECKPOINT';

对于 SELECT语句,无法得到结果。可以先执行 host再用 SQLPLUS。

4.2 RMAN 的配置

4.2.1 建立Recovery Catalog恢复目录

(1) 在目录数据库中创建恢复目录所用表空间:

SQL> create tablespace rman_ts datafile '/xxx/rman_ts.dbf' size 20M;

(2) 在目录数据库中创建RMAN 用户并授权:

SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;

SQL> grant connect, resource, recovery_catalog_ownerto rman;

(3) 在目录数据库中创建恢复目录

$ rman catalog rman/rman

RMAN> create catalog tablespace rman_ts;

(4) 登记目标数据库:

一个恢复目录可以注册多个目标数据库,注册目标数据库的命令为:

$ RMAN catalog rman/rman target user/pwd @rcdb; RMAN> register database;

4.2.2 查看RMAN的默认设置SHOW命令

必须连接目标数据库

RMAN> show all

RMAN> show channel; // 通道分配 RMAN> show device type; // IO 设备类型 RMAN> show retention policy; // 保存策略RMAN> show datafile backup copies; // 多个备份的拷贝数目 RMAN> show maxsetsize; // 备份集大小的最大值 RMAN> show exclude; // 不必备份的表空间 RMAN> show backup optimization; // 备份的优化

4.2.3 配置RMAN的默认设置

1. 配置备份集文件的格式 (format)

RMAN> configure channel device type disk format'/u05/oracle/rmanback/%U';

备份文件可以自定义各种各样的格式,如下

%c 备份片的拷贝数

%d 数据库名称

%D 位于该月中的第几天 (DD)

%M 位于该年中的第几月 (MM)

%F 一个基于 DBID 唯一的名称,这个格式的形式为 c-IIIIIIIIII-YYYYMMDD-QQ,

其中 IIIIIIIIII 为该数据库的 DBID,YYYYMMDD 为日期,QQ 是一个 1-256 的序列

%n 数据库名称,向右填补到最大八个字符

%u 一个八个字符的名称代表备份集与创建时间

%p 该备份集中的备份片号,从 1 开始到创建的文件数

%U 一个唯一的文件名,代表%u_%p_%c

%s 备份集的号

%t 备份集时间戳

%T 年月日格式(YYYYMMDD)

2. 配置默认 IO设备类型 ( device type )

IO 设备类型可以是磁盘或者磁带,在默认的情况下是磁盘,可以通过如下的命令进行重新配置。

RMAN> configure default device t ype to disk; RMAN> configure default device t ype to sbt;

注意,如果换了一种 IO 设备,相应的配置也需要做修改,如

RMAN> configure device type sbt parallelism 2;

3. 配置自动分配的通道 ( Chanel )

RMAN> configure channel device type disk format

'/U01/ORACLE/BACKUP/%U

在运行块中,手工指定通道分配,这样的话,将取代默认的通道分配。

RMAN> Run {

allocate channel cq type disk format='/u01/backup/%u.bak';

}

通道的一些特性:

读的速率限制 Allocate channel ……rate = integer 最大备份片大小限制 Allocate channel …… maxpiecesize = integer 最大并发打开文件数(默认 16) Allocate channel …… maxopenfile = integer

4. 配置默认的保存策略 ( Retention Policy)

保存策略是管理备份与副本有效期或者是否有效的一种方法。恢复数据库的时候

Oracle 不考虑失效的备份。我们可以定义两种保存策略:恢复窗口备份保存策略

(recovery window backup retention policy )和冗余备份保存策略(redundancy backup retention policy )

备份策略保持分为两个保持策略:一个是时间策略,决定至少有一个备份能恢复到指定的日期一个冗余策略,规定至少有几个冗余的备份。恢复窗口备份保存策略

这种保存策略类型的使用基于数据库可能恢复到的最早的日期。例如,假设今天是星期一,此前存在 3 个备份。第一个备份在昨天生成的,第二个备份是上星期四生成的,而最后一个备份是 10 天前备份的。假如恢复窗口是 7 天,那么昨天和上星期四的备份是有效备份,而 10 天前的备份会成为废弃备份。下面的命令将恢复窗口配置为 7 天:RMAN> configure retention policy to recovery window of 7 days;

冗余备份保存策略

使用这种保存策略,RMAN 会从最新备份开是保留 N 个数据备份,其余的废弃。例如,如果有四个备份,而冗余数是 3,那么最早的那个备份将被废弃。下面的命令将备份策略设置为 3:

RMAN> configure retention policy to redundancy3;

设置 NONE可以把使备份保持策略失效,Clear 将恢复默认的保持策略

RMAN> configure retention policy to none;

例:

保证至少有一个备份能恢复到 Sysdate-5 的时间点上,之前的备份将标记为

Obsolete

RMAN> configure retention policy to recovery window of 5 days;

至少需要有三个冗余的备份存在,如果多余三个备份以上的备份将标记为冗余

RMAN> configure retention policy to redundancy 5;

5. 配置多个备份的拷贝数目( backup copies )

如果觉得单个备份集不放心,可以设置多个备份集的拷贝,如: RMAN> configure datafile backup copies for device type disk to 2; RMAN> configure archivelogbackup copies for device type disk to 2;

如果指定了多个拷贝,可以在通道配置或者备份配置中指定多个拷贝地点:

RMAN> configure channel device type disk format

'/u01/backup/%U', '/u02/backup/%U';

RMAN> backup datafile n format '/u01/backup/%U', '/u02/backup/%U';

6. 设置并行备份( ARALLELISM )

RMAN支持并行备份与恢复,也可以在配置中指定默认的并行程度。如:

RMAN> configure device type disk parallelism 4;

指定在以后的备份与恢复中,将采用并行度为 4,同时开启 4个通道进行备份与恢复,当然也可以在 RUN的运行块中手工分配多个通道来决定备份与恢复的并行程度。并行的数目决定了开启通道的个数。如果指定了通道配置,将采用指定的通道,如果没有指定通道,将采用默认通道配置。

还可以在 BACKUP命令中使用指定 FILESPERSET 或者指定(datafile 1,4,5 channel c1 tag=DF1)(datafile 2,3,6 channel c2 tag=DF2)

7. 设置控制文件自动备份 (autobackup on)

通过如下的命令,可以设置控制文件的自动备份

RMAN> configure controlfile autobackup on;

对于没有恢复目录的备份策略来说,这个特性是特别有效的,控制文件的自动备份

发生在任何 backup 或者 copy 命令之后,或者任何数据库的结构改变之后。

可以用如下的配置指定控制文件的备份路径与格式

RMAN> configure controlfile autobackup format for type disk to '%f';

在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,如下配置:RMAN> configure snapshot controlfile name to

'/u01/app/oracle/product/9.0.2/dbs/snapcf_U02.f';

8. 设置备份优化选项 ( optimization )

可以在配置中设置备份的优化,如

RMAN> configure backup optimization on;

如果优化设置打开,将对备份的数据文件、归档日志或备份集运行一个优化算法。

4.2.4 RMAN 会话的设置

set 命令与 configure 命令很相似,但是 set 命令设置不是永久的。set 命令定义只应

用于当前 RMAN会话的设置。

可以用于 RUN代码之外的命令有:

set echo on | off // 显示或关闭 RMAN显示

set DBID dbidn // 指定一个数据库的数据库标识符。

下面的 set 命令只能在 RUN代码中使用:

set newname:

用于 TSPITR 或者数据库复制操作,指定新的数据库文件名,将数据库移动

到新的系统中并且文件名不同的时候可以用此命令。

set maxcorrupt for datafile:

用于定义 RMAN操作失败之前允许的数据块讹误的数量

set archivelog destination:

可以修改存储归档的重做日志 archive_log_dest_1 的目的地。

set 命令和 until 子句:

可以定义数据库时间点恢复操作所使用的具体的时间点、SCN 或者日志序列

号,例:

set until time "to_date('2005/08/01 13:00:00','yyyy/mm/dd hh24:mi:ss')";

set backup copies:

使用该命令可以定义为备份集的每个备份片创建的镜像副本数。

例:

RMAN> RUN{

set maxcorrupt for datafile 3 to 10;

set backup copies = 2;

backup database;

}

4.3 Copy 镜像拷贝与恢复

Copy镜像拷贝命令可以创建数据库数据文件、归档重做日志或者控制文件的精确副本。RMAN 副本与这些文件的区别仅在于名称和(或)位置的区别。功能相当于用户管理的备份

恢复中的热备份。备份副本的好处是恢复比较快,恢复时可以不用拷贝,指定新位置即可。Copy镜像拷贝至少要在 mount 状态下运行。

Copy镜像拷贝可作为增量备份的 Level 0

Oracle10g开始,允许使用单条命令"backup as copy"进行数据库拷贝。

4.3.1 备份

生成数据文件副本:

RMAN> copy datafile 3 to 'd:/backup/datafilecopy/users01.dbf.bak'; RMAN> copy datafile 'd:/oracle/oradata/ora9i/users01.dbf' to

'd:/backup/datafilecop y/users01.dbf.bak';

生成控制文件副本:

RMAN> copy current controlfile to … ;

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP is ON;

备份 ARCHIVELOG 副本:

// 只能一个一个的来备份,而不能指定一个范围

RMAN> copy archivelog 'd:/oracle/oradata/arc/ming_351.arc' to

'd:/oracle/orabackup/arc/ming_351.arc';

并行设置:

1. RMAN> configure device type ... parallelism = 3;

//only 2 channel, one for writting data to disk

2. 手工分配多个通道

3. 在命令中指定多个文件

RMAN> cop y datafile 'xx' to 'xx2', datafile 'yy' to 'yy2', ...;

块检查:

CHECK LOGICAL 选项 MAXCORRUPT参数 V$COPY_CORRUPTION

在复制操作中,Oracle 服务器进程对每个块执行校验和计算以检测是否有块损坏。 RMAN 在还原副本时也要核对校验和。该过程称为物理损坏检测。可以使用NOCHECKSUM 选项取消校验和操作,从而加快复制进程。如果数据库已在维护块校验和,则此选项无效。缺省情况下,禁用逻辑损坏的错误检查。

可以使用 CHECK LOGICAL 选项测试通过了物理损坏检查的数据和索引块,查看它们是否存在逻辑损坏,如行片或索引条目损坏。如果检测到任何块存在逻辑损坏,则将该块记录到服务器进程的警报日志和跟踪文件中。

可以使用 MAXCORRUPT 参数设置逻辑和物理损坏的阈值。只要在某个文件中检测到的逻辑和物理损坏总和低于该值,则 RMAN 命令完成,同时 Oracle 将损坏块的范围植入到V$COPY_CORRUPTION 视图。如果超出 MAXCORRUPT,则该命令终止,并且不植入视图。当并行度比较高时,占用的计算机资源较多,但备份操作完成速度较快。缺省情况下将启用对物理损坏的错误检查。有关在备份过程中遇到的损坏数据文件块的信息将记录在控制文件和警报日志中。

4.3.2 恢复

查看所有的 Copy镜像拷贝:

RMAN> list copy;

数据文件副本还原:

还原时可以 offline 数据文件所属表空间,然后利用 OS拷贝命令恢复副本。

还可以用 restore (datafile num) from datafilecop y 命令来从数据文件副本中还原数据文件,然后再用 recover 命令来恢复。例如:

RMAN> sql "alter database datafile 5 offline"; RMAN> restore (datafile 5) from datafilecop y; RMAN> recover datafile 5;

RMAN> sql "alter database datafile 5 online";

注意,上面的圆括号很重要,如果没有,restore 命令就会执行失败。

4.4 Backup 备份与恢复

Backup 备份命令生成 Backup sets (备份集合),以 oracle 专有的格式保存,由一个完全

的所有的备份片集合构成,构成一个完全备份或增量备份。

4.4.1 BACKUP 备份命令选项

设置标记(TAG)

RMAN> backup database tag='test backup';

限制备份集大小

RMAN> backup database maxsetsize=100M;

只备份新增部分

RMAN> backup incremental level 0 database;

备份控制文件同时备份SPFILE

RMAN> backup current controlfile;

RMAN> configure controlfile autobackup on; // 默认是 off

也可以在备份数据库或者文件的时候加上 include current controlfile 选项。例如:RMAN> backup database include current controlfile;

备份时如果包含了 SYSTEM表空间,将自动备份控件文件和 SPFILE RMAN> backup file 1; 使用自动备份进行恢复:

RMAN> restore spfile/controlfile to '/xx/xx' from autobackup;

备份归档日志(9i)

RMAN> backup archivelog all;

RMAN> backup ... plus archivelog; // 在备份其他时同时备份归档日志

plus archivelog 隐含如下步骤:

? 运行一个 ALTER SYSTEM ARCHIVELOG CURRENT 命令

? 运行 BACKUP ARCHIVELOG ALL 命令。注意如果备份优化被启用,

RMAN只会备份未备份过的日志

? 备份 BACKUP命令中定义的文件

? 运行 ALTER SYSTEM ARCHIVE LOG CURRENT 命令

? 备份所有的剩下的归档日志

备份完后删除归档日志

RMAN> backup ... ARCHIVELOG all delete all input;

修改备份集的保存策略

例如:将备份设置为永久有效

RMAN> backup database keep forever logs|nologs;

设置为有效期 180 天

RMAN> backup database keep until time='sysdate+180';

重写configure exclude / noexclude

通过 configure exclude 可以配置 RMAN 不备份上次备份以来没有发生变化的数据文件。如果要确保 RMAN备份这些数据文件,可以在 backup命令中添加 noexclude 选项。例如:

RMAN> backup database noexclude;

跳过脱机的、不可存取的或者只读的数据文件

RMAN> backup database skip offline skipinaccessible skipreadonly;

强制备份只读的数据文件

RMAN> backup database force;

备份指定周期内没有备份的数据文件

RMAN> backup database not backed up;

RMAN> backup database not backed up since time='sysdate-2';

在备份操作期间检查逻辑讹误

RMAN> backup check logical database; //在检查逻辑错误的同时进行备份

RMAN> backup validate check logical database; //只检查

建立压缩备份集

RMAN> backup as compressed backupset tablespace users

FORMAT='D:/BACKUP/%d_%s.dbf';

4.4.2 RESTORE/RECOVER恢复命令选项

数据库恢复

RMAN> restore/revover database ;

表空间恢复

RMAN> restore/revover tablespace xx ;

只读表空间的恢复

默认情况下,即使丢失了只读的数据文件,RMAN 也不会在执行完全数据库还原操作时候还原只读的数据文件。要在完全恢复期间还原只读的数据文件,就必须在 RESTORE 命令中使用 CHECK READONLY 参数:

RMAN> RESTORE DATABASE CHECK READONLY;

恢复SPFILE/控制文件

使用自动备份恢复 SPFILE/控制文件

RMAN> startup nomount; RMAN> set dbid=153910023

RMAN> restore controlfile from autobackup

RMAN> restore spfile/controlfile to '/xx/xx' from autobackup ;

RMAN> restore controlfile from'/arch/ct_c-2347671489-20060630-00';

联机状态:目标数据库 MOUNT 或 OPEN

RMAN> restore controlfile to 'd:/temp/control01.ctl';

归档重做日志的还原

RMAN> RESTORE ARCHIVELOG ALL;

RMAN> RESTORE ARCHIVELOG FROM LOGSEQ=1 UNTIL LOGSEQ=20; RMAN> RESTORE ARCHIVELOG FROM LOGSEQ=1;

也可以用 SET命令来指定归档日志的还原位置,例如:

RMAN> run

{

set archivelog destination to "d:/temp";

restore archivelog all;

}

数据文件副本还原

RMAN> sql "alter datafile 5 offline";

RMAN> restore (datafile 5) from datafilecop y; RMAN> recover datafile 5; RMAN> sql "alter datafile 5 online";

请注意,上面的圆括号很重要

还原检查与恢复测试

与备份检查一样,还原操作也可以检查是否能正常 restore 或者是否该备份集

是否有效。如::

RMAN> RESTORE DATABASE VALIDATE;

RMAN>VALIDATEBACKUPSET 218;

RMAN> RESTORE DATABASE VALIDATE CHECK LOGICAL ;

从指定的 tag 恢复:

RMAN> RESTORE FROM tag=’xxxx’;

不完全恢复的还原:

1.set until time/SCN/

2.RMAN> restore database until scn 1000;

RMAN>restore database "to_date('2005/08/01 13:00:00','yyyy/mm/dd hh24:mi:ss')"; RMAN> restore database until sequence 100 thread 1;

块级别的恢复

块恢复 Block Media Recovery (BMR),块是恢复的最小单元,通过块可以减少恢复时间,而且数据文件可以在线。恢复块的时候,必须指定具体的块号,如:

RMAN> blockrecoverdatafile 6 block 3;

具体请见 4.7.4 块媒体恢复 Block Media Recovery (BMR)

4.4.3 非归档模式下的 BACKUP 备份与恢复

恢复目录:打开

目标数据库:例程启动,数据库加载,mount 不能 open

因为目标数据库不在归档模式下,所以当进行备份/恢复操作的时候数据库无法打

开。目标数据库只能在 MOUNT 状态不能 Open,所以属于脱机备份。

非归档模式不备份 redo日志,只有完全备份和 readonly/offline表空间和数据文件备份是有意义的,所以非归档模式最好不用 RMAN进行备份,备份语法与归档模式相同,所以这里只做简单介绍。

4.4.3.1 全库备份

例:使用默认的设置脱机全备份的语句

RMAN> shutdown immediate;

RMAN> startup mount;

RMAN> backup database;

RMAN> startup;

例:不使用默认的设置执行脱机备份操作,在备份命令中指定备份选项

RMAN> shutdown immediate;

RMAN> startup mount;

RMAN> run {

allocate channel c1 type disk format '/xxx/ming_%U';

allocate channel c2 type disk format '/xxx/ming_%U';

backup full tag full_db_backup format "/backups/db_t%t_s%s_p%p" (database); backup current controlfile;

release channel c1 ;

release channel c2 ;

}

在这个例子中,我们分配了两个通道,备份位置是在/xxx。默认情况下,如果备份数据

文件 1 (SYSTEM 表空间),控制文件和参数文件也会备份。可以通过下面的命令显示恢复目录中记载的备份集信息: RMAN> list backupset of database;

4.4.3.2 全库备份的恢复

$ rman target /

RMAN> startup mount

RMAN> restore database;

RMAN> recover database;

RMAN> alter database open resetlogs;

4.4.3.3 表空间备份

只有 readonly/offline表空间的备份才有意义。

RMAN> run {

2> allocate channel dev1 type disk;

3> backup

4> tag tbs_users_read_only

5> format "/oracle/backups/tbs_users_t%t_s%s"

6> (tablespace users);

7> }

使用下列命令来显示恢复目录中该表的备份信息:

RMAN> list backupset of tablespace users;

4.4.3.4 表空间备份的恢复

RMAN> RUN{

sql "alter tablespace xx offline immediate;"

restore tablespace xx;

recover tablespace xx;

sql "alter tablespace xx online;"

}

4.4.3.5 备份控制文件

RMAN> run {

2> allocate channel dev1 type "SBT_TAPE";

3> backup

4> format "cf_t%t_s%s_p%p"

5> tag cf_monday_night

6> (current controlfile);

7> release channel dev1;

8> }

注:数据库完全备份将自动备份控制文件。(或者备份时加 include current controlfile) 4.4.4 归档模式下的BACKUP备份与完全恢复

要用 RMAN 进行联机备份操作,数据库就必须位于 ARCHIVELOG 模式。恢复目录必须打开,目标数据库例程必须启动,数据库加载或者打开。

这部分只介绍完全恢复,不完全恢复见下一节。

4.4.4.1 整库备份与恢复备份命令:

只备份数据文件 (如果 configure controlfile autobackup on; 将自动包括控件文件,SPFILE):

RMAN> backup database;

同时备份归档日志,然后将备份后的归档日志删除

RMAN> backup database plus archivelog delete input;

明确指定同时备份控件文件:

RMAN> run{

allocate channel c1 type disk;

sql 'alter system archive log current';

backup full database include current controlfile tag 'dbfull'

format '/u06/oracle/rmanback/full_%u_%s_%p';

sql 'alter system archive log current';

release channel c1;

}

可以用 RMAN的 plus archvielog 选项简化数据库备份:

RMAN> run {

2> backup database

3> format '/xxfull%d_%T_%s'

4> plus archivelog

5> format '/xx/arch_%d_%T_%s'

6> delete all input;

7> }

完全恢复:

目标数据库必须是 mount状态

$ rman target /

RMAN> startup mount

RMAN> restore database;

RMAN> recover database;

RMAN> alter database open;

4.4.4.3 表空间的备份与恢复

备份命令:

RMAN> backup tablespace users ;

例:

RMAN> RUN{

allocate channel c1 type disk;

backup tablespace users tag 'ts_users' format '/oracle/rmanback/ts_%u_%s_%p' ; release channel c1;

}

恢复:

如果我们只丢失了特定的表空间的数据文件,那么我们可以选择只恢复这个表空间,而不是恢复整个数据库。表空间恢复可以在不关闭数据库的情况下进行,只需要将需要恢复的表空间 offline。

RMAN> RUN{

sql "alter tablespace xx offlineimmediate;"

restore tablespace xx;

recover tablespace xx;

sql "alter tablespace xx online;"

}

恢复到一个不同的位置:

RMAN> RUN{

sql "alter tablespace xx offline immediate;"

SET NEWNAME for datafile 1 to '/xx';

restore tablespace xx;

switch datafile 1;

recover tablespace xx;

sql "alter tablespace tbs1 online;"

}

4.4.4.3 数据文件的备份与恢复

备份命令:

RMAN> backup datafile 3;

RMAN> backup datafile 'D:/ORAC LE/ORADATA/TEST/TEST.DB';

恢复命令:

数据文件恢复与表空间恢复类似。假设数据文件号为 5 的文件丢失,文件名是:

'E:/ORACLE/ORADATA/USERS.DBF',那么我们恢复的时候可以指定文件号,也可以指定

文件名。

RMAN> run {

2> allocate channel dev1 type disk;

3> sql "alter tablespace users offline immediate";

4> restore datafile 4; --或者 restore 'E:/ORACLE/ORADATA/USERS.DBF'

5> recover datafile 4;

6> sql "alter tablespace users online";

7> release channel dev1;

8> }

恢复到一个不同的位置:

$ rman target /

RMAN> startup mount

RMAN> RUN{

sql "alter tablespace users offline immediate";

SET NEWNAME for datafile 9 to '/xx/user01.dbf';

restore datafile 9;

switch datafile all;

recover datafile 9;

sql "alter tablespace users online";

}

4.4.4.4 归档重做日志的备份与恢复

备份:

整库备份的同时,备份所有归档 (以及联机日志):

RMAN> backup database plus archivelog;

备份所有归档:

RMAN> backup archivelog all;

备份两天来的归档:

RMAN> backup archivelog from time='sysdate-2' [to time=’xxx’] ;

备份从 sequence 1 开始的归档:

RMAN> backup archivelog from sequence 1[to sequence =’n];

备份没有三次备份的归档:

RMAN> backup archivelog not backed up 3 times;

备份所有归档,然后删除归档:

RMAN> backup archivelog all delete input;

恢复:

显示恢复目录中的归档日志:

RMAN> list backupset of archivelog all;

一般情况下,在 RMAN 的普通恢复过程中,不必恢复归档的重做日志。不过偶尔也需要恢复重做日志,例如我们用 Log Miner 来从归档中查找一些东西。

RMAN命令举例:

RMAN> RESTORE ARCHIVELOG ALL;

RMAN> RESTORE ARCHIVELOG FROM LOGSEQ=1UNTIL LOGSEQ=20; RMAN> RESTORE ARCHIVELOG FROM LOGSEQ=1;

可以用 SET命令来指定归档日志的还原位置,例如:

RMAN> run{

set archivelog destination to "d:/temp";

restore archivelog all;

}

需要注意的是,即使新的归档日志目录不同于默认的归档日志目录,如果 Oracle 判定

日志已存在,也不会恢复该归档日志文件。

4.4.4.5 联机日志的备份

联机日志不能用 RMAN 来备份,可以先将其归档,再备份。为了实现这点,必须在 RMAN 中执行归档命令语句:

RMAN> run {

2> allocate channel dev1 type disk;

3> sql "alter system archive log current";

4> backup (archivelog from time "sysdate-1" all delete input)

5> "format "/oracle/backups/log_t%t_s%s_p%p";

6> release channel dev1;

7> }

上面的脚本可以在执行完一个完整的联机数据库备份后执行,确保所有的重做日志可以

将数据库恢复到一个一致性的状态。

当然,也可以在全库备份时使用 plus archvielog 选项,将自动完成联机日志的备份。

4.4.4.6 控制文件和服务器参数文件的备份与恢复备份:

// 设置文件名格式

RMAN> set controlfile autobackup format for device t ype disk to 'ctl_%F';

1. RMAN> configure controlfile autobackup on; // backup database 时将自动备份

2. RMAN> backup current controlfile;

3. RMAN> backup .... include control file;

4. RMAN> backup file 1; // system datafile 自动备份

恢复SPFILE:

SPFILE(PFILE)的丢失/损坏,对数据库不会产生致命影响,可以从其他方式恢复。不过既然 RMAN 的备份计划中包括了 SPFILE 的备份,那么就可以使用 RMAN 来还原 SPFILE 了。

$ rman target / catalog "rman/rman@db"

RMAN> set dbid=153910023 // SET DBID 这个步骤是不能省略的,否则会报错。 RMAN> restore spfile from autobackup [MAXDAYS 100]; // 或者 restore spfile; RMAN> startup force

或者从某个备份集恢复:

RMAN> restore spfile from backupset bs_num 命令。使用 dbms_backup_restore 包恢复服务器参数文件:

在一些不常见的情况下,我们可能需要直接使用 dbms_backup_restore 包来恢复 spfile。当然这个包也可以用来恢复其它数据,是常规办法都没有用的时候的一个利器。这个包可以在数据库 NOMOUNT 状态下使用。假设我们有一个自动备份文件

C-2600315304-20060829-02,我们需要从这里恢复数据,那么可以通过执行下面的脚本

来完成:

SQL>

DECLARE

DEVTYPE VARCHAR2(256);

DONE BOOLEAN;

BEGIN

DEVTYPE:=DBMS_BACKUP_RESTORE.deviceallocate(NULL);

DBMS_BACKUP_RESTORE.restoresetdatafile;

DBMS_BACKUP_RESTORE.restorespfileto('/back/SPFILE.ORA');

DBMS_BACKUP_RESTORE.restorebackuppiece(

'/back/C-2600315304-20060829-02',DONE=>done);

DBMS_BACKUP_RESTORE.devicedeallocate(NULL);

END;

恢复控制文件:

RMAN> startup nomount; RMAN> set dbid=153910023

RMAN> restore controlfile from autobackup

RMAN> restore controlfile from'/arch/ct_c-2347671489-20060630-00';

联机状态:目标数据库 MOUNT 或 OPEN

RMAN> restore controlfile to 'd:/temp/control01.ctl';

然后再执行恢复数据库的其他步骤:

RMAN> restore database; RMAN> recover database;

RMAN> alter database open resetlogs;

使用 dbms_backup_restore 包恢复控制文件:

SQL>

DECLARE

DEVTYPE VARCHAR2(256);

DONE BOOLEAN;

BEGIN

DEVTYPE:=DBMS_BACKUP_RESTORE.deviceallocate(NULL);

DBMS_BACKUP_RESTORE.restoresetdatafile;

DBMS_BACKUP_RESTORE.restorecontrolfileto('/back/CONTROL01.CTL');

DBMS_BACKUP_RESTORE.restorebackuppiece

('/back/C-2600315304-20060829-00',DONE=>done);

DBMS_BACKUP_RESTORE.devicedeallocate(NULL);

END;

/

4.4.4.7 备份集的备份的备份与恢复

备份:

备份所有备份集:

RMAN> backup backupset all;

备份指定备份集:

RMAN> backup backupset bs_num;

恢复:(这种备份只是增加一个镜像,不用恢复)

主要用于改变备份集的位置,或者创建多个镜像备份,比如将备份集从硬盘备份到磁

带。如果要详细了解,见我在 ITPUB上发的帖子:

https://www.doczj.com/doc/692485132.html,/viewthread.php?tid=1007747&page=1&extra=

4.4.5 归档模式下的不完全恢复

不完全恢复就意味着有数据的丢失。引起不完全恢复的原因有很多,如丢失了联机日志或某个归档日志。另外如果出现了严重损害数据库的用户错误,比如某用户错误的删除了某个重要的数据,那么数据库也要恢复到这个错误操作之前。

不完全恢复会影响整个数据库,需要在 MOUNT 状态下进行。在不完全恢复完成之后,通常需要使用 resetlogs 选项来打开数据库。resetlogs 表示一个数据库逻辑生存期的结束

Jsoup解析HTML

jsoup 简介 Java 程序在解析 HTML 文档时,相信大家都接触过 htmlparser 这个开源项目,我曾经在 IBM DW 上发表过两篇关于 htmlparser 的文章,分别是:从 HTML 中攫取你所需的信息和扩展 HTMLParser 对自定义标签的处理能力。但现在我已经不再使用 htmlparser 了,原因是 htmlparser 很少更新,但最重要的是有了jsoup 。 jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。 jsoup 的主要功能如下: 1. 从一个 URL,文件或字符串中解析 HTML; 2. 使用 DOM 或 CSS 选择器来查找、取出数据; 3. 可操作 HTML 元素、属性、文本; jsoup 是基于 MIT 协议发布的,可放心使用于商业项目。 jsoup 的主要类层次结构如图 1 所示: 图 1. jsoup 的类层次结构 接下来我们专门针对几种常见的应用场景举例说明 jsoup 是如何优雅的进行HTML 文档处理的。 回页首

文档输入 jsoup 可以从包括字符串、URL 地址以及本地文件来加载 HTML 文档,并生成Document 对象实例。 下面是相关代码: 清单1 // 直接从字符串中输入 HTML 文档 String html = " 开源中国社区 " + " 这里是 jsoup 项目的相关文章 "; Document doc = Jsoup.parse(html); // 从 URL 直接加载 HTML 文档 Document doc = Jsoup.connect("https://www.doczj.com/doc/692485132.html,/").get(); String title = doc.title(); Document doc = Jsoup.connect("https://www.doczj.com/doc/692485132.html,/") .data("query", "Java") // 请求参数 .userAgent("I ’ m jsoup") // 设置 User-Agent .cookie("auth", "token") // 设置 cookie .timeout(3000) // 设置连接超时时间 .post(); // 使用 POST 方法访问 URL // 从文件中加载 HTML 文档 File input = new File("D:/test.html"); Document doc = Jsoup.parse(input,"UTF-8","https://www.doczj.com/doc/692485132.html,/"); 请大家注意最后一种 HTML 文档输入方式中的 parse 的第三个参数,为什么需要在这里指定一个网址呢(虽然可以不指定,如第一种方法)?因为 HTML 文档中会有很多例如链接、图片以及所引用的外部脚本、css 文件等,而第三个名为baseURL 的参数的意思就是当 HTML 文档使用相对路径方式引用外部文件时,jsoup 会自动为这些 URL 加上一个前缀,也就是这个 baseURL。 例如 开源软件 会被转换成 开源软件 。 回页首

ORACLE数据备份与数据恢复方案

O R A C L E数据备份与数据恢 复方案 Prepared on 24 November 2020

摘要 结合金华电信IT系统目前正在实施的备份与恢复策略,重点介绍电信业务计算机管理系统(简称97系统)和营销支撑系统的ORALCE数据库备份和恢复方案。 Oracle数据库有三种标准的备份方法,它们分别是导出/导入 (EXP/IMP)、热备份和冷备份。要实现简单导出数据(Export)和导入数据(Import),增量导出/导入的按设定日期自动备份,可考虑,将该部分功能开发成可执行程序,然后结合操作系统整合的任务计划,实现特定时间符合备份规划的备份应用程序的运行,实现数据库的本级备份,结合ftp简单开发,实现多服务器的数据更新同步,实现数据备份的异地自动备份。 关键字:数据库远程异地集中备份 目录

一、前言 目前,数据已成为信息系统的基础核心和重要资源,同时也是各单位的宝贵财富,数据的丢失将导致直接经济损失和用户数据的丢失,严重影响对社会提供正常的服务。另一方面,随着信息技术的迅猛发展和广泛应用,业务数据还将会随业务的开展而快速增加。但由于系统故障,数据库有时可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如做了备份,恢复数据就显得很容易。由此可见,做好数据库的备份至关重要。因此,建立一个满足当前和将来的数据备份需求的备份系统是必不可少的。传统的数据备份方式主要采用主机内置或外置的磁带机对数据进行冷备份,这种方式在数据量不大、操作系统种类单一、服务器数量有限的情况下,不失为一种既经济又简明的备份手段。但随着计算机规模的扩大,数据量几何级的增长以及分布式网络环境的兴起,将越来越多的业务分布在不同的机器、不同的操作平台上,这种单机的人工冷备份方式越来越不适应当今分布式网络环境。 因此迫切需要建立一个集中的、自动在线的企业级备份系统。备份的内容应当包括基于业务的业务数据,又包括IT系统中重要的日志文件、参数文件、配置文件、控制文件等。本文以ORACLE数据库为例,结合金华电信的几个相关业务系统目前正在实施的备份方案,介绍ORACLE数据库的备份与恢复。 二、金华电信ORACLE数据库的备份与恢复方案 由于金华电信IT系统以前只采用逻辑备份方式进行数据库备份,速度较慢并且数据存储管理都很分散,甚至出现备份数据不完整的现象。为了提高备份数据的效率,提供可靠的数据备份,完善备份系统,保证备份数据的完整性,降低数据备份对网络和服务器的影响,对每个IT系统的备份数据进行集中管理,我们对备份工作进行了改进,将逻辑备份与物理备份相结合,在远程建立了一个异地集中、自动在线的备份系统即网络存储管理系统。(这里用到的物理备份指热备份)其具备的主要功能如下:(1)集中式管理 :网络存储备份管理系统对整个网络的数据进行管理。利用集中式管理工具的帮助,系统管理员可对全网的备份策略进行统一管理,备份服务器可以监控所有机器的备份作业,也可以修改备份策略,并可即时浏览所有目录。所有数据可以备份到同备份服

数据库备份方案

《客户名称》备份管理系统设计方案 上海鸿翼数字计算机网络有限公司

目录 1.项目概述 (3) 2.系统需求分析 (4) 1. (4) 2. (4) 1 (4) 2 (4) 1.1系统现状分析 (4) 1.2备份系统风险评估 (4) 1.3备份系统需求分析 (5) 3.系统备份理念 (5) 1 (5) 2 (5) 3 (5) 3.1系统设计指引 (5) 3.2数据保护技术选择 (6) 3.3连续数据保护 (7) 3.4备份管理系统组成 (7) 4.系统备份结构设计 (9) 1 (9) 2 (9) 3 (9) 4 (9)

4.1整体系统架构设计 (9) 5.系统备份方案介绍 (11) 1 (11) 2 (11) 3 (11) 4 (11) 5 (11) 5.1W INDOWS服务器自身备份 (11) 5.2双机热备 (13) 5.3爱数备份 (14) 6.总结 (17) 1.项目概述

上海鸿翼数字计算机网络有限公司将根据《》的网络实际需求,制定一套完整的集数据备份、灾难恢复、服务器整合及虚拟化一身的方案。一个完整的企业数据备份与恢复解决方案就意味着数据安全与性能(机器和网络)的完美结合,一条龙式的服务标准(产品的服务与支持)。所以在选择备份系统时,既要做到满足系统容量不断增加的需求,又要所用的备份方式能够支持多系统平台操作。要达到这些,就要充分使用网络数据存储系统,在分布式网络环境下,通过专业的数据存储软件,配合系统备份及双机备份,结合相应的硬件和存储设备,对网络的数据备份进行集中管理,从而实现自动化备份、文件归档、数据分级存储和灾难恢复。 2.系统需求分析 1.1系统现状分析 《》网络基础结构是基于Windows平台,现在拥有X台服务器。《》的文档管理系统包含了文件服务器、转档服务器、数据库服务器等企业信息管理系统,为企业的发展提供了强有力的信息化支持。主要数据库包含了Microsoft SQL Server、Oracle、DB2等。 1.2备份系统风险评估 《》的信息系统管理人员十分重视数据的保护,在没有备份软件的情况下,已经采用了重要数据镜像备份、服务器系统镜像备份等常规保护方法,为企业的数据财产提供了安全的保障。但是以上方法很难实现快速备份和灾难后的迅速恢复,很难保证业务的连续性。 根据上面的备份管理系统的风险评估,建议《》使用ESioo安全备份专家软件,配合Windows自带备份和双机虚拟备份,并重新设计相关备份的恢复策略,达到可以快速恢复数据备份和快速恢复文档管理系统备份的水平,从而提高整个企业的数据安全级别。

Linux下Oracle 11g数据库全库自动备份(EXPDP)

使用EXPDP方式备份整个实例 本教程可使用system账户将整个实例备份(包含空表),并自动删除超过6天的历史数据。 1、r oot用户登录服务器 mkdir -p /backup/oracledata#新建Oracle数据库备份目录 chown -R oracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的 oracle用户(用户oracle与用户组oinstall是在安装 Oracle数据库时设置的) 2、创建目录对象 因为使用expdp命令需要使用到目录对象(directory),所以首先需要创建目录对象,并赋予某个用户对目录对象的操作权限。 操作步骤如下: su – oracle #切换到oracle用户 sqlplus / as sysdba#切换到SQLPLUS环境 执行以下命令: create directory expdp_bak_dir as '/backup/oracledata'; #指定EXPDP输出目录 grant create any directory to system; #授予system权限 3、编辑自动备份脚本 vi /backup/oracledata/ordatabak.sh #新建文件,输入以下代码 #/bin/sh export ORACLE_SID=shuwei export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export NLS_LANG=american_america.zhs16gbk export DATA_DIR=/backup/oracledata now=` date +%Y%m%d%H%M%S ` dmpfile=db$now.dmp echo start exp $dmpfile ... /u01/app/oracle/product/11.2.0/dbhome_1/bin/expdp system/123456@shuwei DUMPFILE=$dmpfile DIRECTORY=expdp_bak_dir full=y echo "Delete the file bakup before 6 days..." find /backup/oracledata/ -mtime +6 -name "*.dmp" -exec rm -rf '{}' \; echo "Delete the file bakup successfully. "

网页数据抓取分析

1、抓取网页数据通过指定的URL,获得页面信息,进而对页面用DOM进行 NODE分析, 处理得到原始HTML数据,这样做的优势在于,处理某段数据的灵活性高,难点在节算法 需要优化,在页面HTML信息大时,算法不好,会影响处理效率。 2、htmlparser框架,对html页面处理的数据结构,HtmlParser采用了经典的Composite 模式,通过RemarkNode、TextNode、TagNode、AbstractNode和Tag来描述HTML页面 各元素。Htmlparser基本上能够满足垂直搜索引擎页面处理分析的需求,映射HTML标签,可方便获取标签内的HTML CODE。 Htmlparser官方介绍: htmlparser是一个纯的java写的html解析的库,它不依赖于其它的java库文件,主要用于改造或提取html。它能超高速解析html,而且不会出错。现在htmlparser最新版本为2.0。毫不夸张地说,htmlparser就是目前最好的html解析和分析 的工具。 3、nekohtml框架,nekohtml在容错性、性能等方面的口碑上比htmlparser好(包括htmlunit也用的是nekohtml),nokehtml类似XML解析原理,把html标签确析为dom, 对它们对应于DOM树中相应的元素进行处理。 NekoHTML官方介绍:NekoHTML是一个Java语言的HTML扫描器和标签补全器(tag balancer) ,使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。这个解析 器能够扫描HTML文件并“修正”许多作者(人或机器)在编写HTML文档过程中常犯的错误。 NekoHTML能增补缺失的父元素、自动用结束标签关闭相应的元素,以及不匹配的内嵌元 素标签。NekoHTML的开发使用了Xerces Native Interface (XNI),后者是Xerces2的实现基础。由https://www.doczj.com/doc/692485132.html,/整理

系统运维管理-备份与恢复管理(Ⅰ)

系统运维管理备份与恢复管理(Ⅰ) 版本历史 编制人: 审批人:

目录 目录 (2) 一、要求内容 (3) 二、实施建议 (3) 三、常见问题 (4) 四、实施难点 (4) 五、测评方法 (4) 六、参考资料 (5)

一、要求内容 a)应识别需要定期备份的重要业务信息、系统数据及软件系统等; b)应建立备份与恢复管理相关的安全管理制度,对备份信息的备份方式、备份频度、存储介质和保存期等进行规定; c)应根据数据的重要性和数据对系统运行的影响,制定数据的备份策略和恢复策略,备份策略须指明备份数据的放置场所、文件命名规则、介质替换频率和将数据离站运输的方法; d)应建立控制数据备份和恢复过程的程序,记录备份过程,对需要采取加密或数据隐藏处理的备份数据,进行备份和加密操作时要求两名工作人员在场,所有文件和记录应妥善保存; e)应定期执行恢复程序,检查和测试备份介质的有效性,确保可以在恢复程序规定的时间内完成备份的恢复; f)应根据信息系统的备份技术要求,制定相应的灾难恢复计划,并对其进行测试以确保各个恢复规程的正确性和计划整体的有效性,测试内容包括运行系统恢复、人员协调、备用系统性能测试、通信连接等,根据测试结果,对不适用的规定进行修改或更新。 二、实施建议 制定数据备份的规定,包括备份的策略、计划和内容等信息,备份策略的制定要结合本身数据量多少、数据更新时间等要求进行制定,对备份的数据要进行定期的恢复性测试,保证该备份的可用性。数据的恢复管理不仅仅是灾难恢复的计划,应当针对不同的数据恢复要求和恢复的内容制定多种适当的恢复策略,并定期对策略的有效性进行测试。

2016年9月1日rman备份恢复脚本

rman备份恢复 1.通过rman备份文件恢复spfile 2.通过rman备份文件恢复controlfile 3.通过rman备份文件恢复datafile 4.利用恢复回来的controlfile和datafile生成redolog 5.测试交易是否存在,并全备 我系统环境所有的文件如下: [oracle@fowaydbs]$ pwd /opt/oracle/10g/dbs [oracle@fowaydbs]$ ls initdw.ora init.ora [oracle@fowaydbs]$ls /opt/oracle/oradata 已没有任何资料 [oracle@fowaydbs]$ls /opt/oracle/admin 已没有任何资料 [oracle@fowaydbs] ls /opt/oracle/flash_recovery_area/ ORCL [oracle@fowaydbs]ls /opt/oracle/flash_recovery_area/ORCL/backupset/

2008_07_18 [oracle@fowaydbs]ls /opt/oracle/flash_recovery_area/ORCL/backupset/2008_07_ 18/ o1_mf_ncsnf_TAG20080718T203240_482fls2h_.bkp o1_mf_nnndf_TAG20080718T203240_482fkb0k_.bkp 在我这台电脑上, ,系统中所有的ORCL相关的数据文件,参数文件,日志文件,控制文件全部不在了, 没有其他可用的备份文件了,只有rman备份的文件在,这可怎么办呢? 没办法只能恢复了,可怎么恢复呢? 要恢复数据文件用rman备份? 能吗? 当然不能了,因为restore 必须在mount or open状态下. 参数文件,控制文件都没有怎么mount? 要mount必须有参数文件,控制文件,为此我们必须解决这2个难题了. 在解决难题前先准备ORCL的必须的目录: [oracle@fowaydbs]mkdir /opt/oracle/oradata/orcl

备份和恢复策略

备份和恢复策略 备份策略 如下的备份方案是可行及有效的: ●冷备份 ●全部和部分卸出(数据)(exp/imp) ●以上方法可以组合使用(建议) 备份方案的优缺点: 1 冷备份 备份过程: 关闭数据库,拷贝所有数据库文件(包括控制文件,重作日志文件,数据文件) 恢复过程:将原来数据库数据文件全部删除(控制文件,重作日志文件,数据文件),将备份拷贝回相应目录,数据库重起即可用。 优点:备份方法简单,可靠,速度快且安全的备份。 缺点:只能恢复到备份时间点,有可能有数据丢失,备份时数据库必须关闭,不能恢复单个表或用户。 2 全库倒出/部分倒出(EXP) 备份过程: 采用oracle 工具exp 将全库数据(或部分用户数据)逻辑卸出。 恢复过程: 使用oracle 工具imp将数据倒入。可以进行全库,用户或表级的倒入。 优点: 备份安全、有效。可以从整个数据库备份中能够恢复单个表,当恢复时,能对表重新配置和清除碎块,能方便地在不同的操作系统之间移动数据,能从一个用户移动数据到另一个。备份方法简单,无须关闭数据库。备份时间对于中小规模的数据库可以接受,恢复方式灵活,可以根据故障情况灵活进行恢复,有可能节省大量恢复时间。 缺点:无法做到时间点恢复,有可能丢失部分数据,恢复时间较慢,备份频度要求较高,一般要求备份时间和生产时间分开,否则备份时影响性能。 3 备份后数据的存放 (1)、存放在本机(主机)。 优点:备份和导出速快。主要用于短时间数据存储、或数据转存。

缺点:主机容量上的限制、和主机数据在一起存在安全性问题。 (2)、存放在其它PC机上。 优点:与主机容量无关,数据异地保存有利于用户数据安全。 缺点:备份和导出与网络速度有关。 (3)、备份到磁带上。 优点:容量大,存储数据安全,适用数据长期保存。 缺点:备份速度慢,数据可先备份到磁盘上,经过压缩后 tar 到磁带上。 4 数据的保存时间 (1)、每天用EXP 进行全库导出备份,全库导出的数据可保存一周。 (2)、每月进行数据冷备份,冷备份的数据可按时间保存两份以上。 (3)、每月底进行保存一份全库导出的数据,备份数据可保存一年左右,它主要用于历史数据导入查询用。 备份操作例子: 1、每月做一次全库冷备份。 操作事例: (1)、录登主机,关闭数据库 $svrmgrl svrmgrl>CONNECT INTERNAL svrmgrl> shoudown (2)、拷贝所有数据库文件(包括控制文件,重作日志文件,数据文件) $cp -r /ctaisdata1/* /ctaisdump/cdump/ctaisdata1/ $cp -r /ctaisdata2/* /ctaisdump/cdump/ctaisdata2/ $cp -r /ctaisdata3/* /ctaisdump/cdump/ctaisdata3/ 或建立批处理 ctais_dump.sh cp -r /ctaisdata1/* /ctaisdump/cdump/ctaisdata1/ cp -r /ctaisdata2/* /ctaisdump/cdump/ctaisdata2/ cp -r /ctaisdata3/* /ctaisdump/cdump/ctaisdata3/ 用chmod 777 ctais_dump.sh 变为可执行文件 在ROOT 用户运行

数据库备份策略说明

数据库备份策略说明 1、备份目的 保障项目数据安全,防止服务器故障导致数据无法恢复的情况。 2、备份策略 综述:所有mysql实例已经实现了master、slave结构,我们备份一般在slave服务器进行。部分备份完成之后,会上传一份数据到存储机或者其他服务器进行异机及异地备份,另外备份保存一份。 一、备份方式 1、本机备份 该备份模式,适合于快速恢复数据。比如:误操作删除数据等 2、异机容灾备份 该备份模式,能比较好的规避单机故障问题。 3、异地容灾备份 该备份模式,规避大规模IDC故障(比如:火灾、地震、空调故障等)、数据安全问题 二、备份频率 1、主站www、bbs、blog等核心项目,进行每天完整备份。结合各项目数据库实例master 与slave结构,以及当前slave服务器负载和带宽情况,采用crontab定时备份。 2、对于跟商业有关的项目,备份策略同核心项目。 3、非核心项目90%备份策略采用核心项目备份机制,其他采用每周备份策略。 4、对于近期大规模更新数据或者数据库结构变更的数据库实例,采用人员干预备份模式,即走备份申请流程。 三、备份准备 1、创建备份目录 /opt/phpdba/backup/database 2、脚本编写 详见第四项,备份脚本 3、加入计划任务crontab 4、检查备份情况 5、添加每天检查列表 四、备份脚本

#!/bin/sh LogFile=db$(date +%y%m%d).log week=`date +%w` cd /opt/phpdba/backup/database for DBName in database do NewFile=db$DBName$(date +%y%m%d).tar.gz OldLogFile=db$(date -d '7 days ago' +%y%m%d).log if [ -f $OldLogFile ] then rm -f $OldLogFile >> $LogFile 2>&1 echo "[$OldLogFile]Delete Old log File Success!" >> $LogFile else echo "[$OldLogFile]No Old log File!" >> $LogFile fi case $week in 1) date=`date -d '56 days ago' +%y%m%d` OldFile=db$DBName$date.tar.gz if [ -f $OldFile ] then rm -f $OldFile >> $LogFile 2>&1 echo "[$OldFile]Delete Old File Success!" >> $LogFile else echo "[$OldFile]No Old Backup File!" >> $LogFile fi ;; 2|3|4|5|6|0) date=`date -d '7 days ago' +%y%m%d` OldFile=db$DBName$date.tar.gz if [ -f $OldFile ] then rm -f $OldFile >> $LogFile 2>&1 echo "[$OldFile]Delete Old File Success!" >> $LogFile else echo "[$OldFile]No Old Backup File!" >> $LogFile fi ;; esac if [ -f $NewFile ] then echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile else

ORACLE最简单有效的备份恢复方案

ORACLE 最简单有效的备份恢复方案 ORACLE备份分两种,1.逻辑备份;2.物理备份; 逻辑备份又分两种:传统的exp备份;10g开始支持的expdp数据泵备份; 物理备份主要就是RMAN备份; 最基本的原则是:这些逻辑或物理备份和数据库文件必须放在不同的硬盘上;否者一损俱损;备份就没多大意义了; 如果数据库不是很大,比如在50G以下,那么我们就考虑一些傻话化的全备方案 我现在的备份方案是:两个逻辑备份和RMAN 备份全部用上; 1.传统dmp逻辑备份和恢复 1.1传统dmp逻辑备份,这个是最简单的备份方法; 现在我提供一个简单的脚本: 1.1.1首先建立一个bat文件,名字叫:exp_backup.bat 内容是: set oracle_username=%1 set oracle_password=%2 set local_tnsname=%3 set url=%oracle_username%/%oracle_password% if not %local_tnsname% == "" set url=%url%@%local_tnsname% if exist %oracle_username%_old.dmp del %oracle_username%_old.dmp if exist %oracle_username%_old.log del %oracle_username%_old.log if exist %oracle_username%.dmp ren %oracle_username%.dmp %oracle_username%_old.dmp if exist %oracle_username%.log ren %oracle_username%.log %oracle_username%_old.log exp %url% file=%oracle_username%.DMP log=%oracle_username%.LOG 该脚本是一个通用的最简单的exp脚本; 意思就是:备份之间,把以前的备份文件修改名字,后面加上_old ,如果本来就有old文件,就删除之;之后,就开始备份;备份的文件目录和该脚本一致(这样做最简单); 所以总是会出现一新一旧两个文件;当然只要最新的就行了,所以理论上只要一份文件; 但是考虑有可能备份的时候突然报错,这样old文件还在,将就着使用,否者新的是坏的,旧的也没了;

系统备份策略

系统备份策略 1.为什么要做备份 备份是防止用户数据丢失的重要手段,备份的最终目的是确保数据的安全,我们知道以下各种灾难总是难以避免: Hardware(disk) Failure 尽管现在多数存贮设备都具有冗余功能,但也不能确保不出现数据丢失(例如种种原因出现两个以上的硬盘同时损坏等) Database /Application Corruption 数据库和应用中总是存在bug,或是由于管理上的疏漏而出现数据库表空间和堆栈等溢出而导致数据被破坏等等。 Administrator Error 系统管理员在日常维护过程中总是难免会犯错而出现误删数据等。 User Error 用户的错误往往也会使数据需要恢复到从前某个时段的状态。 Site Disater 生活中有很多不可抗因素和自然灾害如:火灾,洪水,地震,雷击等会造成数据彻底丢失。 2. 备份什么 操作系统的文件及配置 硬盘空间文件系统的划分信息 用户profile及个人目录 应用及数据库系统的执行代码及文件 用户数据 3.备份的分类方式 OS/Database Backup Incremental/Full Backup Online/Offline Backup Local/Network Backup 4. 典型的系统备份策略

数据库数据通常时刻在变,因而要每天作备份,而应用系统及OS 通常在其本身版本升级,打补丁,配置调整后要重做全备份。总之原则是,当系统信息全部丢失时,依靠手头的备份能够以最快的速度进行恢复,且信息损失最少或没有损失。 为了达到这一目的,我们在备份时一定要注意做到: ①组织一种适合自己实际情况的备份策略。 ②将磁带存储在异地。 ③定期清洗磁头。 ④不要使用有故障的磁带。 一般来说,我们有三种不同的备份策略,这三种备份策略的区别在于备份所使用磁带的数量不同,这三种策略分别是: ①三带轮换策略:适合小型系统,能保存三个星期内的网络数据。 如果采用三带轮换策略,我们必须拥有三盘磁带,称为磁带1、磁带2、磁带3。在第一个星期的星期一我们用磁带1作一次完全备份,然后在剩下的几天作部分备份(只备份新的或改动过的文件〕。在第二个星期的星期一我们用磁带2作一次完全备份,在剩下的几天作部分备份。同理,第三个星期用磁带3备份。在第四个星期时,我们将取出磁带1,重新开始新一轮备份。 ②六带轮换策略:能保存两个星期内的数据。 如果采用三带轮换策略,这就意味着我们从星期一到星期四的每天都分别使用一盘磁带进行部分备份,然后再用一盘在星期五作完全备份,剩下那盘留在下个星期五作完全备份。这样我们就可以存储最近两个星期的所有数据。这个备份策略可以用下图表示: 星期一 星期二 星期三 星期四 部分备份

Linux下Oracle数据库自动备份脚本

Linux下Oracle数据库自动备份脚本 1.用PL/SQL登录数据库 2.设置空表可导出 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; --然后执行查询出来的语句 3.查看数据库的字符集 查看database中的NLS_CHARACTERSET的值 a、select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET'; b、select * from v$nls_parameters where parameter='NLS_CHARACTERSET'; PARAMETER VALUE ----------------- ---------- NLS_CHARACTERSET ZHS16GBK 4.登录linuxOracle服务器 5.创建investDBbak目录(目录随意创建,在脚本中修改即可) mkdirinvestDBbak 6.在investDBbak下创建DBBak目录、Shell目录 mkdirDBBak mkdirshell 7.在shell目录下创建invest_test_dbbak.sh文件 vi invest_test_dbbak.sh 8.复制内容 #!/bin/sh export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export DATA_DIR=/home/oracle/investDatabak/dbbak/data export LOGS_DIR=/home/oracle/investDatabak/dbbak/log export DELTIME=`date -d "15 days ago" +%Y%m%d` export BAKUPTIME=`date +%Y%m%d%H%M%S` export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK mkdir -p $DATA_DIR mkdir -p $LOGS_DIR echo "Starting bakup..." echo "Bakup file path $DATA_DIR/$BAKUPTIME.dmp"

基于内容相似度的网页正文提取

—102 — 基于内容相似度的网页正文提取 王 利1,刘宗田1,王燕华2,廖 涛1 (1. 上海大学计算机科学与工程学院,上海 200072;2. 上海海洋大学信息学院,上海 201306) 摘 要:提出一种将复杂的网页脚本进行简化并映射成一棵易于操作的树型结构的方法。该方法不依赖于DOM 树,无须用HTMLparser 包进行解析,而是利用文本相似度计算方法,通过计算树节点中文本内容与各级标题的相似度判定小块文本信息的有用性,由此进行网页清洗与正文抽取,获得网页文本信息,实验结果表明,该方法对正文抽取具有较高的通用性与准确率。 关键词:网页正文抽取;网页映射;网页清洗;文本相似度 Web Page Main Text Extraction Based on Content Similarity WANG Li 1, LIU Zong-tian 1, WANG Yan-hua 2, LIAO Tao 1 (1. School of Computer Science and Engineering, Shanghai University, Shanghai 200072; 2. School of Information Technology, Shanghai Fisheries University, Shanghai 201306) 【Abstract 】This paper proposes a method of simplifying complex Web page script and mapping it into tree structure easy to operate. It does not depend on DOM tree, and does not need utilize htmlparser bag to parse. By calculating text similarity, it calculates the similarity between the content of tree node and headings of different levels to determine the usefulness of the text information, cleans the Web page and extracts the content information. Experimental results show that the method has better universal property and accuracy rate in main text extraction. 【Key words 】Web page main text extraction; Web page mapping; Web page cleaning; text similarity 计 算 机 工 程 Computer Engineering 第36卷 第6期 Vol.36 No.6 2010年3月 March 2010 ·软件技术与数据库· 文章编号:1000—3428(2010)06—0102—03 文献标识码:A 中图分类号:TP393 1 概述 随着Internet 的飞速发展,网络上的信息呈爆炸式增长。 网页己经成为Internet 上最重要的信息资源。各种网页为人们提供了大量可供借鉴或参考的信息,成为人们日常工作和生活必不可少的一部分。然而,网页上的信息经常包含大量的噪声,如广告链接、导航条、版权信息等非网页主题信息的内容,页面所要表达的主要信息经常被隐藏在无关的内容和结构中,限制了Web 信息的可利用性。本文主要对网页上的这些噪声进行滤除,并抽取网页正文信息,即网页清洗。它是Web 文本分类、聚类、文本摘要等文本信息处理的基础,网页正文抽取的效果直接影响到文本信息处理的效果。 本文的方法首先抽取出HTML 页面中的title 及各级标题,再对网页进行标准化预处理,然后建立一种新的树型结构,HTML 中的所有正文信息都包含在这棵树的节点中。利用这种树型结构可以方便地清洗网页中的噪声、抽取出网页中的正文信息。在抽取网页正文信息时,较大的文本块根据文本的长度极易抽取出,而对于只有小文本块的节点,由于页面中的title 及各级标题高度概括了该网页的主要内容,因此可以根据各节点内容与title 、各级标题的相似度来判定该节点的信息文本是否为有用文本,只要该小块文本与title 或某个子标题的相似度大于设定阈值,就判定其为有用信息。 2 相关工作 虽然网页正文提取是Web 文本挖掘中的一个重要问题, 但相关研究并不多。目前对网页进行噪声过滤与信息自动抽取的方法主要有两大类:(1)针对单一页面进行处理。根据所处理页面的内容特征、可视信息等应用一些启发性规则去除页面的噪音,抽取出页面内容。这类方法对每一个待处理的网页进行同样的处理,对于抽取通过模板产生的网页集效率较低。(2)针对同一站点中页面的一般模式进行处理。这种方法是基于一个或多个网站中的页面集进行模板检测的,但局限于由同一个模板生成的网页集,直接影响清洗的自适应性。 文献[1]的研究仅限于某些特定站点,在这些站点中根据合并不同页面生成的DOM 树来标记页面中哪些是有用信息哪些是噪声,并通过这些标记达到页面清洗的目的。文献[2]根据HTML 标签生成树,通过分析同一网站下网页之间模板的相似性来识别数据区域。文献[3]基于DOM 规范,提出了基于语义信息的STU-DOM 树模型,将HTML 文档转换为STU-DOM 树,并对其进行基于结构的过滤和基于语义的剪枝,完成了对网页主题信息的抽取。文献[4]采用基于标记窗的方法并利用Levenshtein Distance 公式计算标记窗中字符串与标题词之间的距离,从而判断该字符串是否为正文信息,该方法容易导致很多噪声无法滤除。 通过分析可知,现有的网页清洗方法大多基于DOM 树并用HTMLparser 程序包[5]对其进行解析,这种方法效率不高,而且依赖于第三方包。对此本文提出了一种简单的树型结构,在这棵树中保存了正文信息,同时消除了一些无用信息,并对各节点进行了简化,带来了操作上极大的便利。另外,在这棵树中可以通过深度搜索子节点来消除传统方法中不能处理网页正文部分被存放在多个td 中的情况以及不能处 基金项目:国家自然科学基金资助项目(60575035, 60975033);上海市重点学科建设基金资助项目(J50103);上海大学研究生创新基金资助项目(SHUCX092162) 作者简介:王 利(1984-),男,硕士研究生,主研方向:文本挖掘,事件本体;刘宗田,教授、博士生导师;王燕华,硕士研究生;廖 涛,博士研究生 收稿日期:2009-08-10 E-mail :wonglee07@https://www.doczj.com/doc/692485132.html,

备份与恢复策略

***有限公司编号 备份与恢复策略实施日期2018/12/1 页数1/2 1.0 目的 制定一个适合的行之有效的资料备份和恢复策略,来解决资料丢失或损坏时,能及时有效地恢复应用程式和资料正常运行和访问。 2.0 范围 本公司服务器资料和备份和恢复。 3.0 职责 系统管理员负责数据的备份和恢复。 4.0 细责 4.1备份策略: 日备份:周一至周五每天PM10:30开始备份,日备份保留最近一周的数备份。 周备份:每周的周六PM10:30开始备份,周备份保留最近4周的备份。 月备份:每月的30号PM10:30备份(2月份为27号PM10:30备份),月备份保留最近12个月的备份。 年备份:每年的第12个月的月备份为该年的年备份,年备份保留最近3年的数据。 4.2 服务器内容备份清单 编号服务器名称备份内容介质 1 U8Server 用友数据库本地硬盘 2 U9Server 共享文件本地硬盘 4.3 备份方式及使用备份软件:所有备份为完全备份。用友数库使用windows自动的 Ntbackup软件备份,文件备份为使用windows2003系统自动的VSS做卷影备份。

***有限公司编号 备份与恢复策略实施日期2018/12/1 页数2/2 4.4 数据恢复策略 4.4.1 定期的资料恢复测试:对于备份的资料,为确保资料的可用性与完整性,规定资料恢复测试周期为三个月1次。包括用户放在服务器上共享文件夹的数据和用友数库的数据。如果成功,则操作人员在恢复记录上签字确认,否则操作人员应分析失败原因,找出解决办法并避免失败再次发生。 4.4.2 日常资料的恢复:收到用户的恢复资料的申请时,首先得到IT经理签名,然后依照恢复需求,对数据进行恢复。 制定确认审批 ***

数据库备份策略说明讲课稿

数据库备份策略说明

数据库备份策略说明 1、备份目的 保障项目数据安全,防止服务器故障导致数据无法恢复的情况。 2、备份策略 综述:所有mysql实例已经实现了master、slave结构,我们备份一般在slave服务器进行。部分备份完成之后,会上传一份数据到存储机或者其他服务器进行异机及异地备份,另外备份保存一份。 一、备份方式 1、本机备份 该备份模式,适合于快速恢复数据。比如:误操作删除数据等 2、异机容灾备份 该备份模式,能比较好的规避单机故障问题。 3、异地容灾备份 该备份模式,规避大规模IDC故障(比如:火灾、地震、空调故障等)、数据安全问题 二、备份频率

1、主站www、bbs、blog等核心项目,进行每天完整备份。结合各项目数据库实例master与slave结构,以及当前slave服务器负载和带宽情况,采用crontab 定时备份。 2、对于跟商业有关的项目,备份策略同核心项目。 3、非核心项目90%备份策略采用核心项目备份机制,其他采用每周备份策略。 4、对于近期大规模更新数据或者数据库结构变更的数据库实例,采用人员干预备份模式,即走备份申请流程。 三、备份准备 1、创建备份目录 /opt/phpdba/backup/database 2、脚本编写 详见第四项,备份脚本 3、加入计划任务 crontab 4、检查备份情况 5、添加每天检查列表 四、备份脚本 #!/bin/sh LogFile=db$(date +%y%m%d).log week=`date +%w` cd /opt/phpdba/backup/database for DBName in database do NewFile=db$DBName$(date +%y%m%d).tar.gz OldLogFile=db$(date -d '7 days ago' +%y%m%d).log if [ -f $OldLogFile ] then rm -f $OldLogFile >> $LogFile 2>&1 echo "[$OldLogFile]Delete Old log File Success!" >> $LogFile

相关主题
文本预览
相关文档 最新文档