联机备份:
-------------------------------------------
1>以SYS用户和SYSDBA身份登录.以SHUTDOWN IMMEDIATE
方式关闭数据库
1. CONNECT sys/admin AS SYSDBA
2. SHUTDOWN IMMEDIATE
2>创建备份文件目录
3>使用操作系统命令备份数据库所有文件
1. 要备份的控制文件通过查询数据字典视图v$controlfile
SELECT status,name FROM v$controlfile;
2. 要备份的数据文件通过查询数据字典视图v$dba_data_file
SELECT status,file_name FROM dba_data_files;
3. 要备份的联机重做日志文件通过字典视图v$logfile
SELECT group#,status,member FROM v$logfile;
注:4.要备份的参数文件存放在database目录中 D:\app\Administrator\product\11.2.0\dbhome_1\dbs
5.要备份的网络连接文件存放在主目录中的
D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN
6.如果定制了SQL*PLUS,还要备份
D:\app\Administrator\product\11.2.0\dbhome_1\sqlplus\admin
4>备份完成后,需要以STARTUP OPEN打开
恢复
---------------------------------------------
1>以SYS用户和SYSDBA身份登录.以SHUTDOWN IMMEDIATE
方式关闭数据库
1. CONNECT sys/admin AS SYSDBA
2. SHUTDOWN IMMEDIATE
2>把所有备份文件拷回到原来所在的位置
3>恢复完成后,以STARTUP OPEN打开
使用RMAN实现联机备份与恢复
RMAN程序所在路径: D:\app\Administrator\product\11.2.0\dbhome_1\BIN
RMAN主要参数:
target 跟目标数据库连接字符串
catalog 跟恢复目录
nocatalog 指定没有恢复
---------------------------------------
要使用RMAN必须将数据库设置为归档日志(ARCHIVELOG)
1>以SYS用户和SYSDBA身份登录.以SHUTDOWN IMMEDIATE
方式关闭数据库,以STARTUP MOUNT启动
1. CONNECT sys/admin AS SYSDBA
2. SHUTDOWN IMMEDIATE
3. STARTUP
MOUNT (此时没有打开数据库实例)
2>切换到归档日志模式
ALTER DATABASE archivelog
3>查看数据库实例信息
SELECT dbid,name,log_mode,platform_name from v$database;
4>创建恢复目录所用的表空间
1. 重新登录 打开数据库
2. CREATE TABLESPACE rman_ts datafile
'f:\rman_ts.dbf' SIZE 200M;
5>创建RMAN用户并授权
1. CREATE USER rman IDENTIFIED BY admin DEFAULT
TABLESPACE rman_ts TEMPORARY TABLESPACE temp;
2.GRANT CONNECT,RECOVERY_CATALOG_OWNER,RESOURCE
TO rman;
CONNECT: 拥有连接数据库,创建表,视图等对象
RECOVERY_CATALOG_OWNER: 可以对恢复目录进行管理
RESOURCE: 可以创建表,视图等数据库对象
3.运行RMAN CATALOG rman/admin TARGET ORC
1.使用表空间创建恢复目录,恢复目录为rman_ts
CREATE
CATALOG TABLESPACE rman_ts
2.注册目标数据库
REGISTER
DATABASE;
3.使用run命令,进行完全数据库备份
run{
allocate channel devl type
disk;
backup database;
release channel devl;
}
进行归档日志备份
run{
allocate channel devl type
disk;
backup archivelog all;
release channel devl;
}
4.备份后,可以使用list backup查看备份信息
----------------------------------------------------------
使用RMAN程序恢复
1>恢复归档日志
run{
allocate channel devl type
disk;
restore archivelog all;
release channel devl;
}
脱机备份:
备份
-------------------------------------------
1>以SYS用户和SYSDBA身份登录.以SHUTDOWN IMMEDIATE
方式关闭数据库
1. CONNECT sys/admin AS SYSDBA
2. SHUTDOWN IMMEDIATE
2>创建备份文件目录
3>使用操作系统命令备份数据库所有文件
1. 要备份的控制文件通过查询数据字典视图v$controlfile
SELECT status,name FROM v$controlfile;
2. 要备份的数据文件通过查询数据字典视图v$dba_data_file
SELECT status,file_name FROM dba_data_files;
3. 要备份的联机重做日志文件通过字典视图v$logfile
SELECT group#,status,member FROM v$logfile;
注:4.要备份的参数文件存放在database目录中 D:\app\Administrator\product\11.2.0\dbhome_1\dbs
5.要备份的网络连接文件存放在主目录中的
D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN
6.如果定制了SQL*PLUS,还要备份
D:\app\Administrator\product\11.2.0\dbhome_1\sqlplus\admin
4>备份完成后,需要以STARTUP OPEN打开
恢复
---------------------------------------------
1>以SYS用户和SYSDBA身份登录.以SHUTDOWN IMMEDIATE
方式关闭数据库
1. CONNECT sys/admin AS SYSDBA
2. SHUTDOWN IMMEDIATE
2>把所有备份文件拷回到原来所在的位置
3>恢复完成后,以STARTUP OPEN打开
闪回数据库:-----------------------------------------
1>以SYS登录到OEM
1.在"服务器"子页面单击"数据库配置",选择"初始化参数",
2.对db_recovery_file_dest进行恢复区位置配置:D:\app\Administrator\flash_recovery_area
对db_recovery_file_dest_size进行恢复区大小配置:2g
2>在SQL*Plus中配置闪回数据库
CONNECT sys/admin AS
sysdba;
shutdown immediate
startup mount
alter database flashback
on;
alter database open;
3>设置日期显示方式
ALTER
session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
从系统视图v$flashback_database_log中查看闪回数据库日志信息:
SELECT *
FROM v$flashback_database_log;
使用flashback database语句闪回恢复的数据库:
FLASHBACK
DATABASE
2 TO
TIMESTAMP(TO_DATE('2009-05-28 12:30:00','yyyy-mm-dd
hh24:mi:ss'));
4>闪回恢复后,再打开数据库实例,需要使用resetlogs或noresetlogs
ALTER DATABASE OPEN RESETLOGS;
SELECT * FROM hr.mydep
闪回表
使用flashback table 以下实例首先删除表hr.mydepl中的部分记录,然后闪回
----------------------------------------------------------
SET TIME ON
CREATE TABLE hr.mydepl AS SELECT * FROM hr.departmant;
DELETE FROM hr.mydepl WHERE department_id=10;
flashback table hr.mydepl
2 to
timestamp(TO_DATE('2009-05-28 12:30:00','yyyy-mm-dd
hh24:mi:ss'));
闪回回收站 recyclebin
--------------------------------------------------------
查看回收站中的数据
SELECT object_name,original_name,createtime,droptime from
dba_recycle
从回收站恢复数据
flashback table hr.mydep2 to before drop;
删除回收站中的数据
purge table hr.mydepl
清空回收站
purge dba_recyclebin
闪回查询 可以查询指定时间点表中的数据
-------------------------------------------
1>必须将UNDO_MANAGEMENT设置为AUTO
set time on
创建实例:
CREATE TABLE hr.mydep4 as select * from
hr.departments;
删除记录:
DELETE FROM hr.mydep4 where
department_id=300;
COMMIT;
使用闪回查询
SELECT * FROM hr.mydep4 as of timestamp
2 to
timestamp(TO_DATE('2009-05-28 12:30:00','yyyy-mm-dd
hh24:mi:ss'));
控制文件
Oracle会根据初始化参数定位控制文件,若控制文件被破坏,则整个Oracle数据库将无法启动
控制文件是一个很小的二进制文件,用于支持数据库启动和运行
记录了对应数据库的结构信息,和参数设置
标识数据库和日志文件
*如果数据库的物理结构发生变化,应该及时备份控制文件
多路复用控制文件:
在系统不同的位置同时维护多个控制文件的副本,当发生控制文件损坏,就可以使用另一个来恢复被损坏的控制文件
oracle根据CONTROL_FILES同时修改所有控制文件,但只读第一个,如果任何一个控制文件变为不可用,那么实例就不能再继续运行
1>设置多路复用控制文件,须先更改CONTROL_FILES参数
ALTER SYSTEM SET CONTROL_FILES=
'D:\app\Administrator\oradata\xmbcit\CONTROL01.CTL',
'D:\app\Administrator\oradata\xmbcit\CONTROL02.CTL',
'F:\CONTROL03.CTL'
SCOPE=SPFILE;
第3个控制文件是用户自行添加,目前还没有创建该文件,需先关闭数据库来创建
2>创建控制文件
关闭OracleDBConsoleSID和OracleServiceSID服务
3>将原有控制文件,复制成新的控制文件
4>重启数据库 查询控制文件是否启用
SELECT * NAME FROM v$controlfile;
控制文件的备份
--------------------------------------------
使用ALTER DATABASE BACKUP CONTROLFILE
1.备份为二进制文件,即复制当前的文件
ALTER DATABASE BACKUP CONTROLFILE TO
'F:\control_09-05-05.bkp'
2.将控制文件备份为可读的文本文件
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
以文本形式备份时,该文件实际是一个SQL脚本,称为跟踪文件
*跟踪文件的存放位置由参数USER_DUMP_DEST决定
SHOW PARAMETER USER_DUMP_DEST
控制文件的恢复 只需在初始化文件中重设CONTROL_FILES参数的值,指向备份文件
----------------------------------------
1>关闭数据库 直接覆盖方法
conn / AS SYSDBA;
SHUTDOWN IMMEDIATE
2>通过操作系统命令使用完好的副本覆盖损坏的控制文件
3>重启
STARTUP
1>关闭数据库,将当前操作系统命令复制到一个可访问的位置
2>编辑初始化参数CONTROL_FILES,用新的位置替换原来被损坏的位置
3>重新启动 STARTUP
跟控制文件先关的数据字典
V$CONTROLFILE 包含所有控制文件名次和状态信息
V$CONTROLFILE_RECORD_SECTION 包含控制文件中各个记录文档段的信息
V$PARAMETER 包含系统的所有初始化参数,从中可以查询参数CONTROL_FILES的值
查询数据文档段的信息
SELECT TYPE,RECORD_SIZE,RECORDS_TOTAL,RECORDS_USED FROM
v$controlfile_record_section
控制文件的删除
----------------------------------------
1>关闭数据库 shutdown
2>编辑初始化参数CONTROL_FILES,
3>重新启动数据库
删除时,需要主要数据库必须拥有两个以上的控制文件才能正常启动
日志文件:
日志文件,保证数据库安全和数据库备份与恢复的文件,是数据库安全和恢复的脚本保障 记录对数据库的所有修改信息
任何时候,Oracle都只使用其中一个来存储重做记录
被LGWR进程写入的处于"当前状态CURRENT"
被实例用与恢复的处于"活动状态ACTIVE"
其他的处于"未活动状态INACTIVE"
如果损坏会将其标识INVALID
通过查询V$LOGFILE可以获得日志状态
1>日志切换 当一个重做日志写满后切换到下个重做日志
DBA可以强制进行日志切换,切换时,ORACLE将暂停工作
日志成员镜像受MAXLOGNUMBERS的限制
如果需要查询使用的日志文件组,查询V$LOG
如果需要查询使用的日志文件,查询V$LOGFILE
在数据字典"V$LOG_HISTORY"中记录历史日志信息
通过ALTER SYSTEM SWITCH LOGFILE
来强制进行切换
如果LGWR经常处于
---------------------------------
未完.........