控制文件的恢复分两步: 1.从备份还原; 2.用重做日志恢复。 一、有备份的控制文件恢复 控制文件按备份的时间跨度分类: 1).在线镜像备份:当前控制文件,即control_files初始化参数所指向的除去损坏的控制文件以外的控制文件; 2).结构备份:控制文件备份后
控制文件的恢复分两步:
1.从备份还原;
2.用重做日志恢复。
一、有备份的控制文件恢复
控制文件按备份的时间跨度分类:
1).在线镜像备份:当前控制文件,即control_files初始化参数所指向的除去损坏的控制文件以外的控制文件;
2).结构备份:控制文件备份后,数据库的结构没发生变化(例如添加删除表空间、重做日志文件);
3).历史备份:控制文件备份后,数据库的结构发生了变化。
发现控制文件损坏后
1.SQL>shutdown abort
2.SQL>startup
提示错误ora-00205控制文件出错或ora-00227控制文件存在坏块,数据库启动到started状态
3.首先看是否存在在线镜像备份,若存在,则按以下步骤恢复:
1)查看警告日志,确定哪些控制文件损坏了;
2)将正确的控制文件复制到损坏了的控制文件的位置上;
3)SQL>alter database mount;
4)SQL>alter database open;
否则,看是否存在结构备份,若存在,按以下步骤恢复:
1)进入rman:rman target/
2)从备份中还原控制文件
RMAN>restore controlfile from autobackup;(自动备份)
或
RMAN>restore
controlfile from '手动备份的控制文件的位置';(手动备份)
3)设置数据库到mount状态
RMAN>alter database mount;
4)介质恢复
RMAN>recover database;
5)RMAN>alter database open resetlogs;
如果只有历史备份:
使用历史备份后会出现不一致,以下2种情况需要手动修复不一致:
1)备份控制文件中具有某个数据文件或表空间的信息,但实际不存在
2)备份中没有某个在线日志组的信息,但实际是存在的(在恢复时用recover database using backup controlfile在提示中输入相应的在线日志的路径)
A、对于自动修复不一致的情况,其恢复步骤与结构备份的手动备份相同
B、备份控制文件中具有某个数据文件或表空间的信息,但实际不存在
1)进入rman:rman target/
2)从备份中还原控制文件
RMAN>restore controlfile from '手动备份的控制文件的位置';(手动备份)
3)设置数据库到mount状态
RMAN>alter database mount;
4)此时不能直接回复数据库,而应使恢复操作不理睬这个丢失的数据文件或表空间
数据文件:
SQL>alter database datafile 文件号 offline;(数据文件)
恢复数据库
SQL>recover database using backup controlfile;
表空间(包括表空间内所有数据文件):
SQL>recover database skip tablespace 表空间名;
5)RMAN>alter database open resetlogs;
二、没有控制文件备份,但对控制文件做了追踪备份,即有创建控制文件的脚本
1.SQL>shutdown abort
2.SQL>startup
提示错误ora-00205控制文件出错或ora-00227控制文件存在坏块,数据库启动到started状态
3.找到备份的trace文件,并将其中创建控制文件的脚本提取出来createctl.sql
4.执行脚本createctl.sql
SQL>@createctl.sql
三、没有控制文件的备份和trace备份,此时需要手工创建控制文件
1.SQL>shutdown abort
2.SQL>startup
提示错误ora-00205控制文件出错或ora-00227控制文件存在坏块,数据库启动到started状态
3.手工创建控制文件SQL>create controlfile reuse(/set) database "数据库名" noresetlogs(/resetlogs 仅当online logs损坏的情况下才使用) noarchivelog
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 4672
LOGFILE
GROUP 1 '重做日志1的目录' SIZE 50M,
GROUP 2 '重做日志2的目录' SIZE 50M,
GROUP 3 '重做日志3的目录' SIZE 50M
DATAFILE
'数据文件目录/system01.dbf',
'数据文件目录/undotbs01.dbf',
'数据文件目录/sysaux01.dbf',
'数据文件目录/users01.dbf',
'数据文件目录/info01.dbf' (不包括temp文件)
CHARACTER SET ZHS16GBK
;
提示创建成功
4.介质恢复
sql>RECOVER DATABASE
sql>ALTER DATABASE OPEN;
sql>ALTER TABLESPACE TEMP ADD TEMPFILE 'temp文件目录/temp01.dbf'
SIZE 1244667904 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
最后恢复完成后记得备份控制文件
备份控制文件
ALTER DATABASE BACKUP CONTROLFILE TO 'F:\ORACLE\BACKUP\TEST.BAK';
alter database backup controlfile to trace as '目录';--生成创建控制文件的脚本,可通过show parameter user_dump_dest查看。

方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

在Oracle中,可利用lsnrctl命令查询端口号,该命令是Oracle的监听命令;在启动、关闭或重启oracle监听器之前可使用该命令检查oracle监听器的状态,语法为“lsnrctl status”,结果PORT后的内容就是端口号。

在oracle中,可以利用“TO_SINGLE_BYTE(String)”将全角转换为半角;“TO_SINGLE_BYTE”函数可以将参数中所有多字节字符都替换为等价的单字节字符,只有当数据库字符集同时包含多字节和单字节字符的时候有效。

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

在oracle中,可以利用“drop sequence sequence名”来删除sequence;sequence是自动增加数字序列的意思,也就是序列号,序列号自动增加不能重置,因此需要利用drop sequence语句来删除序列。

在oracle中,可以利用“select ... From all_tab_columns where table_name=upper('表名') AND owner=upper('数据库登录用户名');”语句查询数据库表的数据类型。

方法:1、利用“alter system set sessions=修改后的数值 scope=spfile”语句修改session参数;2、修改参数之后利用“shutdown immediate – startup”语句重启服务器即可生效。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版
SublimeText3 Linux最新版

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),