网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle 10g Release2新功能之Ref.
.Oracle9i不仅仅是数据库.
.了解Oracle Developer.
.Ora2html--收集Oracle数据库信息.
.Oracle是如何工作的.
.Oracle 9i新特性研究系列之五 --.
.关于使用Oracle9i时,无法找到客.
.Oracle 10g RAC与SLES9.
.Oracle研究人员公布高危安全漏洞.
.如何修改internal的口令?.
.对即将上线的Oracle10g ASM生产数.
.供应商:面对艰难的许可证选择.
.高效实现数据仓库的七个步骤.
.如何连接两台Oracle服务器(服务.
.如何在ORACLE中實現人民幣大寫的.
.postfix技巧.
.一些oracle的论坛和网站.
.自定义函数:f_henry_GetStringLe.
.某个数据文件损坏,如何打开数据.
.ASP 中通过OLEDB访问Oracle的代码.

完整的oracle rman备份恢复的例子

发表日期:2008-2-9


完整的Oracle rman备份恢复的例子
 
1、 建rman库作为repository
$more createrman_db1.sh
set echo on
spool makedb1.log
create database rman
datafile '/eXPort/home/oracle/oradata/rman_data/system.dbf' size 50m autoextend
on next 640K
logfile '/export/home/oracle/oradata/rman_data/redo0101.log' SIZE 10M,
'/export/home/oracle/oradata/rman_data/redo0201.log' SIZE 10M
maxdatafiles 30
maxinstances 8
maxlogfiles 64
character set US7ASCII
national character set US7ASCII
;
disconnect
spool off
exit @/export/home/oracle/8.1.6/rdbms/admin/catalog.sql; REM ********** ALTER SYSTEM TABLESPACE *********
ALTER TABLESPACE SYSTEM
DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCR
EASE 50);
ALTER TABLESPACE SYSTEM
MINIMUM EXTENT 64K; REM ********** TABLESPACE FOR ROLLBACK **********
CREATE TABLESPACE RBS DATAFILE '/export/home/oracle/oradata/rman_data/rbs.dbf' s
ize 50m
AUTOEXTEND ON NEXT 512K
MINIMUM EXTENT 512K
DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 10 MAXEXTENTS UNLIMITED PC
TINCREASE 0 ); REM ********** TABLESPACE FOR TEMPORARY **********
CREATE TABLESPACE TEMP DATAFILE '/export/home/oracle/oradata/rman_data/temp.dbf'
size 50m
AUTOEXTEND ON NEXT 64K
MINIMUM EXTENT 64K
DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCR
EASE 0) TEMPORARY; REM **** Creating four rollback segments ****************
CREATE PUBLIC ROLLBACK SEGMENT RBS_0 TABLESPACE RBS
STORAGE ( OPTIMAL 64000K );
ALTER ROLLBACK SEGMENT "RBS_0" ONLINE;
REM **** SYS and SYSTEM users ****************
alter user sys temporary tablespace TEMP;
alter user system temporary tablespace TEMP;
disconnect
spool off
exit $more createrman_db3.sh
spool crdb3.log
@/export/home/oracle/8.1.6/rdbms/admin/catproc.sql
@/export/home/oracle/8.1.6/rdbms/admin/caths.sql
@/export/home/oracle/8.1.6/rdbms/admin/otrcsvr.sql
connect system/manager
@/export/home/oracle/8.1.6/sqlplus/admin/pupbld.sql disconnect
spool off
exit 2、建repository存放的表空间和rman用户
$more createrman_db4.sh
connect internal
create tablespace rman_ts
datafile '/export/home/oracle/oradata/rman_data/rman_ts.dbf'
size 20M default storage (initial 100K next 100K pctincrease 0);
create user rman_hainan identified by rman_hainan
temporary tablespace TEMP
default tablespace rman_ts quota unlimited on
rman_ts;
grant recovery_catalog_owner to rman_hainan;
grant connect ,resource to rman_hainan;
3、建catalog,注册目标数据库
$more createrman_db5.sh
rman catalog rman_hainan/rman_hainan@rman msglog=rman.log
create catalog ;
exit;
rman target sys/oracle@db1
connect catalog rman_hainan/rman_hainan@rman
register database;
exit; 4、可以开始做备份了。
5、做全备
$more rmanshell
. /export/home/oracle/.profile
rman rcvcat rman_hainan/rman_hainan@rman target / cmdfile /export/home/oracle/ba
ckup_level0.rcv log /export/home/oracle/backup.log $more backup_level0.rcv
resync catalog;
run {
allocate channel t1 type disk;
backup
incremental level 0
skip inAccessible
tag hot_db_bk_level0
filesperset 3
format '/export/home/oracle/bk_%s_%p_%t.bk'
(database);
sql 'alter system archive log current';
backup
filesperset 10
format '/export/home/oracle/a1_%s_%p_%t.ac'
(archivelog all delete input);
backup
format '/export/home/oracle/df_t%t_s%s_p%p.ct'
current controlfile ;
} 6、做增备
$more rmanshell1
rman rcvcat rman_hainan/rman_hainan@rman target / cmdfile backup_level1.rcv log
backup.log $more backup_level1.rcv
resync catalog;
run {
allocate channel t1 type disk;
backup
incremental level 1
skip inaccessible
tag hot_db_bk_level1
filesperset 3
format 'bk_%s_%p_%t.bk1'
(database);
sql 'alter system archive log current';
backup
filesperset 10
format 'a1_%s_%p_%t.ac1'
(archivelog all delete input);
backup current controlfile;
} 1、 删除旧的全备
$rman rcvcat rman_hainan/rman_hainan@rman target / Recovery Manager: Release 8.1.6.0.0 - ProdUCtion RMAN-06005: connected to target database: TEST (DBID=1692992254)
RMAN-06008: connected to recovery catalog database RMAN> list backupset; RMAN-03022: compiling command: list List of Backup Sets
Key Recid Stamp LV Set Stamp Set Count Completion Time
------- ---------- ---------- -- ---------- ---------- ----------------------
38 145 399987408 0 399987406 153 11-JUN-00 根据key来删除旧的备份。 RMAN> allocate channel for maintenance type disk;
RMAN> change backupset 169 delete; ----------THIS IS THE COMMAND TO REMOVE THE ENTRY & OS FILE 做完后可以看到list backupset和操作系统的文件都没有了。 2、 恢复
(1) 将数据库启动到nomount状态:
$svrmgrl Oracle Server Manager Release 3.1.6.0.0 - Production Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved. Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
SVRMGR> connect internal
Connected.
SVRMGR> startup nomount;
ORACLE instance started.
Total System Global Area 339275684 bytes
Fixed Size 94116 bytes
Variable Size 318685184 bytes
Database Buffers 16384000 bytes
Redo Buffers 4112384 bytes
SVRMGR> exit
Server Manager complete.
(2) 恢复控制文件:
$rman rcvcat rman_hainan/rman_hainan@rman target / Recovery Manager: Release 8.1.6.0.0 - Production RMAN-06006: connected to target database: test (not mounted)
RMAN-06008: connected to recovery catalog database RMAN> run {
2> allocate channel d1 type disk;
3> restore controlfile;
4> release channel d1;
5> } (3) 恢复数据文件 RMAN> run {
2> allocate channel d1 type disk;
3> sql "alter database mount";
4> restore datafile 1;
5> restore datafile 2;
6> restore datafile 3;
7> restore datafile 4;
8> release channel d1;
9> } (4) 恢复日志文件 RMAN> run {
2> set archivelog destination to '/export/home/oracle/admin/test/arch';
3> allocate channel d1 type disk;
4> restore archivelog all;
5> release channel d1;
6> }
会把所有的日志文件恢复。 (5) 根据日志做recover
$svrmgrl Oracle Server Manager Release 3.1.6.0.0 - Production Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved. Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production SVRMGR> connect internal
Connected.
SVRMGR> recover database using backup controlfile until cancel;
ORA-00279: change 51054 generated at 06/11/2000 11:38:37 needed for thread 1
ORA-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_3.arc
ORA-00280: change 51054 for thread 1 is in sequence #3
Specify log: {<RET>=suggested filename AUTO CANCEL}
Log applied.
ORA-00279: change 51058 generated at 06/11/2000 11:38:44 needed for thread 1
ORA-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_4.arc
ORA-00280: change 51058 for thread 1 is in sequence #4
ORA-00278: log file '/export/home/oracle/admin/test/arch/arch_1_3.arc' no longer
needed for this recovery
Specify log: {<RET>=suggested filename AUTO CANCEL} Log applied.
ORA-00279: change 51074 generated at 06/11/2000 11:40:20 needed for thread 1
ORA-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_5.arc
ORA-00280: change 51074 for thread 1 is in sequence #5
ORA-00278: log file '/export/home/oracle/admin/test/arch/arch_1_4.arc' no longer
needed for this recovery
Specify log: {<RET>=suggested filename AUTO CANCEL}
cancel
Media recovery cancelled.
SVRMGR> alter database open resetlogs;
Statement processed.
恢复完成。
SVRMGR> select table_name from user_tables;
TABLE_NAME
------------------------------
BONUS
DEPT
EMP
SALGRADE
TEST
TEST_ZMY
ZMY
ZMY_DEPT
ZMY_EMP
9 rows selected.
可以检查看到,所有的都恢复了,包括全备份后的事务。(只要有归档日志,都可以恢复)。
3、 恢复后rman数据库的同步
$rman rcvcat rman_hainan/rman_hainan@rman target / Recovery Manager: Release 8.1.6.0.0 - Production RMAN-06005: connected to target database: TEST (DBID=1692992254)
RMAN-06008: connected to recovery catalog database RMAN> reset database; RMAN-03022: compiling command: reset
RMAN-03023: executing command: reset
RMAN-08006: database registered in recovery catalog
RMAN-03023: executing command: full resync
RMAN-08029: snapshot controlfile name set to default value: ?/dbs/snapcf_@.f
RMAN-08002: starting full resync of recovery catalog
RMAN-08004: full resync complete  

上一篇:在Windows下管理Oracle9i 服务 人气:668
下一篇:Oracle9i进程的内存占用问题 人气:1062
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐