首页 > IT职业 > IT生活 > 007.笔记:恢复非关键的损失
一、恢复受损的临时表空间
1.临时数据通常具有两种形式:排序数据与全局临时表
排序数据与全局临时表数据首先会占用空闲内存,如果内存已用完,他们会将数据写入临时表空间。
2.临时空间的配置
v$tablespace v$tempfile dba_temp_files
database_properties--数据库的临时表空间
2.DBWn进程以及其他后台进程并不完成对临时文件的写操作,这类操作由为需要一些临时表空间的会话提供服务的服务器进程完成。
因此,即使某个临时文件在数据库启动时不可用,数据库仍然能够被打开。不过,DBWn进程会在告警日志中写下一条消息。
3.还原临时表空间
无法备份临时文件,可能通过重建的方法还原临时表空间。
方法1:重建受损的临时文件
alter tablespace temp add tempfile '/oracle/temp2.dbf' size 100m;
alter database tempfile '/oracle/temp.dbf' offline;
alter database tempfile '/oracle/temp.dbf' drop;
方法2: 创建新的临时表空间
create temporary tablespace temp_ts1 tempfile '/oracle/temp_ts1.dbf' size 100m;
alter database default temporary tablespace temp_ts1;
drop tablespace temp including contents and datafiles;
二、恢复受损的联机重做日志文件
DBA完全可以提议公司制定大致如下所述的标准:“所有产品数据库都必须在不同设备的3个目的地复用联机重做日志”。
恢复方法1:
alter database drop logfile member '/oracle/redologa/redo1.log';
--删除物理文件
alter database add logfile member '/oracle/redologa/redo1.log' to group 1;
恢复方法2:
alter database clear logfile group 1;
alter system switch logfile;
alter system checkpoint;
三、恢复受损的索引表空间
1.如果某个索引不可用,那么几乎所有DML操作都会锁定相应的表;
为索引段创建一个或多个专用的表空间是一种良好的习惯;
索引组织表应该被应到正常的堆表中一起备份、还原与恢复。
2.查看索引表空间的使用
dba_segment dba_indexs
3.查看索引表空间的受损情况
v$datafile v$recover_file
4.将表空间脱机
alter tablespace INDX offline immediate;--immediate是必要的:指示ORACLE在不将脏缓冲区从表空间转储至磁盘的情况下使表空间脱机
--只有启用ArchivelogMode时才会允许使用offline immediate
5.恢复索引表空间
方法1:使用RMAN的还原和恢复
方法2:
(1)将受损的表空间脱机
alter tablespace INDX offline immediate;
(2)查看dba_segments dba_indexs dba_tablespaces dba_data_files
(3)生成重建索引的脚本
expdp hr/hr directory=dp_dir dumpfile=ind.dmp include=index
impdp hr/hr directory=dp_dir dumpfile=ind.dmp sqlfile=ind.sql
使用parallel与nologging修改ind.sql
create index .... tablespace indx parallel [8] nologging;
(4) 删除表空间、重建表空间
(5)执行第(3)步的脚本
四、恢复受损的只读表空间
1.改变表空间的状态后,应立即生成备份(只读=>读写或读写=>只读)
五、恢复口令文件
--RMAN不备份口令文件,可以重建口令文件
orapwd file=
force=y--替换原来的文件
entries--在口令文件中可以添加几个用户条目,默认为4
grant sysdba[或sysoper] to system;--将用户system 添加到口令文件
--附1:修改数据字典中的密码
alter user sys identified by oracle;
alter user system identified by oracle;
--附2:口令文件损坏,实例重启时在试图读取口令文件时会导致启动失败
可以设置ORACLE启动时不读口令文件:
nomount
alter system set remote_login_passwordfile=none scope=spfile;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7901922/viewspace-1059525/ ,如需转载,请注明出处,否则将追究法律责任。