物理dg的维护

一:physic standby 的维护:

      1:启动并挂载 physic standby database


      startup mount;

           

      2:  开始重做应用或 实时重做应用:

          alter database recover managed standby database disconnect from session;
          alter database reocver managed standby database using current logfile disconnect from session;


          a

      3:  主数据库查看重做应用模式(普通,实时)例子是普通重做应用

        
SQL> SELECT RECOVERY_MODE FROM V$ARCHIVE_DEST_STATUS;

RECOVERY_MODE
-----------------------
IDLE
MANAGED
MANAGED
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE
IDLE


  
     4:背库上查看重做应用模式,如果MRP0 或MRP 进程存在,则备数据库应用重做
SQL> SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY;

PROCESS   STATUS
--------- ------------
ARCH      CLOSING
ARCH      CLOSING
RFS       IDLE
RFS       IDLE
RFS       IDLE
RFS       IDLE
RFS       IDLE
RFS       IDLE
RFS       IDLE
RFS       IDLE
RFS       IDLE

PROCESS   STATUS
--------- ------------
RFS       IDLE
RFS       IDLE
RFS       IDLE
MRP0      WAIT_FOR_LOG

    5:取消重做应用

alter database recover managed standby database cancel;

    
   6:评估是否需要打开备库:
  
只要物理备库一直处于mount 应用状态。如果之前没有只读打开过,那么可以直接open,而不需要重启。
  注:
  10g物理备库open之后,不能应用日志。
  11g 物理备库open 之后,可以应用日志。

   7:DEPENDENCY 属性实现归档目的地共享
当在同一系统配置超过一个备数据库,
考虑使用LOG_ARCHIVE_DEST_n初始化参数的DEPENDENCY属性来定义一个归档目的地来代表所有目的地接收重做数据,而不是传送重做数据到每个单独目的地
LOG_ARCHIVE_DEST_1='LOCATION=DISK1 MANDATORY'
LOG_ARCHIVE_DEST_2='SERVICE=stdby1 OPTIONAL'
LOG_ARCHIVE_DEST_3='SERVICE=stdby2 OPTIONAL DEPENDENCY=LOG_ARCHIVE_DEST_2' 


8:打开备库
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
ALTER DATABASE OPEN;


9:DG 的降级
当备库打开之后,可以运行重做运用命令来实现降级,此时数据库状态由open到 mount
alter database recover managed standby database disconnect from session;

10:添加数据文件或表空间
a 如果你在备数据库服务器参数文件(SPFILE)中设置STANDBY_FILE_MANAGEMENT初始化参数为AUTO,则任何在主数据库上创建的新数据文件一样自动创建在备数据库上。
b 如果你没有指定STANDBY_FILE_MANAGEMENT初始化参数,或者你设置为MANUAL,则当你添加数据文件到主数据库时你必须手工拷贝新数据文件到备数据库。

举例:
STANDBY_FILE_MANAGEMENT=auto

数据库建立表空间

SQL> CREATE TABLESPACE MTS3 DATAFILE '/dev/raw/raw101' size 1m;
Tablespace created.

SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.

系统还没有创建/Dave/raw/raw101裸设备。备警告日志在恢复归档时显示下述信息: 

Fri Apr  8 10:00:22 2005
Media Recovery Log /u01/MILLER/flash_recovery_area/MTS_STBY/archivelog/2005_04_08/o1_mf_1_8_15ffjrov_.arc
File #7 added to control file as 'UNNAMED00007'.
Originally created as:
'/dev/raw/raw101'
Recovery was unable to create the file as:
'/dev/raw/raw101'
MRP0: Background Media Recovery terminated with error 1274
Fri Apr  8 10:00:22 2005
Errors in file /u01/MILLER/MTS/dump/mts_mrp0_21851.trc:
ORA-01274: cannot add datafile '/dev/raw/raw101' - file could not be created
ORA-01119: error in creating database file '/dev/raw/raw101'
ORA-27041: unable to open file
Linux Error: 13: Permission denied
Additional information: 1
Some recovered datafiles maybe left media fuzzy
Media recovery may continue but open resetlogs may fail
Fri Apr  8 10:00:22 2005
Errors in file /u01/MILLER/MTS/dump/mts_mrp0_21851.trc:
ORA-01274: cannot add datafile '/dev/raw/raw101' - file could not be created
ORA-01119: error in creating database file '/dev/raw/raw101'
ORA-27041: unable to open file
Linux Error: 13: Permission denied
Additional information: 1
Fri Apr  8 10:00:22 2005
MTS; MRP0: Background Media Recovery process shutdown
ARCH: Connecting to console port... 

解决办法:

1.在备数据库上创建裸分区,并赋予权限给 Oracle用户。
2 查询V$DATAFILE视图获取相关信息。
SQL> SELECT NAME FROM V$DATAFILE;

NAME
--------------------------------------------------------------------------------
/u01/MILLER/MTS/system01.dbf
/u01/MILLER/MTS/undotbs01.dbf
/u01/MILLER/MTS/sysaux01.dbf
/u01/MILLER/MTS/users01.dbf
/u01/MILLER/MTS/mts.dbf
/dev/raw/raw100
/u01/app/oracle/product/10.1.0/dbs/UNNAMED00007

3:
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL;
ALTER DATABASE CREATE DATAFILE '/u01/app/oracle/product/10.1.0/dbs/UNNAMED00007' AS '/dev/raw/raw101';

4.在备数据库上,设置 STANDBY_FILE_MANAGEMENT为 AUTO并重启重做应用: 
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
RECOVER MANAGED STANDBY DATABASE DISCONNECT; 

11:删除数据文件或表空间:
库standby_archive_dest=manual 时候
库执行删除表空间操作:
SQL> drop tablespace testimp including contents and datafiles;

Tablespace dropped.

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/home/oracle/product/oradata/dg1/system01.dbf
/home/oracle/product/oradata/dg1/undotbs01.dbf
/home/oracle/product/oradata/dg1/sysaux01.dbf
/home/oracle/product/oradata/dg1/users01.dbf
/home/oracle/product/oradata/dg1/example01.dbf
/home/oracle/product/oradata/dg1/users02.dbf
/home/oracle/product/oradata/dg1/test01.dbf
/home/oracle/product/oradata/dg1/test_lob01.dbf
/home/oracle/product/oradata/dg1/ogg_tab.dbf
/tmp/test1.dbf
/tmp/test2.dbf

NAME
--------------------------------------------------------------------------------
/home/oracle/product/oradata/dg1/tbs_test01.dbf


库查看日志应用信息:
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[6]: Assigned to RFS process 5806
RFS[6]: Identified database type as 'physical standby'
Primary database is in MAXIMUM PERFORMANCE mode
Primary database is in MAXIMUM PERFORMANCE mode
RFS[6]: Successfully opened standby log 4: '/home/oracle/product/oradata/dg2/stdlog1'
Thu Mar 15 15:26:55 2012
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[7]: Assigned to RFS process 5808
RFS[7]: Identified database type as 'physical standby'
RFS[7]: Successfully opened standby log 5: '/home/oracle/product/oradata/dg2/stdlog2'
Thu Mar 15 15:26:55 2012
Recovery of Online Redo Log: Thread 1 Group 5 Seq 902 Reading mem 0
  Mem# 0: /home/oracle/product/oradata/dg2/stdlog2
Recovery deleting file #13:'/tmp/testimp.dbf' from controlfile.
Recovery dropped tablespace 'TESTIMP'

Thu Mar 15 15:27:05 2012
Media Recovery Waiting for thread 1 sequence 903 (in transit)
Thu Mar 15 15:27:05 2012
Recovery of Online Redo Log: Thread 1 Group 4 Seq 903 Reading mem 0
  Mem# 0: /home/oracle/product/oradata/dg2/stdlog1

查看备库相关视图:
SQL>  select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/home/oracle/product/oradata/dg2/system01.dbf
/home/oracle/product/oradata/dg2/undotbs01.dbf
/home/oracle/product/oradata/dg2/sysaux01.dbf
/home/oracle/product/oradata/dg2/users01.dbf
/home/oracle/product/oradata/dg2/example01.dbf
/home/oracle/product/oradata/dg2/users02.dbf
/home/oracle/product/oradata/dg2/test01.dbf
/home/oracle/product/oradata/dg2/test_lob01.dbf
/home/oracle/product/oradata/dg2/ogg_tab.dbf
/tmp/test1.dbf
/tmp/test2.dbf

NAME
--------------------------------------------------------------------------------
/home/oracle/product/oradata/dg2/tbs_test01.dbf

发现已经同步drop 了该表空间,但是物理上并没有真正删除。
SQL> host
[oracle@dg2 ~]$ ls -la /tmp/testimp.dbf
-rw-r----- 1 oracle oinstall 20979712 Mar 15 15:26 /tmp/testimp.dbf
[oracle@dg2 ~]$ rm /tmp/testimp.dbf
[oracle@dg2 ~]$ ls -la /tmp/testimp.dbf
ls: /tmp/testimp.dbf: No such file or directory

库standby_archive_dest=auto 时候
   主数据库删除表空间
SQL> drop tablespace test including contents and datafiles;
Tablespace dropped.
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/home/oracle/product/oradata/dg1/system01.dbf
/home/oracle/product/oradata/dg1/undotbs01.dbf
/home/oracle/product/oradata/dg1/sysaux01.dbf
/home/oracle/product/oradata/dg1/users01.dbf
/home/oracle/product/oradata/dg1/example01.dbf
/home/oracle/product/oradata/dg1/users02.dbf
/home/oracle/product/oradata/dg1/test01.dbf
/home/oracle/product/oradata/dg1/test_lob01.dbf
/home/oracle/product/oradata/dg1/ogg_tab.dbf
/tmp/test1.dbf
/tmp/test2.dbf

备库应用日志如下:
Media Recovery Waiting for thread 1 sequence 904 (in transit)
Thu Mar 15 16:01:22 2012
Recovery of Online Redo Log: Thread 1 Group 4 Seq 904 Reading mem 0
  Mem# 0: /home/oracle/product/oradata/dg2/stdlog1
Thu Mar 15 16:27:31 2012
ALTER SYSTEM SET standby_file_management='AUTO' SCOPE=BOTH;
Thu Mar 15 16:32:03 2012
Recovery deleting file #12:'/home/oracle/product/oradata/dg2/tbs_test01.dbf' from controlfile.
Deleted file /home/oracle/product/oradata/dg2/tbs_test01.dbf
Recovery dropped tablespace 'TEST'


查看物理是否删除:
SQL> host ls -la /home/oracle/product/oradata/dg2/tbs_test01.dbf
ls: /home/oracle/product/oradata/dg2/tbs_test01.dbf: No such file or directory
发现自动删除了物理文件。这里体现了auto 和manual的区别


12:在主数据库中重命名数据文件
1.要在主数据库中重命名数据文件,将表空间脱机:
SQL> ALTER TABLESPACE tbs_4 OFFLINE;
2.从 SQL提示符退出并执行操作系统命令,如下面的 UNIX mv命令,来在主数据库上重命名数据文件:
mv /disk1/oracle/oradata/payroll/tbs_4.dbf /disk1/oracle/oradata/payroll/tbs_x.dbf 
3.在主数据库中重命名数据文件并将表空间联机:
SQL> ALTER TABLESPACE tbs_4 RENAME DATAFILE  '/disk1/oracle/oradata/payroll/tbs_4.dbf'
     TO '/disk1/oracle/oradata/payroll/tbs_x.dbf'; 
SQL> ALTER TABLESPACE tbs_4 ONLINE; 
4.连接到备数据库,查询 V$ARCHIVED_LOG视图来检验所有归档重做日志文件都被应用了,然后停止重做应用: 
SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# APP
--------- ---
8 YES
9 YES
10 YES
11 YES
4 rows selected.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
5.关闭备数据库:
SQL> SHUTDOWN;
6.在备站点使用操作系统命令重命名数据文件,如 UNIX mv命令:
mv /disk1/oracle/oradata/payroll/tbs_4.dbf /disk1/oracle/oradata/payroll/tbs_x.dbf 
7.启动并安挂载(mount)数据库:
SQL> STARTUP MOUNT;
8.重命名备控制文件中的数据文件。注意STANDBY_FILE_MANAGEMENT初始化参数必须设置为MANUAL
SQL> ALTER DATABASE RENAME FILE '/disk1/oracle/oradata/payroll/tbs_4.dbf'  
2> TO '/disk1/oracle/oradata/payroll/tbs_x.dbf';
9.在备数据库上,重启重做应用:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; 
如果你没有在备系统上重命名相应的数据文件,然后试图刷新备数据库控制文件,备数据库将会企图使用重命名的数据文件,但是它将无法找到
因此,你将在警告日志中看到类似于如下的错误信息: 
ORA-00283: recovery session canceled due to errors
ORA-01157: cannot identify/lock datafile 4 - see DBWR trace file
ORA-01110: datafile 4: '/Disk1/oracle/oradata/payroll/tbs_x.dbf' 



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

转载于:http://blog.itpub.net/713360/viewspace-719158/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在信号处理领域,DOA(Direction of Arrival)估计是一项关键技术,主要用于确定多个信号源到达接收阵列的方向。本文将详细探讨三种ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)算法在DOA估计中的实现,以及它们在MATLAB环境中的具体应用。 ESPRIT算法是由Paul Kailath等人于1986年提出的,其核心思想是利用阵列数据的旋转不变性来估计信号源的角度。这种算法相比传统的 MUSIC(Multiple Signal Classification)算法具有较低的计算复杂度,且无需进行特征值分解,因此在实际应用中颇具优势。 1. 普通ESPRIT算法 普通ESPRIT算法分为两个主要步骤:构造等效旋转不变系统和估计角度。通过空间平移(如延时)构建两个子阵列,使得它们之间的关系具有旋转不变性。然后,通过对子阵列数据进行最小二乘拟合,可以得到信号源的角频率估计,进一步转换为DOA估计。 2. 常规ESPRIT算法实现 在描述中提到的`common_esprit_method1.m`和`common_esprit_method2.m`是两种不同的普通ESPRIT算法实现。它们可能在实现细节上略有差异,比如选择子阵列的方式、参数估计的策略等。MATLAB代码通常会包含预处理步骤(如数据归一化)、子阵列构造、旋转不变性矩阵的建立、最小二乘估计等部分。通过运行这两个文件,可以比较它们在估计精度和计算效率上的异同。 3. TLS_ESPRIT算法 TLS(Total Least Squares)ESPRIT是对普通ESPRIT的优化,它考虑了数据噪声的影响,提高了估计的稳健性。在TLS_ESPRIT算法中,不假设数据噪声是高斯白噪声,而是采用总最小二乘准则来拟合数据。这使得算法在噪声环境下表现更优。`TLS_esprit.m`文件应该包含了TLS_ESPRIT算法的完整实现,包括TLS估计的步骤和旋转不变性矩阵的改进处理。 在实际应用中,选择合适的ESPRIT变体取决于系统条件,例如噪声水平、信号质量以及计算资源。通过MATLAB实现,研究者和工程师可以方便地比较不同算法的效果,并根据需要进行调整和优化。同时,这些代码也为教学和学习DOA估计提供了一个直观的平台,有助于深入理解ESPRIT算法的工作原理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值