2007. 1. 4. 11:08 오라클

oracle relink하기


OS patch를 했거나, oracle engine 을 다른 서버로 통째로 copy 했을 경우 등에
relink 명령을 해주는데 이에 대한 설명이다.
============================================================

Relinking occurs automatically under these circumstances

  • An Oracle product has been installed with an Oracle provided installer.
  • An Oracle patch set has been applied via an Oracle provided installer.

Relinking Oracle manually is suggested under these circumstances

  • An OS upgrade has occurred.
  • A change has been made to the OS system libraries. This can occur during the application of an OS patch.
  • A new install failed during the relinking phase.
  • Individual Oracle executables core dump during initial startup.
  • An individual Oracle patch has been applied with explicit relink instructions or the relink is integrated into the patch install script.

Steps to manually relink Oracle

  1. Logon and set environment variables:
    as oracle:
    source $csetsid
    env | grep ORA
  2. Verify and/or Configure the Unix Environment for Proper Relinking:
    Sun Solaris Oracle 7.3.x, 8.0.x, 8.1.x or 9.0.x:
    • Ensure that /usr/ccs/bin is before /usr/ucb in $PATH:
      which ld
      ( should return "/usr/ccs/bin/ld" )
    • Set LD_LIBRARY_PATH to include $ORACLE_HOME/lib
    • If using 64bit Oracle, LD_LIBRARY_PATH should also include $ORACLE_HOME/lib64.
  3. Verify the correct absolute path for $ORACLE_HOME
    env | grep ORACLE_HOME
  4. Before relinking Oracle, shutdown all the databases and the listener.
  5. Run the OS Commands to Relink Oracle:
    • Oracle 7.3.x
      • For executables: oracle, exp, imp, sqlldr, tkprof
        cd $ORACLE_HOME/rdbms/lib
        make -f ins_rdbms.mk install
      • For executables: svrmgrl, svrmgrm
        cd $ORACLE_HOME/svrmgr/lib
        make -f ins_svrmgr.mk linstall minstall
        linstall is for svrmgrl, minstall is for svrmgrm
      • For executables: sqlplus
        cd $ORACLE_HOME/sqlplus/lib
        make -f ins_sqlplus.mk install
      • For executables: dbsnmp, oemevent, oratclsh
        cd $ORACLE_HOME/network/lib
        make -f ins_agent.mk install
      • For executables: names, namesctl
        cd $ORACLE_HOME/network/lib
        make -f ins_names.mk install
      • For executables: tnslsnr, lsnrctl, tnsping, csmnl, trceval, trcroute
        cd $ORACLE_HOME/network/lib
        make -f ins_network.mk install
    • Oracle 8.0.x
      • For executables: oracle, exp, imp, sqlldr, tkprof, mig, dbv, orapwd, rman, svrmgrl, ogms, ogmsctl
        cd $ORACLE_HOME/rdbms/lib
        make -f ins_rdbms.mk install
      • For executables: sqlplus
        cd $ORACLE_HOME/sqlplus/lib
        make -f ins_sqlplus.mk install
      • For executables: dbsnmp, oemevent, oratclsh, libosm.so
        cd $ORACLE_HOME/network/lib
        make -f ins_oemagent.mk install
      • For executables: tnslsnr, lsnrctl, namesctl, names, osslogin, trcasst, trcroute
        cd $ORACLE_HOME/network/lib
        make -f ins_network.mk install
    • Oracle 8.1.x or 9.0.xA "relink" script ( 8i new feature ) is provided in the $ORACLE_HOME/bin directory:-or-
      • For executables: oracle, exp, imp, sqlldr, tkprof, mig, dbv, orapwd, rman, svrmgrl, ogms, ogmsctl
        cd $ORACLE_HOME/rdbms/lib
        make -f ins_rdbms.mk install
      • For executables: sqlplus
        cd $ORACLE_HOME/sqlplus/lib
        make -f ins_sqlplus.mk install
      • For executables: dbsnmp, oemevent, oratclsh
        cd $ORACLE_HOME/network/lib
        make -f ins_oemagent.mk install
      • For executables: names, namesctl
        cd $ORACLE_HOME/network/lib
        make -f ins_names.mk install
      • For executables: osslogin, trcasst, trcroute, onrsd, tnsping
        cd $ORACLE_HOME/network/lib
        make -f ins_net_client.mk install
      • For executables: tnslsnr, lsnrctl
        cd $ORACLE_HOME/network/lib
        make -f ins_net_server.mk install
    • You still have the option of running the "make" commands independently:
    • cd $ORACLE_HOME/bin
      relink

      usage: relink >parameter<
      accepted values for parameter: all, oracle, network, client, client_sharedlib,
              interMedia, precomp, utilities, oemagent

      i.e. You can relink ALL executables with the following command: relink all
      bug 1337908 : on Solaris with Oracle 8.1.6, also do: relink utilities
  6. How to tell if relinking was successful:
    If relinking was successful, the make command will eventually return to the OS prompt without an error. There will not be a "Relinking Successful" type message.

If you receive an error message during relinking:

Relinking errors usually terminate the relinking process and contain verbage similar to the following:
Fatal error', 'Ld: fatal', 'Exit Code 1
Posted by pat98

controlfile 재생성하기

PURPOSE
  This article describes how you can recreate your controlfile.

SCOPE & APPLICATION
  For DBAs who need to recreate the controlfile.

WARNING:
--------

You should only need to recreate your control file under very special
circumstances:

- All current copies of the control file have been lost or are corrupted.

- You need to change a "hard" database parameter that was set when the        
  database was first created, such as MAXDATAFILES, MAXLOGFILES,               
  MAXLOGHISTORY, etc.

- You are restoring a backup in which the control file is corrupted or        
  missing.

- Oracle Customer Support advises you to do so.

- If you are moving your database to another machine which is
  running the same operating system but the location of the datafiles,
  logfiles is not the same.


Instructions: 
============= 

I. CREATING A NEW CONTROL FILE FROM THE EXISTING CONTROL FILE:  
--------------------------------------------------------------  
 
1.  If you are running Oracle7 or higher you can get Oracle to generate
    a script for you that enables you to recreate the controlfile.  Run the
    following command while the database is mounted or open and connected
    as a user with DBA privileges: 

       % svrmgrl 
       SVRMGR> connect internal
       SVRMGR> startup mount
       SVRMGR> alter database backup controlfile to trace;  
 
   If you are running Oracle9i or higher you need to use sqlplus instead of
   svrmgrl.

   Oracle6 does not have this feature and therefore you will need to build
   the CREATE CONTROLFILE statement yourself.  The syntax is discussed in
   detail in the Oracle SQL Reference Guide.

2. The trace file will be stored in the USER_DUMP_DEST destination,
   which is set to "$ORACLE_HOME/rdbms/log" by default on Unix platforms.  
 
   To find out what USER_DUMP_DEST is set to, follow one of the following:

   a) Look in the parameter file (init<SID>.ora on UNIX and Windows NT,
      <node>_<ora_sid>_init.ora on VMS) for the parameter:

       USER_DUMP_DEST = d:/oradata/orcl/trce/udump

   b) Using SQL*PLus you can issue the following command:

      SQL> SELECT   value
        2> FROM     v$parameter
        3> WHERE    name = 'user_dump_dest';

      VALUE
      ------------------------------------------------
      d:/oradata/orcl/trace/udump

   c)  Using Server Manager you can issue the following command:  
 
       SVRMGR> show parameter <string>
       SVRMGR> show parameter user_dump_dest; 
                                      
   The easiest way to locate the correct trace is to look at its date.
   A file will exist with the current date and time.  The naming
   convention for these files is operating system specific.  
 
   Example: 
   --------

   % cd $ORACLE_HOME/rdbms/log 
   % ls -l 
   -rw-r--r--   1 osupport dba 2315 Oct  3 16:39 alert_p716.log 
   -rw-r--r--   1 osupport dba 1827 Oct3 16:39 p716_ora_26220.trc  
 
   In this example, the file "p716_ora_26220.trc" is the trace file
   produced that contains a script to create the control file.

   NOTE:  The trace file is handled a bit differently when issuing this
   command from a connection to the database using shared server.  The
   shared server connection is created by PMON and the connection inherits
   its environment, meaning the trace file will be created in the directory
   referenced by the initialization parameter BACKGROUND_DUMP_DEST
   instead of the USER_DUMP_DEST.

   Use similar commands as given above to locate the directory
   referenced in the BACKGROUND_DUMP_DEST.
 
3. Modify the trace file and use it as a script to create the control
   file.  Copy the trace file to a script file, such as "new_control.sql",
   delete the header information prior to the words STARTUP NOMOUNT,
   and make any other desired changes, such as increasing MAXDATAFILES,
   MAXLOGFILES, etc. 
 
   Sample: 
   -------------------------- <start trace> ----------------------------- 
   Dump file /u01/oracle/7.1.6/rdbms/log/p716_ora_26220.trc 
   Oracle7 Server Release 7.1.6.2.0 - Production Release 
   With the distributed and replication options 
   PL/SQL Release 2.1.6.2.0 - Production 
   ORACLE_HOME = /u01/oracle/7.1.6 
   ORACLE_SID = p716 
   Oracle process number: 9         Unix process id: 26220 
   System name:    SunOS 
   Node name:      tcsun2 
   Release:        5.4 
   Version:        Generic_101945-27 
   Machine:   sun4m 
 
   Tue Oct  3 16:39:13 1995 
   *** SESSION ID:(6.61) 
   # The following commands will create a new control file and use it 
   # to open the database. 
   # No data other than log history will be lost. Additional logs may 
   # be required for media recovery of offline data files. Use this 
   # only if the current version of all online logs are available. 
   STARTUP NOMOUNT 
 
   CREATE CONTROLFILE REUSE DATABASE "P716" NORESETLOGS NOARCHIVELOG 
       MAXLOGFILES 32 
       MAXLOGMEMBERS 2 
       MAXDATAFILES 30 
       MAXINSTANCES 8 
       MAXLOGHISTORY 800 
   LOGFILE 
     GROUP 1 '/u01/oracle/7.1.6/dbs/log1p716.dbf'  SIZE 500K, 
     GROUP 2 '/u01/oracle/7.1.6/dbs/log2p716.dbf'  SIZE 500K, 
     GROUP 3 '/u01/oracle/7.1.6/dbs/log3p716.dbf'  SIZE 500K 
   DATAFILE 
     '/u01/oracle/7.1.6/dbs/systp716.dbf' SIZE 40M, 
     '/u01/oracle/7.1.6/dbs/tempp716.dbf' SIZE 550K, 
     '/u01/oracle/7.1.6/dbs/toolp716.dbf' SIZE 15M 
   ; 
   # Recovery is required if any of the datafiles are restored backups, 
   # or if the last shutdown was not normal or immediate. 
   RECOVER DATABASE 
   # Database can now be opened normally. 
   ALTER DATABASE OPEN; 
 
   ---------------------- <end trace> ---------------------------------- 
 

4. Shutdown the database (NORMAL, IMMEDIATE, TRANSACTIONAL (Oracle8 only)
   but not ABORT).

       SVRMGR> shutdown immediate

   If you are running Oracle9i or higher you need to use sqlplus instead of
   svrmgrl.
 
5. Take a full database backup.
 
6. Rename/move the existing database controlfiles to a backup (The REUSE
   option will overwrite the original files). The size of the controlfile
   will be increased    by increasing the value of    MAXDATAFILES,
   MAXLOGMEMBERS, etc.
 
   Example: 
   --------

   % cd $ORACLE_HOME/dbs 
   % mv ctrlV716.ctl ctrlV716.bak 
  
7. Create the controlfile within Server Manager                   
             
SVRMGR> connect internal                    
SVRMGR> @new_control.sql 
 
   If you get the "Statement processed" message, the database will
   be opened with a brand new control file.

   If you are running Oracle9i or higher you need to use sqlplus instead of
   svrmgrl.

8. At the first opportunity, shut the database down (normal, immediate or
   transactional oracle8 only) and take a full backup.

       
II. CREATING A NEW CONTROL FILE WITHOUT AN EXISTING CONTROL FILE:   
----------------------------------------------------------------- 
 
CREATE CONTROLFILE SYNTAX:           
The following is information on the create control file syntax.  This 
information is fully documented in the Oracle SQL Reference Manual. 
 
CREATE CONTROLFILE [REUSE] 
   DATABASE name  
   [LOGFILE filespec [, filespec] ...]   
    RESETLOGS | NORESETLOGS    
   [MAXLOGFILES integer]     
   [DATAFILE filespec [, filespec] ...]      
   [MAXDATAFILES integer]       
   [MAXINSTANCES integer]        
   [ARCHIVELOG | NOARCHIVELOG]         
   [SHARED | EXCLUSIVE]          

The complete procedure follows:

1. Take a full backup of the database, including all datafiles and redo
   log files.

2. Go into SQL*DBA or Server Manager and do a STARTUP NOMOUNT.

3. Issue the CREATE CONTROLFILE statement.

   Example:
   --------

       CREATE CONTROLFILE REUSE DATABASE "P716" NORESETLOGS NOARCHIVELOG
       MAXLOGFILES 50
       MAXLOGMEMBERS 3
       MAXDATAFILES 300
       MAXINSTANCES 8
       MAXLOGHISTORY 500
       LOGFILE
               GROUP 1 '/u01/oracle/7.1.6/dbs/log1p716.dbf'  SIZE 1M,
               GROUP 2 '/u01/oracle/7.1.6/dbs/log2p716.dbf'  SIZE 1M,
               GROUP 3 '/u01/oracle/7.1.6/dbs/log3p716.dbf'  SIZE 1M
       DATAFILE
               '/u01/oracle/7.1.6/dbs/systp716.dbf' SIZE 40M,
               '/u01/oracle/7.1.6/dbs/tempp716.dbf' SIZE 1M,
               '/u01/oracle/7.1.6/dbs/toolp716.dbf' SIZE 15M ;

4. Perform media recovery on the database.

       SVRMGR> recover database;

   If you are running Oracle9i or higher you need to use sqlplus instead of
   svrmgrl.

5. Open the database.

       SVRMGR> alter database open;

   If you are running Oracle9i or higher you need to use sqlplus instead of
   svrmgrl.

6. At the first opportunity, shut the database down and take a full cold
   backup.


Additional Errors:
------------------
ORA-205 ORA-7360 ORA-376 ORA-1110 ORA-1111
Posted by pat98

02-06 05:43
Flag Counter
Yesterday
Today
Total

글 보관함

최근에 올라온 글

달력

 « |  » 2025.2
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

최근에 달린 댓글