环境:RHEL 5.4 + Oracle 11.2.0.3 背景:数据库没有备份,数据库文件被误操作rm,此时数据库尚未关闭,也就是对应句柄存在,如何快速恢复? 1.某个普通数据文件被删除 2.所有数据文件被删除 1.某个普通数据文件被删除 1.1 模拟5号数据文件被rm误删除 SQL> select name, open_mode from v$database; NAME OPEN_MODE --------- -------------------- PROD2 READ WRITE SQ…
环境: Linux release 7.5 oracle19c (无pdb,从11.2.0.4升级上去的) 一:单个非系统表空间的数据文件被删除 我先备份一下,虽然是测试环境. [oracle@19c ~]$ cat full_backup.sh source /home/oracle/.bash_profiledir=$(date +%Y%m%d)mkdir -p /u01/backup/$dirrman target / log /u01/backup/rman_fullbackup_`da…
Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据 PRM 全称为ParnassusData Recovery Manager ,由 诗檀软件自主研发,拥有独立的软件著作权. PRM可以独立于Oracle软件运行,直接从Oracle数据文件中抽取表上的数据. 当以下几种场景中,都可以用上PRM: 无备份或者备份不可用情况下,数据表被意外truncate掉或者DROP掉 由于数据库损坏,导致的数据打不开 无法OPEN 数据块存在损坏,Or…
最近有网友提到收缩Oracle数据文件的问题,这是DBA经常碰到的一个常见问题.通常我们需要收缩相应的数据文件以减少来自磁盘空间的压力以及提高数据库的整体性能.但这并非对于所有情形都是适用的,尤其是生产环境.因为生产环境数据清洗相当较少,因此空间浪费也比较小,而且一旦收缩之后又要重新自动扩展数据文件,浪费系统资源.对于UAT,DEV环境,多DB,磁盘空间压力大的情形,收缩一下非常有必要.勒紧裤带过日子也是常有的事情,哈哈.总之收缩数据文件会使得磁盘空间得以释放以及加快数据迁移,RMAN备份等.本…
通过ROWID计算数据块的相关信息:  --详见: 数据文件头块保留大小.ROWID.数据文件最大大小等数据库限制的说明 根据small file tablespace的ROWID,计算出表空间.数据文件.BOOCK中行最大数如下: 根据ROWID的构成:          ---注:2^10这种写法代表2的10次方,等于1024. 每个表空间最大文件数:      2^10 1024 , 去掉全0和全1 通常1022个 ---本文下面的实验测试出是1023个 每数据文件最大数据块数量:file…
问题现象:数据文件被无意删除,导致数据库表空间无法删除,并且重新刷表空间提示表空间已经存在:解决方法:1.oracle用户登录服务器,使用sysdba连接数据库 >sqlplus / as sysdba 2.加载启动数据库 sql> startup mount; 3.将表空间下创建的数据文件全部删除:比如表空间TEST_DAT,创建了两个数据文件'/opt/oracle/oradata/TESTDB01.dbf' 和'/opt/oracle/oradata/TESTDB02.dbf',其中TE…
1.查看当前状态: SQL> select status from v$instance; STATUS------------OPEN SQL> show parameter name; NAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------db_file_name_convert …
有些时候需要将Oracle的多个数据文件以及日志文件重定位或者迁移到新的分区或新的位置,比如磁盘空间不足,或因为特殊需求.对于这种情形可以采取批量迁移的方式将多个数据文件或者日志文件实现一次性迁移.当然备份恢复也是其中的方式之一.本文主要描述如何使用批量方式来迁移数据文件,日志文件.如需要也可以将整个数据库迁移到新的位置以及重命名数据库. 1.环境及需求 robin@SZDB:~> cat /etc/issue Welcome to SUSE Linux Enterprise Server 10…
Oracle 表空间 创建参数 说明 http://blog.csdn.net/tianlesoftware/archive/2011/01/27/6166928.aspx 当我们对表空间添加数据文件的时候,有一个reuse 属性. 10g的官网对这个参数的说明如下: REUSE Specify REUSE to allow Oracle to reuse an existing file. (1)If the file already exists, then Oracle reuses th…
背景 这两天做一个oracle数据库迁移,以前都是用exp.imp来走,这次用到了expdp.impdp,的确有些优势,但同时又想起了只是拷贝数据文件迁移的方式,其实这个方式不常用做迁移,更多用在磁盘空间不足了这种情况.特把过程列下,此次懒惰,没有试验.应该差不多.以下为linux环境下,不解释命令了.同时也把sqlserver.mysql的总结了下. 过程 xhell4链接,切换Oracle用户.su - oracle sqlplus / as sysdba(windows下不知为何还不大行,…