执行数据库恢复案例

1、日志文件丢失

 

i.查看告警日志:

[oracle@wyzcwyzc10g]$ tail -F /u01/oracle/admin/wyzc10g/bdump/alert_wyzc10g.log

 

Ii.查看日志文件状态:

SQL> selectgroup#,status from v$log;

    GROUP# STATUS

--------------------------

         1 CURRENT

         2 UNUSED

         3 UNUSED

 

Iii.切换日志文件:

alter system switchlogfile;

此时再次查看告警日志:

[oracle@wyzcwyzc10g]$ tail -F /u01/oracle/admin/wyzc10g/bdump/alert_wyzc10g.log

多出来的日志如下:

Thu Sep 08 09:02:51CST 2016

Thread 1 cannotallocate new log, sequence 2

Private strand flushnot complete

  Current log# 1 seq# 1 mem# 0:/u01/oracle/oradata/wyzc10g/redo01.log

Thu Sep 08 09:02:53CST 2016

Thread 1 advanced tolog sequence 2 (LGWR switch)

  Current log# 2 seq# 2 mem# 0:/u01/oracle/oradata/wyzc10g/redo02.log

 

而日志文件的状态如下:

SQL> selectgroup#,status from v$log;

    GROUP# STATUS

--------------------------

         1 ACTIVE

         2 CURRENT

         3 UNUSED

 

Iv.解决方法

触发CKPT:

SQL> alter systemcheckpoint;

System altered.

 

再次查看日志文件状态:

SQL> selectgroup#,status from v$log;

    GROUP# STATUS

--------------------------

         1 INACTIVE

         2 CURRENT

         3 UNUSED

 

清空日志文件

SQL> alterdatabase clear logfile group 1;

Database altered.

 

再次查看日志文件,已恢复

SQL> ho ls/u01/oracle/oradata/wyzc10g/redo*

/u01/oracle/oradata/wyzc10g/redo01.log  /u01/oracle/oradata/wyzc10g/redo02.log  /u01/oracle/oradata/wyzc10g/redo03.log

 

总结如下:

根据状态进行处理

UNUSEDINACTIVE   -->   alter database clear logfile group <>;

ACTIVE-->  alter system checkpoint;

                     alter database clearlogfile group <>;

CURRENT  -->   alter system switch logfile;

                            alter databaseclear logfile group <>;

 

如何知道日志文件丢失了呢,除了查看上述告警日志。可以用操作命令直接查看

SQL> selectmember from v$logfile;

 

MEMBER

--------------------------------------------------------------------------------

/u01/oracle/oradata/wyzc10g/redo03.log

/u01/oracle/oradata/wyzc10g/redo02.log

/u01/oracle/oradata/wyzc10g/redo01.log

而后直接查看相应路径下的文件是否丢失

 

2、数据文件丢失

 

i.备份整个数据库

[oracle@wyzcwyzc10g]$ rman target /

 

RMAN> backupdatabase;

 

Ii.system undo 丢失

Shutdown immediate,关不掉->shutdownabort

Startupmount

Restoredatafile <>;

Recoverdatabase;

Alterdatabase open;

 

Iii.其他数据文件丢失

在RMAN中

Run {

Sql'alter tablespace <> offline immediate';

Restoretablespace <>;

Recovertablespace <>;

Sql'alter tablespace <> online';

}

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值