如何拆分BCV并打开oracle ASM数据库

BCV(业务连续性卷)是 EMC Symmetrix TimeFinder/Mirror 进程的目标卷。
当 BCV 与数据设备完全同步时,BCV 被分离或者拆分,从而可供主机备份或者其他主机进程使用。
简而言之,BCV 拆分是一种设备,可以克隆另一个设备。
在使用 BCV 拆分作为 Oracle 备份之前,我们需要缩小备份卷中包含的内容。
我们可以使用 BCV 拆分来仅备份 asm 磁盘以及 rdbms 数据文件、重做日志和控制文件。
GRID_HOME 的 BCV 拆分将不起作用。

无论何时使用 BCV 拆分,克隆过程都包含以下阶段:

  • 在目标上安装 Grid Infrastructure 软件。
  • 挂载 bcv 拆分卷并检查对磁盘的访问。
  • 启动 asm 实例并挂载磁盘组。
  • 启动 rdbms 实例并恢复数据库。

1. 在目标上安装网格基础结构软件

Oracle 版本应在源服务器和目标服务器上匹配。
即使我们在源端安装了 RAC,我们也可以在目标端安装独立的网格版本。

4. 启动 RDBMS 实例并恢复数据库

  1. ASM 已启动,磁盘组已挂载,现在我们已准备好打开数据库。
    从 Grid 主页启动侦听器。
$ lsnrctl start
$ lsnrctl status
  1. 将环境设置为指向数据库主目录(应该已经安装或者克隆):
$ export ORACLE_HOME=/oracle/ora11g/11.2.0/db_home
$ export PATH=$ORACLE_HOME/bin:$PATH
$ export ORACLE_SID=YOUR_DB_SID

或者

$ . oraenv
ORACLE_SID = YOUR_DB_NAME
  1. 启动数据库。
$ sqlplus / as sysdba
SQL> startup
  1. 检查前面的命令是否真的打开了数据库:
SQL> select name, open_mode from v$database;
NAME      OPEN_MODE
--------- -------------------
YOUR_DB_NAME  READ WRITE
欢迎来到之路教程(on itroad-com)

3. 调出 ASM 实例并挂载磁盘组

以下是 11gR2 独立版(非 RAC)的示例。
请注意,CRS 和 ASM 在 11gR2 与 10g 或者 11gR1 中是一起的,因此必须首先启动集群件进程。

1.设置环境。
例如:

$ export ORACLE_HOME=/oracle/ora11g/11.2.0/grid
$ export PATH=$ORACLE_HOME/bin:$PATH
$ export ORACLE_SID=+ASM

或者

$ . oraenv
ORACLE_SID = +ASM
  1. 检查集群资源是否以 root 身份启动:
# cd [Grid Home]/bin
# ./crsctl status resource -t

如果有,ora.cssd 资源离线,手动启动。

# ./crsctl start has
# ./crsctl start resource ora.cssd
# ./crsctl status resource -t
  1. 启动ASM,挂载ORA_CRS磁盘组,其中ORA_CRS为磁盘组名。
    使用 pfile 而不是 spfile 执行此操作的选项之一。
    如果 CRS 已启动,我们可以使用存储在 asm 中的 spfile 启动。
SQL> startup nomount ;
SQL> alter diskgroup ORA_CRS mount ;

作为 root 启动 crsd:

# crsctl start resource ora.crsd -init

启动它们后,尝试手动挂载当前在此服务器上可见的所有磁盘组。

SQL> alter diskgroup [DG] mount ;
  1. 如果出现 spile 错误,则需要为 ASM 创建/重新创建 SPFILE。
    默认是启动asm,不带pfile或者spfile,所以是很常见的问题。
    请特别注意 asm_diskstring 参数,因为它会影响投票磁盘的发现。
    使用我们进行 BCV 拆分的源上的 ASM 警报日志验证先前的设置。

准备一个带有 ASM 启动参数的 pfile(例如 /tmp/asm_pfile.ora),这些参数可能与下面的示例有所不同。
如果有疑问,请查阅 ASM 警报日志,因为 ASM 实例启动应列出所有非默认参数值。
请注意 ASM 的最后一次启动(在第 2 步中通过 CRS 启动)不会使用 SPFILE,因此需要定位在 CRS 磁盘组丢失之前的启动。

*.asm_power_limit=1
*.diagnostic_dest='/u01/app/oragrid'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='EXCLUSIVE'

现在可以使用这个 PFILE 创建 SPFILE:

$ sqlplus / as sysasm
SQL> create spfile='+CRS' from pfile='/YOUR_LOCATION/asm_pfile.ora';
File created.
SQL> startup nomount ;
SQL> alter diskgroup ORA_CRS mount ;

作为 root 启动 crsd:

# crsctl start resource ora.crsd -init
  1. 检查磁盘状态:
SQL> set linesize 200
SQL> column path format a45
SQL> column name format a20
SQL> column failgroup format a15
SQL> select group_number, disk_number, mount_status, header_status, state, failgroup, name, path from v$asm_disk;

如果磁盘显示为成员,那么我们应该能够挂载磁盘组。

  1. 一旦所有正确的磁盘都显示为 MEMBER,我们就可以挂载当前在此服务器上可见的磁盘组。
SQL> alter diskgroup <DG> mount ;
SQL> select group_number, name, state, type, total_mb, free_mb from v$asm_diskgroup;
  1. 检查 asm 是否已启动,并且 asm_disksgroups 和 asm_diskstring 的值是否正确。
SQL> select * from v$instance;
SQL> show parameter asm;

2. 安装 BCV 分割卷并检查磁盘的访问权限

  1. 如果我们在安装 BCV 分体时遇到问题,请联系 EMC。

http://www.emc.com
http://www.emc.com/collateral/software/white-papers/h5550-backup-oracle-symmetrix-netwrk-powernsap-wp.pdf

  1. 在目标上安装 BCV split 后,确保软件所有者(oracle 或者 grid,具体取决于版本)具有对磁盘的完全访问权限。
    为此,请使用 kfod 实用程序。
    我们可以使用工具 kfod 从操作系统级别模拟磁盘发现。
    ($ORACLE_HOME/bin)。
    执行语法为:
$ kfod asm_diskstring='/dev/rdsk/*' disks=all

或者

$ kfod asm_diskstring='dev/oracleasm/disks/*' disks=all

或者

$ kfod asm_diskstring='ORCL:*' disks=all

语法示例:

$ cd $ORACLE_HOME/bin
$ kfod disks=all
$ kfod status=TRUE dscvgroup=TRUE asm_diskstring='/dev/xvd*' disks=all
$ kfod status=TRUE dscvgroup=TRUE asm_diskstring='/dev/rhdisk*' disks=all
$ kfod status=TRUE dscvgroup=TRUE asm_diskstring='/dev/emcpower*' disks=all

其中 asm_diskstring 是磁盘的有效路径。

  1. 检查磁盘权限,源和目标应匹配。
    owner:克隆磁盘组需要为 ASM OS 用户所有。

  2. 如果 kfod 输出收到下一个错误,表明候选原始设备不能被网格或者 oracle OS 用户在操作系统级别访问,因此在此问题解决之前,ASM 或者 ASM 工具将无法检测或者使用它:

ORA-15025: could not open disk "/dev/rdsk/c3t60080E500017CAA8000006954EEA57CDd0s0"
SVR4 Error: 13: Permission denied

在这种情况下,请以 oracle 或者 grid OS 用户身份连接,并验证我们可以使用 dd OS 命令在原始设备上进行读写操作,如下所示:

$ id
$ dd if=/dev/null of=/dev/rdsk/c3t60080E500017CAA8000006954EEA57CDd0s0 bs=8192 count=12800

如果 dd 报告了同样的问题,那么我们必须让操作系统和存储支持人员更正磁盘/原始设备对网格和 oracle 操作系统用户的访问。
在 kfod 实用程序返回对磁盘的正确访问之前,不要继续下一步。
输出将类似于以下内容(用户和组应在源和目标上匹配)

$ kfod asm_diskstring='/dev/rhdisk*' disks=all
-------------------------------------------------------------------------------
 Disk          Size Path                                     User     Group
================================================================================
   1:     102400 Mb /dev/rhdisk2                             grid   asmadmin
   2:     102400 Mb /dev/rhdisk3                             grid   asmadmin
   3:     102400 Mb /dev/rhdisk4                             grid   asmadmin
   4:     102400 Mb /dev/rhdisk5                             grid   asmadmin
-------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME                                                          
================================================================================
      +ASM /u01/app/grid/product/11.2.0/grid

或者

$ kfod asm_diskstring='/dev/rhdisk*' disks=all
-------------------------------------------------------------------------------
 Disk          Size Path                                     User     Group
================================================================================
   1:     102400 Mb /dev/rhdisk2                             oracle   dba
   2:     102400 Mb /dev/rhdisk3                             oracle   dba
   3:     102400 Mb /dev/rhdisk4                             oracle   dba
   4:     102400 Mb /dev/rhdisk5                             oracle   dba
-------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME                                                          
================================================================================
      +ASM /u01/app/grid/product/11.1.0/grid
日期:2020-09-17 00:11:24 来源:oir作者:oir