打patch出现Copy failed—tfa服务导致部分lib未释放

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:打patch出现Copy failed—tfa服务导致部分lib未释放

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

在aix的11.2.0.4打psu之时,可能遇到由于tfa服务未停止导致部分lib未能够随着crs关闭而释放,从而导致升级升级失败,遇到这样的情况auto方式或者人工方式打patch都会失败,需要关闭tfa,并且使用slibclean释放lib对象,然后重新打patch
打11.2.0.4.3 psu中的18522515 patch失败

xifenf01:/home/grid> cle/app/grid -local /oradata/sys/soft/18706472/18522515                                                     <
Oracle Interim Patch Installer version 11.2.0.3.6
Copyright (c) 2013, Oracle Corporation.  All rights reserved.
Oracle Home       : /u01/oracle/app/grid
Central Inventory : /u01/oracle/app/oraInventory
   from           : /u01/oracle/app/grid/oraInst.loc
OPatch version    : 11.2.0.3.6
OUI version       : 11.2.0.4.0
Log file location : /u01/oracle/app/grid/cfgtoollogs/opatch/opatch2014-10-17_11-56-27AM_1.log
Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   18522515
Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.
Provide your email address to be informed of security issues, install and
initiate Oracle Configuration Manager. Easier for you if you use your My
Oracle Support Email address/User Name.
Visit http://www.oracle.com/support/policies.html for details.
Email address/User Name:
You have not provided an email address for notification of security issues.
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]:  Y
Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/oracle/app/grid')
Is the local system ready for patching? [y|n]
Y
User Responded with: Y
Backing up files...
Applying interim patch '18522515' to OH '/u01/oracle/app/grid'
Patching component oracle.crs, 11.2.0.4.0...
Copy failed from '/oradata/sys/soft/18706472/18522515/files/lib/libhasgen11.so' to '/u01/oracle/app/grid/lib/libhasgen11.so'...
Please verify all applications associated with the Oracle Home '/u01/oracle/app/grid' are shut down. If this is AIX,
please perform solution documented in Note 739963.1 on https://myoraclesupport.oracle.com.
Do you want to retry copying the file? [y|n]
y
User Responded with: Y
Retry copying the file to '/u01/oracle/app/grid/lib/libhasgen11.so'.
Copy failed from '/oradata/sys/soft/18706472/18522515/files/lib/libocr11.so' to '/u01/oracle/app/grid/lib/libocr11.so'...
Please verify all applications associated with the Oracle Home '/u01/oracle/app/grid' are shut down. If this is AIX,
please perform solution documented in Note 739963.1 on https://myoraclesupport.oracle.com.
Do you want to retry copying the file? [y|n]
y
User Responded with: Y
Retry copying the file to '/u01/oracle/app/grid/lib/libocr11.so'.
Copy failed from '/oradata/sys/soft/18706472/18522515/files/lib/libocrb11.so' to '/u01/oracle/app/grid/lib/libocrb11.so'...
Please verify all applications associated with the Oracle Home '/u01/oracle/app/grid' are shut down. If this is AIX,
please perform solution documented in Note 739963.1 on https://myoraclesupport.oracle.com.
Do you want to retry copying the file? [y|n]
y
User Responded with: Y
Retry copying the file to '/u01/oracle/app/grid/lib/libocrb11.so'.
The following actions have failed:
Copy failed from '/oradata/sys/soft/18706472/18522515/files/lib/libhasgen11.so' to '/u01/oracle/app/grid/lib/libhasgen11.so'...
Copy failed from '/oradata/sys/soft/18706472/18522515/files/lib/libocr11.so' to '/u01/oracle/app/grid/lib/libocr11.so'...
Do you want to proceed? [y|n]
y
User Responded with: Y
Verifying the update...
There are 2 copy files under ORACLE_HOME that are not patched.
Files check failed: Some files under ORACLE_HOME are not patched. Please see log file for details.
ApplySession failed in system modification phase... 'Verification of patch failed: Files are not updated completely.'
Restoring "/u01/oracle/app/grid" to the state prior to running NApply...
OPatch failed to restore the files from backup area. Not running "make".
NApply was not able to restore the home.  Please invoke the following scripts:
  - restore.[sh,bat]
  - make.txt (Unix only)
to restore the ORACLE_HOME.  They are located under
"/u01/oracle/app/grid/.patch_storage/NApply/2014-10-17_11-56-27AM"
UtilSession failed: ApplySession failed in system modification phase... 'Verification of patch failed: Files are not updated completely.'
Log file location: /u01/oracle/app/grid/cfgtoollogs/opatch/opatch2014-10-17_11-56-27AM_1.log
OPatch failed with error code 73

关闭tfa服务

xifenf01:/home/grid> ps -ef|grep -v grep|grep -E 'init|d.bin|ocls|UID|ora|crs|sql|tns|grid'
     UID      PID     PPID   C    STIME    TTY  TIME CMD
    root        1        0   0 11:16:01      -  0:00 /etc/init
    root 32243912        1   0 11:19:15      -  0:00 /usr/sbin/vxnotify -g oradata_dg -icfspdvACLMSk
    root 32374816        1   0 11:17:46      -  0:00 /bin/sh /etc/init.ohasd run
    root 32505956        1   0 11:17:56      -  0:09 /u01/oracle/app/grid/jdk/jre/bin/java -Xms64m -Xmx256m -classpath
/u01/oracle/app/grid/tfa/xifenf01/tfa_home/jar/RATFA.jar:/u01/oracle/app/grid/tfa/xifenf01/tfa_home/jar/je-4.0.103.jar:
/u01/oracle/app/grid/tfa/xifenf01/tfa_home/jar/ojdbc6.jar oracle.rat.tfa.TFAMain /u01/oracle/app/grid/tfa/xifenf01/tfa_home
    root 33095694        1   0 11:19:15      -  0:00 /usr/sbin/vxnotify -g crsdata_dg -icfspdvACLMSk
    grid 34013244  5505292   0 11:56:25  pts/0  0:00 -sh
    root  3211548        1   0 11:17:34      -  0:00 /opt/VRTSdbed/bin/vxdbd
    root  5112296        1   0 11:17:46      -  0:00 /bin/sh /etc/init.tfa run
    grid  6422822 34013244   0 13:03:33  pts/0  0:00 ps -ef
xifenf01:/home/grid> exit
xifenf01/#/etc/init.tfa stop
Stopping TFA
TFA is running  - Will wait 5 seconds (up to 3 times)
TFA is running  - Will wait 5 seconds (up to 3 times)
TFA is running  - Will wait 5 seconds (up to 3 times)
TFAmain Force Stopped Successfully
Killing TFA running with pid 32505956
. . .
Successfully stopped TFA..
xifenf01/#ps -ef|grep -v grep|grep -E 'init|d.bin|ocls|UID|ora|crs|sql|tns|grid'
     UID      PID     PPID   C    STIME    TTY  TIME CMD
    root        1        0   0 11:16:01      -  0:00 /etc/init
    root 32243912        1   0 11:19:15      -  0:00 /usr/sbin/vxnotify -g oradata_dg -icfspdvACLMSk
    root 32374816        1   0 11:17:46      -  0:00 /bin/sh /etc/init.ohasd run
    root 33095694        1   0 11:19:15      -  0:00 /usr/sbin/vxnotify -g crsdata_dg -icfspdvACLMSk
    root  3211548        1   0 11:17:34      -  0:00 /opt/VRTSdbed/bin/vxdbd
    root  5112296        1   0 11:17:46      -  0:00 /bin/sh /etc/init.tfa run

清理未释放lib对象

xifenf01/#genkld | grep /u01/oracle/app/grid
 900000004523000  252429f /u01/oracle/app/grid/lib/libclntsh.so
 9000000012e7000  2ddd80d /u01/oracle/app/grid/lib/libttsh11.so
 9000000040c5000     6c16 /u01/oracle/app/grid/lib/libskgxn2.so
 9000000012da000     cb95 /u01/oracle/app/grid/lib/libocrutl11.so
 9000000010cb000   20efa3 /u01/oracle/app/grid/lib/libocrb11.so
 90000000102a000    a0f25 /u01/oracle/app/grid/lib/libocr11.so
 900000000989000   6a0dc1 /u01/oracle/app/grid/lib/libhasgen11.so
 9000000075ee000     b1cf /u01/oracle/app/grid/jdk/jre/bin/libnio.a
 9000000075cd000    20c36 /u01/oracle/app/grid/jdk/jre/bin/libnet.a
 9000000075b5000    17840 /u01/oracle/app/grid/jdk/jre/bin/libzip.a
 900000007592000    21708 /u01/oracle/app/grid/jdk/jre/bin/libj9ute23.so
 90000000757d000    14a1f /u01/oracle/app/grid/jdk/jre/bin/libiverel23.so
 900000007513000    69b64 /u01/oracle/app/grid/jdk/jre/bin/libjclscar_23.so
 9000000074ee000    243de /u01/oracle/app/grid/jdk/jre/bin/libj9vrb23.so
 9000000074b9000    3404a /u01/oracle/app/grid/jdk/jre/bin/libj9jvmti23.so
 90000000748a000    2ed44 /u01/oracle/app/grid/jdk/jre/bin/libj9dyn23.so
 9000000073f0000    99873 /u01/oracle/app/grid/jdk/jre/bin/libj9gc23.so
 9000000073d8000    17a91 /u01/oracle/app/grid/jdk/jre/bin/libj9bcv23.so
 900000006f20000   4b7279 /u01/oracle/app/grid/jdk/jre/bin/libj9jit23.so
 900000006f0f000    10f07 /u01/oracle/app/grid/jdk/jre/bin/libj9trc23.so
 900000006ed0000    2cd1f /u01/oracle/app/grid/jdk/jre/bin/libj9dmp23.so
 900000006efd000    11bb3 /u01/oracle/app/grid/jdk/jre/bin/libj9zlib23.so
 900000006e96000    37b96 /u01/oracle/app/grid/jdk/jre/bin/libjava.a
 900000006ece000     1d41 /u01/oracle/app/grid/jdk/jre/bin/libwrappers.a
 900000006dcf000    70780 /u01/oracle/app/grid/jdk/jre/bin/libj9vm23.so
 900000006e42000    534c0 /u01/oracle/app/grid/jdk/jre/bin/libj9prt23.so
 900000006e40000     1d37 /u01/oracle/app/grid/jdk/jre/bin/libj9hookable23.so
 900000006da6000    1cde3 /u01/oracle/app/grid/jdk/jre/bin/j9vm/libjvm.so
 900000006dc3000     bf62 /u01/oracle/app/grid/jdk/jre/bin/libj9thr23.so
 900000000464000     214b /u01/oracle/app/grid/jdk/jre/bin/libjsig.so
 900000006d96000     f802 /u01/oracle/app/grid/jdk/jre/bin/classic/libjvm.so
xifenf01/#
xifenf01/#/usr/sbin/slibclean
xifenf01/#/usr/sbin/slibclean
xifenf01/#/usr/sbin/slibclean
xifenf01/#/usr/sbin/slibclean
xifenf01/#genkld | grep /u01/oracle/app/grid
xifenf01/#genkld | grep /u01/oracle/app/grid
xifenf01/#

继续打patch

xifenf01/#su - grid
xifenf01:/home/grid> cle/app/grid -local /oradata/sys/soft/18706472/18522515                                                     <
Oracle Interim Patch Installer version 11.2.0.3.6
Copyright (c) 2013, Oracle Corporation.  All rights reserved.
Oracle Home       : /u01/oracle/app/grid
Central Inventory : /u01/oracle/app/oraInventory
   from           : /u01/oracle/app/grid/oraInst.loc
OPatch version    : 11.2.0.3.6
OUI version       : 11.2.0.4.0
Log file location : /u01/oracle/app/grid/cfgtoollogs/opatch/opatch2014-10-17_13-07-20PM_1.log
Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   18522515
Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.
Provide your email address to be informed of security issues, install and
initiate Oracle Configuration Manager. Easier for you if you use your My
Oracle Support Email address/User Name.
Visit http://www.oracle.com/support/policies.html for details.
Email address/User Name:
You have not provided an email address for notification of security issues.
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]:  Y
Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/oracle/app/grid')
Is the local system ready for patching? [y|n]
Y
User Responded with: Y
Backing up files...
Applying interim patch '18522515' to OH '/u01/oracle/app/grid'
Patching component oracle.crs, 11.2.0.4.0...
Verifying the update...
Patch 18522515 successfully applied.
Log file location: /u01/oracle/app/grid/cfgtoollogs/opatch/opatch2014-10-17_13-07-20PM_1.log
OPatch succeeded.
xifenf01:/home/grid>

11GR2升级到12CR1并插入CDB

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:11GR2升级到12CR1并插入CDB

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

ORACLE 12C已经发布了十多天,其中一个亮点就是pdb,而在12C之前的数据库没有pdb之说,也就是说如果要把以前的数据库升级到12C,并且想让该库变成一个pdb,那所要做的工作就是先需要升级数据库从12C之前版本升级到12C,然后把一个NO-CDB数据库PLUG到CDB中.本blog演示:在前段时间意外的释放出来ORACLE 11.2.0.4版本,利用该版本升级到12.1.0.1,并插入到一个cdb库中
ORACLE 12C升级版本要求
12C_UPGRADE_VERSION
11.2.0.4到12.1.0.1升级操作操作[升级整体参考文档1503653.1]
当前相关组件版本信息

SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0      Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
SQL> show parameter name;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cell_offloadgroup_name               string
db_file_name_convert                 string
db_name                              string      ora11g
db_unique_name                       string      ora11g
global_names                         boolean     FALSE
instance_name                        string      ora11g
lock_name_space                      string
log_file_name_convert                string
processor_group_name                 string
service_names                        string      ora11g
SQL> select COMP_NAME,VERSION,STATUS from dba_registry;
COMP_NAME                                VERSION                        STATUS
---------------------------------------- ------------------------------ ----------------------
OWB                                      11.2.0.4.0                     VALID
Oracle Application Express               3.2.1.00.12                    VALID
Spatial                                  11.2.0.4.0                     VALID
Oracle Multimedia                        11.2.0.4.0                     VALID
Oracle XML Database                      11.2.0.4.0                     VALID
Oracle Text                              11.2.0.4.0                     VALID
Oracle Expression Filter                 11.2.0.4.0                     VALID
Oracle Rules Manager                     11.2.0.4.0                     VALID
Oracle Workspace Manager                 11.2.0.4.0                     VALID
Oracle Database Catalog Views            11.2.0.4.0                     VALID
Oracle Database Packages and Types       11.2.0.4.0                     VALID
JServer JAVA Virtual Machine             11.2.0.4.0                     VALID
Oracle XDK                               11.2.0.4.0                     VALID
Oracle Database Java Packages            11.2.0.4.0                     VALID
OLAP Analytic Workspace                  11.2.0.4.0                     VALID
Oracle OLAP API                          11.2.0.4.0                     VALID
16 rows selected.

升级准备工作
执行Pre-Upgrade Utility,具体参考Note 884522.1 How to Download and Run Oracle’s Database Pre-Upgrade Utility

SQL> @/tmp/preupgrd.sql
Loading Pre-Upgrade Package...
Executing Pre-Upgrade Checks...
Pre-Upgrade Checks Complete.
      ************************************************************
Results of the checks are located at:
 /u02/app/oracle/cfgtoollogs/ora11g/preupgrade/preupgrade.log
Pre-Upgrade Fixup Script (run in source database environment):
 /u02/app/oracle/cfgtoollogs/ora11g/preupgrade/preupgrade_fixups.sql
Post-Upgrade Fixup Script (run shortly after upgrade):
 /u02/app/oracle/cfgtoollogs/ora11g/preupgrade/postupgrade_fixups.sql
      ************************************************************
         Fixup scripts must be reviewed prior to being executed.
      ************************************************************
      ************************************************************
                   ====>> USER ACTION REQUIRED  <<====
      ************************************************************
 The following are *** ERROR LEVEL CONDITIONS *** that must be addressed
                    prior to attempting your upgrade.
            Failure to do so will result in a failed upgrade.
           You MUST resolve the above errors prior to upgrade
      ************************************************************

这里发生了改变,在12C之前版本直接显示需要修改的相关操作,12C把相关操作封装到了preupgrade_fixups.sql脚本,执行该脚本按照提示修复问题.
这里主要以下问题需要解决

ALTER SYSTEM SET PROCESSES=300 SCOPE=SPFILE;
@/u01/app/oracle/product/12.1/db_1/rdbms/admin/emremove.sql
@/u02/app/oracle/product/11.2/db_1/olap/admin/catnoamd.sql
EXECUTE dbms_stats.gather_dictionary_stats;

执行dbupgdiag.sql收集升级前信息
如果有异常核对相应的MOS文章修改,具体见Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql) [ID 556610.1]

dbua升级数据库
12C的dbua发生了不上变化,因为都是图形化界面,不做过多描述,贴上几幅区别较大图进行说明,关于12C的dbua变化更加详细信息请参考:Complete Checklist to Upgrade the Database to 12c Release 1 using DBUA [ID 1516557.1]
12C_U_2
12C_U_3
12C_U_4


升级后检查
执行postupgrade_fixups.sql脚本查看确定需要升级后处理事宜,因为是dbua升级数据库,很多问题已经自动修复,无需人工再次干预,例如timezone(14–>18)

SQL> select * from v$version;
BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0
PL/SQL Release 12.1.0.1.0 - Production                                                    0
CORE    12.1.0.1.0      Production                                                        0
TNS for Linux: Version 12.1.0.1.0 - Production                                            0
NLSRTL Version 12.1.0.1.0 - Production                                                    0
SQL> select COMP_NAME,VERSION,STATUS from dba_registry;
COMP_NAME                                     VERSION                        STATUS
--------------------------------------------- ------------------------------ ----------------------
Oracle Application Express                    4.2.0.00.27                    VALID
OWB                                           11.2.0.4.0                     VALID
Spatial                                       12.1.0.1.0                     VALID
Oracle Multimedia                             12.1.0.1.0                     VALID
Oracle XML Database                           12.1.0.1.0                     VALID
Oracle Text                                   12.1.0.1.0                     VALID
Oracle Workspace Manager                      12.1.0.1.0                     VALID
Oracle Database Catalog Views                 12.1.0.1.0                     VALID
Oracle Database Packages and Types            12.1.0.1.0                     VALID
JServer JAVA Virtual Machine                  12.1.0.1.0                     VALID
Oracle XDK                                    12.1.0.1.0                     VALID
Oracle Database Java Packages                 12.1.0.1.0                     VALID
OLAP Analytic Workspace                       12.1.0.1.0                     VALID
Oracle OLAP API                               12.1.0.1.0                     VALID
14 rows selected.

升级前后oratab信息对比
dbua使用12C环境变量shell下执行,注意不要人工修改oratab记录,执行完会自动修改

--升级前
[oracle@xifenfei ~]$ grep ora11g /etc/oratab
ora11g:/u02/app/oracle/product/11.2/db_1:N:             # line added by Agent
--升级后
[oracle@xifenfei ~]$ grep ora11g /etc/oratab
ora11g:/u01/app/oracle/product/12.1/db_1:N:             # line added by Agent

到此,我们可以确定11.2.0.4已经顺利升级到12.1.0.1,升级过程比较顺利,但是升级时间比较长,很可能和我的机器配置有关

NO-CDB PLUG CDB
把11.2.0.4升级到12.1.0.1的数据库插入到一个CDB数据库中,让其成为CDB一部分
PLUG操作示意图
plug in a non-cdb to cdb


升级后数据库信息

SQL>  select cdb,NAME,dbid from v$database;
CDB NAME            DBID
--- --------- ----------
NO  ORA11G    4215674657
SQL> select * from v$version;
BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0
PL/SQL Release 12.1.0.1.0 - Production                                                    0
CORE    12.1.0.1.0      Production                                                        0
TNS for Linux: Version 12.1.0.1.0 - Production                                            0
NLSRTL Version 12.1.0.1.0 - Production                                                    0

创建XML元数据文件

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area  801701888 bytes
Fixed Size                  2293496 bytes
Variable Size             314573064 bytes
Database Buffers          478150656 bytes
Redo Buffers                6684672 bytes
Database mounted.
SQL> alter database open read only;
Database altered.
SQL> EXEC DBMS_PDB.DESCRIBE( pdb_descr_file => '/tmp/ora11g.xml');
PL/SQL procedure successfully completed.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

CDB数据库信息

SQL> select * from v$version;
BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0
PL/SQL Release 12.1.0.1.0 - Production                                                    0
CORE    12.1.0.1.0      Production                                                        0
TNS for Linux: Version 12.1.0.1.0 - Production                                            0
NLSRTL Version 12.1.0.1.0 - Production                                                    0
SQL> show pdbs;
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED
         4 PDB2                           MOUNTED

检查升级后数据库是否适合插入到该cdb

SQL> set serveroutput on;
 declare
         compat boolean := FALSE;
    begin
       compat := dbms_pdb.check_plug_compatibility(pdb_descr_file => '/tmp/ora11g.xml');
        if compat
        then
               dbms_output.put_line('Yes');
       else
               dbms_output.put_line('No');
      end if;
   end;SQL>   2    3    4    5    6    7    8    9   10   11
 12  /
No
PL/SQL procedure successfully completed.

因为是第一次插入所以显示是No,可以忽略该问题继续插入

插入no-cdb to cdb库

SQL> CREATE PLUGGABLE DATABASE ora11g USING '/tmp/ora11g.xml' NOCOPY;
Pluggable database created.
SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED
         4 PDB2                           MOUNTED
         5 ORA11G                         MOUNTED

根据官方文档描述,如果是第一次是no-cdb plug cdb,需要先open一次库

SQL> alter session set container=ora11g;
Session altered.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-24344: success with compilation error
SQL> !oerr ora 24344
24344, 00000, "success with compilation error"
// *Cause:  A sql/plsql compilation error occurred.
// *Action: Return OCI_SUCCESS_WITH_INFO along with the error code
SQL> show pdbs;
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         5 ORA11G                         READ WRITE YES

出现ORA-24344,但是数据库正常open到read write模式,忽略该错误,继续执行

执行noncdb_to_pdb脚本

SQL> alter session set container=ora11g;
Session altered.
SQL> shutdown immediate
Pluggable Database closed.
SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
--遇到Warning,脚本自动忽略该错误,继续执行,在最后该脚本编译的时候会修复该问题,原因很可能是某个plslq异常
SQL> alter pluggable database "&pdbname" open restricted;
old   1: alter pluggable database "&pdbname" open restricted
new   1: alter pluggable database "ORA11G" open restricted
Warning: PDB altered with errors.

同步pdb信息

[oracle@xifenfei ~]$ sqlplus sys/xifenfei@ora11g as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Mon Jul 1 03:05:42 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options
SYS% ora11g> alter pluggable database open restricted;
Pluggable database altered.
SYS% ora11g>  exec dbms_pdb.sync_pdb();
PL/SQL procedure successfully completed.
SYS% ora11g> alter pluggable database close immediate;
Pluggable database altered.
SYS% ora11g> alter pluggable database open;
Pluggable database altered.

确定no-cdb plug cdb 成功

SYS% ora11g> conn / as sysdba
Connected.
SYS% cdb1> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED
         4 PDB2                           MOUNTED
         5 ORA11G                         READ WRITE NO

到这里已经完全完成了11.2.0.4数据库插入到12.1.0.1中,实现把11GR2转化为CDB数据库中的一个PDB

ORACLE 12C安装预览

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:ORACLE 12C安装预览

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

关注中的ORACLE 12C今天装了下,发现几点不同之处截图如下





SQL> select * from v$version;
BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.0.2 - 64bit                         0
PL/SQL Release 12.1.0.0.2                                                                 0
CORE    12.1.0.0.2                                                                        0
TNS for Linux: Version 12.1.0.0.2                                                         0
NLSRTL Version 12.1.0.0.2                                                                 0
SQL> set pages 150
SQL> col name for a60
SQL> select file#,name from v$datafile;
     FILE# NAME
---------- ------------------------------------------------------------
         1 /u01/app/oracle/oradata/xifenfei/system01.dbf
         2 /u01/app/oracle/oradata/xifenfei/pdbseed/system01.dbf
         3 /u01/app/oracle/oradata/xifenfei/sysaux01.dbf
         4 /u01/app/oracle/oradata/xifenfei/pdbseed/sysaux01.dbf
         5 /u01/app/oracle/oradata/xifenfei/undotbs01.dbf
         6 /u01/app/oracle/oradata/xifenfei/users01.dbf
         7 /u01/app/oracle/oradata/xifenfei/LX1/system01.dbf
         8 /u01/app/oracle/oradata/xifenfei/LX1/sysaux01.dbf
         9 /u01/app/oracle/oradata/xifenfei/LX1/LX1_users01.dbf
        10 /u01/app/oracle/oradata/xifenfei/LX2/system01.dbf
        11 /u01/app/oracle/oradata/xifenfei/LX2/sysaux01.dbf
        12 /u01/app/oracle/oradata/xifenfei/LX2/LX2_users01.dbf
12 rows selected.

安装ORACLE db /tmp空间不足解决办法

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:安装ORACLE db /tmp空间不足解决办法

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

因测试需要装一个ORACLE 11G,在安装检测阶段报下图错误

详细信息

Free Space: xifenfei:/tmp - This is a prerequisite condition to test
whether sufficient free space is available in the file system.
Error:
 - 
PRVF-7501 : Sufficient space is not available at location "/tmp"
on node "xifenfei" [Required space = 1GB ]  
- Cause:  Not enough free space at location specified.  - Action: 
Free up additional space or select another location.
Expected Value
 : 1GB
Actual Value
 : 238MB

错误提示很明显ORACLE安装过程需要1G的临时空间,但是现在/tmp只有238M,空间明显不足,是的oracle检测失败,为了安装过程不出意外,决定分析并解决该问题

磁盘空间使用情况

[ora11g@xifenfei ~]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      3.9G  3.3G  238M  93% /
/dev/sda1              99M   24M   71M  25% /boot
tmpfs                1002M     0 1002M   0% /dev/shm
/dev/sdb1              20G  7.8G   11G  42% /u01

这里可以看出来/tmp没有另外的分配分区,而是挂载在/下面,也就是说,/tmp最多使用的空间就是/dev/mapper/VolGroup00-LogVol00分区能够使用的最大空间,也就是238M,证明ORACLE的检查程序说的是事实。

解决该问题
1.建立新tmp目录

[root@xifenfei ora11g]# mkdir /u01/tmp
[root@xifenfei ora11g]# chown root:root /u01/tmp
[root@xifenfei ora11g]# chmod 1777 /u01/tmp

2.设置数据库用户变量

vi db_home/.bash_profile
export TEMP=/u01/tmp
export TMPDIR=/u01/tmp
[ora11g@xifenfei ~]$ env|grep TMP
TMPDIR=/u01/tmp
[ora11g@xifenfei ~]$ env|grep TEMP
TEMP=/u01/tmp

3.重新运行runInstaller
4.安装完成清理相关/u01/tmp 和相关环境变了,让数据库使用系统默认(根据实际情况处理)

Oracle 8.0.5 安装过程截图

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:Oracle 8.0.5 安装过程截图

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

作为新一代dba(包括我),很少有机会能够接触到ORACLE 8.0.5数据库.今天无意中获得该版本软件安装包,赶紧安装截图出来和大家分享.


ORACLE 8.0.5完整安装截图下载oracle_8.0.5_install_pic

RAC 10g升级到10.2.0.5

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:RAC 10g升级到10.2.0.5

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

1.Back Up database
一般情况下rman备份

2.备份ocr和vote disk

[root@rac2 bin]# ./ocrconfig -export /tmp/ocr_export.bak
[root@rac2 bin]# more /etc/oracle/ocr.loc
ocrconfig_loc=/dev/raw/raw11
local_only=FALSE
[root@rac2 bin]# dd if=/dev/raw/raw11 of=/tmp/ocr_dd.bak
[root@rac2 bin]# dd if=/dev/raw/raw31 of=/tmp/vote_dd.bak

3.Update Oracle Time Zone Definitions
Actions for the DSTv4 update in the 10.2.0.5 patchset [ID 1086400.1]

4.Stopping All Processes
滚动升级关闭一个节点所有进程,非滚动升级关闭所有进程

$ isqlplusctl stop
$ emctl stop dbconsole
$ srvctl stop service -d db_name [-s service_name_list [-i inst_name]]
$ srvctl stop instance -d db_name -i inst_name
$ srvctl stop asm -n node
$ srvctl stop listener -n node [-l listenername]
$ srvctl stop nodeapps -n node
# CRS_home/bin/crsctl stop crs(root执行,滚动升级不需要关闭)

5.Back Up the System
$ORACLE_BASE中文件,主要包括(db和crs安装文件/oraInventory文件)

6.升级crs软件
执行./runInstaller选择crs目录

执行下面命令
# CRS_home/bin/crsctl stop crs
# CRS_home/install/root102.sh

7.升级db软件
关闭crs和db所有进程(步骤同4)
执行./runInstaller选择db目录

执行下面命令
# ORACLE_HOME/root.sh

8.升级数据库
8.1)检查数据库升级需要满足条件,对存在不合适之处,进行修正
How to Download and Run Oracle’s Database Pre-Upgrade Utility [ID 884522.1]

SQL> STARTUP UPGRADE
SQL> SPOOL upgrade_info.log
SQL> @/rdbms/admin/utlu102i.sql
SQL> SPOOL OFF
SQL> ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=spfile;
--其他根据upgrade_info.log中提示修改
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP UPGRADE

8.2)启动监听
srvctl start listener -n node

8.3)升级数据库

SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql
--检查patch.log,发现有错误查找原因,重新执行catupgrd.sql脚本
SQL> SPOOL OFF
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> @?/rdbms/admin/utlrp.sql
SQL> ALTER SYSTEM SET CLUSTER_DATABASE=TRUE SCOPE=spfile;
--包括其他修改调整参数
SQL> SHUTDOWN IMMEDIATE
--使用rac管理相关命令,启动需要启动资源

9.修改相关目录权限
# ORACLE_HOME/install/changePerm.sh

具体操作步骤请阅读README.html

记录oracle 9i for linux安装过程中几个错误

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:记录oracle 9i for linux安装过程中几个错误

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

最近因为一个测试环境需要oracle 9i,我在Oracle linux 4.8上安装,竟然遇到几个问题记录下:
1.运行runInstaller提示如下错误

[oracle@xifenfei Disk1]$ ./runInstaller
[oracle@xifenfei Disk1]$ Initializing Java Virtual Machine from /tmp/OraInstall2012-03-04_09-32-16PM/jre/bin/java. Please wait...
Error occurred during initialization of VM
Unable to load native library: /tmp/OraInstall2012-03-04_09-32-16PM/jre/lib/i386/libjava.so:
symbol __libc_wait, version GLIBC_2.0 not defined in file libc.so.6 with link time reference

解决方法:打上p3006854_9204_LINUX.zip补丁

[root@xifenfei tmp]$ unzip p3006854_9204_LINUX.zip
Archive:  p3006854_9204_LINUX.zip
   creating: 3006854/
  inflating: 3006854/rhel3_pre_install.sh
  inflating: 3006854/README.txt
[root@xifenfei 3006854]# cd 3006854
[root@xifenfei 3006854]# chmod +x rhel3_pre_install.sh
[root@xifenfei 3006854]# ./rhel3_pre_install.sh
Applying patch...
Ensuring permissions are correctly set...
Done.
Patch successfully applied

2.在Linking Oracle9i到63%时入到如下错误

解决办法:在/usr/bin目录下有gcc 和 gcc32两个文件,执行 mv gcc gcc296 和 mv gcc32 gcc,完成之后,retry安装界面

[root@xifenfei tmp]# cd /usr/bin
[root@xifenfei bin]# ls gcc*
gcc  gcc32  gcc4
[root@xifenfei bin]# mv gcc gcc296
[root@xifenfei bin]# mv gcc32 gcc

3.执行netca/dbca报如下错误

[oracle@xifenfei Disk1]$ dbca
/u01/oracle/jre/1.1.8/bin/../lib/i686/green_threads/libzip.so: symbol errno,
version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so)
Unable to initialize threads: cannot find class java/lang/Thread
Could not create Java VM
[oracle@xifenfei Disk1]$ netca
/u01/oracle/jre/1.1.8/bin/../lib/i686/native_threads/libzip.so: symbol errno,
version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so)
Unable to initialize threads: cannot find class java/lang/Thread
Could not create Java VM

解决办法:在环境变量中加上LD_ASSUME_KERNEL=2.4.1

vi .bash_profile --加上下面语句
export LD_ASSUME_KERNEL=2.4.1
source ~/.bash_profile

RedHat 6.1安装Oracle 11.2.0.3

联系:手机/微信(+86 17813235971) QQ(107644445)

标题:RedHat 6.1安装Oracle 11.2.0.3

作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]

一、操作系统版本
[root@xifenfei stage]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.1 (Santiago)
[root@xifenfei stage]# uname -a
Linux xifenfei 2.6.32-131.0.15.el6.i686 #1 SMP Tue May 10 15:42:28 EDT 2011 i686 i686 i386 GNU/Linux

二、安装数据库版本(安装后之后贴出来的)
[oracle@xifenfei database]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Sat Nov 5 05:50:34 2011

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select * from v$version;

BANNER
——————————————————————————–
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – Production
PL/SQL Release 11.2.0.3.0 – Production
CORE    11.2.0.3.0      Production
TNS for Linux: Version 11.2.0.3.0 – Production
NLSRTL Version 11.2.0.3.0 – Production

三、系统配置
1、检查相应的rpm包的情况(等于或者高于下面版本)
rpm –qa | grep pagename(grep是搜索)
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel 4.1.2
make-3.81
numactl-devel-0.9.8.x86_64
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-2.2.11 (32 bit)
unixODBC-devel-2.2.11
unixODBC-devel-2.2.11 (32 bit)
pdksh-5.2.14-1
–这个包需要下载,安装前需要卸载掉ksh-20100621-6.el6包
rpm –e rpm -e ksh-20100621-6.el6

安装缺少的rpm包
rpm –ivh pagename(根据提示,如果缺少依赖包,也需要加上去)

2、添加组和用户
/usr/sbin/groupadd oinstall(添加oinstall组)
/usr/sbin/groupadd -g 502 dba(添加dba组)
/usr/sbin/useradd -u 502 -g oinstall -G dba oracle(添加用户oracle,主组oinstall,辅助组dba)
passwd oracle(修改oracle用户密码)

3、创建文件夹并修改组和用户所属关系和相关权限
mkdir -p /opt/oracle(创建文件u01/oracle)
chown -R oracle:oinstall /opt/oracle(使得/opt/oracle文件夹输入oracle用户和oinstall组)
chmod -R 775 /opt/oracle(修改u01文件夹访问权限)—可选(最好执行下)

4、添加/etc/hosts中dns解析信息
192.168.1.60                xifenfei

5、在/etc/security/limits.conf中添加用户限制信息
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle hard stack 10240

6、修改或者添加/etc/sysctl.conf中信息
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 1048576
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304

注意注释掉
# Disable netfilter on bridges.
#net.bridge.bridge-nf-call-ip6tables = 0
#net.bridge.bridge-nf-call-iptables = 0
#net.bridge.bridge-nf-call-arptables = 0
—/sbin/sysctl –p(重新加载这些参数,不用重启系统)

7、编辑vi /etc/profile
if [ $USER = "oracle" ]; then
   if [ $SHELL = "/bin/ksh" ];    then
     ulimit -p 16384
     ulimit -n 65536
   else
     ulimit -u 16384 -n 65536
   fi
fi
–注意空格,在用户切换时使用su – username,这样才会加载后面的环境变量的配置信息(不要使用su username切换)

8、配置环境变量
在oracle用户下的.bash_profile文件中添加下面信息
ORACLE_BASE=/opt/oracle
ORACLE_HOME=$ORACLE_BASE/oracle
ORACLE_SID=xff
PATH=$ORACLE_HOME/bin:$PATH
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH NLS_LANG

四、安装过程
1、执行 runInstaller –注意路径,选择只安装数据库软件
2、执行 netca 创建监听
3、执行 dbca 创建数据库