ORACLE 手工备份与恢复

  手工备份及恢复:

缺点:需要手工管理备份内容,容易丢失,不利于管理

表空间:

实现:

表空间:select * from v$tablespace

数据文件:select * from v$datafile

备份:

1. 在数据库中输入命令:alter tablespace 表空间 begin backup;

2. 在OS手工复制数据文件

3. 在数据库中输入命令:alter tablespace 表空间 end backup;

还原:

1. 在数据库中输入命令:alter database datafile 数字 offline;

2. 在OS手工复制数据文件

3. 在数据库中输入命令:recover datafile 数字;

4. 在数据库中输入命令:alter database datafile 数字 online;

控制文件备份

控制文件备份:

1. 指定路径:SQL>alter database backup controlfile to '备份路径\备份文件名';

2. 备份到trace:SQL>alter database backup controlfile to trace;

控制文件备份到参数:USER_DUMP_DEST

控制文件恢复

1. 控制部分丢失(control01,control02文件遗失)

方法一:

shutdown abort

startup nomount

alter system set control_files='$ORACLE_BASE/oradata/$ORACLE_SID/control03.ctl' scope=spfile;

shutdown abort;

startup

方法二:

shutdown abort

将现有文件复制两份,改名为crontrol01.ctl;control02.ctl

startup

2. 控制文件全部丢失(备份文件比较旧)

确保从上一次备份到控制文件丢失过程中,所有的redo log或者archived log都在。

否则只能进行不完全恢复

shutdown abort;

startup mount;

recover database using backup controlfile;

过程中如果出现提示"name of datafile is known...."

alter database rename file '提示中的路径和文件名' to '正确的数据文件路径及文件名'

过程中如果出现提示"datafile not found...."

alter database datafile 数字 offline;

过程中如果出现提示需要archive log,但是archive log目录没有,系统指的是online redo log,只能逐个尝试

/u01/app/oracle/oradata/redo01.log

/u01/app/oracle/oradata/redo02.log

/u01/app/oracle/oradata/redo03.log

每次提示通过后都要重新输入:

recover database using backup controlfile;

知道提示"media recover "

recover database using backup controlfile;

3. 从trace恢复controlfile

a. 打开备份controlfile时生成的trace文件

b. 找到标记”Set #1. NORESETLOGS case”部分。

注意:一般情况下trace文件里都会有2部分相关内容恢复时先执行”Set #1. NORESETLOGS case”部分

运行上述标记部分的sql语句

SQL>STARTUP NOMOUNT

SQL>CREATE CONTROLFILE REUSE DATABASE "ZP" NORESETLOGS ARCHIVELOG

   MAXLOGFILES 16

   MAXLOGMEMBERS 3

   MAXDATAFILES 100

   MAXINSTANCES 8

   MAXLOGHISTORY 292

LOGFILE

GROUP 1 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZP\REDO01.LOG' SIZE 50M,

GROUP 2 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZP\REDO02.LOG' SIZE 50M,

GROUP 3 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZP\REDO03.LOG' SIZE 50M

DATAFILE

'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZP\SYSTEM01.DBF',

'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZP\UNDOTBS01.DBF',

'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZP\SYSAUX01.DBF',

'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZP\USERS01.DBF',

'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZP\TBS1.DBF'

CHARACTER SET ZHS16GBK

;

SQL>VARIABLE RECNO NUMBER;

SQL>EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CONTROLFILE AUTOBACKUP','ON');

RECOVER DATABASE;

SQL>ALTER SYSTEM ARCHIVE LOG ALL;

SQL>ALTER DATABASE OPEN;

SQL>ALTER TABLESPACE TEMP ADD TEMPFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ZP\TEMP01.DBF'

    SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;

Redo log文件(archive log开启)

类型:

current:目前在使用的;

Inactive:目前不用,并且已经archived

Active:

1. 目前不用,等待archive;

2. 目前不用,等待DWRn写数据文件

Unused:新建的Redo log文件;被resetlog过的文件

查看log group 状态:select * from v$log;

查看log file状态:select * from v$logfile;

Inactived / Unused:

log group 如果有多个成员

删除其中那个损坏的文件:

ALTER DATABASE DROP LOGFILE MEMBER '$ORACHE_BASE\oradata\$ORACLE_SID\redo01.log';

新建一个新的文件:

ALTER DATABASE ADD LOGFILE MEMBER '$ORACHE_BASE\oradata\$ORACHE_SID\redo04.log' TO GROUP 1;

log group 只有一个成员

删除log group:

alter database drop logfile group 1;

新建log group:

alter database add logfile group 4;

Active:

Alter database clear unarchived logfile group 2;

temp表空间:

1. 删除数据文件temp01.bdf

2. 创建新的temp 表空间:

CREATE TEMPORARY TABLESPACE temp2 TEMPFILE '$ORACLE_BASE/oradata/$ORACHE_SID/temp02.dbf'
     SIZE 50M  autoextend on next 1m ;

3. 让ORACLE数据库使用新的temp表空间:

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp2;

4. 删除原有的temp表空间:

drop tablespace temp including contents and datafiles;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24751738/viewspace-707563/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24751738/viewspace-707563/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值