oracle备份问题吗,oracle-备份问题

联机备份:

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

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经常处于

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

未完.........

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值