oracle 生产技术支持常见问题及解决方法

一、表中字段因插入数据字段名过长,导致失败。

问题描述:
开发票需要上传附件。附件名称过长。
在这里插入图片描述

而当前表字段名的长度为 varchar2(100.这里的100指的是100个字节。

在这里插入图片描述
解决问题:
步骤一:

select * from V$NLS_PARAMETERS;

在这里插入图片描述
步骤二:
需要查询当前此表的数据量,看次字段是否有值。
在这里插入图片描述
步骤三:

alter table 表名 modify file_name VARCHAR2(1500);

二、Oracle flashback 功能

Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数。要使用flashback 的特性,必须启用自动撤销管理表空间
Oracle Flashback 是一种方便快捷的数据库恢复技术,它不使用备份文件,通过闪回日志可以使数据库恢复到过去的某个状态,当用户发生逻辑错误时(误删表数据、表、表空间等)需要快速恢复数据库,可以使用 Flashback 实现。

1-开启归档功能,使数据库处于归档模式下

  • 先关闭数据库:shutdown immediate
  • 启动到mount状态:startup mount
  • 开启归档功能:alter database archivelog;
  • 打开数据库:alter database open;

2-开启闪回flashback功能(归档下才可开启数据库闪回)

  • 查看flashback是否开启:select name,flashback_on from v$database;
  • 查看闪回恢复区及大小是否设置:show parameter db_recovery;(如果已设置,下面可以省略)
    1、先设置闪回恢复区的大小:alter system set db_recovery_file_dest_size=‘2G’;(这里系统默认也是2G,也未改)
    2、确定闪回恢复区的目录: how parameter db_recovery_file_dest;
    3、再设置闪回恢复区路径:alter system set db_recovery_file_dest=‘oracle/db_recovery_file_dest’;
  • 设置数据库回退的时间,默认1440分钟为一天时间:alter system set
    db_flashback_retention_target = 1440;
  • 先关闭数据库:shutdown immediate;
  • 启动到mount状态:startup mount;
  • 开启flashback功能:alter database flashback on;
  • 打开数据库:alter database open;

FLASH_BACK 实践

select 'FLASH_BACK',
       COMMISSION,
       COMMISSION_RATE,
       COMMISSION_RULE_FLG
from ORDER_COMMISSION_INFO AS OF TIMESTAMP to_timestamp('20210928 14:00:00', 'yyyymmdd hh24:mi:ss')
where ORDER_ID = 'xxx';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值