zoukankan      html  css  js  c++  java
  • 【翻译自mos文章】使用asmcmd命令在本地和远程 asm 实例之间 拷贝asm file的方法

    使用asmcmd命令在本地和远程 asm 实例之间 拷贝asm file的方法

    參考原文:
    How to Copy asm files between remote ASM instances using ASMCMD command (Doc ID 785580.1)

    适用于:
    Oracle Database - Enterprise Edition - Version 11.1.0.6 to 11.2.0.2 [Release 11.1 to 11.2]
    Information in this document applies to any platform.
    ***Checked for relevance on 14-Jan-2011***
    ***Checked for relevance on 09-Jul-2014 ***


    目标:
    本文档的目的是提供使用asmcmd命令在本地实例和远程实例之间拷贝asm file的方法。

    解决方式:
    11g 有新特性--能够在本地和远程实例之间拷贝asm file
    也能够用于 从asm 磁盘组复制文件到os

    cp -ifr <source file name> <user_name>@<host_name>.<Port Number>.<SID>:<targer path>/<target file name>

    user_name@host_name.<Port Number>.<SID>

    The user_name, host_name, and SID are required. The default port number is 1521.

    --->注意。此处的sid是 asm实例的sid。不是数据库实例的sid

    举例:
    asmcmd>cp -ifr +DATA/RAC/PARAMETERFILE/spfile.257.678975489 sys@stgrac1.1521.+ASM2:+FRA/RAC/ARCHIVELOG/spfile


    ASMCMD remote copy 的一些解释:
    asmcmd remote copy 的执行须要通过监听器建立连接
    asmcmd remote connection 可能因为一些错误导致连接失败。

    ASMCMD-08202: internal error: [asmcmdshare_error_msg_05] [8201]

    [8201] means unable to connect remote ASM Instance.

    该错误的可能原因例如以下:
    * not able to reach remote host. 不能连接远程主机
    * Remote host listener is down.  远程监听器down掉
    * Remote ASM Instance is not registered with listener and running non-default port. 远程asm实例没有注冊到监听器中,而且监听器执行在非默认端口
    * sysasm remote connection does not work.  sysasm远程连接不工作
    * Incorrect password given for sys user.  sys 用户的错误密码
    * Remote ASM Instance password file missing. 远程asm实例的 密码文件丢失

    我们须要启用额外的tracing(跟踪)。以得到asmcmd connection 失败的准确信息。

    ++设置 DBI_TRACE 环境变量,以便进行 asmcmd perl tracing

    export DBI_TRACE=1

    ++如今使用asmcmd连接。并再现该问题:

    Example 1:
    --->样例開始
    asmcmd>cp +data/spfileorcl.ora.289.686235413 sys@stgrac1.1521.+ASM1:+test

    -> DBI->connect(dbi:Oracle:host=stgrac1;port=1521;sid=+ASM1, sys, ****, HASH (0x8b2b044))
    connect using '(DESCRIPTION=(ADDRESS=(HOST=stgrac1)(PROTOCOL=tcp)(PORT=1521))(CONNECT_DATA=(SID=+ASM1)))'
    ERROR: '1031' 'ORA-01031: insufficient privileges

    (DBD ERROR: OCISessionBegin)'
    <- DESTROY= undef at DBI.pm line 591
    DBI connect('host=stgrac1;port=1521;sid=+ASM1','sys',...) failed: ORA-01031: insufficient privileges (DBD ERROR: OCISessionBegin)
    KK FROM HERE A
    ASMCMD-08202: internal error: [asmcmdshare_error_msg_05] [8201]

    --->样例结束

    能够看到因为ORA-01031错误。asmcmd 复制文件失败。
    假设-a选项不使用的话。asmcmd 默认使用sysasm 权限。
    这里的问题是:远程的asm实例中,sysasm 权限没有被授予sys user
    把sysasm权限给sys用户。当你授予系统权限时,password文件会被更新。

    SQL> grant sysasm to sys;
    Grant succeeded.

    SQL> select * from v$pwfile_users;
    USERNAME SYSDB SYSOP SYSAS
    ------------------------------ ----- ----- -----
    SYS TRUE TRUE TRUE


    如今,远程asm 拷贝能正常工作了。

    关于很多其它细节,请參考以下的文章:
    Note.730067.1 - Troubleshooting ORA-1031 Insufficient Privilege
    Note.578796.1 - ORA-01031 While Connecting as SYSASM


    Example 2:

    ASMCMD> cp -ifr thread_2_seq_5.264.678983423 sys@bderac2-vip.1521.+ASM2:+FRA/RAC/ARCHIVELOG/
    Enter password: ***
    ASMCMD-08016: copy source->'+FRA/RAC/ARCHIVELOG/2009_02_16/thread_2_seq_5.264.678983423' and target->'+FRA/RAC/ARCHIVELOG/thread_2_seq_5.264.678983423' failed
    ORA-17628: Oracle error 19505 returned by remote Oracle server
    ORA-06512: at "SYS.X$DBMS_DISKGROUP", line 258
    ORA-06512: at line 3 (DBD ERROR: OCIStmtExecute)
    ASMCMD>

    cp命令失败的原因是:
    目标的asm file 名字没有指定。 或者 文件名称字不应该包含file number/incarnation.
    --->注意,我对本句的翻译有点疑问。
    原文为The cp command failed because the target ASM file name was not specified  or File name should not contain the file number/incarnation

    不指定文件名称字。我们不能拷贝omf 命名格式的文件。

    cp -ifr thread_2_seq_5.264.678983423 sys@bderac2-vip.1521.+ASM2:+FRA/RAC/ARCHIVELOG/thread_2_seq_5

    The file number/incarnation 会在拷贝的过程中被自己主动创建.

  • 相关阅读:
    javascript 基础知识汇总(一)
    一个高效单表分页查询语句
    Linux的基本操作(一)
    Tomcat服务器配置
    C# — Winform的TextBox控件实现记忆功能
    C# — LINQ To XML示例
    C# — COM组件注册
    C# — LINQ查询的简单使用
    C# — 题库答案汇总
    C# — 题库汇总
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7216869.html
Copyright © 2011-2022 走看看