6、备份特定用户特权在12c中引入了SYSBACKUP特权用来在 RMAN中执行备份和恢复命令。因此,你可以在数据库中创建一个本地用户并在不授予其SYSDBA权限的情况下,通过授予SYSBACKUP权限让其能够在RMAN中执行备份和恢复相关的任务。
--特权用户使用方法:
rman target "username/password as sysbackup"
--示例:
SQL> create user rman_user identified by oracle;
User created.
SQL> grant connect, resource to rman_user;
Grant succeeded.
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/llfdb/system01.dbf
/u01/app/oracle/oradata/llfdb/sysaux01.dbf
/u01/app/oracle/oradata/llfdb/undotbs01.dbf
/u01/app/oracle/oradata/llfdb/users01.dbf
SQL> create tablespace rman_test datafile '/u01/app/oracle/oradata/llfdb/rman_test01.dbf' size 100m;
Tablespace created.
SQL> select tablespace_name, status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
RMAN_TEST ONLINE
[oracle@lfdz1 admin]$ rman
Recovery Manager: Release 12.1.0.1.0 - Production on Tue Jun 21 15:50:22 2016
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
RMAN> connect target "rman_user/oracle as sysbackup"
connected to target database: LLFDB (DBID=1453264312)
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name LLFDB are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/12.1.0/db_1/dbs/snapcf_llfdb.f'; # default
--备份表空间
RMAN> backup tablespace RMAN_TEST section size 50m;
Starting backup at 21-JUN-16
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00013 name=/u01/app/oracle/oradata/llfdb/rman_test01.dbf
backing up blocks 1 through 6400
channel ORA_DISK_1: starting piece 1 at 21-JUN-16
channel ORA_DISK_1: finished piece 1 at 21-JUN-16
piece handle=/u01/app/oracle/fast_recovery_area/LLFDB/backupset/2016_06_21/o1_mf_nnndf_TAG20160621T155435_cpkwovol_.bkp tag=TAG20160621T155435 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00013 name=/u01/app/oracle/oradata/llfdb/rman_test01.dbf
backing up blocks 6401 through 12800
channel ORA_DISK_1: starting piece 2 at 21-JUN-16
channel ORA_DISK_1: finished piece 2 at 21-JUN-16
piece handle=/u01/app/oracle/fast_recovery_area/LLFDB/backupset/2016_06_21/o1_mf_nnndf_TAG20160621T155435_cpkwowrq_.bkp tag=TAG20160621T155435 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 21-JUN-16
Starting Control File and SPFILE Autobackup at 21-JUN-16
piece handle=/u01/app/oracle/fast_recovery_area/LLFDB/autobackup/2016_06_21/o1_mf_s_915119677_cpkwoy1o_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 21-JUN-16
--模拟表空间文件损坏
[oracle@lfdz1 oradata]$ cd llfdb/
[oracle@lfdz1 llfdb]$ ls
control01.ctl pdbseed redo02.log rman_test01.dbf system01.dbf undotbs01.dbf
llfpdb redo01.log redo03.log sysaux01.dbf temp01.dbf users01.dbf
[oracle@lfdz1 llfdb]$ rm -fr rman_test01.dbf
SQL> shutdown abort;
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
[oracle@lfdz1 admin]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Tue Jun 21 15:56:45 2016
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2296576 bytes
Variable Size 713032960 bytes
Database Buffers 348127232 bytes
Redo Buffers 5480448 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 13 - see DBWR trace file
ORA-01110: data file 13: '/u01/app/oracle/oradata/llfdb/rman_test01.dbf'
--特权用户进行恢复
[oracle@lfdz1 admin]$ rman
Recovery Manager: Release 12.1.0.1.0 - Production on Tue Jun 21 15:57:00 2016
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
RMAN> connect target "rman_user/oracle as sysbackup"
connected to target database: LLFDB (DBID=1453264312, not open)
RMAN> restore datafile 13;
Starting restore at 21-JUN-16
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=240 device type=DISK
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00013 to /u01/app/oracle/oradata/llfdb/rman_test01.dbf
channel ORA_DISK_1: restoring section 1 of 2
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/LLFDB/backupset/2016_06_21/o1_mf_nnndf_TAG20160621T155435_cpkwovol_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/LLFDB/backupset/2016_06_21/o1_mf_nnndf_TAG20160621T155435_cpkwovol_.bkp tag=TAG20160621T155435
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00013 to /u01/app/oracle/oradata/llfdb/rman_test01.dbf
channel ORA_DISK_1: restoring section 2 of 2
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/LLFDB/backupset/2016_06_21/o1_mf_nnndf_TAG20160621T155435_cpkwowrq_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/LLFDB/backupset/2016_06_21/o1_mf_nnndf_TAG20160621T155435_cpkwowrq_.bkp tag=TAG20160621T155435
channel ORA_DISK_1: restored backup piece 2
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 21-JUN-16
RMAN> recover datafile 13;
Starting recover at 21-JUN-16
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:00
Finished recover at 21-JUN-16
RMAN> alter database open;
Statement processed
SQL> conn /as sysdba
Connected.
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
SQL> select tablespace_name, status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
RMAN_TEST ONLINE
6 rows selected.
--特权用户使用方法:
rman target "username/password as sysbackup"
--示例:
SQL> create user rman_user identified by oracle;
User created.
SQL> grant connect, resource to rman_user;
Grant succeeded.
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/llfdb/system01.dbf
/u01/app/oracle/oradata/llfdb/sysaux01.dbf
/u01/app/oracle/oradata/llfdb/undotbs01.dbf
/u01/app/oracle/oradata/llfdb/users01.dbf
SQL> create tablespace rman_test datafile '/u01/app/oracle/oradata/llfdb/rman_test01.dbf' size 100m;
Tablespace created.
SQL> select tablespace_name, status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
RMAN_TEST ONLINE
[oracle@lfdz1 admin]$ rman
Recovery Manager: Release 12.1.0.1.0 - Production on Tue Jun 21 15:50:22 2016
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
RMAN> connect target "rman_user/oracle as sysbackup"
connected to target database: LLFDB (DBID=1453264312)
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name LLFDB are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/12.1.0/db_1/dbs/snapcf_llfdb.f'; # default
--备份表空间
RMAN> backup tablespace RMAN_TEST section size 50m;
Starting backup at 21-JUN-16
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00013 name=/u01/app/oracle/oradata/llfdb/rman_test01.dbf
backing up blocks 1 through 6400
channel ORA_DISK_1: starting piece 1 at 21-JUN-16
channel ORA_DISK_1: finished piece 1 at 21-JUN-16
piece handle=/u01/app/oracle/fast_recovery_area/LLFDB/backupset/2016_06_21/o1_mf_nnndf_TAG20160621T155435_cpkwovol_.bkp tag=TAG20160621T155435 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00013 name=/u01/app/oracle/oradata/llfdb/rman_test01.dbf
backing up blocks 6401 through 12800
channel ORA_DISK_1: starting piece 2 at 21-JUN-16
channel ORA_DISK_1: finished piece 2 at 21-JUN-16
piece handle=/u01/app/oracle/fast_recovery_area/LLFDB/backupset/2016_06_21/o1_mf_nnndf_TAG20160621T155435_cpkwowrq_.bkp tag=TAG20160621T155435 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 21-JUN-16
Starting Control File and SPFILE Autobackup at 21-JUN-16
piece handle=/u01/app/oracle/fast_recovery_area/LLFDB/autobackup/2016_06_21/o1_mf_s_915119677_cpkwoy1o_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 21-JUN-16
--模拟表空间文件损坏
[oracle@lfdz1 oradata]$ cd llfdb/
[oracle@lfdz1 llfdb]$ ls
control01.ctl pdbseed redo02.log rman_test01.dbf system01.dbf undotbs01.dbf
llfpdb redo01.log redo03.log sysaux01.dbf temp01.dbf users01.dbf
[oracle@lfdz1 llfdb]$ rm -fr rman_test01.dbf
SQL> shutdown abort;
ORACLE instance shut down.
SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
[oracle@lfdz1 admin]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Tue Jun 21 15:56:45 2016
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2296576 bytes
Variable Size 713032960 bytes
Database Buffers 348127232 bytes
Redo Buffers 5480448 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 13 - see DBWR trace file
ORA-01110: data file 13: '/u01/app/oracle/oradata/llfdb/rman_test01.dbf'
--特权用户进行恢复
[oracle@lfdz1 admin]$ rman
Recovery Manager: Release 12.1.0.1.0 - Production on Tue Jun 21 15:57:00 2016
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
RMAN> connect target "rman_user/oracle as sysbackup"
connected to target database: LLFDB (DBID=1453264312, not open)
RMAN> restore datafile 13;
Starting restore at 21-JUN-16
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=240 device type=DISK
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00013 to /u01/app/oracle/oradata/llfdb/rman_test01.dbf
channel ORA_DISK_1: restoring section 1 of 2
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/LLFDB/backupset/2016_06_21/o1_mf_nnndf_TAG20160621T155435_cpkwovol_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/LLFDB/backupset/2016_06_21/o1_mf_nnndf_TAG20160621T155435_cpkwovol_.bkp tag=TAG20160621T155435
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00013 to /u01/app/oracle/oradata/llfdb/rman_test01.dbf
channel ORA_DISK_1: restoring section 2 of 2
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/LLFDB/backupset/2016_06_21/o1_mf_nnndf_TAG20160621T155435_cpkwowrq_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/LLFDB/backupset/2016_06_21/o1_mf_nnndf_TAG20160621T155435_cpkwowrq_.bkp tag=TAG20160621T155435
channel ORA_DISK_1: restored backup piece 2
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 21-JUN-16
RMAN> recover datafile 13;
Starting recover at 21-JUN-16
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:00
Finished recover at 21-JUN-16
RMAN> alter database open;
Statement processed
SQL> conn /as sysdba
Connected.
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
SQL> select tablespace_name, status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
RMAN_TEST ONLINE
6 rows selected.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30192548/viewspace-2121503/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30192548/viewspace-2121503/