电脑技术学习

详细讲解Oracle数据库10g RMAN的备份过程

dn001
1.首先查看一下Oracle的数据文件

SQL> select name from v$datafile;

NAME

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

/dev/rora_system

/dev/rora_undo1

/dev/rora_sysaux

/dev/rora_users

/dev/rora_example

2.建立RMAN所需的表空间,这里采用裸设备“/dev/rora_backup”

SQL> create tablespace ora_backup datafile'/dev/rora_backup' size 500M;

Tablespace created.

进行查看确认

SQL> select name from v$datafile;

NAME

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

/dev/rora_system

/dev/rora_undo1

/dev/rora_sysaux

/dev/rora_users

/dev/rora_example

/dev/rora_backup

6 rows selected.

已经发现ora_backup表空间

3.建立RMAN用户以及设定密码和用户表空间

SQL> create user rman identified by rman default tablespace ora_backup temporay tablespace temp

2 ;

create user rman identified by rman default tablespace ora_backup temporay tablespace temp

*

ERROR at line 1:

ORA-00922: missing or invalid option

在此处出错,原来是temporay打错,继续。

SQL> create user rman identified by rman default tablespace ora_backup temporary tablespace temp;

User created.

呵呵,成功

4.给用户授权

SQL> grant connect,resource,recovery_catalog_owner to rman

2 ;

Grant succeeded.

5.连接到数据库

SQL> rman target 'zhirui' catalog rman/rman

SP2-0734: unknown command beginning "rman targe..." - rest of line ignored.

呵呵,又出错了,没退出SQL。

SQL> exit

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production

With the Partitioning, OLAP and Data Mining options

$ rman target 'zhirui'catalog rman/rman

这下应该可以了吧

Argument Value Description

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

target quoted-string connect-string for target database

catalog quoted-string connect-string for recovery catalog

nocatalog none if specified, then no recovery catalog

cmdfile quoted-string name of input command file

log quoted-string name of output message log file

trace quoted-string name of output debugging message log file

append none if specified, log is opened in append mode

debug optional-args activate debugging

msgno none show RMAN-nnnn prefix for all messages

send quoted-string send a command to the media manager

pipe string building block for pipe names

timeout integer number of seconds to wait for pipe input

checksyntax none check the command file for syntax errors

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

Both single and double quotes (' or ") are accepted for a quoted-string.

Quotes are not required unless the string contains embedded white-space.

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-00552: syntax error in command line arguments

RMAN-01009: syntax error: found "rman": expecting one of: "append, at, auxiliary, catalog, cmdfile, clone, checksyntax,"

RMAN-01007: at line 2 column 1 file: command line arguments

恩?怎么回事?

$ rman

Recovery Manager: Release 10.2.0.1.0 - Production on Fri May 25 00:37:24 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

RMAN> connect catalog rman/rman

connected to recovery catalog database

RMAN> exit

Recovery Manager complete.

可以连接呀,再来

$ rman target 'zhirui' catalog rman/rman

Recovery Manager: Release 10.2.0.1.0 - Production on Fri May 25 00:38:13 2007

Copyright (c) 1982, 2005, Oracle. All rights reserved.

target database Password:

connected to target database: ZHIRUI (DBID=1679784276)

connected to recovery catalog database

恩,连接进去了。

6.注册数据库

RMAN> register database;

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of register command at 05/25/2007 00:38:55

RMAN-06428: recovery catalog is not installed

出错,recovery catalog is not installed

RMAN> register database zhirui;

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-00558: error encountered while parsing input commands

RMAN-01009: syntax error: found "identifier": expecting one of: ";"

RMAN-01008: the bad identifier was: zhirui

RMAN-01007: at line 1 column 19 file: standard input

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-00558: error encountered while parsing input commands

RMAN-01009: syntax error: found ";": expecting one of: "allocate, alter, backup, beginline, blockrecover, catalog, chan"

RMAN-01007: at line 1 column 25 file: standard input

7.建立catalog表空间到ora_backup

RMAN> create catalog tablespace ora_backup

recovery catalog created

这下可以注册了吧。

RMAN> register database;

database registered in recovery catalog

starting full resync of recovery catalog

full resync complete

注册成功

8.尝试备份全库

RMAN> run {

2> allocate channel dev1 type disk;

3> backup

4> format '/home/oracle/data/db_t%t_s%s_p%p'

5> (database);

6> release channel dev1;

7> }

allocated channel: dev1

channel dev1: sid=159 devtype=DISK

Starting backup at 25-MAY-07

channel dev1: starting full datafile backupset

channel dev1: specifying datafile(s) in backupset

input datafile fno=00006 name=/dev/rora_backup

input datafile fno=00001 name=/dev/rora_system

input datafile fno=00003 name=/dev/rora_sysaux

input datafile fno=00005 name=/dev/rora_example

input datafile fno=00002 name=/dev/rora_undo1

input datafile fno=00004 name=/dev/rora_users

channel dev1: starting piece 1 at 25-MAY-07

至此,成功。