7.Using RMAN to Perform Recovery

使用RMAN进行完全恢复
system表空间文件丢失的恢复

模拟损坏:

SQL> conn /as sysdba;
SQL> create table t as select * from scott.dept;
SQL> !rm -rf /u01/app/oracle/oradata/orcl/system01.dbf;
SQL> alter system flush buffer_cache;
SQL> conn /as sysdba;

执行恢复:

[oracle@oracle u01]$ ps -ef | grep dbw
[oracle@oracle u01]$ kill -9 4233 [oracle@oracle u01]$ rman target /
RMAN> startup mount;
RMAN> run{
restore datafile 1;
recover datafile 1;
sql 'alter database open';
} [oracle@oracle u01]$ sqlplus / as sysdba;
SQL> select * from t;

发现t表仍然存在,完全恢复

undo表空间文件丢失的恢复

模拟损坏:

SQL> conn /as sysdba;
SQL> !rm -rf /u01/app/oracle/oradata/orcl/undotbs01.dbf;
SQL> alter system flush buffer_cache; SQL> conn scott/tiger;
SQL> update emp set sal=sal+100;

使用rman进行恢复:

[oracle@oracle u01]$ rman target /

RMAN> run{
shutdown abort;
startup mount;
restore datafile 2;
recover datafile 2;
sql 'alter database open';
} [oracle@oracle u01]$ sqlplus scott/tiger
SQL> update emp set sal=sal+100;
SQL> commit;

普通表空间文件丢失的恢复

模拟损坏:

SQL> create table t3 as select * from dept;
SQL> !rm -rf /u01/app/oracle/oradata/orcl/users01.dbf
SQL> select * from t3; SQL> conn /as sysdba
SQL> alter system flush buffer_cache; SQL> conn scott/tiger
SQL> select * from t3;

使用rman进行恢复:

rman target /

RMAN> run{
sql 'alter database datafile 4 offline';
restore datafile 4;
recover datafile 4;
sql 'alter database datafile 4 online';
} [oracle@oracle u01]$ sqlplus scott/tiger
SQL> select * from t3;

备份脚本

cd /u01/app/oracle
vi rman.sh写入以下内容:

rman target / <<eof
run{
  delete noprompt backup;
  backup database plus archivelog;
}
exit
echo "backup is ok"
eof

保存

授予权限:chmod +x rman.sh

执行:./rman.sh

未备份的数据文件丢失的恢复

模拟损坏:

SQL> create tablespace tt datafile '/u01/app/oracle/oradata/orcl/tt01.dbf' size 1M;

SQL> conn scott/tiger
SQL> create table tt tablespace tt as select * from dept;
SQL> !rm -rf /u01/app/oracle/oradata/orcl/tt01.dbf SQL> conn /as sysdba
SQL> alter system flush buffer_cache; SQL> conn scott/tiger
SQL> select * from tt;

使用rman进行恢复:

[oracle@oracle u01]$ rman target /

RMAN> run {
sql 'alter database datafile 6 offline';
restore datafile 6;
recover datafile 6;
sql 'alter database datafile 6 online';
} [oracle@oracle u01]$ sqlplus scott/tiger
SQL> select * from tt;

使用RMAN进行不完全恢复
基于SCN的不完全恢复

模拟损坏:

[oracle@oracle ~]$ sqlplus scott/tiger;
SQL> select * from tab;
SQL> drop table emp purge;
SQL> create table t as select * from dept; SQL> conn / as sysdba;
SQL> select 'execute dbms_logmnr.add_logfile('''||member||''')' from v$logfile; SQL> exec dbms_logmnr.start_logmnr();
SQL> select scn,sql_redo from v$logmnr_contents
where seg_name='EMP' and seg_owner='SCOTT' and sql_redo like '%drop table emp%';

使用rman进行恢复:

RMAN> run{
shutdown immediate;
startup mount;
set until scn=1409215;
restore database;
recover database;
sql 'alter database open resetlogs';
} SQL> select * from tab;

emp回来了,但是t表没了

使用备份的控制文件的不完全恢复

SQL> drop tablespace tt including contents and datafiles;
SQL> select 'execute dbms_logmnr.add_logfile('''||member||''')' from v$logfile; SQL> exec dbms_logmnr.start_logmnr();
SQL> select scn,sql_redo from v$logmnr_contents where sql_redo like '%drop%';

使用rman进行恢复:

RMAN> shutdown immediate;
RMAN> startup nomount;
RMAN> restore controlfile from '/u01/backup/rmanbk/ORCL_200.dbf'; RMAN> sql 'alter database mount';
RMAN> run{
set until scn=1411525;
restore database;
recover database;
sql 'alter database open resetlogs';
} [oracle@oracle rmanbk]$ sqlplus / as sysdba
SQL> select name from v$tablespace;
SQL> select name from v$datafile; SQL> conn scott/tiger
SQL> select * from tt;

所有文件丢失的恢复

模拟损坏:

[oracle@oracle ~]sqlplus / as sysdba
SQL> shutdown abort; SQL> !cd $ORACLE_BASE/oradata/orcl;
SQL> !rm -rf *; SQL> !cd $ORACLE_HOME/dbs;
SQL> !rm -rf *orcl*;

执行恢复:

[oracle@oracle dbs]$ echo $ORACLE_SID
[oracle@oracle dbs]$ sqlplus / as sysdba
SQL> startup; [oracle@oracle dbs]$ cd $ORACLE_HOME/dbs
vi initorcl.ora--写入如下内容:
db_name=orcl
保存退出 SQL> startup nomount--启动实例
SQL> exit [oracle@oracle dbs]$ rman target /
RMAN> restore spfile from '/u01/backup/rmanbk/ORCL_209.dbf';--恢复参数文件 RMAN> shutdown abort
RMAN> startup nomount--使用恢复的参数文件启动实例 RMAN> restore controlfile from '/u01/backup/rmanbk/ORCL_209.dbf'; --恢复控制文件 恢复数据文件:
RMAN> sql 'alter database mount';
RMAN> run {
restore database;
recover database;
}
RMAN> exit
由于在线日志被删除,所以不能进行完全恢复,进行cancel恢复: [oracle@oracle dbs]$ sqlplus / as sysdba
SQL> recover database until cancel;
SQL> recover database until cancel using backup controlfile;
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel SQL> alter database open resetlogs;

使用增量更新备份进行恢复

RMAN> RUN {
RECOVER COPY OF DATABASE WITH TAG 'incr_update';
BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE;
}

为了理解上述脚本,我们先看一下如果没有数据文件拷贝和增量备份运行这两个脚本的情况
如果需要恢复,我们首先恢复镜像文件拷贝和最后一次LEVEL1增量备份,最后应用REDO

第一次执行:先对数据库中文件执行镜像备份

RMAN> RUN {
RECOVER COPY OF DATABASE WITH TAG 'incr_update';
BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE;
} SQL> conn scott/tiger;
SQL> create table t1 as select * from emp;

第二次执行:使用增量备份,对所有的数据文件执行恢复,但是此时没有增量备份,然后对数据库执行增量1级备份

RMAN> RUN {
RECOVER COPY OF DATABASE WITH TAG 'incr_update';
BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE;
}

第三次备份:使用增量备份,对所有的数据文件执行恢复,此时增量备份,然后对数据库执行增量1级备份

RMAN> RUN {
RECOVER COPY OF DATABASE WITH TAG 'incr_update';
BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE;
}

如果此时数据库发生了故障,可以只恢复最近一次的增量1级备份和归档日志

使用镜像切换进行快速恢复

rman target /
RMAN> backup as copy tablespace users format='/u01/app/oracle/backup/rmanbk/%d_%s.dbf';

模拟损害:

SQL> !rm -rf /u01/app/oracle/oradata/orcl/users01.dbf

SQL> conn scott/tiger
SQL> select * from emp

使用镜像切换进行恢复:

rman target /

RMAN> run{
sql 'alter tablespace users offline immediate';
SET NEWNAME FOR DATAFILE '/u01/app/oracle/oradata/orcl/users01.dbf' TO '/u01/app/oracle/backup/rmanbk/users01.dbf';
restore tablespace users;
switch datafile all;
recover tablespace users;
sql 'alter tablespace users online';
}

可以将备份恢复到新的位置:

RMAN> run{
sql 'alter tablespace users offline immediate';
SET NEWNAME FOR DATAFILE '/u01/app/oracle/oradata/orcl/users01.dbf' TO '/u01/app/oracle/oradata/users01.dbf';
restore tablespace users;
switch datafile all;
recover tablespace users;
sql 'alter tablespace users online';
} SQL> select file_name from dba_data_files where tablespace_name='USERS';

改回原来的位置:

RMAN> run{
sql 'alter tablespace users offline immediate';
SET NEWNAME FOR DATAFILE '/u01/app/oracle/oradata/users01.dbf' TO '/u01/app/oracle/oradata/orcl/users01.dbf';
restore tablespace users;
switch datafile all;
recover tablespace users;
sql 'alter tablespace users online';
} SQL> select file_name from dba_data_files where tablespace_name='USERS';

参数文件丢失的恢复

模拟损害:

[oracle@oracle dbs]$ cd $ORACLE_HOME/dbs
[oracle@oracle dbs]$ rm -rf spfileorcl.ora

执行恢复:

基于内存中的参数值创建spfile:

SQL> create spfile='/u01/app/oracle/spfileorcl.ora' from memory;

将恢复的参数文件复制到原来的位置:

[oracle@oracle dbs]$ cp /u01/app/oracle/spfileorcl.ora $ORACLE_HOME/dbs

转储数据库到新的主机

使用rman复制数据库

有一个orcl数据库的备份,使用这个备份,复制数据库名为hndx

创建pfile:

[oracle@oracle dbs]$ sqlplus / as sysdba
SQL> create pfile='$ORACLE_HOME/dbs/inithndx.ora' from spfile;

编辑pfile:

[oracle@oracle dbs]$ cd $ORACLE_HOME/dbs
[oracle@oracle dbs]$ vi inithndx.ora
将orcl替换为hndx
:%s/orcl/hndx/g

创建目录:

[oracle@oracle dbs]$ mkdir -p /u01/app/oracle/oradata/hndx
[oracle@oracle dbs]$ mkdir -p $ORACLE_BASE/admin/hndx/{a,b,c,u}dump

启动hndx实例:

[oracle@oracle ~]$ export ORACLE_SID=hndx
[oracle@oracle ~]$ sqlplus / as sysdba SQL> create spfile from pfile;
SQL> startup nomount;

使用rman复制数据库hndx:

对hndx进行静态注册:

[oracle@oracle dbs]$ cd $ORACLE_HOME/network/admin

vi listener.ora

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/11.2/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = hndx)
(ORACLE_HOME = /u01/app/oracle/product/11.2/db_1)
(GLOBAL_DBNAME=hndx)
)
)

创建hndx网路连接符:

[oracle@oracle dbs]$ vi tnsnames.ora

hndx=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = hndx)
)
)

为hndx创建口令文件:

[oracle@oracle ~]$ orapwd file=$ORACLE_HOME/dbs/orapwhndx password=a
[oracle@oracle ~]$ rman target sys/a@orcl auxiliary sys/a@hndx
RMAN> run {
allocate auxiliary channel aux1 device type disk;
allocate auxiliary channel aux2 device type disk;
allocate auxiliary channel aux3 device type disk;
duplicate target database to hndx
db_file_name_convert=('/u01/app/oracle/oradata/orcl/','/u01/app/oracle/oradata/hndx/')
logfile
group 1('/u01/app/oracle/oradata/hndx/redo01.log') size 50M,
group 2('/u01/app/oracle/oradata/hndx/redo02.log') size 50M,
group 3('/u01/app/oracle/oradata/hndx/redo03.log') size 50M;
} [oracle@oracle admin]$ export ORACLE_SID=hndx
[oracle@oracle admin]$ sqlplus / as sysdba SQL> select name from v$database;
SQL> select instance_name from v$instance;

使用增量备份恢复NOARCHIVELOG模式的数据库

将数据库改为非归档:

SQL> shutdown immediate
SQL> startup mount
SQL> alter database noarchivelog;
SQL> alter database open;

对数据库做增量备份:

打开控制文件的自动备份:

rman target /

run {
shutdown immediate;
startup mount;
backup incremental level 0 database;
alter database open;
} run {
shutdown immediate;
startup mount;
backup incremental level 1 database;
alter database open;
}

删除所有的数据文件:

[oracle@oracle admin]$ cd $ORACLE_BASE/oradata/orcl
[oracle@oracle admin]$ rm -rf *dbf

执行恢复:

run{
STARTUP FORCE NOMOUNT;
RESTORE CONTROLFILE from autobackup;
ALTER DATABASE MOUNT;
RESTORE DATABASE;
RECOVER DATABASE NOREDO;
ALTER DATABASE OPEN RESETLOGS;
}

--------------------------------------------------------------------------------------------------------------------

使用RMAN的RESTORE和RECOVER命令
RESTORE {DATABASE | TABLESPACE name [,name]... | DATAFILE name [,name] }...
RECOVER {DATABASE | TABLESPACE name [,name]... | DATAFILE name [,name] }...
RMAN> SQL 'ALTER TABLESPACE inv_tbs OFFLINE IMMEDIATE';
RMAN> RESTORE TABLESPACE inv_tbs;
RMAN> RECOVER TABLESPACE inv_tbs;
RMAN> SQL 'ALTER TABLESPACE inv_tbs ONLINE';

执行完全恢复:归档模式下丢失数据文件
1.如果实例没有关闭,关闭实例
2.Mount数据库。
3.拷贝请别恢复丢失的数据文件
4.打开数据库

恢复镜像拷贝
RMAN> REVOCER COPY OF DATAFILE {n | 'file_name'}
RMAN> recover copy of database with tag 'daily_inc';
RMAN> backup incremental level 1 for recover of copy with tag 'daily_inc' database;

  RECOVER BACKUP
Day 1 Nothing Create image copies
Day 2 Nothing Create incremental Level 1
Day 3 onward Recover copies based on incremental Create incremental Level 2

执行快速切换到镜像拷贝操作
1.将数据文件离线
2.使用SWITCH TO ... COPY命令切换到镜像拷贝
SQL> SWITCH DATAFILE 'filename' TO COPY;
3.恢复数据文件
4.使数据文件在线。现在数据文件在新的位置被恢复和使用。
可选下列操作将文件放到原来位置
5.在原始位置创建镜像拷贝
6.将数据文件离线
7.使用SWITCH TO ... COPY
8.恢复数据文件
9.使数据文件在线

run {
    allocate channel dev1 device type disk;
    allocate channel dev2 device type sbt;
    sql 'alter tablespace users offline immediate';
    set newname for datafile '/disk1/oradata/prod/users01.dbf' to '/disk2/users01.dbf';
    restore tablespace users;
    switch datafile all;
    recover tablespace users;
    sql 'alter tablespace users online';
}

在非归档模式下执行恢复
1.关闭实例
2.从备份位置恢复整个数据库,包括所有数据文件和控制文件
3.打开数据库

使用恢复点
SQL> CREATE RESTORE POINT before_mods; (Now)
SQL> CREATE RESTORE POINT end_q1 AS OF SCN 100; (Some time in the past)

执行指定时间点恢复
1. 确定恢复的目标点: SCN, 时间, 恢复点, 或者日志的序列号

2. 设定正确的NLS环境变量
$ export NLS_LANG = american_america.us7ascii
$ export NLS_DATE_FORMAT = "yyyy-mm-dd:hh24:mi:ss"

3. Mount数据库
RMAN> shutdown immediate
RMAN> startup mount

4. 准备和运行RUN程序块
RMAN> RUN
{
SET UNTIL TIME '2007-08-14:21:59:00';
RESTORE DATABASE;
RECOVER DATABASE;
}

5.将数据库打开到READONLY模式,确定恢复到了正确的目标点
RMAN> SQL 'ALTER DATABASE OPEN READ ONLY';

6. 使用RESETLOGS参数打开数据库.
RMAN> ALTER DATABASE OPEN RESETLOGS;

从服务端丢失参数文件中恢复
SQL> CREATE PFILE [= 'pfile_name' ] FROM {{SPFILE [= 'spfile_name']} | MEMORY };
SQL> CREATE SPFILE [= 'spfile_name' ] FROM {{PFILE [= 'pfile_name']} | MEMORY };

从自动备份的控制文件中恢复服务端参数文件
RESTORE SPFILE TO <file_name> FROM AUTOBACKUP
RMAN> STARTUP FORCE NOMOUNT;
RMAN> RESTORE SPFILE FROM AUTOBACKUP;
RMAN> STARTUP FORCE;
从FRA中恢复
RMAN> run {
2> restore spfile from autobackup
3> recovery area = '<flash recovery area destination>'
4> db_name = '<db_name>';
5> }

从自动备份中恢复控制文件
RMAN> STARTUP NOMOUNT;
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
RMAN> ALTER DATABASE MOUNT;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN RESETLOGS;

在非归档模式下使用增量备份恢复数据库
STARTUP FORCE NOMOUNT;
RESTORE CONTROLFILE;
ALTER DATABASE MOUNT;
RESTORE DATABASE;
RECOVER DATABASE NOREDO;
ALTER DATABASE OPEN RESETLOGS;

在另一台服务器上进行恢复
可以执行恢复测试
可以将生产数据库移到新的服务器

准备
1.记录源数据库的数据库ID(DBID)
2.拷贝源数据库初始化参数文件到新的服务器
3.确保源数据库备份,包括自动备份的控制文件,可以从新的恢复服务器访问

在新的服务器进行恢复
1.配置ORACLE_SID环境变量
$ setenv ORACLE_SID orcl

2.启动RMAN并且连接到非归档模式下的目标实例
$ rman TARGET /

3.设定DBID,可以从V$DATABASE中查询源数据库DBID
RMAN> SET DBID 1090770270;

4.将实例启动到NOMOUNT模式下
RMAN> STARTUP NOMOUNT

5.从备份集中恢复服务端参数文件
RMAN> RESTORE SPFILE TO PFILE '?/oradata/test/initorcl.ora' FROM AUTOBACKUP;

6.关闭实例
SHUTDOWN IMMEDIATE;

7.编辑恢复的初始化参数文件
8.将实例启动到MOUNT模式下
RMAN> STARTUP NOMOUNT PFILE='?/oradata/test/initorcl.ora';

9.创建RUN程序块以恢复控制文件和mount数据库
RUN
{
RESTORE CONTROLFILE FROM AUTOBACKUP;
ALTER DATABASE MOUNT;
}

10.创建RMAN恢复脚本用以恢复数据库
RUN
{
SET NEWNAME FOR DATAFILE 1 TO '?/oradata/test/system01.dbf';
SET NEWNAME FOR DATAFILE 2 TO '?/oradata/test/undotbs01.dbf';
SET NEWNAME FOR DATAFILE 3 TO '?/oradata/test/sysaux.dbf';
SET NEWNAME FOR DATAFILE 4 TO '?/oradata/test/users01.dbf';
SET NEWNAME FOR DATAFILE 5 TO '?/oradata/test/example01.dbf';
SQL "ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/orcl/redo01.log' TO '?/oradata/test/redo01.log' ";
SQL "ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/orcl/redo02.log' TO '?/oradata/test/redo02.log' ";
SQL "ALTER DATABASE RENAME FILE ''/u01/app/oracle/oradata/orcl/redo03.log'' TO '?/oradata/test/redo03.log' ";
SET UNTIL SCN 4545727;
RESTORE DATABASE;
SWITCH DATAFILE ALL;
RECOVER DATABASE;
}

11.执行恢复脚本
12.使用RESETLOGS选项打开数据库
RMAN> ALTER DATABASE OPEN RESETLOGS;

执行灾难恢复
灾难意味着丢失了整个目标数据库,恢复目录数据库,所有当前控制文件,所有在线重做日志以及所有参数文件。
灾难恢复包括目标数据库的restoreation和recovery
执行灾难恢复要求的最小备份集
1.数据文件备份
2.相应的归档重做日志文件
3.至少一份自动备份的控制文件

基本过程
1.恢复自动备份的服务端参数文件
2.启动目标数据库实例
3.从自动备份中恢复控制文件
4.Mount数据库
5.Restore数据文件
6.Recover数据文件
7.用RESETLOGS选项打开数据库

备注:
当使用RESTORE命令时,从备份恢复了数据文件,但是还没有从重做日志中应用前滚

备份脚本
cd /u01/app/oracle
vi rman.sh写入以下内容:

rman target / <<eof
run{
delete noprompt backup;
backup database plus archivelog;
}
exit
echo "backup is ok"
eof

保存
授予权限:chmod +x rman.sh
执行:./rman.sh

system表空间文件丢失的恢复:

模拟损坏:
conn /as sysdba
create table t as select * from scott.dept;
!rm -rf /u01/app/oracle/oradata/orcl/system01.dbf
alter system flush buffer_cache;

[oracle@oracle u01]$ ps -ef | grep dbw
oracle 4233 1 0 15:30 ? 00:00:00 ora_dbw0_orcl
oracle 6272 4195 1 17:03 pts/1 00:00:00 grep dbw
[oracle@oracle u01]$ kill -9 4233

[oracle@oracle u01]$ rman target /

RMAN> startup mount

RMAN> run{
2> restore datafile 1;
3> recover datafile 1;
4> sql 'alter database open';
5> }

[oracle@oracle u01]$ sqlplus / as sysdba

SQL> select * from t;

发现t表仍然存在,完全恢复

undo表空间文件丢失的恢复:

模拟损坏:

SQL> !rm -rf /u01/app/oracle/oradata/orcl/undotbs01.dbf
SQL> alter system flush buffer_cache;

SQL> conn scott/tiger
SQL> update emp set sal=sal+100; --error

使用rman进行恢复:

[oracle@oracle u01]$ rman target /

RMAN> run{
2> shutdown abort
3> startup mount
4> restore datafile 2;
5> recover datafile 2;
6> sql 'alter database open';
7> }

[oracle@oracle u01]$ sqlplus scott/tiger

普通表空间文件丢失的恢复:

模拟损坏:
SQL> create table t3 as select * from dept;
SQL> !rm -rf /u01/app/oracle/oradata/orcl/users01.dbf
SQL> select * from t3;

SQL> conn /as sysdba
SQL> alter system flush buffer_cache;

SQL> conn scott/tiger
SQL> select * from t3;-error

使用rman进行恢复:
rman target /

RMAN> run{
2> sql 'alter database datafile 4 offline';
3> restore datafile 4;
4> recover datafile 4;
5> sql 'alter database datafile 4 online';
6> }

[oracle@oracle u01]$ sqlplus scott/tiger
SQL> select * from t3;

未备份的数据文件丢失的恢复:

模拟损坏:
create tablespace tt datafile '/u01/app/oracle/oradata/orcl/tt01.dbf' size 1M;

conn scott/tiger
create table tt tablespace tt as select * from dept;
SQL> !rm -rf /u01/app/oracle/oradata/orcl/tt01.dbf

SQL> conn /as sysdba
SQL> alter system flush buffer_cache;

SQL> conn scott/tiger
SQL> select * from tt; --error

使用rman进行恢复:
[oracle@oracle u01]$ rman target /

RMAN> run {
2> sql 'alter database datafile 6 offline';
3> restore datafile 6;
4> recover datafile 6;
5> sql 'alter database datafile 6 online';
6> }

[oracle@oracle u01]$ sqlplus scott/tiger
SQL> select * from tt;

OCP读书笔记(7) - 使用RMAN执行恢复的更多相关文章

  1. OCP读书笔记(3) - 使用RMAN恢复目录

    创建恢复目录 在hndx上创建恢复目录:[oracle@oracle admin]$ export ORACLE_SID=hndx[oracle@oracle admin]$ sqlplus / as ...

  2. OCP读书笔记(5) - 使用RMAN创建备份

    5.Creating Backups with RMAN 创建备份集 RMAN> backup as backupset format '/u01/app/oracle/backup/rmanb ...

  3. OCP读书笔记(8) - 监控和调优RMAN

    监视RMAN作业 1. 创建rman备份: RMAN> run { allocate channel ch1 type disk; allocate channel ch2 type disk; ...

  4. OCP读书笔记(6) - 手动恢复操作

    6.Restore and Recovery Task 非关键性文件丢失的恢复 临时文件丢失的恢复 临时表空间文件丢失的恢复: 查看数据库中的临时文件: SQL> select file#,ST ...

  5. OCP读书笔记(9) - 诊断数据库

    数据库恢复顾问 Data Recovery Advisor的命令行选项 1. 启动 RMAN 进程并连接到目标$ rman target=/ 2. 假设发生了某个错误,希望找出原因,使用 list f ...

  6. OCP读书笔记(2) - 配置恢复

    RMAN的命令类型 1. sqlplus命令 [oracle@oracle admin]$ export ORACLE_SID=orcl [oracle@oracle admin]$ rman tar ...

  7. OCP读书笔记(12) - 执行闪回数据库

    闪回数据库使用的是闪回日志,闪回日志存在于闪回目录(也就是快速闪回区中)闪回日志:就是数据块修改之前的镜像,简称前像 1.查看闪回目录的位置:show parameter recovery 如果闪回目 ...

  8. OCP读书笔记(4) - 配置备份设置

    4.Configuring Backup Settings 查看RMAN持久化设置 [oracle@easthome ~]$ rman target / RMAN> show all; SQL& ...

  9. OCP读书笔记(21) - 题库(ExamA)

    Administer ASM disk groupsBack up the recovery catalogConfigure backup settingsConfigure, Monitor Fl ...

随机推荐

  1. 程序集的内部结构(托管模块、元素局、IL代码的分布情况)

    程序集的内部结构 在看程序集的结构之前,我们先来看托管模块的结构. 托管模块由四部分组成:PE32头.CLR头.元数据(Metadata).IL代码.其中PE32头是用来决定托管模块运行的系统环境(3 ...

  2. VC++编程之字符串解惑--Unicode & MBCS

    VC++中的字符串用起来着实让人难受,LPTSTR.LPCTSTR.LPCSTR.LPCWSTR.LPSTR.WCHAR.CString._T()和L彼此之间的互相转换更是头痛.根据使用经验和MSDN ...

  3. QWidget类中默认是忽略inputMethodEvent事件(要获取输入的内容就必须使用这个事件)

    因为项目的需要以及主管的要求,准备将工程移植到Qt中,这样就可以比较容易的实现跨平台了.因为之前工程是在windows下开发的,第一个平台又是mobile所以除了底层框架之外其他的都是使用的windo ...

  4. URAL 1180. Stone Game (博弈 + 规律)

    1180. Stone Game Time limit: 1.0 second Memory limit: 64 MB Two Nikifors play a funny game. There is ...

  5. C#拖曳控件加载,bll报错问题

    C#拖曳控件加载,bll报错问题,加载时实例如化bll时加上一个判断 if (!(GetService(typeof(IDesignerHost)) != null            || Sys ...

  6. 服务确定撤销/删除/关闭 (ml81n)

    FUNCTION zrfc_mm006. *"---------------------------------------------------------------------- * ...

  7. linux命令:scp

    有时候ftp被禁用了, 就用scp替代; 命令行: scp from to_user@to_ip:dir_to/file_name 执行该命令之后,按照提示输入to_host的登陆密码即可. scp ...

  8. 浮点数在计算机内存中的表示(IEEE 754规定1位是符号位,8位是指数,剩下的23位为有效数字)

    本文转载自:阮一峰的博客,http://www.ruanyifeng.com/blog/2010/06/ieee_floating-point_representation.html 张玉彬的博客 h ...

  9. wince平台下使用log4net记录日志

    前面我写过一篇文章是来介绍windows平台下开发软件使用log4net来记录日志的,详情请参考:用一个简单的示例说明日志记录组件log4net的使用. 我们在wince平台下开发程序也一样需要日志文 ...

  10. <转载>如何解决子级用float浮动父级div高度不能自适应的问题

    转载:http://www.kwstu.com/ArticleView/divcss_2013101582430202 解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内 ...