学习笔记

来源:互联网 发布:淘宝自动售货是几天 编辑:程序博客网 时间:2024/05/16 23:46
###重新创建索引
SQL> CREATE INDEX rname_idx
ON hr.region s (region_name)
PARALLEL 4;
索引丢失时,更为快速、简单的方法是重新创建而不是尝试恢复索引


###重新创建口令验证文件
1. 使用OS 验证登录到数据库。
2. 将REMOTE_LOGIN_PASSWORDFILE参数设置为
NONE 并重新启动数据库。
3. 使用orapwd 重新创建口令文件。
$ orapwd file=$ORACLE_HOME/dbs/orapwORCL
password=admin entries=5
4. 将REMOTE_LOGIN_PASSWORDFILE设置为
EXCLUSIVE。
5. 向口令文件添加用户并向每个用户分配适当的权限。
6. 重新启动实例。



###用户管理的恢复:RECOVER命令
• 从备份还原所有数据库文件,然后恢复数据库:
SQL> RECOVER DATABASE
• 从备份还原损坏的数据文件,然后恢复数据文件:
或:
                   
SQL> RECOVER TABLESPACE index_tbs
SQL> RECOVERDATAFILE  
2> '/oradata/indx01.dbf'

• RECOVER [AUTOMATIC] DATABASE
此命令仅能用于关闭的数据库恢复。
• RECOVER [AUTOMATIC] TABLESP ACE<NUMBER> |<NAME>
此命令仅能用于打开的数据库恢复。
• RECOVER [AUTOMATIC] DATAFILE<'filename'> |<NAME
此命令既可以用于打开的数据库恢复,也可用于关闭的数据库恢复。

AUTOMATIC 关键字指示Oracle 数据库自动生成继续执行恢复操作所需的下一归档重做日志文件的名称。否则,系统会提示您输入这些名称.


###RMAN 恢复:RESTORE和RECOVER命令
run{
sql "ALTER TABLESPACE inv_tbs OFFLINE IMMEDIATE";
RESTORE TABLE SPACE inv_tbs;
RECOVER TABLESPACE inv_tbs DELETE ARCHIVELOG;
sql "ALTER TABLESPACE inv_tbs ONLINE";
}


[RESTORE命令将数据文件从磁带、磁盘或其它介质上的备份位置检索到磁盘上,并使其可供数据库服务器使用。RECOVER命令获取已还原的数据文件副本,并将数据库重做日志中记录的更改应用于该副本。]

###执行用户管理的不完全恢复
• 将数据库恢复到某一时刻:
SQL> RECOVER DATABASE UNTIL
TIME '2005-1 2-14:12:10:03';
• 恢复数据库直到执行取消操作:
SQL> RECOVER  DATABASE UNTILCANCEL;
• 使用备份控制文件进行恢复:
SQL> RECOVER  DATABASE
UNTIL TIME '2005-12-14:12:10:03'
USING BACKUP CONTROLFILE;

###用户管理的基于时间的恢复:
SQL> SHUTDOWN IMMEDIATE
$ cp /BACKUP/*.dbf/u01/db01/ORADATA
SQL> STARTUP MOUNT
SQL> RECOVER DATABASE UNTIL TIME'2005-11-28:11:44:00';
SQL> ALTER DATABASE OPEN RESETLOGS;


###使用RMAN 的基于时间的恢复:
RMAN> RUN {
2> SET UNTIL TIME = '2005-11-28:11:44:00';
3> RESTORE DATABASE;
4> RECOVER DATABASE;
5> ALTER DATABASE  OPEN RESETLOGS;}

###使用RMAN 的日志序列恢复
RMAN> RUN {
2> SET UNTIL SEQUENCE 120 THREAD 1;
3> ALTER D ATABASE MOUNT; 
4> RESTORE DATABASE; 
5> RECOVER DATABASE; # recovers through log119
6> ALTER DATABASE OPEN RESETLOGS;
7> }

##还原点
1.SQL> CREATE RESTORE  POINTbefore_load;
2.RMAN> RECOVER DATABASE UNTILRESTORE  POINT before_load;

##恢复控制文件自动备份
RMAN> RESTORE CONTROLFILE TO
2> '/oradata/ctlfile.bak'  FROMAUTOBACKUP;

要从自动备份还原控制文件,数据库必须处于NOMOUNT状态。然后,使用RESTORE CONTROLFILE FROMAUTOBACKUP命令:
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP NOMOUNT;
RMAN> set dbid = 123456789;
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;

###创建新的控制文件
SQL> ALTER DATABASE  BACKUPCONTROLFILE TO TRACE;

ALTER DATABASE BACKUP CONTROLFILE TO TRACE 命令可以生成一个用户跟踪
文件,其中包含用于重新创建控制文件的SQL 命令。将跟踪文件复制到一个脚本文件如new_control.sql)中,删除STARTUPNOMOUNT之前的跟踪头信息,然后进行任何所需的更改,如增加MAXDATAFILES、MAXLOGFILES等。运行该脚本创建新的控制文件。
原创粉丝点击