8->ORACLE四种关闭方式

71 篇文章 0 订阅
19 篇文章 2 订阅
1、shutdown normal 

   正常方式关闭数据库

只要数据库中存在事物未提交 ,连接没有中断就一直等 等到所有事物提交 所有连接终端关闭 才停止数据库




2、shutdown immediate 
   立即方式关闭数据库。 
   在plsql中执行shutdown immediate,数据库并不立即关闭 缓存的数据会被写入数据库,未提交的事物会回滚, 
   而是在 Oracle执行某些清除 工作后才关闭(终止会话、释放会话资源), 
   当使用 shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。 


3、shutdown abort 
   直接关闭数据库,正在访问数据库的会话会被突然终止 ,缓存的数据不会被写入数据库,未提交的事物也不回滚, 
   如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长時間 【因为需要日志重做 进行数据恢复】

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


4 shutdown transactional

直达所有的事物完成才关闭数据库


shutdown abort 的时候,跟kill 进程是一样的效果
数据库立即关闭,这个时候文件状态可能不一致
因为正常关闭数据库会同步校验各文件,使得重新启动的时候文件时间点一致并且不用进行崩溃恢复

若检查点信息一致,则做崩溃恢复
若检查点信息不一致(正好在更新文件头)则需要做介质恢复

这些问题都好处理,最怕的问题是这个时候系统有大量IO,结果这样造成写的突然中断,碰巧造成文件块的逻辑坏块,那麻烦比较大一些,尤其是系统表空间的block损坏


虽然shutdown abort 出错的几率很小,1000个人可能只有一个人碰到,但是我们还是要小心。
正确的处理流程是,shutdown immediate ,若数据库迟迟不能down下来,在os上观察IO状况,几乎没有io的时候,另开一窗口shutdown  abort ,几乎不会出问题了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
xxl-job是一个开源的分布式任务调度框架,它可以帮助我们实现任务的动态调度、分布式执行以及任务监控等功能。而针对Oracle数据库的任务调度,我们可以通过一些配置和编码来实现。 首先,我们需要在xxl-job-admin管理后台中创建一个任务,并设置任务的执行器类型为“BEAN模式”。然后,在执行器的代码中,我们可以通过编写Java代码来连接Oracle数据库,并执行我们所需要的任务逻辑。 下面是一个示例的Java代码片段,用于在xxl-job中执行一个Oracle数据库任务: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class OracleJobExecutor { public static void main(String[] args) throws ClassNotFoundException, SQLException { // 加载Oracle数据库驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); // 连接Oracle数据库 Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "username", "password"); // 执行SQL查询 PreparedStatement statement = connection.prepareStatement("SELECT * FROM your_table"); ResultSet resultSet = statement.executeQuery(); // 处理查询结果 while (resultSet.next()) { // 获取数据并进行相应的处理 String column1 = resultSet.getString("column1"); String column2 = resultSet.getString("column2"); // ... } // 关闭连接和资源 resultSet.close(); statement.close(); connection.close(); } } ``` 通过以上代码,我们可以在xxl-job框架中执行一个连接Oracle数据库的任务,并实现相应的业务逻辑。当我们在xxl-job-admin管理后台中配置好任务的调度策略后,该任务将会按照设定的调度规则自动执行。 需要注意的是,在实际应用中,我们可能还需要处理数据库连接的异常、数据处理的异常以及任务执行结果的反馈等问题,以保证任务的稳定和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值