eygle.com   eygle.com
eygle.com eygle
eygle.com  
 
Digest Net: December 2008 Archives

December 2008 Archives

VERITAS VXVM配置信息简要说明

首先,先来介绍一下vxvm的磁盘头信息。

veritas 磁盘头信息

当磁盘被Veritas Volume Manager 初始化或者封装的时候,磁盘头信息会被写到磁盘的私有分区上。磁盘头包含了磁盘的唯一标示ID,磁盘组标示代表了磁盘组是由那些设备组成,设置flag标志位表示设备状态和设备用于什么(比如:hot spare), hostid 代表了挂接磁盘的主机的主机名。磁盘头信息的显示输出通过vxdisk(1m)'s "list" 来实现:

$ vxdisk list c1t1d0
Device:    c1t1d0s2
devicetag: c1t1d0
type:      auto
hostid:    pooh
disk:      name=c1t1d0 id=1123602295.10.pooh
group:    name=oradg id=1123603158.13.pooh
info:      format=cdsdisk,privoffset=256,pubslice=2,privslice=2
flags:    online ready private autoconfig autoimport imported
pubpaths:  block=/dev/vx/dmp/c1t1d0s2 char=/dev/vx/rdmp/c1t1d0s2
version:  3.1
iosize:    min=512 (bytes) max=2048 (blocks)
public:    slice=2 offset=2304 len=35365968 disk_offset=0
private:  slice=2 offset=256 len=2048 disk_offset=0
update:    time=1123603160 seqno=0.6
ssb:      actual_seqno=0.0
headers:  0 240
configs:  count=1 len=1280
logs:      count=1 len=192
Defined regions:
config  priv 000048-000239[000192]: copy=01 offset=000000 enabled
config  priv 000256-001343[001088]: copy=01 offset=000192 enabled
log      priv 001344-001535[000192]: copy=01 offset=000000 enabled
lockrgn  priv 001536-001679[000144]: part=00 offset=000000
Multipathing information:
numpaths:  1
c1t1d0s2        state=enabled

期间关键的配置信息存储在磁盘头内,定期进行这些信息的备份是很重要的。

从备份集恢复归档日志的测试与说明

当数据库出现问题,但不需要restore只需recover时,发现要用到的archivelog已经备份并删除了,因为我们备份archivelog一般是采用delete input的,
这时先需要restore archivelog,然后才能做recover,下面介绍一下restore archivelog的用法:

restore archivelog后面可以跟的参数有"all, from, high, like, logseq, low, scn, sequence, time, until"
现在举一列子说明:
1.列出已经备份的archivelog
list backup of archivelog all;
2.预览恢复出程,但不真正恢复
可以在你执行恢复前先看看恢复过程,也可以验证一下你的语法是否写对
restore archivelog all preview; 即在你要执行的restore archivelog命令后加preview
restore archivelog sequence 18 preview;
3.恢复指定时间范围的archivelog
3.1 显示2008-08-13 10:00:00到2008-08-13 11:00:00之间的archivelog
list backup of archivelog time between "to_date('2008-08-13 10:00:00','yyyy-mm-dd hh24:mi:ss')" and "to_date('2008-08-13 11:00:00','yyyy-mm-dd hh24:mi:ss')";
3.2 预览恢复2008-08-13 10:00:00到2008-08-13 11:00:00之间的archivelog
restore archivelog time between "to_date('2008-08-13 10:00:00','yyyy-mm-dd hh24:mi:ss')" and "to_date('2008-08-13 11::00','yyyy-mm-dd hh24:mi:ss')" preview;
3.3 真正恢复2008-08-13 10:00:00到2008-08-13 11:00:00之间的archivelog
restore archivelog time between "to_date('2008-08-13 10:00:00','yyyy-mm-dd hh24:mi:ss')" and "to_date('2008-08-13 11::00','yyyy-mm-dd hh24:mi:ss')"
4.恢复指定的archivelog
restore archivelog sequence 18; 恢复sequence为18的archivelog
5.restore archivelog like恢复模糊查询出来的archivelog,这个只能用于通过catalog的备份,用nocatalog的会报错
restore archivelog like '%18%';
6.恢复指定sequence范围的archivelog
restore archivelog from sequence 18 until sequence 20;
或restore archivelog low sequence 18 high sequence 20;
或restore archivelog low logseq 18 high logseq 20;
7.指定archivelog的恢复目的地,如你想把archivelog恢复到一个临时目录时有用,但这个必须包含在run{}里面才能用
set archivelog destination to 'e:\temp';

以上基本上可以解决你恢复archivelog的需求,我是在10.2.0.4版本中测试通过的,欢迎大家补充,转载请说明出处.

---------------------------------------------
以下部分是在本人正式环境中遇到的实际情况,非转载:
备份日志中有以下内容:
通道 t1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =18070 记录 ID=35794 时间戳=671966051
输入存档日志线程 =1 序列 =18071 记录 ID=35796 时间戳=671966351
输入存档日志线程 =1 序列 =18072 记录 ID=35798 时间戳=671966652
输入存档日志线程 =1 序列 =18073 记录 ID=35800 时间戳=671966952
输入存档日志线程 =1 序列 =18074 记录 ID=35802 时间戳=671967249
输入存档日志线程 =1 序列 =18075 记录 ID=35804 时间戳=671967550
输入存档日志线程 =1 序列 =18076 记录 ID=35806 时间戳=671967850
输入存档日志线程 =1 序列 =18077 记录 ID=35808 时间戳=671968151
输入存档日志线程 =1 序列 =18078 记录 ID=35810 时间戳=671968451

单独恢复18071 到18076

rman> run
{ allocate channel t1 type 'sbt_tape' parms 'ENV=(tdpo_optfile=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
restore archivelog from logseq 18071 until logseq 18076 ;
release channel t1;
}


经过在线环境的实地测试,以上脚本可行

作者:George.ma BLOG:http://blog.chinaunix.net/u/12521/

RHEL4.5中安装Oracle10g DataGuard参考

RHEL4.5中安装Oracle10g DG物理备库 原文出处

0、规划

Host IP            DB_NAME    DB_UNIQUE_NAME    Net Service Name
主库192.168.137.128    ORCLDB        WENDING        db_wending
备库192.168.137.129    ORCLDB        PHYSTDBY        db_phystdby
保护模式:默认最大性能模式

1、主库准备工作

1.1、检查数据库是否支持Data Guard(企业版才支持),是否归档模式,Enable force logging
$ sqlplus '/as sysdba'
SQL> select * from v$option where parameter = 'Managed Standby';
SQL> archive log list        (先检查是否归档模式,不是则修改)
SQL> alter database force logging;

1.2、如果主库没有密码文件则建立密码文件,从而可以OS验证的方式登陆
$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=iamwangnc entries=5

1.3、配置standby redolog(最佳性能模式可以忽略,如果将来变成备库且要转为其它两种模式则要建立)
SQL> alter database add standby logfile
    group 4 ('/orahome/oradata/WENDING/stdby_redo04.log') size 100m,
    group 5 ('/orahome/oradata/WENDING/stdby_redo05.log') size 100m,
    group 6 ('/orahome/oradata/WENDING/stdby_redo06.log') size 100m,
    group 7 ('/orahome/oradata/WENDING/stdby_redo07.log') size 100m;
standby redolog的组数参考公式:(online redolog组数 + 1) * 数据库线程数;单机线程数为1,RAC一般为2。
standby redolog的组成员数和大小也尽量和online redolog一样。

1.4、设置主库初始化参数
$ sqlplus '/as sysdba'
SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(WENDING,PHYSTDBY)' scope=spfile;        (启动db接受或发送redo data,包括所有库的db_unique_name)
SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/orahome/arch1/WENDING VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=WENDING' scope=spfile;        (主库归档目的地)
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=db_phystdby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PHYSTDBY' scope=spfile;    (当该库充当主库角色时,设置物理备库redo data的传输目的地)
SQL> alter system set LOG_ARCHIVE_MAX_PROCESSES=5 scope=spfile;    (最大ARCn进程数)
SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=spfile;    (允许redo传输服务传输数据到目的地,默认是enable)
SQL> alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=spfile;    (同上)
SQL> alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE scope=spfile;    (exclusive or shared,所有库sys密码要一致,默认是exclusive)
--以下是主库切换为备库,充当备库角色时的一些参数设置,如果不打算做数据库切换就不用设置了
SQL> alter system set FAL_SERVER=db_phystdby scope=spfile;        (配置网络服务名,假如转换为备库角色时,从这里获取丢失的归档文件)
SQL> alter system set FAL_CLIENT=db_wending scope=spfile;        (配置网络服务名,fal_server拷贝丢失的归档文件到这里)
SQL> alter system set DB_FILE_NAME_CONVERT='PHYSTDBY','WENDING' scope=spfile;    (前为切换后的主库路径,后为切换后的备库路径,如果主备库目录结构完全一样,则无需设定)
SQL> alter system set LOG_FILE_NAME_CONVERT='PHYSTDBY','WENDING' scope=spfile;        (同上,这两个名字转换参数是主备库的路径映射关系,可能会是路径全名,看情况而定)
SQL> alter system set STANDBY_FILE_MANAGEMENT=auto scope=spfile;        (auto后当主库的datafiles增删时备库也同样自动操作,且会把日志传送到备库standby_archive_dest参数指定的目录下,确 保该目录存在,如果你的存储采用文件系统没有问题,但是如果采用了裸设备,你就必须将该参数设置为manual)
SQL> alter system set STANDBY_ARCHIVE_DEST='LOCATION=/orahome/arch1/WENDING' scope=spfile;    (一般和LOG_ARCHIVE_DEST_1的位置一样,如果备库采用ARCH传输方式,那么主库会把归档日志传到该目录下)
有了以上参数设置,则无论该库充当主库角色还是备库角色都无需再修改了。
然后重启数据库:
SQL> shutdown immediate
SQL> startup;

1.5、备份主库数据文件
关闭应用服务器,停止监听,开始rman备份:
$ lsnrctl stop
$ rman target /
RMAN> backup full database format '/backup/backup_%T_%s_%p.bak';
##RMAN> sql "alter system archive log current";
##RMAN> backup archive log all format='/backup/arch_%T_%s_%p.bak';

1.6、在主库上建立备库控制文件(控制文件通常需要有多份,手工将文件复制几份)
$ sqlplus '/as sysdba'
SQL> alter database create standby controlfile as '/backup/stdby_control01.ctl';
$ cd /backup/
$ cp sdtby_control01.ctl stdby_control02.ctl
$ cp sdtby_control01.ctl stdby_control03.ctl

1.7、为备库准备init参数
$ sqlplus '/as sysdba'
SQL> create pfile = '/backup/initPHYSTDBY.ora' from spfile;
$ cd /backup/
$ vi initPHYSTDBY.ora   
注意主备库不同角色的属性配置,注意文件路径等,注意db_name要和主库一致,主要是以下参数:
audit_file_dest='/u01/app/oracle/admin/PHYSTDBY/adump'
background_dump_dest='/u01/app/oracle/admin/PHYSTDBY/bdump'
core_dump_dest='/u01/app/oracle/admin/PHYSTDBY/bdump'
user_dump_dest='/u01/app/oracle/admin/PHYSTDBY/udump'
--
control_files='/orahome/oradata/stdby_control01.ctl','/orahome/oradata/stdby_control02.ctl','/orahome/oradata/stdby_control03.ctl'
db_unique_name='PHYSTDBY'
log_archive_config='DG_CONFIG=(PHYSTDBY,WENDING)'
log_archive_dest_1='LOCATION=/orahome/arch1/PHYSTDBY VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PHYSTDBY'
log_archive_dest_2='SERVICE=db_wending LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=WENDING'
--
fal_client='DB_PHYSTDBY'
fal_server='DB_WENDING'
db_file_name_convert='WENDING','PHYSTDBY'
log_file_name_convert='WENDING','PHYSTDBY'
standby_archive_dest='LOCATION=/orahome/arch1/PHYSTDBY'
另外,如果备库将来要打开成只读模式,需要确认audit_trail参数不是含db,应该设成os或none。

1.8、拷贝上面生成的文件backup_%T.bak、stdby_control01/02/03.ctl、initPHYSTDBY.ora到备库所在主机
注意rman备份的文件在主备库主机上目录要一致。
$ scp backup*.bak 192.168.137.129:/backup/
$ scp initPHYSTDBY.ora 192.168.137.129:$ORACLE_HOME/dbs/
$ scp stdby_control*.ctl 192.168.137.129:/orahome/oradata/

1.9、建立主库监听和主备库的网络服务名(必须是dedicated的),并启动监听
$ netca    (是图形界面,或者手工从别的库把listener.ora和tnsnames.ora拷过来修改也行)
$ lsnrctl start
$ tnsping db_wending
$ tnsping db_phystdby    (此时tnsping还不通物理备库)
tnsping对方的时候,有可能linux防火墙限制了,会提示TNS-12560: TNS: 协议适配器错误。
临时禁用防火墙方法:
# service iptables stop
永久禁用防火墙方法:
# chkconfig --list iptables
# chkconfig --level 345 iptables off

2、建立备库(假设备库已经装了oracle软件,且目录结构和主库一致)

2.1、设置环境变量并建立备库一些必需目录
$ export ORACLE_BASE=/u01/app/oracle
$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
$ export ORACLE_SID=PHYSTDBY
$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/adump
$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/bdump
$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/cdump
$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/udump
--以下目录要看哪些地方可能会存放数据库文件,注意不能少建
$ mkdir -p /orahome/oradata/$ORACLE_SID
$ mkdir -p /u01/app/oracle/oradata/$ORACLE_SID
$ mkdir -p /orahome/arch1/$ORACLE_SID

2.2、在备库主机上生成密码文件,且sys密码和主库得一致
$ orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=iamwangnc entries=5

2.3、在备库上建立监听,和主备库网络服务名(必须是dedicated的),并启动监听
$ netca    (是图形界面,或者手工从别的库把listener.ora和tnsnames.ora拷过来修改也行)
$ lsnrctl start
$ tnsping db_wending
$ tnsping db_phystdby

2.4、在备库上建立spfile
$ sqlplus '/as sysdba'
SQL> create spfile from pfile;
如果pfile没有放到$ORACLE_HOME/dbs/下,而是放在别的位置:
SQL> create spfile from pfile='/backup/initPHYSTDBY.ora';

2.5、启动物理备库
SQL> startup nomount
SQL> alter database mount standby database;

2.6、备库做rman恢复
$ rman target /       (要求主备库rman备份文件的存放路径和文件名一致)
RMAN> restore database;
##RMAN> restore archivelog all;
介质恢复后,rman 自动将standby 数据库打开到mount 状态。

2.7、配置standby redolog(最佳性能模式可以忽略,如果要转为其它两种模式则要建立)
SQL> alter database add standby logfile
    group 4 ('/orahome/oradata/PHYSTDBY/stdby_redo04.log') size 100m,
    group 5 ('/orahome/oradata/PHYSTDBY/stdby_redo05.log') size 100m,
    group 6 ('/orahome/oradata/PHYSTDBY/stdby_redo06.log') size 100m,
    group 7 ('/orahome/oradata/PHYSTDBY/stdby_redo07.log') size 100m;
standby redolog的组数参考公式:(online redolog组数 + 1) * 数据库线程数;单机线程数为1,RAC一般为2。
standby redolog的组成员数和大小也尽量和online redolog一样。

2.8、在备库上,启动redo apply
SQL> alter database recover managed standby database disconnect from session;

到此物理备库创建完毕!

3、主备库各参数文件内容

3.1、主备库listener.ora一样,如果有不一样也是host不一样
----------------------------------------
SID_LIST_LISTENER =
(SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
      (PROGRAM = extproc)
    )
)

LISTENER =
(DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
)
----------------------------------------

3.2、主备库tnsnames.ora一样,如果有不一样也是host和port不一样
----------------------------------------
DB_WENDING =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.137.128)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = wending.lk)
    )
)

DB_PHYSTDBY =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.137.129)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = phystdby.lk)
    )
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
)
----------------------------------------


3.3、init$ORACLE_SID.ora

主库initWENDING.ora:
----------------------------------------
WENDING.__db_cache_size=226492416
WENDING.__java_pool_size=4194304
WENDING.__large_pool_size=4194304
WENDING.__shared_pool_size=96468992
WENDING.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/WENDING/adump'
*.audit_sys_operations=TRUE
*.audit_trail='db','extended'
*.background_dump_dest='/u01/app/oracle/admin/WENDING/bdump'
*.control_files='/orahome/oradata/control1.ctl','/orahome/oradata/control2.ctl','/orahome/oradata/control3.ctl'
*.core_dump_dest='/u01/app/oracle/admin/WENDING/cdump'
*.db_block_size=8192
*.db_domain='LK'
*.db_file_name_convert='PHYSTDBY','WENDING'
*.db_name='ORCLDB'
*.db_unique_name='WENDING'
*.fal_client='DB_WENDING'
*.fal_server='DB_PHYSTDBY'
*.job_queue_processes=10
*.log_archive_config='DG_CONFIG=(WENDING,PHYSTDBY)'
*.log_archive_dest_1='LOCATION=/orahome/arch1/WENDING VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=WENDING'
*.log_archive_dest_2='SERVICE=db_phystdby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PHYSTDBY'
*.log_archive_max_processes=5
*.log_file_name_convert='PHYSTDBY','WENDING'
*.open_cursors=1500
*.processes=500
*.sga_max_size=320M
*.sga_target=320M
*.standby_archive_dest='LOCATION=/orahome/arch1/WENDING'
*.standby_file_management='AUTO'
*.undo_management='AUTO'
*.undo_retention=10800
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/admin/WENDING/udump'
----------------------------------------

备库initPHYSTDBY.ora:
----------------------------------------
PHYSTDBY.__db_cache_size=226492416
PHYSTDBY.__java_pool_size=4194304
PHYSTDBY.__large_pool_size=4194304
PHYSTDBY.__shared_pool_size=96468992
PHYSTDBY.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/PHYSTDBY/adump'
*.audit_sys_operations=TRUE
*.audit_trail='os'
*.background_dump_dest='/u01/app/oracle/admin/PHYSTDBY/bdump'
*.control_files='/orahome/oradata/stdby_control01.ctl','/orahome/oradata/stdby_control02.ctl','/orahome/oradata/stdby_control03.ctl'
*.core_dump_dest='/u01/app/oracle/admin/PHYSTDBY/cdump'
*.db_block_size=8192
*.db_domain='LK'
*.db_file_name_convert='WENDING','PHYSTDBY'
*.db_name='ORCLDB'
*.db_unique_name='PHYSTDBY'
*.fal_client='DB_PHYSTDBY'
*.fal_server='DB_WENDING'
*.job_queue_processes=10
*.log_archive_config='DG_CONFIG=(PHYSTDBY,WENDING)'
*.log_archive_dest_1='LOCATION=/orahome/arch1/PHYSTDBY VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PHYSTDBY'
*.log_archive_dest_2='SERVICE=db_wending LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=WENDING'
*.log_archive_max_processes=5
*.log_file_name_convert='WENDING','PHYSTDBY'
*.open_cursors=1500
*.processes=500
*.sga_max_size=320M
*.sga_target=320M
*.standby_archive_dest='LOCATION=/orahome/arch1/PHYSTDBY'
*.standby_file_management='AUTO'
*.undo_management='AUTO'
*.undo_retention=10800
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/admin/PHYSTDBY/udump'
----------------------------------------

4、主库归档测试

主库归档前:
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /orahome/arch1/WENDING
Oldest online log sequence     6
Next log sequence to archive   8
Current log sequence           8

此时备库:
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /orahome/arch1/PHYSTDBY
Oldest online log sequence     0
Next log sequence to archive   0
Current log sequence           8

主库归档后:
SQL> ALTER SYSTEM SWITCH LOGFILE;    --对单实例数据库或RAC中的当前实例执行日志切换
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;    --对数据库中的所有实例执行日志切换
SQL> archive log list;               
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /orahome/arch1/WENDING
Oldest online log sequence     7
Next log sequence to archive   9
Current log sequence           9

此时备库:
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /orahome/arch1/PHYSTDBY
Oldest online log sequence     0
Next log sequence to archive   0
Current log sequence           9

5、常用维护SQL

查询当前库的角色和保护模式:
SQL> select database_role,db_unique_name,open_mode,protection_mode,protection_level,switchover_status,supplemental_log_data_pk,supplemental_log_data_ui from v$database;

主库归档:
SQL> ALTER SYSTEM SWITCH LOGFILE;    --对单实例数据库或RAC中的当前实例执行日志切换
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;    --对数据库中的所有实例执行日志切换

在备库上,验证一下传过来的归档文件:
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME, APPLIED, completion_time FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

在主库上,查询待转换standby库的归档文件是否连接:
SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

如过上面查到存在不连续的归档,那查找sequence 对应的归档文件:
SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1 AND DEST_ID=1 AND SEQUENCE# BETWEEN 7 AND 10;

查询主备库已归档文件最大序号是否相同:
SQL> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;

在备库上,显示备库相关进程的当前状态信息:
SQL> select process,client_process,sequence#,status from v$managed_standby;

显示归档文件路径配置信息及redo apply情况:
SQL> select dest_name,archived_thread#,archived_seq#,applied_thread#,applied_seq#,db_unique_name
from v$archive_dest_status where status='VALID';

检查应用模式(是否启用了实时应用):
如果打开了实时应用,则recovery_mode会显示为:MANAGED REAL TIME APPLY。
SQL> select dest_id,DEST_NAME,STATUS,TYPE,DATABASE_MODE, recovery_mode from v$archive_dest_status;

显示那些被自动触发写入alert.log或服务器trace文件的事件:
通常是在你不便访问到服务器查询alert.log时,可以临时访问本视图查看一些与dataguard 相关的信息。
SQL> select * from v$dataguard_status;

--End--

dbms_backup_restore包恢复数据库实践

| 2 Comments

环境:AIX 5.2,数据库oracle 9。2,使用controlfile备份,模拟数据文件、控制文件、redo文件全部丢失,使用dbms_backup_restore pl/sql包进行数据库恢复.


1、查看备份参数
# su - oracle
HB130000 oracle$rman target /

Recovery Manager: Release 9.2.0.1.0 - 64bit Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

connected to target database: HB130000 (DBID=2380174037)

RMAN> show all;

using target database controlfile instead of recovery catalog
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/oradata/rmanbackup/hb130000_ctl_%F.bak';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/oradata/%d_%s_%t.bak';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/oracle/app/oracle/product/9.2.0.1/dbs/snapcf_hb130000.f'; # default

RMAN> list backup;

2、full备份数据库

RMAN> backup database;

Starting backup at 19-APR-06
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=16 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current SPFILE in backupset
including current controlfile in backupset
input datafile fno=00005 name=/oradata/hb130000/example01.dbf
input datafile fno=00001 name=/oradata/hb130000/system01.dbf
input datafile fno=00013 name=/oradata/hb130000/CA.dbf
input datafile fno=00002 name=/oradata/hb130000/undotbs01.dbf
input datafile fno=00020 name=/oradata/hb130000/catalog_rman.dbf
input datafile fno=00014 name=/oradata/hb130000/QUEST.dbf
input datafile fno=00009 name=/oradata/hb130000/users01.dbf
input datafile fno=00015 name=/oradata/hb130000/FOGLIGHT.dbf
input datafile fno=00017 name=/oradata/hb130000/GDSS.dbf
input datafile fno=00018 name=/oradata/hb130000/FPJKDB.dbf
input datafile fno=00011 name=/oradata/hb130000/HB1300002005.DBF
input datafile fno=00010 name=/oradata/hb130000/xdb01.dbf
input datafile fno=00021 name=/oradata/hb130000/oem_repository.dbf
input datafile fno=00006 name=/oradata/hb130000/indx01.dbf
input datafile fno=00003 name=/oradata/hb130000/cwmlite01.dbf
input datafile fno=00004 name=/oradata/hb130000/drsys01.dbf
input datafile fno=00007 name=/oradata/hb130000/odm01.dbf
input datafile fno=00012 name=/oradata/hb130000/GFB.DBF
input datafile fno=00008 name=/oradata/hb130000/tools01.dbf
input datafile fno=00016 name=/oradata/hb130000/gwd.dbf
input datafile fno=00019 name=/oradata/hb130000/tgggg.dbf
channel ORA_DISK_1: starting piece 1 at 19-APR-06
channel ORA_DISK_1: finished piece 1 at 19-APR-06
piece handle=/oradata/HB130000_11_588180388.bak comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:56
Finished backup at 19-APR-06

3、备份归档日志

RMAN> backup archivelog all delete input;

Starting backup at 19-APR-06
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=22 recid=32 stamp=588171491
input archive log thread=1 sequence=23 recid=33 stamp=588173034
input archive log thread=1 sequence=24 recid=34 stamp=588173040
input archive log thread=1 sequence=25 recid=35 stamp=588173040
input archive log thread=1 sequence=26 recid=36 stamp=588173045
input archive log thread=1 sequence=27 recid=37 stamp=588180556
channel ORA_DISK_1: starting piece 1 at 19-APR-06
channel ORA_DISK_1: finished piece 1 at 19-APR-06
piece handle=/oradata/HB130000_12_588180557.bak comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
channel ORA_DISK_1: deleting archive log(s)
archive log filename=/oradata/rmanbackup/archive/hb130000_1_22.dbf recid=32 stamp=588171491
archive log filename=/oradata/rmanbackup/archive/hb130000_1_23.dbf recid=33 stamp=588173034
archive log filename=/oradata/rmanbackup/archive/hb130000_1_24.dbf recid=34 stamp=588173040
archive log filename=/oradata/rmanbackup/archive/hb130000_1_25.dbf recid=35 stamp=588173040
archive log filename=/oradata/rmanbackup/archive/hb130000_1_26.dbf recid=36 stamp=588173045
archive log filename=/oradata/rmanbackup/archive/hb130000_1_27.dbf recid=37 stamp=588180556
Finished backup at 19-APR-06

4、查看controlfile备份

RMAN> list backup of controlfile;

using target database controlfile instead of recovery catalog

List of Backup Sets
===================

BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
10 Full 1M DISK 00:00:50 19-APR-06
BP Key: 10 Status: AVAILABLE Tag: TAG20060419T152628
Piece Name: /oradata/HB130000_11_588180388.bak
Controlfile Included: Ckp SCN: 65670562 Ckp time: 19-APR-06

RMAN> exit


Recovery Manager complete.

5、通过试图查看数据库数据文件、控制文件、日志文件路径信息

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/oradata/hb130000/system01.dbf
/oradata/hb130000/undotbs01.dbf
/oradata/hb130000/cwmlite01.dbf
/oradata/hb130000/drsys01.dbf
/oradata/hb130000/example01.dbf
/oradata/hb130000/indx01.dbf
/oradata/hb130000/odm01.dbf
/oradata/hb130000/tools01.dbf
/oradata/hb130000/users01.dbf
/oradata/hb130000/xdb01.dbf
/oradata/hb130000/HB1300002005.DBF

NAME
--------------------------------------------------------------------------------
/oradata/hb130000/GFB.DBF
/oradata/hb130000/CA.dbf
/oradata/hb130000/QUEST.dbf
/oradata/hb130000/FOGLIGHT.dbf
/oradata/hb130000/gwd.dbf
/oradata/hb130000/GDSS.dbf
/oradata/hb130000/FPJKDB.dbf
/oradata/hb130000/tgggg.dbf
/oradata/hb130000/catalog_rman.dbf
/oradata/hb130000/oem_repository.dbf

21 rows selected.

SQL> select * from v$logfile;

GROUP# STATUS TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
1 ONLINE
/oracle/oracle/app/oracle/product/9.2.0.1/dbs/hb130000/redo01.log

1 ONLINE
/oradata/hb130000/redo01.rdo

3 ONLINE
/oracle/oracle/app/oracle/product/9.2.0.1/dbs/hb130000/redo03.log


GROUP# STATUS TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
3 ONLINE
/oradata/hb130000/redo03.rdo

2 ONLINE
/oracle/oracle/app/oracle/product/9.2.0.1/dbs/hb130000/redo02.log

2 ONLINE
/oradata/hb130000/redo02.rdo


6 rows selected.

SQL> select * from v$controlfile;

STATUS
-------
NAME
--------------------------------------------------------------------------------

/oracle/oracle/app/oracle/product/9.2.0.1/dbs/hb130000/control01.ctl


/oracle/oracle/app/oracle/product/9.2.0.1/dbs/hb130000/control02.ctl


/oradata/hb130000/control03.ctl


6、删除所有数据文件、控制文件和redo文件

SQL>
HB130000 oracle$cd hb130000
HB130000 oracle$ls
CA.dbf HB1300002005.DBF example01.dbf redo03.rdo tools01.dbf
FOGLIGHT.dbf catalog_rman.dbf gwd.dbf spfilehb130000.ora undotbs01.dbf
FPJKDB.dbf control01.ctl indx01.dbf system01.dbf users01.dbf
FSIDATA.dbf control02.ctl odm01.dbf temp01.dbf xdb01.dbf
GDSS.dbf control03.ctl oem_repository.dbf temp02.dbf
GFB.DBF cwmlite01.dbf redo01.rdo temp03.dbf
QUEST.dbf drsys01.dbf redo02.rdo tgggg.dbf
HB130000 oracle$rm *
HB130000 oracle$pwd
/oradata/hb130000
HB130000 oracle$cd $ORACLE_HOME/dbs
HB130000 oracle$cd hb130000
HB130000 oracle$ls
control01.ctl control02.ctl redo01.log redo02.log redo03.log
HB130000 oracle$rm *
HB130000 oracle$


7、shutdown abort数据库,重新启动数据库

SQL> shutdown abort
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 420970696 bytes
Fixed Size 741576 bytes
Variable Size 385875968 bytes
Database Buffers 33554432 bytes
Redo Buffers 798720 bytes
ORA-00205: error in identifying controlfile, check alert log for more info

8、使用dbms_backup_restore包恢复控制文件

SQL> declare
2 devtype varchar2(256);
3 done boolean;
4 begin
5 devtype:=sys.dbms_backup_restore.deviceallocate(type=>'',ident=>'t1');
6 sys.dbms_backup_restore.restoresetdatafile;
7 sys.dbms_backup_restore.restorecontrolfileto(cfname=>'/oradata/controlfile.ctl');
8 sys.dbms_backup_restore.restorebackuppiece(done=>done,handle=>'/oradata/HB130000_11_588180388.bak',params=>null);
9 sys.dbms_backup_restore.devicedeallocate;
10 end;
11 /

PL/SQL procedure successfully completed.
SQL> host ls /oradata/
controlfile.ctl guowendong.log ora9

SQL>

9、使用dbms_backup_restore包恢复数据文件。

SQL> declare
2 devtype varchar2(256);
3 done boolean;
4 begin
5 devtype:=sys.dbms_backup_restore.deviceallocate(type=>'',ident=>'t1');
6 sys.dbms_backup_restore.restoresetdatafile;
7 sys.dbms_backup_restore.restoredatafileto(dfnumber=>01,toname=>'/oradata/hb130000/system01.dbf');
8 sys.dbms_backup_restore.restoredatafileto(dfnumber=>02,toname=>'/oradata/hb130000/undotbs01.dbf');
9 sys.dbms_backup_restore.restoredatafileto(dfnumber=>03,toname=>'/oradata/hb130000/cwmlite01.dbf');
10 sys.dbms_backup_restore.restoredatafileto(dfnumber=>04,toname=>'/oradata/hb130000/drsys01.dbf');
11 sys.dbms_backup_restore.restoredatafileto(dfnumber=>05,toname=>'/oradata/hb130000/example01.dbf');
12 sys.dbms_backup_restore.restoredatafileto(dfnumber=>06,toname=>'/oradata/hb130000/indx01.dbf');
13 sys.dbms_backup_restore.restoredatafileto(dfnumber=>07,toname=>'/oradata/hb130000/odm01.dbf');
14 sys.dbms_backup_restore.restoredatafileto(dfnumber=>08,toname=>'/oradata/hb130000/tools01.dbf');
15 sys.dbms_backup_restore.restoredatafileto(dfnumber=>09,toname=>'/oradata/hb130000/users01.dbf');
16 sys.dbms_backup_restore.restoredatafileto(dfnumber=>10,toname=>'/oradata/hb130000/xdb01.dbf');
17 sys.dbms_backup_restore.restoredatafileto(dfnumber=>11,toname=>'/oradata/hb130000/HB1300002005.DBF');
18 sys.dbms_backup_restore.restoredatafileto(dfnumber=>12,toname=>'/oradata/hb130000/GFB.DBF');
19 sys.dbms_backup_restore.restoredatafileto(dfnumber=>13,toname=>'/oradata/hb130000/CA.dbf');
20 sys.dbms_backup_restore.restoredatafileto(dfnumber=>14,toname=>'/oradata/hb130000/QUEST.dbf');
21 sys.dbms_backup_restore.restoredatafileto(dfnumber=>15,toname=>'/oradata/hb130000/FOGLIGHT.dbf');
22 sys.dbms_backup_restore.restoredatafileto(dfnumber=>16,toname=>'/oradata/hb130000/gwd.dbf');
23 sys.dbms_backup_restore.restoredatafileto(dfnumber=>17,toname=>'/oradata/hb130000/GDSS.dbf');
24 sys.dbms_backup_restore.restoredatafileto(dfnumber=>18,toname=>'/oradata/hb130000/FPJKDB.dbf');
25 sys.dbms_backup_restore.restoredatafileto(dfnumber=>19,toname=>'/oradata/hb130000/tgggg.dbf');
26 sys.dbms_backup_restore.restoredatafileto(dfnumber=>20,toname=>'/oradata/hb130000/catalog_rman.dbf');
27 sys.dbms_backup_restore.restoredatafileto(dfnumber=>21,toname=>'/oradata/hb130000/oem_repository.dbf');
28 sys.dbms_backup_restore.restorebackuppiece(done=>done,handle=>'/oradata/HB130000_11_588180388.bak',params=>null);
29 sys.dbms_backup_restore.devicedeallocate;
30 end;
31 /

PL/SQL procedure successfully completed.


10、把控制文件cp到原路径

HB130000 oracle$cd /oradata/
HB130000 oracle$ls
controlfile.ctl guowendong.log ora9
HB130000oracle$cp controlfile.ctl /oracle/oracle/app/oracle/product/9.2.0.1/dbs/hb130000/control01.ctl
HB130000oracle$cp controlfile.ctl /oracle/oracle/app/oracle/product/9.2.0.1/dbs/hb130000/control02.ctl
HB130000 oracle$cp controlfile.ctl /oradata/hb130000/control03.ctl

11、mount 数据库

SQL> startup nomount;
ORACLE instance started.

Total System Global Area 420970696 bytes
Fixed Size 741576 bytes
Variable Size 385875968 bytes
Database Buffers 33554432 bytes
Redo Buffers 798720 bytes
SQL> alter database mount;

Database altered.


12、使用dbms_backup_restore包恢复归档日志

SQL> declare
2 devtype varchar2(256);
3 done boolean;
4 begin
5 devtype:=sys.dbms_backup_restore.deviceallocate(type=>'',ident=>'t1');
6 sys.dbms_backup_restore.restoresetarchivedlog(destination=>'/oradata/rmanbackup/archive');
7 sys.dbms_backup_restore.restorearchivedlog(thread=>1,sequence=>22);
8 sys.dbms_backup_restore.restorearchivedlog(thread=>1,sequence=>23);
9 sys.dbms_backup_restore.restorearchivedlog(thread=>1,sequence=>24);
10 sys.dbms_backup_restore.restorearchivedlog(thread=>1,sequence=>25);
11 sys.dbms_backup_restore.restorearchivedlog(thread=>1,sequence=>26);
12 sys.dbms_backup_restore.restorearchivedlog(thread=>1,sequence=>27);
13 sys.dbms_backup_restore.restorebackuppiece(done=>done,handle=>'/oradata/HB130000_12_588180557.bak',params=>null);
14 sys.dbms_backup_restore.devicedeallocate;
15 end;
16 /

PL/SQL procedure successfully completed.

SQL>


13、使用controlfile恢复数据库,resetlogs方式打开数据库

SQL> recover database until cancel using backup controlfile;
ORA-00279: change 65670562 generated at 04/19/2006 13:24:05 needed for thread 1
ORA-00289: suggestion : /oradata/rmanbackup/archive/hb130000_1_27.dbf
ORA-00280: change 65670562 for thread 1 is in sequence #27


Specify log: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 65671036 generated at 04/19/2006 15:29:16 needed for thread 1
ORA-00289: suggestion : /oradata/rmanbackup/archive/hb130000_1_28.dbf
ORA-00280: change 65671036 for thread 1 is in sequence #28
ORA-00278: log file '/oradata/rmanbackup/archive/hb130000_1_27.dbf' no longer
needed for this recovery


ORA-00308: cannot open archived log
'/oradata/rmanbackup/archive/hb130000_1_28.dbf'
ORA-27037: unable to obtain file status
IBM AIX RISC System/6000 Error: 2: No such file or directory
Additional information: 3


SQL> alter database open resetlogs;

Database altered.

原文链接:
http://blog.csdn.net/lakher/archive/2006/04/19/669507.aspx

搞笑版,搞笑收藏,哈哈。

淘宝网上的产品介绍:

我公司主营重型攻击性武器,现有3架F22猛禽战斗机(每架售价RMB28亿)和15辆
M1A2主站坦克(每台RMB1.8亿)出售,另外还有1枚白杨-M(SS-27)地对地远程洲际弹道
导弹(可以携带核弹头),欢迎各界军阀和阿拉伯世界的KB分子前来我公司选购。
  F-22技术参数:
  基本技术数据
  全长18.92m
  全宽13.56m
  全高5m
  空重13636Kg
  最大起飞重量27273Kg
  超音速巡航时飞行速度1590km/h
  高空最大飞行速率2335km/h
  海平面最大飞行速率1482km/h
  升限15240m
  工作方式  空/空:空/空搜索与跟踪,空战机动(ACM,近程空战格斗),边测距
边搜索(RWS),搜索高度显示,边速度搜索边测距(VSR),边跟踪边扫描,单目标跟踪(
STT),袭击群目标分辨,改善上视搜索(远距搜索),战情提示,通过凹口跟踪技术。
  空/地:增强实波束地形测绘,扩展地形测绘,多普勒波束锐化(选用地图"冻结"
),信标,地面动目标跟踪,地面动目标显示(GMTI)。
  空/海:海面目标检测(选用地图"冻结",中/低海情),固定目标跟踪,地面动目
标显示(GMTI),地面动目标跟踪(GMTT)。
  作用距离  160nmile(用VSR方式对上视/下视迎头目标)
        160nmile(用RWS方式对迎头或尾追目标)
        80nmile(用增强实波束地图测绘方式对导航地形图和地面目标探测)
        40nmile(使用GMTI方式对陆地和海面目标)
        10nmile(用ACM方式自动锁定被探测到的第1个目标)
        31nmile(用STT方式自动锁定第1个目标)
  扫描范围  格斗状态:30°×20°(正常),10°×60°(垂直扫描)
  跟踪能力  同时跟踪10个目标
  波束锐化  8:1(DBS1),64:1(DBS2)
  ISAR    像素的目标尺寸为0.3m,30m长目标有100个像素
  天线型式  有源相控阵列
  天线直径  约1m
  T/R组件  2000个
  组件功率  10W/组件
  MTBF    整机400h
        天线2000h
  冷却方式  液冷

  ----------------------------------我是分割线----------------------------------------
  以上该人才在掏宝上所出售商品的介绍.
  真正被雷到是以下是众强人的提问以及掌柜的回复  
  ----------------------------------我是分割线---------------------------------------- 
 
  j**y:我想订购一枚核弹,有么?
  掌柜:不好意思,核弹已经被一位爱好和平的中东人士订购了,谢谢,如果到货,我会第一时间贴出来的
  
  vkjkgb:忘了问了,买战机送不送导弹?最好是2个空空,一个反舰,如果可以卖1送3的话,正好曰本停的有艘航母,我想可以先试下机不?
  掌柜:格不包含武器装备,需要的话我们会另外报价
  
  wang02t03c:根据现在的汇率计算,28亿是不是贵了点
  掌柜:你找遍全世界,只有我能搞到F22  
  
  dongsl2:老板,这个f22刷什么版本的软件?价格高了点,有山寨版麽,我就拿去虎虎人,有个样子就成
  掌柜:我们是卖ammo的,不卖手机
  
  wang02t03c:请问店家空运的意思是直接飞过来吗?会不会后面跟着"尾巴"
  掌柜:海运
  
  rainshen_fly:提供雇佣军服务么?
  掌柜:我们是正经商人,不提供人口买卖
  
  
  a**g:我老婆她要做环球旅行,你们的飞机环球旅行效果怎么样啊
  掌柜:我们的飞机只卖不租,谢谢
  
  
  rainshen_fly:你们那里还出售银河战舰,黑洞BoB!!!么?有没有星河舰队雇佣军提供?
  掌柜:我们是卖地球上用的东西。。。。。。。。。。
  
  boddah719:你好我想买一架!你们负责培训不?(我有驾驶摩托车基础)如果培训包食宿不?还有,如果飞机故障,你们负责上门维修不?谢谢!
  掌柜:培训和维修都需要另外收费,不过你的底子差了点,不保证能学会。。。。。。
  
  
  丁**6:老板有擎天柱变形金刚卖吗?要正品哦~~~~
  掌柜:有圣斗士,要吗?
  
  臭**p:请问颜色可选吗?
  掌柜:额,目前只有一种颜色,不过你可以自己买回来喷上你喜欢的颜色,这个成本不是很高的  
  
  幽灵无际:我想预定一个核弹。有的话直接扔到靖国神厕,我直接付双款
  掌柜:核弹目前没货,你可以先买颗白杨,回头等我有核弹了通知你,我也想炸曰本。。。。。。。。
  
  baobao20070919:请问烧93#汽油能飞不?
  掌柜:额。。。这个木有相关的科学试验,不过你可以买一架回去试试看
    
  city878198:请问这个价钱附带瞄准盔具吗?我想配套买几枚AMI-120C,可以提供吗?
  掌柜:我们不做配件,AMI-120C无货  
  
  a**g:忘了问了买航母送飞机吗
  掌柜:木有航母。。。。。。  
  
  天**克:掌柜的好!我是一个和平主义者,为了维护我们村的和平,我想购买一辆M1A2主站坦克,请问能不能用快递包裹帮我寄过来。另外,基于我的出发点,能否给我打个折。:)
  掌柜:这个价格是不包含运费的,如果你需要的话可以来我公司详谈
  
  taoli2008:请问老板终结者T3000有货么。。。。或者T2000也可以。。
  掌柜:目前没有,如果需要的话,可以支付5千万定金,我们帮助你联系好莱坞定做一台  
  
  smy1977:掌柜,买了帮上牌照,带票吗,说明书包装都齐吧
  掌柜:contraband货 不上牌 不开票  
  
  zhangjun110110:问下掌柜,飞机上有挂菜篮子的地方没啊,我开出去的时候好方便买菜
  掌柜:可以根据你的要求焊个挂点
  但是隐身性能就不能保证了~  
  
  diablolk:对了,买F22送坦克吗?人家买电脑都送网线的,送的话我考虑入手一架!
  掌柜:送鸭脖子要不 
  
  s**2:团购便宜吗?想团购一下!
  掌柜:团购每架送2枚AIM-120C-7  
  
  chenglixjtu029: 大哥. . . 买这个阿可以送白宫一日游的阿?
  掌柜:送白宫3日游,还可以和小不死共进晚餐  
  
  ws_magic:兄弟,真的能买吗?
  掌柜:真的能买,兄弟  
  
  ahfmz:还有没有货?我想做我们村的总代理,大概需要什么手续?请发克斯详细资料过来!谢谢!
  掌柜:供不应求 不需要代理 谢谢  
  
  n**n:掌柜的~买了送不送导弹啊 最好先给两颗实验一下 一个空空 一个对地的好了
  掌柜:导弹不送 送手枪要不~  
  
  r**n:我想买一个上下班代步,但是不知道上海这里办牌照方便吗.我还想问下用什么快递公司的.几天可以到货?
  掌柜:我们有职业驾驶员送货。上海没办法办牌,不过我们可以用搪瓷给您做一个
  
  
  埃弗艾克斯:老板,你这F22水货还是行货?是可变形版的还是美版的,有保修没?
  掌柜:这玩意儿有行货吗??不能变形,美版外贸尾单
  
  寸**梦:掌柜的您好 请问这个飞机上面有厕所吗?
  掌柜:没有,飞行员都用尿布的,,不知道吗?
    
  yaoyue1982:可以垂直起降吗?家里地方小,没地方盖跑道
  掌柜:过两天有阿帕奇

1、机器型号
# uname -uM
IBM,7029-6E3 IBM,01100550A

2、检查系统硬件设备故障灯是否有亮

3、系统错误报告
# errpt -d H -T PERM //硬件的错误报告
IDENTIFIER TIMESTAMP  T C RESOURCE_NAME  DESCRIPTION
BFE4C025   0530085308 P H sysplanar0     UNDETERMINED ERROR
BFE4C025   0529091308 P H sysplanar0     UNDETERMINED ERROR

# errpt -d S -T PERM //软件的错误报告
# errpt -aj *******|more //具体的错误信息
# errpt -d H -T PERM>/tmp/hwerror.log //可以把错误的报告存成一个文件

4、有否给 root 用户的错误报告
# mail
Mail [5.2 UCB] [AIX 5.X]  Type ? for help.
"/var/spool/mail/root": 5 messages 3 new 5 unread
 U  1 root              Thu May 15 09:53  24/884  "diagela message from p615"
 U  2 root              Fri May 16 04:07  24/884  "diagela message from p615"
>N  3 root              Sat May 24 13:08  23/874  "diagela message from p615"

5、检查 hacmp.out, smit.log, bootlog 等
# lssrc -g cluster/#>lssrc -g cluster
Subsystem         Group            PID          Status
 clstrmgrES       cluster          16334        active

一般上 hacmp.out 的位置: /usr/sbin/cluster/ 或者 /tmp/
然后找到最近的 hacmp.out 文件,察看有没有错误信息

6、文件系统检查
# df -k
Filesystem    1024-blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4           131072    101568   23%     2268     4% /
/dev/hd2          1441792     31256   98%    36056    11% /usr
/dev/hd9var        131072    117048   11%      418     2% /var

看看有没有超过 90% 使用率的,建议用户改善

7、逻辑卷有否 "stale" 的状态
# lsvg -l rootvg
LV NAME             TYPE       LPs   PPs   PVs  LV STATE      MOUNT POINT
hd5                 boot       1     1     1    closed/syncd  N/A
hd6                 paging     4     4     1    open/syncd    N/A
hd8                 jfslog     1     1     1    open/syncd    N/A
hd4                 jfs        1     1     1    open/syncd    /
hd2                 jfs        11    11    1    open/syncd    /usr
hd9var              jfs        1     1     1    open/syncd    /var

如果系统还有其他卷组,也需要察看

8、内存交换区的使用率是否超过 70%
# lsps -a
Page Space      Physical Volume   Volume Group    Size %Used Active  Auto  Type
hd6             hdisk0            rootvg         512MB     1   yes   yes    lv


9、系统性能是否有瓶颈
# topas
# vmstat 1 10
kthr    memory              page              faults        cpu
----- ----------- ------------------------ ------------ -----------
 r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa
 0  0 110029 408618   0   0   0   0    0   0   4  602  75  0  1 99  0
 0  0 110031 408616   0   0   0   0    0   0   1  562  54  1  0 99  0
 0  0 110031 408616   0   0   0   0    0   0   3  628  84  0  0 99  0

# iostat 1 10
tty:      tin         tout    avg-cpu: % user % sys % idle % iowait
          0.0        394.0                0.0   0.0  100.0      0.0

Disks:        % tm_act     Kbps      tps    Kb_read   Kb_wrtn
hdisk0           0.0       0.0       0.0          0         0
hdisk1           0.0       0.0       0.0          0         0
cd0              0.0       0.0       0.0          0         0

10、网络与通讯检查
# ifconfig -a

# netstat -in
Name  Mtu   Network     Address            Ipkts Ierrs    Opkts Oerrs  Coll
en0   1500  link#2      0.9.6b.3e.6.ac        1964     0      534     0     0
en0   1500  192.168.0   192.168.0.11          1964     0      534     0     0
lo0   16896 link#1                             267     0      413     0     0
lo0   16896 127         127.0.0.1              267     0      413     0     0

# netstat -rn //察看路由情况
Routing tables
Destination      Gateway           Flags   Refs     Use  If   Exp  Groups

Route Tree for Protocol Family 2 (Internet):
127/8            127.0.0.1         U         7       142 lo0      -      -
192.168.0.0      192.168.0.11      UHSb      0         0 en0      -      -   =>

# vi /etc/hosts //察看 hosts 文件有否特殊的定义
# ping ****

#lsattr -El inet0 //路由的检测
authm         65536               Authentication Methods           True
hostname      h24                 Host Name                        True
gateway                           Gateway                          True
route         net,,0,172.16.23.81 Route                            True
bootup_option no                  Serial Optical Network Interface True
rout6                             FDDI Network Interface           True

11、有否符合要求的系统备份
第一次去可以先询问客户关于备份的策略
# ls -l /image.data //看看系统有没有备份的 image 文件,记录最后备份日期
-rw-r--r--   1 root     system         9600 May 19 17:31 /image.data


# lsvg -l rootvg //察看有否符合要求的数据备份和保护
LV NAME             TYPE       LPs   PPs   PVs  LV STATE      MOUNT POINT
hd4                 jfs        1     1     1    open/syncd    /
hd2                 jfs        11    11    1    open/syncd    /usr
hd10opt             jfs        1     1     1    open/syncd    /opt
oraclelv            jfs2       80    160   1    open/syncd    /oracle
loglv00             jfs2log    1     1     1    open/syncd    N/A
testlv              jfs        10    20    1    closed/syncd  /tmp/test

如何察看数据保护方式 RAID10/RAID5,RAID 的Hotspare 属性是否打开

#smitty ssaraid? Change/Show Attributes of an SSA RAID Array
检查Enable Use of Hot Spares属性是否为YES

12、系统 Dump 设置是否正确
# sysdumpdev -l
primary              /dev/hd6
secondary            /dev/sysdumpnull
copy directory       /var/adm/ras
forced copy flag     TRUE
always allow dump    FALSE
dump compression     OFF

# sysdumpdev P p /dev/hd6 s /dev/sysdumpnull
# sysdumpdev -P -c

13、HACMP 测试
# /usr/sbin/cluster/diag/clconfig -v '-tr'  // Cluster Verification 输出结果无Fail
# /lssrc -g cluster

14、maxpout, minpout 系统参数
如果系统中运行了HACMP
smitty chgsysy,将High/Low water mark从0/0修改为33/24

# lsattr -El sys0|grep maxpout 
//maxpout 用途: 对文件指定未决 I/O 的最大数目
值: 缺省值:0(不检查);范围:0 到 n(n 应该是 4 的倍数加 1)

# lsattr -El sys0|grep minpout
//指定一个基点,在该基点处,已达到 maxpout 的程序可以继续写入文件
值: 缺省值:0(不检查);范围:0 到 n(n 应该是 4 的倍数,且大于或等于 4 小于 maxpout)

15、syncd 参数
# grep syncd /sbin/rc.boot //sync() 被 syncd 调用的间隔时间
nohup /usr/sbin/syncd 10 > /dev/null 2>&1 &

值: 缺省值:60;范围:1 到任何正整数
显示: grep syncd /sbin/rc.boot 或 vi /sbin/rc.boot
更改: 更改在下次引导后有效,而且是永久有效。备用方法是使用命令 kill 来终止守护程序

syncd 并用命令 /usr/sbin/syncd interval 从命令行重新启动它。
诊断: 当 syncd 正在运行时,文件的 I/O 被阻塞了。
调整: 在缺省级别上,这个参数几乎不影响性能。不推荐对这个参数进行更改。为了保持数据完整

性对于 HACMP而使 syncd interval 明显缩小,会导致性能下降。

更改命令为:
#vi /sbin/rc.boot

16、aio 参数 //异步 I/O 可调参数
# lsdev -C|grep aio
察看状态是否是 available

# lsattr -El aio0
minservers 1         MINIMUM number of servers                True
maxservers 10        MAXIMUM number of servers                True
maxreqs    4096      Maximum number of REQUESTS               True
kprocprio  39        Server PRIORITY                          True
autoconfig available STATE to be configured at system restart True
fastpath   enable    State of fast path                       True

# smit aio  //可以更改参数

17、检查 errdaemon, srcmstr 是否正常运行
# ps -ef|grep err
# ps -ef|grep src

18、 系统硬件诊断
# diag
-> Diagnostic Routines
-> System Verification
-> All Resources
-> F7 或者 Esc+7

19、补丁程序 PTF 是否满足要求,当前系统补丁版本
#oslevel -r
5300-04

#instfix -i|grep
    All filesets for 5.3.0.0_AIX_ML were found.
    All filesets for 5300-01_AIX_ML were found.
    All filesets for 5300-02_AIX_ML were found.
    All filesets for 5300-03_AIX_ML were found.
    All filesets for 5300-04_AIX_ML were found.
    All filesets for 5300-05_AIX_ML were found.

# lscfg -vp //检查所有设备的微码

20、收集系统信息放到/tmp/ibmsupt
# snap -ac //运行#snap -ac,生成文件snap+s/n.pax.Z


中国工程院院士、北京儿童医院小儿外科教授张金哲

有些家长常常发现,上幼儿园的孩子大便以后会有少量出血,大多为大便上沾一点血,有时是擦屁股发现卫生纸上带有血迹,且都是鲜血。可是,孩子肚子不疼,肛门也不痛,胃口、精神、生长发育都正常,去医院验血也没有贫血。这究竟是怎么回事?会不会影响孩子的健康?

首先,大便时出血不多,肚子和肛门都不疼,粪便不稀也不大干燥,一天一次排便,当然不像有什么急性病。虽然经年累月便血,但并不影响孩子的生活、活动、营养、发育,验血也无贫血的迹象,说明对健康没有妨碍。此时,家长不必惊慌,因为这样的便血不要紧,不会影响孩子的健康

那么,到底是什么原因引起出血?这是不是病呢?可以肯定地说,这不是疾病。原来,幼儿为了抵抗细菌和病毒的侵袭,全身淋巴组织增生活跃,直肠、结肠甚至小肠下段的淋巴组织集聚成团(称为淋巴滤泡)。有些淋巴滤泡较大,凸出肠粘膜下,整齐紧密地排列着。靠近直肠末端(即肛门口)较凸出的滤泡,受到粪便的摩擦与肠壁收缩的挤压,常会出现少量渗血,沾在粪便上,甚至流到肛门口,这就是幼儿偶尔大便带血的原因。由于出血量不大,机体可以自行补偿,所以不会引起贫血。但有些父母看到孩子大便带血非常担心,以为这和女性的月经一样。其实,孩子的大便出血量按比例来计算,远不如女性的经血量,所以完全不必担忧。如果验血证明确实有贫血,服一些补血药也就足够了。由于淋巴滤泡增生是幼儿免疫功能逐渐成熟的一种表现。随着免疫功能成熟,淋巴滤泡增生逐渐减少,出血也就自然停止,因此不需要治疗。

有些孩子由于增生的淋巴滤泡被擦破而出血,并造成感染,会长出肉芽。过度增生的肉芽形成小肉球,突入肠腔,这就是息肉。息肉更易受到挤压,于是孩子每次大便都会带血。但无论如何.出血不会很多,孩子大便时也没有感觉,更不会恶变。这种息肉在医学上叫做"青年息肉"。医生在直肠检查时若发现孩子有息肉,可以顺手摘下来。若手指够不到,一般不必处理,因为随着息肉越来越大,根部的蒂会越来越细,息肉自然脱落后,随大便排出,以后就不会再出血。个别的大息肉,顽固而不脱落.可以通过直肠镜或乙状结肠镜手术摘除。

怎样才能知道孩子的便血是淋巴滤泡增生还是息肉引起的呢?一般地说,幼儿偶尔大便出血,大多数是淋巴滤泡增生所致,而每次大便都出血,则常为息肉导致,有经验的专科医生通过直肠检查就能明确诊断。肛门内灌钡糊(钡灌肠造影)摄X线片,可以发现手指够不到的高位息肉。乙状结肠及纤维结肠镜检查。可以看见淋巴滤泡增生和各部位的息肉,但在检查前。必须给幼儿进行麻醉,使其深睡。对少量便血且不影响健康的孩子,大多不作此检查。

有没有疾病甚至是危险性疾病引起的少量无痛便血?当然也有。如血液病(包括白血病),全身都会出血,肛门自然也不例外;慢性肠炎(克隆病)、直肠血管瘤以及肠淋巴瘤等,都可以有少量便血。幸而这些情况都很罕见,且孩子常伴有肚子痛。患有肛裂、肛瘘、小婴儿肛门湿疹、幼儿蛲虫性肛门炎也可引起出血,但还多有痒痛。因此,大便带血还是应该找医生检查。如果真是有病,医生会做处理。若查不出问题.就可安心等待自愈,同时注意观察。不必惊慌。

Oracle Database 10g / 11g RMAN备份的加密

原文 链接

Oracle 从10gR2开始,提供备份加密,也就是说,对备份出来的文件采用一定的加密算法,防止备份文件被拷贝到别的地方可以随意恢复。采用加密方法的备份,如果在异地还原(Restore)的话,需要提供正确的密码才能做到。

 

启动rman后,用show all命令可以看到与备份加密有关的配置:

CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

 

RMAN支持的加密算法可以通过如下视图看到:V$RMAN_ENCRYPTION_ALGORITHMS;

配置加密算法通过如下语句完成:

RMAN> CONFIGURE ENCRYPTION ALGORITHM TO 'AES256';

 

可以用如下的方法打开加密备份方式:

1)RMAN> set encryption on identified by 'password' only;

2)RMAN> set encryption on identified by 'password';

3)RMAN> configure encryption for database on;

RMAN> set encryption on;

 

以上的加密分为3个级别:

1)密码(password)形式

这是最简单的模式,备份的时候通过以下语句设置备份密码,然后备份数据库或对应的表空间、数据文件等。

RMAN> set encryption on identified by "mypass" only;

RMAN> backup database;

 

恢复的时候,则需要指定解密的密码才可:

RMAN> set decryption identified by "mypass";

RMAN> restore database;

这种方法简单,但缺点是密码是明文的。

下面是一个简单的测试过程:
D:oracle11gBIN>rman target/

恢复管理器: Release 11.1.0.7.0 - Production on 星期四 11月 20 21:26:19 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.

已连接到目标数据库 (未启动)
RMAN> startup mount;

Oracle 实例已启动
数据库已装载

系统全局区域总计 313860096 字节

Fixed Size 1347020 字节
Variable Size 276824628 字节
Database Buffers 29360128 字节
Redo Buffers 6328320 字节

RMAN> set encryption on identified by "mypass" only;

正在执行命令: SET encryption
使用目标数据库控制文件替代恢复目录

RMAN> backup database format='d:backup%d_%s.bak';

启动 backup 于 20-11月-08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=154 设备类型=DISK
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=D:ORACLE11GORADATAORA11GSYSTEM01.DBF
输入数据文件: 文件号=00002 名称=D:ORACLE11GORADATAORA11GSYSAUX01.DBF
输入数据文件: 文件号=00005 名称=D:ORACLE11GORADATAORA11GDATA_01.DBF
输入数据文件: 文件号=00006 名称=D:ORACLE11GORADATAORA11GUNDOTBS02.DBF
输入数据文件: 文件号=00004 名称=D:ORACLE11GORADATAORA11GUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 20-11月-08
通道 ORA_DISK_1: 已完成段 1 于 20-11月-08
段句柄=D:BACKUPORA11G_11.BAK 标记=TAG20081120T212648 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:02:05
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
备份集内包括当前控制文件
备份集内包括当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 20-11月-08
通道 ORA_DISK_1: 已完成段 1 于 20-11月-08
段句柄=D:BACKUPORA11G_12.BAK 标记=TAG20081120T212648 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 20-11月-08

RMAN> shutdown immediate;

使用目标数据库控制文件替代恢复目录
数据库已卸装
Oracle 实例已关闭

--删除数据文件,模拟数据库损坏

RMAN> startup mount;

数据库已经启动
数据库已装载

未指定密码,看是否能够恢复
RMAN> restore database;

启动 restore 于 20-11月-08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=154 设备类型=DISK

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 D:ORACLE11GORADATAORA11GSYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 D:ORACLE11GORADATAORA11GSYSAUX01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:ORACLE11GORADATAORA11GUSERS01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 D:ORACLE11GORADATAORA11GDATA_01.DBF
通道 ORA_DISK_1: 将数据文件 00006 还原到 D:ORACLE11GORADATAORA11GUNDOTBS02.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:BACKUPORA11G_11.BAK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 11/20/2008 21:33:52 上) 失败
ORA-19870: 还原备份片段 D:BACKUPORA11G_11.BAK 时出错
ORA-19913: 无法解密备份
ORA-28365: Wallet 未打开


下面指定密码,进行正常的恢复
RMAN> set decryption identified by "mypass";

正在执行命令: SET decryption

RMAN> restore database;

启动 restore 于 20-11月-08
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 D:ORACLE11GORADATAORA11GSYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 D:ORACLE11GORADATAORA11GSYSAUX01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:ORACLE11GORADATAORA11GUSERS01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 D:ORACLE11GORADATAORA11GDATA_01.DBF
通道 ORA_DISK_1: 将数据文件 00006 还原到 D:ORACLE11GORADATAORA11GUNDOTBS02.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:BACKUPORA11G_11.BAK
通道 ORA_DISK_1: 段句柄 = D:BACKUPORA11G_11.BAK 标记 = TAG20081120T212648
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:02:05
完成 restore 于 20-11月-08

RMAN> alter database open;
数据库已打开
RMAN>

 

2)透明(Transparent)形式

这种方法不需要设置密码,很适合在本地的备份与恢复,如果备份不需要传到其他的机器上,建议采用这样的加密方法。因为不需要密码,只需要配置加密/解密信任书,也就是Oracle Encryption Wallet.

启动这种形式的加密方法很简单,首先需要配置Oracle Encryption Wallet,简单的步骤如下:

■配置sqlnet.ora,设置加密方式与文件地址:

ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=D:oradatawallet)))

■创建wallet,包括设置密码、生成信任文件、并启动wallet:

SQL> alter system set encryption key authenticated BY "zrp123";

 

然后可以用如下的方式打开或关闭wallet,需要注意的是,以上的命令完成以后,wallet就自动启动了,不需要在启动。

SQL> alter system set wallet open identified by "zrp123";

SQL> alter system set encryption wallet close;

 

在采用这种方式备份前,确保wallet是open的.

RMAN> configure encryption for database on;

RMAN> set encryption on;

 

然后就可以加密备份了,下面看一个测试过程:

   D:oracle11gBIN>rman target/

恢复管理器: Release 11.1.0.7.0 - Production on 星期四 11月 20 21:53:17 2008

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

已连接到目标数据库 (未启动)

RMAN> startup mount;

Oracle 实例已启动
数据库已装载

系统全局区域总计 313860096 字节

Fixed Size 1347020 字节
Variable Size 276824628 字节
Database Buffers 29360128 字节
Redo Buffers 6328320 字节

RMAN> sql 'alter system set wallet open identified by "zrp123"'; --打开Wallet

使用目标数据库控制文件替代恢复目录
sql 语句: alter system set wallet open identified by "zrp123"

RMAN> configure encryption for database on; --采用透明加密方式

新的 RMAN 配置参数:
CONFIGURE ENCRYPTION FOR DATABASE ON;
已成功存储新的 RMAN 配置参数

RMAN> set encryption on;

正在执行命令: SET encryption

RMAN> backup database format='d:backup%d_%s.bak';

启动 backup 于 20-11月-08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=154 设备类型=DISK
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=D:ORACLE11GORADATAORA11GSYSTEM01.DBF
输入数据文件: 文件号=00002 名称=D:ORACLE11GORADATAORA11GSYSAUX01.DBF
输入数据文件: 文件号=00005 名称=D:ORACLE11GORADATAORA11GDATA_01.DBF
输入数据文件: 文件号=00006 名称=D:ORACLE11GORADATAORA11GUNDOTBS02.DBF
输入数据文件: 文件号=00004 名称=D:ORACLE11GORADATAORA11GUSERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 20-11月-08
通道 ORA_DISK_1: 已完成段 1 于 20-11月-08
段句柄=D:BACKUPORA11G_13.BAK 标记=TAG20081120T215400 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:02:06
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
备份集内包括当前控制文件
备份集内包括当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 20-11月-08
通道 ORA_DISK_1: 已完成段 1 于 20-11月-08
段句柄=D:BACKUPORA11G_14.BAK 标记=TAG20081120T215400 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 20-11月-08

先关闭wallet,并删除users表空间下的所有数据文件,模拟损坏表空间,看能不能恢复.
   RMAN> sql 'alter system set encryption wallet close';

sql 语句: alter system set encryption wallet close

RMAN> RESTORE TABLESPACE users;

启动 restore 于 20-11月-08
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:ORACLE11GORADATAORA11GUSERS01.DBF

通道 ORA_DISK_1: 正在读取备份片段 D:BACKUPORA11G_13.BAK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 11/20/2008 21:59:22 上) 失败
ORA-19870: 还原备份片段 D:BACKUPORA11G_13.BAK 时出错
ORA-19913: 无法解密备份
ORA-28365: Wallet 未打开
   下面再打开Wallet,接着恢复看看:
RMAN> sql 'alter system set wallet open identified by "zrp123"';

sql 语句: alter system set wallet open identified by "zrp123"

RMAN> RESTORE TABLESPACE users;

启动 restore 于 20-11月-08
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:ORACLE11GORADATAORA11GUSERS01.DBF

通道 ORA_DISK_1: 正在读取备份片段 D:BACKUPORA11G_13.BAK
通道 ORA_DISK_1: 段句柄 = D:BACKUPORA11G_13.BAK 标记 = TAG20081120T215400
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
完成 restore 于 20-11月-08

RMAN> RECOVER TABLESPACE users;

启动 recover 于 20-11月-08
使用通道 ORA_DISK_1

正在开始介质的恢复
介质恢复完成, 用时: 00:00:00

完成 recover 于 20-11月-08

RMAN> alter database open;
数据库已打开


RMAN>

OK,恢复成功.

 

3)混合(Dual-mode)形式

因为在透明模式下,启动了Oracle Encryption Wallet,这样的备份是无法到别的机器上去恢复的。这个时候,可以通过设置加密的密码,如:

RMAN> set encryption on identified by "mypass";

 

对比密码方式,它仅仅是少了only这个关键字,这种情况下,如果在本地备份与恢复,是不需要密码的,如果是在异地恢复(如在别的机器上恢复该备份),只需要设置解密的密码即可。

RMAN> set decryption on identified by "mypass";

RMAN> restore database;

 

第三种方式,是前面2种方式的混合模式,就不再继续测试了.


Pages

Powered by Movable Type 6.3.2

About this Archive

This page is an archive of entries from December 2008 listed from newest to oldest.

November 2008 is the previous archive.

January 2009 is the next archive.

回到 首页 查看最近文章或者查看所有归档文章.