11gR2; Silent installation in Oracle Solaris 10

August 11th, 2011 | Posted in 11gR2, Blog, solaris | No Comments

   

1- Introduction:

In this step by step document, I am going to show you how to install Oracle 11gR2 (11.2.0.1) using the silent technique.

This document makes easier the installation; you should only change the directories to reflect your environment setup.

2- Prepare the environment;

In this section, we are going to prepare the system users and groups as well as the system parameters.

Create the dba group:


groupadd dba

If the oracle system user and its home do not exist:


mkdir /export/home

useradd –g dba –G dba –m –d /export/home/oracle –s /usr/bin/bash oracle

passwd oracle (change oracle password)


If the oracle user and its home exist:


usermod -g dba -G dba oracle

Use projadd to add a new project entry to the /etc/project file; the new project is available for use immediately upon the completion of the projadd command;


projadd -U oracle -K "project.max-shm-memory=(priv,8g,deny)" user.oracle

Use projmod to change the definition of the following projects;


projmod -sK "process.max-sem-nsems=(priv,2048,deny)" user.oracle

projmod -sK "project.max-sem-ids=(priv,4000,deny)" user.oracle

projmod -sK "project.max-shm-ids=(priv,32768,deny)" user.oracle

Create the system directories to hold the Oracle software and binaries;


mkdir -p /u01/app/oracle/product/11.2.0/db_1

mkdir -p /u01/app/oracle/admin

chown -R oracle:dba /u01/app

I am creating the datafiles, controlfiles and redologs under another partition;


mkdir -p /a01/oradata

chown -R oracle:dba /a01/oradata

I am creating the backup files, fast recovery area under another partition;


mkdir -p /b01/ora_backups

chown -R oracle:dba /b01/ora_backups

# vi .bash_profile

Add the following lines in the bash_profile file:


umask 022

export EDITOR=vi

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME 

ORACLE_SID=orawdb; export ORACLE_SID

PATH=$PATH:/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch; export PATH

ulimit -s 32768

ulimit -n 65536

Confirm the changes:


source .bash_profile

Copy the installation files, you can download them from http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html:

Verify the integrity of the installation files:


unzip -t solaris.x64_11gR2_database_1of2.zip

unzip -t solaris.x64_11gR2_database_2of2.zip

Unzip the files:


unzip solaris.x64_11gR2_database_1of2.zip

unzip solaris.x64_11gR2_database_2of2.zip

As a root user, create the oraIns.loc file. This file tells opatch where the oraInventory is located.

The oraInventory contains information relevant to the particular Oracle home. This inventory contains, among other things, a file called comps.xml,

which contains all the components as well as patchsets or interim patches installed in the ORACLE_HOME. Opatch needs to have access to the oraInventory before and after applying any patch.


-bash-3.00$ su - root

Password:

Oracle Corporation      SunOS 5.10      Generic Patch   January 2005

#

# mkdir -p /var/opt/oracle

# cd  /var/opt/oracle

vi oraInst.loc

inventory_loc=/u01/app/oracle/oraInventory

inst_group=dba

# chown oracle:dba oraInst.loc

# chmod 664 oraInst.loc

#

3- Install the software:

In this article, we are going to install an 11.2.0.1 database Enterprise Edition.


su - oracle

cd /export/home/oracle/11gSrc/database

./runInstaller -silent -responseFile /export/home/oracle/11gSrc/database/response/db_install.rsp -invPtrLoc /var/opt/oracle/oraInst.loc \

-noconfig ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 ORACLE_HOME_NAME=Ora11g_Home1 SELECTED_LANGUAGES=en \

oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=dba oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=dba \

oracle.install.db.InstallEdition=EE SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=TRUE

Checking Temp space: must be greater than 180 MB.   Actual 29580 MB    Passed

Checking swap space: must be greater than 150 MB.   Actual 29800 MB    Passed

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2011-08-09_12-59-23AM. Please wait ...-bash-3.00$ You can                find the log of this install session at:

 /u01/app/oracle/oraInventory/logs/installActions2011-08-09_12-59-23AM.log

The following configuration scripts need to be executed as the "root" user.

 #!/bin/sh

 #Root scripts to run

/u01/app/oracle/product/11.2.0/db_1/root.sh

To execute the configuration scripts:

         1. Open a terminal window

         2. Log in as "root"

         3. Run the scripts

         4. Return to this window and hit "Enter" key to continue

Successfully Setup Software.

-bash-3.00$

/u01/app/oracle/product/11.2.0/db_1/root.sh

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /u01/app/oracle/product/11.2.0/db_1

Creating /usr/local/bin directory...

Creating /var/opt/oracle/oratab file...

Entries will be added to the /var/opt/oracle/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root.sh script.

Now product-specific root actions will be performed.

Finished product-specific root actions.

4- Install the database:

Using the following list of scripts, we are going to install the database.


-bash-3.00$ cd scripts/

-bash-3.00$ ls -rtl

total 30

-rw-r-----   1 oracle   dba        234 Apr 13  2010 xdb_protocol.sql

-rw-r-----   1 oracle   dba        509 Apr 13  2010 lockAccount.sql

-rw-r-----   1 oracle   dba        314 Apr 13  2010 emRepository.sql

-rw-r-----   1 oracle   dba        760 Apr 13  2010 CreateDBCatalog.sql

-rwxr-xr-x   1 oracle   dba        647 Apr 13  2010 orawdb.sh

-rw-r-----   1 oracle   dba       1137 Apr 13  2010 CreateDB.sql

-rw-r-----   1 oracle   dba        342 Apr 13  2010 CreateDBFiles.sql

-rwxr-xr-x   1 oracle   dba        857 Apr 13  2010 orawdb.sql

-rw-r-----   1 oracle   dba       1151 Apr 13  2010 postDBCreation.sql

-rwxr--r--   1 oracle   dba        178 Apr 13  2010 tnsnames.ora

-rw-------   1 oracle   dba        213 Apr 13  2010 listener.ora

-rw-r-----   1 oracle   dba       1794 Apr 13  2010 init.ora

-bash-3.00$

-bash-3.00$ cat xdb_protocol.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/xdb_protocol.log append

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catqm.sql change_on_install SYSAUX TEMP;

spool off

-bash-3.00$

-bash-3.00$ cat lockAccount.sql

SET VERIFY OFF

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/lockAccount.log append

BEGIN

 FOR item IN ( SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS IN ('OPEN', 'LOCKED', 'EXPIRED') AND USERNAME NOT IN (

'SYS','SYSTEM') )

 LOOP

  dbms_output.put_line('Locking and Expiring: ' || item.USERNAME);

  execute immediate 'alter user ' ||

         sys.dbms_assert.enquote_name(

         sys.dbms_assert.schema_name(

         item.USERNAME),false) || ' password expire account lock' ;

 END LOOP;

END;

/

spool off

-bash-3.00$

-bash-3.00$ cat emRepository.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo off

spool /opt/app/oracle/admin/orawdb/scripts/emRepository.log append

@/opt/app/oracle/product/11.2.0/db_1/sysman/admin/emdrep/sql/emreposcre /opt/app/oracle/product/11.2.0/db_1 SYSMAN &&sysmanPassword TEMP ON;

WHENEVER SQLERROR CONTINUE;

spool off

-bash-3.00$

-bash-3.00$ cat CreateDBCatalog.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/CreateDBCatalog.log append

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catalog.sql;

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catblock.sql;

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catproc.sql;

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catoctk.sql;

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/owminst.plb;

connect "SYSTEM"/"&&systemPassword"

@/opt/app/oracle/product/11.2.0/db_1/sqlplus/admin/pupbld.sql;

connect "SYSTEM"/"&&systemPassword"

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/sqlPlusHelp.log append

@/opt/app/oracle/product/11.2.0/db_1/sqlplus/admin/help/hlpbld.sql helpus.sql;

spool off

spool off

-bash-3.00$

-bash-3.00$ cat orawdb.sh

#!/bin/sh

OLD_UMASK=`umask`

umask 0027

mkdir -p /a01/oradata

mkdir -p /opt/app/oracle/admin/orawdb/adump

mkdir -p /opt/app/oracle/admin/orawdb/dpdump

mkdir -p /opt/app/oracle/admin/orawdb/pfile

mkdir -p /opt/app/oracle/cfgtoollogs/dbca/orawdb

mkdir -p /opt/ora_backups/flash_recovery_area

mkdir -p /opt/app/oracle/product/11.2.0/db_1/dbs

umask ${OLD_UMASK}

ORACLE_SID=orawdb; export ORACLE_SID

PATH=$ORACLE_HOME/bin:$PATH; export PATH

echo You should Add this entry in the /var/opt/oracle/oratab: orawdb:/opt/app/oracle/product/11.2.0/db_1:Y

/opt/app/oracle/product/11.2.0/db_1/bin/sqlplus /nolog @/opt/app/oracle/admin/orawdb/scripts/orawdb.sql

-bash-3.00$

-bash-3.00$ cat CreateDB.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/CreateDB.log append

startup nomount pfile="/opt/app/oracle/admin/orawdb/scripts/init.ora";

CREATE DATABASE "orawdb"

MAXINSTANCES 8

MAXLOGHISTORY 1

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

DATAFILE SIZE 700M AUTOEXTEND ON NEXT  10240K MAXSIZE 8G

EXTENT MANAGEMENT LOCAL

SYSAUX DATAFILE SIZE 600M AUTOEXTEND ON NEXT  10240K MAXSIZE 8G

SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE SIZE 20M AUTOEXTEND ON NEXT  640K MAXSIZE 8G

SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE SIZE 200M AUTOEXTEND ON NEXT  5120K MAXSIZE 8G

CHARACTER SET WE8MSWIN1252

NATIONAL CHARACTER SET AL16UTF16

LOGFILE GROUP 1  SIZE 1G,

GROUP 2  SIZE 1G,

GROUP 3  SIZE 1G,

GROUP 4  SIZE 1G

USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword";

set linesize 2048;

column ctl_files NEW_VALUE ctl_files;

select concat('control_files=''', concat(replace(value, ', ', ''','''), '''')) ctl_files from v$parameter where name ='control_files';

host echo &ctl_files >>/opt/app/oracle/admin/orawdb/scripts/init.ora;

spool off

-bash-3.00$

-bash-3.00$ cat CreateDBFiles.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/CreateDBFiles.log append

CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE SIZE 5M AUTOEXTEND ON NEXT  1280K MAXSIZE 8G EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;

ALTER DATABASE DEFAULT TABLESPACE "USERS";

spool off

-bash-3.00$

-bash-3.00$ cat orawdb.sql

set verify off

ACCEPT sysPassword CHAR PROMPT 'Enter new password for SYS: ' HIDE

ACCEPT systemPassword CHAR PROMPT 'Enter new password for SYSTEM: ' HIDE

ACCEPT sysmanPassword CHAR PROMPT 'Enter new password for SYSMAN: ' HIDE

ACCEPT dbsnmpPassword CHAR PROMPT 'Enter new password for DBSNMP: ' HIDE

host /opt/app/oracle/product/11.2.0/db_1/bin/orapwd file=/opt/app/oracle/product/11.2.0/db_1/dbs/orapworawdb force=y

@/opt/app/oracle/admin/orawdb/scripts/CreateDB.sql

@/opt/app/oracle/admin/orawdb/scripts/CreateDBFiles.sql

@/opt/app/oracle/admin/orawdb/scripts/CreateDBCatalog.sql

-- @/opt/app/oracle/admin/orawdb/scripts/context.sql

@/opt/app/oracle/admin/orawdb/scripts/xdb_protocol.sql

@/opt/app/oracle/admin/orawdb/scripts/emRepository.sql

@/opt/app/oracle/admin/orawdb/scripts/lockAccount.sql

@/opt/app/oracle/admin/orawdb/scripts/postDBCreation.sql

-bash-3.00$

-bash-3.00$ cat postDBCreation.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/postDBCreation.log append

select 'utl_recomp_begin: ' || to_char(sysdate, 'HH:MI:SS') from dual;

execute utl_recomp.recomp_serial();

select 'utl_recomp_end: ' || to_char(sysdate, 'HH:MI:SS') from dual;

shutdown immediate;

connect "SYS"/"&&sysPassword" as SYSDBA

startup mount pfile="/opt/app/oracle/admin/orawdb/scripts/init.ora";

alter database archivelog;

alter database open;

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

create spfile='/opt/app/oracle/product/11.2.0/db_1/dbs/spfileorawdb.ora' FROM pfile='/opt/app/oracle/admin/orawdb/scripts/init.ora';

shutdown immediate;

connect "SYS"/"&&sysPassword" as SYSDBA

startup ;

-- host /opt/app/oracle/product/11.2.0/db_1/bin/emca -config dbcontrol db -silent -DB_UNIQUE_NAME orawdb -PORT 1521 -EM_HOME /opt/app/oracle/product/11.2.0/db_1 -LISTENER LISTENER -SERVICE_NAME orawdb -SID orawdb -ORACLE_HOME /opt/app/oracle/product/11.2.0/db_1 -HOST clusterdbca2 -LISTENER_OH /opt/app/oracle/product/11.2.0/db_1 -LOG_FILE /opt/app/oracle/admin/orawdb/scripts/emConfig.log;

spool off

exit;

-bash-3.00$

-bash-3.00$ cat tnsnames.ora

orawdb =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orawdb)

    )

  )

-bash-3.00$

-bash-3.00$ cat listener.ora

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    )

  )

ADR_BASE_LISTENER = /opt/app/oracle

SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER_oraw=OFF

-bash-3.00$

-bash-3.00$ cat init.ora

##############################################################################

# Copyright (c) 1991, 2001, 2002 by Oracle Corporation

##############################################################################

###########################################

# Archive

###########################################

log_archive_format=%t_%s_%r.dbf

###########################################

# Cache and I/O

###########################################

db_block_size=8192

###########################################

# Cursors and Library Cache

###########################################

open_cursors=300

session_cached_cursors=200

###########################################

# Database Identification

###########################################

db_domain=""

db_name=orawdb

###########################################

# File Configuration

###########################################

db_create_file_dest=/a01/oradata

db_recovery_file_dest=/opt/ora_backups/flash_recovery_area

db_recovery_file_dest_size=50G

filesystemio_options='SETALL'

###########################################

# Miscellaneous

###########################################

compatible=11.2.0.0.0

diagnostic_dest=/opt/app/oracle

sga_target=8G

pga_aggregate_target=1G

local_listener='orawdb'

###########################################

# Processes and Sessions

###########################################

processes=500

###########################################

# Security and Auditing

###########################################

audit_file_dest=/opt/app/oracle/admin/orawdb/adump

audit_trail=os

remote_login_passwordfile=EXCLUSIVE

audit_sys_operations=TRUE

###########################################

# System Managed Undo and Rollback Segments

###########################################

undo_tablespace=UNDOTBS1

-bash-3.00$

Do the following:


$ cp listener.ora /u01/app/oracle/product/11.2.0/db_1/network/admin/

$ cp tnsnames.ora /u01/app/oracle/product/11.2.0/db_1/network/admin/

$ lsnrctl start

Now, call the script orawdb.sh which will call all the other scripts sequentially;

> sh orawdb.sh

You may receive the following error; ORA-27102: out of memory Solaris-AMD64 Error: 22: Invalid argument

In this case you have to modify your project and increase the size of memory allocated to the project maximum shared memory oracle.


SQL> startup nomount pfile="/u01/app/oracle/admin/db/scripts/init.ora";

ORA-27102: out of memory

Solaris-AMD64 Error: 22: Invalid argument

To fix it, do the following:

# id -p

uid=0(root) gid=0(root) projid=1(user.root)

# exit

-bash-3.00$ id -p

uid=100(oracle) gid=100(dba) projid=100(user.oracle)

-bash-3.00$ su -

Password:

Oracle Corporation      SunOS 5.10      Generic Patch   January 2005

# prctl -n project.max-shm-memory -i project 100

project: 100: user.oracle

NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT

project.max-shm-memory

        privileged      8.00GB      -   deny                                 -

        system          16.0EB    max   deny                                 -

# prctl -n project.max-shm-memory -r -v 10G -i project 100

#  prctl -n project.max-shm-memory -i project 100

project: 100: user.oracle

NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT

project.max-shm-memory

        privileged      10.0GB      -   deny                                 -

        system          16.0EB    max   deny                                 -

#

As oracle user, add the following lines


cd /var/opt/oracle/

vi oratab

and add;

orawdb:/u01/app/oracle/product/11.2.0/db_1:Y

Now connect to your database.

1- Introduction:

Dans ce document, nous allons montrer comment installer silencieusement Oracle (11.2.0.1).

2- Préparer l’environnement;

Dans cette section, nous allons préparer les utilisateurs systèmes / les groupes et les paramètres systèmes.

Créer le groupe dba:


groupadd dba

si l’utilisateur oracle et son «home » n’existent pas;


mkdir /export/home

useradd –g dba –G dba –m –d /export/home/oracle –s /usr/bin/bash oracle

passwd oracle (change oracle password)


si l’utilisateur oracle et son «home » existent;


usermod -g dba -G dba oracle

Utiliser « projadd » pour créer un nous projet dans le fichier /etc/project. Ce nouveau projet peut être utilisé immédiatement après l’exécution de la commande « projadd ».


projadd -U oracle -K "project.max-shm-memory=(priv,8g,deny)" user.oracle

Utiliser la commande « projmod » pour changer les définitions des projets suivants:


projmod -sK "process.max-sem-nsems=(priv,2048,deny)" user.oracle

projmod -sK "project.max-sem-ids=(priv,4000,deny)" user.oracle

projmod -sK "project.max-shm-ids=(priv,32768,deny)" user.oracle

Crée les répertoires systèmes qui vont contenir les binaires Oracle;


mkdir -p /u01/app/oracle/product/11.2.0/db_1

mkdir -p /u01/app/oracle/admin

chown -R oracle:dba /u01/app

Dans mon cas, je vais créer les fichiers de données, fichiers de contrôles et les redo log en ligne sous une autre partition système:


mkdir -p /a01/oradata

chown -R oracle:dba /a01/oradata

Dans mon cas, je vais créer les fichiers de sauvegarde et la FRA sous une autre partition système:


mkdir -p /b01/ora_backups

chown -R oracle:dba /b01/ora_backups

# vi .bash_profile

Ajouter les lignes suivantes au fichier bash_profile de l’utilisateur Oracle;


umask 022

export EDITOR=vi

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME 

ORACLE_SID=orawdb; export ORACLE_SID

PATH=$PATH:/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch; export PATH

ulimit -s 32768

ulimit -n 65536

Confirmer les changements:


source .bash_profile

copier les fichiers d’installation Oracle. Ces fichiers peuvent être téléchargés à partir de la URL suivante: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html:

Vérifier l’intégrité des fichiers d’installation:


unzip -t solaris.x64_11gR2_database_1of2.zip

unzip -t solaris.x64_11gR2_database_2of2.zip

Décompresser les fichiers d’installation:


unzip solaris.x64_11gR2_database_1of2.zip

unzip solaris.x64_11gR2_database_2of2.zip

Comme utilisateur root, créer le fichier oraIns.loc. Ce fichier servira l’outil optach comme un fichier index pour indiquer où l’inventaire de Oracle (oraInventory) existe.
OraInventory contient les informations des composants installées ainsi que les patchs installés. L’outil Opatch nécessitera accéder oraInventory avant et après l’appilciation des patchs


-bash-3.00$ su - root

Password:

Oracle Corporation      SunOS 5.10      Generic Patch   January 2005

#

# mkdir -p /var/opt/oracle

# cd  /var/opt/oracle

vi oraInst.loc

inventory_loc=/u01/app/oracle/oraInventory

inst_group=dba

# chown oracle:dba oraInst.loc

# chmod 664 oraInst.loc

#

3- Installer le logiciel Oracle:

Dans cet article, nous allons installer la version 11.2.0.1 édition entreprise (Enterprise Edition).


su - oracle

cd /export/home/oracle/11gSrc/database

./runInstaller -silent -responseFile /export/home/oracle/11gSrc/database/response/db_install.rsp -invPtrLoc /var/opt/oracle/oraInst.loc \

-noconfig ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 ORACLE_HOME_NAME=Ora11g_Home1 SELECTED_LANGUAGES=en \

oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=dba oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=dba \

oracle.install.db.InstallEdition=EE SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=TRUE

Checking Temp space: must be greater than 180 MB.   Actual 29580 MB    Passed

Checking swap space: must be greater than 150 MB.   Actual 29800 MB    Passed

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2011-08-09_12-59-23AM. Please wait ...-bash-3.00$ You can                find the log of this install session at:

 /u01/app/oracle/oraInventory/logs/installActions2011-08-09_12-59-23AM.log

The following configuration scripts need to be executed as the "root" user.

 #!/bin/sh

 #Root scripts to run

/u01/app/oracle/product/11.2.0/db_1/root.sh

To execute the configuration scripts:

         1. Open a terminal window

         2. Log in as "root"

         3. Run the scripts

         4. Return to this window and hit "Enter" key to continue

Successfully Setup Software.

-bash-3.00$

/u01/app/oracle/product/11.2.0/db_1/root.sh

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /u01/app/oracle/product/11.2.0/db_1

Creating /usr/local/bin directory...

Creating /var/opt/oracle/oratab file...

Entries will be added to the /var/opt/oracle/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root.sh script.

Now product-specific root actions will be performed.

Finished product-specific root actions.

4- Installer la base de données:

Nous allons utiliser les scripts suivants:


-bash-3.00$ cd scripts/

-bash-3.00$ ls -rtl

total 30

-rw-r-----   1 oracle   dba        234 Apr 13  2010 xdb_protocol.sql

-rw-r-----   1 oracle   dba        509 Apr 13  2010 lockAccount.sql

-rw-r-----   1 oracle   dba        314 Apr 13  2010 emRepository.sql

-rw-r-----   1 oracle   dba        760 Apr 13  2010 CreateDBCatalog.sql

-rwxr-xr-x   1 oracle   dba        647 Apr 13  2010 orawdb.sh

-rw-r-----   1 oracle   dba       1137 Apr 13  2010 CreateDB.sql

-rw-r-----   1 oracle   dba        342 Apr 13  2010 CreateDBFiles.sql

-rwxr-xr-x   1 oracle   dba        857 Apr 13  2010 orawdb.sql

-rw-r-----   1 oracle   dba       1151 Apr 13  2010 postDBCreation.sql

-rwxr--r--   1 oracle   dba        178 Apr 13  2010 tnsnames.ora

-rw-------   1 oracle   dba        213 Apr 13  2010 listener.ora

-rw-r-----   1 oracle   dba       1794 Apr 13  2010 init.ora

-bash-3.00$

-bash-3.00$ cat xdb_protocol.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/xdb_protocol.log append

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catqm.sql change_on_install SYSAUX TEMP;

spool off

-bash-3.00$

-bash-3.00$ cat lockAccount.sql

SET VERIFY OFF

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/lockAccount.log append

BEGIN

 FOR item IN ( SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS IN ('OPEN', 'LOCKED', 'EXPIRED') AND USERNAME NOT IN (

'SYS','SYSTEM') )

 LOOP

  dbms_output.put_line('Locking and Expiring: ' || item.USERNAME);

  execute immediate 'alter user ' ||

         sys.dbms_assert.enquote_name(

         sys.dbms_assert.schema_name(

         item.USERNAME),false) || ' password expire account lock' ;

 END LOOP;

END;

/

spool off

-bash-3.00$

-bash-3.00$ cat emRepository.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo off

spool /opt/app/oracle/admin/orawdb/scripts/emRepository.log append

@/opt/app/oracle/product/11.2.0/db_1/sysman/admin/emdrep/sql/emreposcre /opt/app/oracle/product/11.2.0/db_1 SYSMAN &&sysmanPassword TEMP ON;

WHENEVER SQLERROR CONTINUE;

spool off

-bash-3.00$

-bash-3.00$ cat CreateDBCatalog.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/CreateDBCatalog.log append

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catalog.sql;

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catblock.sql;

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catproc.sql;

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catoctk.sql;

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/owminst.plb;

connect "SYSTEM"/"&&systemPassword"

@/opt/app/oracle/product/11.2.0/db_1/sqlplus/admin/pupbld.sql;

connect "SYSTEM"/"&&systemPassword"

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/sqlPlusHelp.log append

@/opt/app/oracle/product/11.2.0/db_1/sqlplus/admin/help/hlpbld.sql helpus.sql;

spool off

spool off

-bash-3.00$

-bash-3.00$ cat orawdb.sh

#!/bin/sh

OLD_UMASK=`umask`

umask 0027

mkdir -p /a01/oradata

mkdir -p /opt/app/oracle/admin/orawdb/adump

mkdir -p /opt/app/oracle/admin/orawdb/dpdump

mkdir -p /opt/app/oracle/admin/orawdb/pfile

mkdir -p /opt/app/oracle/cfgtoollogs/dbca/orawdb

mkdir -p /opt/ora_backups/flash_recovery_area

mkdir -p /opt/app/oracle/product/11.2.0/db_1/dbs

umask ${OLD_UMASK}

ORACLE_SID=orawdb; export ORACLE_SID

PATH=$ORACLE_HOME/bin:$PATH; export PATH

echo You should Add this entry in the /var/opt/oracle/oratab: orawdb:/opt/app/oracle/product/11.2.0/db_1:Y

/opt/app/oracle/product/11.2.0/db_1/bin/sqlplus /nolog @/opt/app/oracle/admin/orawdb/scripts/orawdb.sql

-bash-3.00$

-bash-3.00$ cat CreateDB.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/CreateDB.log append

startup nomount pfile="/opt/app/oracle/admin/orawdb/scripts/init.ora";

CREATE DATABASE "orawdb"

MAXINSTANCES 8

MAXLOGHISTORY 1

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

DATAFILE SIZE 700M AUTOEXTEND ON NEXT  10240K MAXSIZE 8G

EXTENT MANAGEMENT LOCAL

SYSAUX DATAFILE SIZE 600M AUTOEXTEND ON NEXT  10240K MAXSIZE 8G

SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE SIZE 20M AUTOEXTEND ON NEXT  640K MAXSIZE 8G

SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE SIZE 200M AUTOEXTEND ON NEXT  5120K MAXSIZE 8G

CHARACTER SET WE8MSWIN1252

NATIONAL CHARACTER SET AL16UTF16

LOGFILE GROUP 1  SIZE 1G,

GROUP 2  SIZE 1G,

GROUP 3  SIZE 1G,

GROUP 4  SIZE 1G

USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword";

set linesize 2048;

column ctl_files NEW_VALUE ctl_files;

select concat('control_files=''', concat(replace(value, ', ', ''','''), '''')) ctl_files from v$parameter where name ='control_files';

host echo &ctl_files >>/opt/app/oracle/admin/orawdb/scripts/init.ora;

spool off

-bash-3.00$

-bash-3.00$ cat CreateDBFiles.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/CreateDBFiles.log append

CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE SIZE 5M AUTOEXTEND ON NEXT  1280K MAXSIZE 8G EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;

ALTER DATABASE DEFAULT TABLESPACE "USERS";

spool off

-bash-3.00$

-bash-3.00$ cat orawdb.sql

set verify off

ACCEPT sysPassword CHAR PROMPT 'Enter new password for SYS: ' HIDE

ACCEPT systemPassword CHAR PROMPT 'Enter new password for SYSTEM: ' HIDE

ACCEPT sysmanPassword CHAR PROMPT 'Enter new password for SYSMAN: ' HIDE

ACCEPT dbsnmpPassword CHAR PROMPT 'Enter new password for DBSNMP: ' HIDE

host /opt/app/oracle/product/11.2.0/db_1/bin/orapwd file=/opt/app/oracle/product/11.2.0/db_1/dbs/orapworawdb force=y

@/opt/app/oracle/admin/orawdb/scripts/CreateDB.sql

@/opt/app/oracle/admin/orawdb/scripts/CreateDBFiles.sql

@/opt/app/oracle/admin/orawdb/scripts/CreateDBCatalog.sql

-- @/opt/app/oracle/admin/orawdb/scripts/context.sql

@/opt/app/oracle/admin/orawdb/scripts/xdb_protocol.sql

@/opt/app/oracle/admin/orawdb/scripts/emRepository.sql

@/opt/app/oracle/admin/orawdb/scripts/lockAccount.sql

@/opt/app/oracle/admin/orawdb/scripts/postDBCreation.sql

-bash-3.00$

-bash-3.00$ cat postDBCreation.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/postDBCreation.log append

select 'utl_recomp_begin: ' || to_char(sysdate, 'HH:MI:SS') from dual;

execute utl_recomp.recomp_serial();

select 'utl_recomp_end: ' || to_char(sysdate, 'HH:MI:SS') from dual;

shutdown immediate;

connect "SYS"/"&&sysPassword" as SYSDBA

startup mount pfile="/opt/app/oracle/admin/orawdb/scripts/init.ora";

alter database archivelog;

alter database open;

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

create spfile='/opt/app/oracle/product/11.2.0/db_1/dbs/spfileorawdb.ora' FROM pfile='/opt/app/oracle/admin/orawdb/scripts/init.ora';

shutdown immediate;

connect "SYS"/"&&sysPassword" as SYSDBA

startup ;

-- host /opt/app/oracle/product/11.2.0/db_1/bin/emca -config dbcontrol db -silent -DB_UNIQUE_NAME orawdb -PORT 1521 -EM_HOME /opt/app/oracle/product/11.2.0/db_1 -LISTENER LISTENER -SERVICE_NAME orawdb -SID orawdb -ORACLE_HOME /opt/app/oracle/product/11.2.0/db_1 -HOST clusterdbca2 -LISTENER_OH /opt/app/oracle/product/11.2.0/db_1 -LOG_FILE /opt/app/oracle/admin/orawdb/scripts/emConfig.log;

spool off

exit;

-bash-3.00$

-bash-3.00$ cat tnsnames.ora

orawdb =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orawdb)

    )

  )

-bash-3.00$

-bash-3.00$ cat listener.ora

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    )

  )

ADR_BASE_LISTENER = /opt/app/oracle

SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER_oraw=OFF

-bash-3.00$

-bash-3.00$ cat init.ora

##############################################################################

# Copyright (c) 1991, 2001, 2002 by Oracle Corporation

##############################################################################

###########################################

# Archive

###########################################

log_archive_format=%t_%s_%r.dbf

###########################################

# Cache and I/O

###########################################

db_block_size=8192

###########################################

# Cursors and Library Cache

###########################################

open_cursors=300

session_cached_cursors=200

###########################################

# Database Identification

###########################################

db_domain=""

db_name=orawdb

###########################################

# File Configuration

###########################################

db_create_file_dest=/a01/oradata

db_recovery_file_dest=/opt/ora_backups/flash_recovery_area

db_recovery_file_dest_size=50G

filesystemio_options='SETALL'

###########################################

# Miscellaneous

###########################################

compatible=11.2.0.0.0

diagnostic_dest=/opt/app/oracle

sga_target=8G

pga_aggregate_target=1G

local_listener='orawdb'

###########################################

# Processes and Sessions

###########################################

processes=500

###########################################

# Security and Auditing

###########################################

audit_file_dest=/opt/app/oracle/admin/orawdb/adump

audit_trail=os

remote_login_passwordfile=EXCLUSIVE

audit_sys_operations=TRUE

###########################################

# System Managed Undo and Rollback Segments

###########################################

undo_tablespace=UNDOTBS1

-bash-3.00$

Exécuter les étapes suivantes par order:


$ cp listener.ora /u01/app/oracle/product/11.2.0/db_1/network/admin/

$ cp tnsnames.ora /u01/app/oracle/product/11.2.0/db_1/network/admin/

$ lsnrctl start

Maintenant, appeler le script orawdb.sh qui va appeler les autres scripts d’une manière sequentielles afin d’installer la base de données;

> sh orawdb.sh

Peut être vous allez recevoir l’erreur suivantes ; ORA-27102: out of memory Solaris-AMD64 Error: 22: Invalid argument

Dans ce cas, vous devez modifier votre projet et augmenter la taille de mémoire allouée au projet mémoire partagée de Oracle.


SQL> startup nomount pfile="/u01/app/oracle/admin/db/scripts/init.ora";

ORA-27102: out of memory

Solaris-AMD64 Error: 22: Invalid argument

pour corriger le problème, exécutez les commandes suivantes:

# id -p

uid=0(root) gid=0(root) projid=1(user.root)

# exit

-bash-3.00$ id -p

uid=100(oracle) gid=100(dba) projid=100(user.oracle)

-bash-3.00$ su -

Password:

Oracle Corporation      SunOS 5.10      Generic Patch   January 2005

# prctl -n project.max-shm-memory -i project 100

project: 100: user.oracle

NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT

project.max-shm-memory

        privileged      8.00GB      -   deny                                 -

        system          16.0EB    max   deny                                 -

# prctl -n project.max-shm-memory -r -v 10G -i project 100

#  prctl -n project.max-shm-memory -i project 100

project: 100: user.oracle

NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT

project.max-shm-memory

        privileged      10.0GB      -   deny                                 -

        system          16.0EB    max   deny                                 -

#

Avec l’utilisateur Oracle, ajouter les lignes suivantes:


cd /var/opt/oracle/

vi oratab

and add;

orawdb:/u01/app/oracle/product/11.2.0/db_1:Y

Maintenant, connectez à votre base de données.

1- Introducción:

En este documento, vamos a instalar Oracle 11gR2 (11.2.0.1) con el método silencioso.

2- Preparar el entorno;

En esa sección, vamos a preparar los usuarios, los grupos y ajustar los parámetros del sistema.

Crear el grupo dba:


groupadd dba

En el caso, que el usuario oracle y su « home » no existen:


mkdir /export/home

useradd –g dba –G dba –m –d /export/home/oracle –s /usr/bin/bash oracle

passwd oracle (change oracle password)

En el caso, que el usuario oracle y su « home » existen:


usermod -g dba -G dba oracle

Usa el comando « projadd » para añadir un nuevo proyecto en el fichero /etc/project ;


projadd -U oracle -K "project.max-shm-memory=(priv,8g,deny)" user.oracle

Usa el comando « projmod » para cambiar la definición de los siguientes proyectos:


projmod -sK "process.max-sem-nsems=(priv,2048,deny)" user.oracle

projmod -sK "project.max-sem-ids=(priv,4000,deny)" user.oracle

projmod -sK "project.max-shm-ids=(priv,32768,deny)" user.oracle

Crear los directorios del sistema que van a contener el software de Oracle y sus binarios;


mkdir -p /u01/app/oracle/product/11.2.0/db_1

mkdir -p /u01/app/oracle/admin

chown -R oracle:dba /u01/app

Estoy creando los ficheros de datos, y Control Files redologs en ​​otra partición del sistema;


mkdir -p /a01/oradata

chown -R oracle:dba /a01/oradata

Voy a crear los archivos de copia de seguridad, área de recuperación rápida (FRA) en otra partición del sistema;


mkdir -p /b01/ora_backups

chown -R oracle:dba /b01/ora_backups

# vi .bash_profile

Añada las siguientes líneas en el archivo bash_profile:


umask 022

export EDITOR=vi

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME 

ORACLE_SID=orawdb; export ORACLE_SID

PATH=$PATH:/usr/local/bin:/usr/ccs/bin:/usr/sfw/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch; export PATH

ulimit -s 32768

ulimit -n 65536

Confirme los cambios:


source .bash_profile

Copia los archivos de instalación, se pueden descargarlos desde:

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html:

Verificar la integridad de los archivos de instalación:


unzip -t solaris.x64_11gR2_database_1of2.zip

unzip -t solaris.x64_11gR2_database_2of2.zip

Descomprimir los archivos:


unzip solaris.x64_11gR2_database_1of2.zip

unzip solaris.x64_11gR2_database_2of2.zip

Como usuario root, cree el archivo oraIns.loc. Este archivo indica al opatch donde se encuentra el oraInventory. El oraInventory contiene todos los componentes, así como grupos de parches o parches provisionales instalados en el ORACLE_HOME. Opatch necesita tener acceso a la oraInventory antes y después de la aplicación de cualquier parche.


-bash-3.00$ su - root

Password:

Oracle Corporation      SunOS 5.10      Generic Patch   January 2005

#

# mkdir -p /var/opt/oracle

# cd  /var/opt/oracle

vi oraInst.loc

inventory_loc=/u01/app/oracle/oraInventory

inst_group=dba

# chown oracle:dba oraInst.loc

# chmod 664 oraInst.loc

#

3- Instalar el software:

En este artículo, vamos a instalar una base de datos 11.2.0.1 Edición Enterprise.


su - oracle

cd /export/home/oracle/11gSrc/database

./runInstaller -silent -responseFile /export/home/oracle/11gSrc/database/response/db_install.rsp -invPtrLoc /var/opt/oracle/oraInst.loc \

-noconfig ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 ORACLE_HOME_NAME=Ora11g_Home1 SELECTED_LANGUAGES=en \

oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=dba oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=dba \

oracle.install.db.InstallEdition=EE SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=TRUE

Checking Temp space: must be greater than 180 MB.   Actual 29580 MB    Passed

Checking swap space: must be greater than 150 MB.   Actual 29800 MB    Passed

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2011-08-09_12-59-23AM. Please wait ...-bash-3.00$ You can                find the log of this install session at:

 /u01/app/oracle/oraInventory/logs/installActions2011-08-09_12-59-23AM.log

The following configuration scripts need to be executed as the "root" user.

 #!/bin/sh

 #Root scripts to run

/u01/app/oracle/product/11.2.0/db_1/root.sh

To execute the configuration scripts:

         1. Open a terminal window

         2. Log in as "root"

         3. Run the scripts

         4. Return to this window and hit "Enter" key to continue

Successfully Setup Software.

-bash-3.00$

/u01/app/oracle/product/11.2.0/db_1/root.sh

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /u01/app/oracle/product/11.2.0/db_1

Creating /usr/local/bin directory...

Creating /var/opt/oracle/oratab file...

Entries will be added to the /var/opt/oracle/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root.sh script.

Now product-specific root actions will be performed.

Finished product-specific root actions.

4- Instalar la base de datos:

Utilizando los siguientes archivos de comando, vamos a instalar la base de datos.


-bash-3.00$ cd scripts/

-bash-3.00$ ls -rtl

total 30

-rw-r-----   1 oracle   dba        234 Apr 13  2010 xdb_protocol.sql

-rw-r-----   1 oracle   dba        509 Apr 13  2010 lockAccount.sql

-rw-r-----   1 oracle   dba        314 Apr 13  2010 emRepository.sql

-rw-r-----   1 oracle   dba        760 Apr 13  2010 CreateDBCatalog.sql

-rwxr-xr-x   1 oracle   dba        647 Apr 13  2010 orawdb.sh

-rw-r-----   1 oracle   dba       1137 Apr 13  2010 CreateDB.sql

-rw-r-----   1 oracle   dba        342 Apr 13  2010 CreateDBFiles.sql

-rwxr-xr-x   1 oracle   dba        857 Apr 13  2010 orawdb.sql

-rw-r-----   1 oracle   dba       1151 Apr 13  2010 postDBCreation.sql

-rwxr--r--   1 oracle   dba        178 Apr 13  2010 tnsnames.ora

-rw-------   1 oracle   dba        213 Apr 13  2010 listener.ora

-rw-r-----   1 oracle   dba       1794 Apr 13  2010 init.ora

-bash-3.00$

-bash-3.00$ cat xdb_protocol.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/xdb_protocol.log append

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catqm.sql change_on_install SYSAUX TEMP;

spool off

-bash-3.00$

-bash-3.00$ cat lockAccount.sql

SET VERIFY OFF

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/lockAccount.log append

BEGIN

 FOR item IN ( SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS IN ('OPEN', 'LOCKED', 'EXPIRED') AND USERNAME NOT IN (

'SYS','SYSTEM') )

 LOOP

  dbms_output.put_line('Locking and Expiring: ' || item.USERNAME);

  execute immediate 'alter user ' ||

         sys.dbms_assert.enquote_name(

         sys.dbms_assert.schema_name(

         item.USERNAME),false) || ' password expire account lock' ;

 END LOOP;

END;

/

spool off

-bash-3.00$

-bash-3.00$ cat emRepository.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo off

spool /opt/app/oracle/admin/orawdb/scripts/emRepository.log append

@/opt/app/oracle/product/11.2.0/db_1/sysman/admin/emdrep/sql/emreposcre /opt/app/oracle/product/11.2.0/db_1 SYSMAN &&sysmanPassword TEMP ON;

WHENEVER SQLERROR CONTINUE;

spool off

-bash-3.00$

-bash-3.00$ cat CreateDBCatalog.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/CreateDBCatalog.log append

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catalog.sql;

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catblock.sql;

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catproc.sql;

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/catoctk.sql;

@/opt/app/oracle/product/11.2.0/db_1/rdbms/admin/owminst.plb;

connect "SYSTEM"/"&&systemPassword"

@/opt/app/oracle/product/11.2.0/db_1/sqlplus/admin/pupbld.sql;

connect "SYSTEM"/"&&systemPassword"

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/sqlPlusHelp.log append

@/opt/app/oracle/product/11.2.0/db_1/sqlplus/admin/help/hlpbld.sql helpus.sql;

spool off

spool off

-bash-3.00$

-bash-3.00$ cat orawdb.sh

#!/bin/sh

OLD_UMASK=`umask`

umask 0027

mkdir -p /a01/oradata

mkdir -p /opt/app/oracle/admin/orawdb/adump

mkdir -p /opt/app/oracle/admin/orawdb/dpdump

mkdir -p /opt/app/oracle/admin/orawdb/pfile

mkdir -p /opt/app/oracle/cfgtoollogs/dbca/orawdb

mkdir -p /opt/ora_backups/flash_recovery_area

mkdir -p /opt/app/oracle/product/11.2.0/db_1/dbs

umask ${OLD_UMASK}

ORACLE_SID=orawdb; export ORACLE_SID

PATH=$ORACLE_HOME/bin:$PATH; export PATH

echo You should Add this entry in the /var/opt/oracle/oratab: orawdb:/opt/app/oracle/product/11.2.0/db_1:Y

/opt/app/oracle/product/11.2.0/db_1/bin/sqlplus /nolog @/opt/app/oracle/admin/orawdb/scripts/orawdb.sql

-bash-3.00$

-bash-3.00$ cat CreateDB.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/CreateDB.log append

startup nomount pfile="/opt/app/oracle/admin/orawdb/scripts/init.ora";

CREATE DATABASE "orawdb"

MAXINSTANCES 8

MAXLOGHISTORY 1

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

DATAFILE SIZE 700M AUTOEXTEND ON NEXT  10240K MAXSIZE 8G

EXTENT MANAGEMENT LOCAL

SYSAUX DATAFILE SIZE 600M AUTOEXTEND ON NEXT  10240K MAXSIZE 8G

SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE SIZE 20M AUTOEXTEND ON NEXT  640K MAXSIZE 8G

SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE SIZE 200M AUTOEXTEND ON NEXT  5120K MAXSIZE 8G

CHARACTER SET WE8MSWIN1252

NATIONAL CHARACTER SET AL16UTF16

LOGFILE GROUP 1  SIZE 1G,

GROUP 2  SIZE 1G,

GROUP 3  SIZE 1G,

GROUP 4  SIZE 1G

USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword";

set linesize 2048;

column ctl_files NEW_VALUE ctl_files;

select concat('control_files=''', concat(replace(value, ', ', ''','''), '''')) ctl_files from v$parameter where name ='control_files';

host echo &ctl_files >>/opt/app/oracle/admin/orawdb/scripts/init.ora;

spool off

-bash-3.00$

-bash-3.00$ cat CreateDBFiles.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/CreateDBFiles.log append

CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE SIZE 5M AUTOEXTEND ON NEXT  1280K MAXSIZE 8G EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;

ALTER DATABASE DEFAULT TABLESPACE "USERS";

spool off

-bash-3.00$

-bash-3.00$ cat orawdb.sql

set verify off

ACCEPT sysPassword CHAR PROMPT 'Enter new password for SYS: ' HIDE

ACCEPT systemPassword CHAR PROMPT 'Enter new password for SYSTEM: ' HIDE

ACCEPT sysmanPassword CHAR PROMPT 'Enter new password for SYSMAN: ' HIDE

ACCEPT dbsnmpPassword CHAR PROMPT 'Enter new password for DBSNMP: ' HIDE

host /opt/app/oracle/product/11.2.0/db_1/bin/orapwd file=/opt/app/oracle/product/11.2.0/db_1/dbs/orapworawdb force=y

@/opt/app/oracle/admin/orawdb/scripts/CreateDB.sql

@/opt/app/oracle/admin/orawdb/scripts/CreateDBFiles.sql

@/opt/app/oracle/admin/orawdb/scripts/CreateDBCatalog.sql

-- @/opt/app/oracle/admin/orawdb/scripts/context.sql

@/opt/app/oracle/admin/orawdb/scripts/xdb_protocol.sql

@/opt/app/oracle/admin/orawdb/scripts/emRepository.sql

@/opt/app/oracle/admin/orawdb/scripts/lockAccount.sql

@/opt/app/oracle/admin/orawdb/scripts/postDBCreation.sql

-bash-3.00$

-bash-3.00$ cat postDBCreation.sql

SET VERIFY OFF

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

spool /opt/app/oracle/admin/orawdb/scripts/postDBCreation.log append

select 'utl_recomp_begin: ' || to_char(sysdate, 'HH:MI:SS') from dual;

execute utl_recomp.recomp_serial();

select 'utl_recomp_end: ' || to_char(sysdate, 'HH:MI:SS') from dual;

shutdown immediate;

connect "SYS"/"&&sysPassword" as SYSDBA

startup mount pfile="/opt/app/oracle/admin/orawdb/scripts/init.ora";

alter database archivelog;

alter database open;

connect "SYS"/"&&sysPassword" as SYSDBA

set echo on

create spfile='/opt/app/oracle/product/11.2.0/db_1/dbs/spfileorawdb.ora' FROM pfile='/opt/app/oracle/admin/orawdb/scripts/init.ora';

shutdown immediate;

connect "SYS"/"&&sysPassword" as SYSDBA

startup ;

-- host /opt/app/oracle/product/11.2.0/db_1/bin/emca -config dbcontrol db -silent -DB_UNIQUE_NAME orawdb -PORT 1521 -EM_HOME /opt/app/oracle/product/11.2.0/db_1 -LISTENER LISTENER -SERVICE_NAME orawdb -SID orawdb -ORACLE_HOME /opt/app/oracle/product/11.2.0/db_1 -HOST clusterdbca2 -LISTENER_OH /opt/app/oracle/product/11.2.0/db_1 -LOG_FILE /opt/app/oracle/admin/orawdb/scripts/emConfig.log;

spool off

exit;

-bash-3.00$

-bash-3.00$ cat tnsnames.ora

orawdb =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orawdb)

    )

  )

-bash-3.00$

-bash-3.00$ cat listener.ora

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    )

  )

ADR_BASE_LISTENER = /opt/app/oracle

SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER_oraw=OFF

-bash-3.00$

-bash-3.00$ cat init.ora

##############################################################################

# Copyright (c) 1991, 2001, 2002 by Oracle Corporation

##############################################################################

###########################################

# Archive

###########################################

log_archive_format=%t_%s_%r.dbf

###########################################

# Cache and I/O

###########################################

db_block_size=8192

###########################################

# Cursors and Library Cache

###########################################

open_cursors=300

session_cached_cursors=200

###########################################

# Database Identification

###########################################

db_domain=""

db_name=orawdb

###########################################

# File Configuration

###########################################

db_create_file_dest=/a01/oradata

db_recovery_file_dest=/opt/ora_backups/flash_recovery_area

db_recovery_file_dest_size=50G

filesystemio_options='SETALL'

###########################################

# Miscellaneous

###########################################

compatible=11.2.0.0.0

diagnostic_dest=/opt/app/oracle

sga_target=8G

pga_aggregate_target=1G

local_listener='orawdb'

###########################################

# Processes and Sessions

###########################################

processes=500

###########################################

# Security and Auditing

###########################################

audit_file_dest=/opt/app/oracle/admin/orawdb/adump

audit_trail=os

remote_login_passwordfile=EXCLUSIVE

audit_sys_operations=TRUE

###########################################

# System Managed Undo and Rollback Segments

###########################################

undo_tablespace=UNDOTBS1

-bash-3.00$

Haga lo siguiente:


$ cp listener.ora /u01/app/oracle/product/11.2.0/db_1/network/admin/

$ cp tnsnames.ora /u01/app/oracle/product/11.2.0/db_1/network/admin/

$ lsnrctl start

Ahora, ejecuta el script orawdb.sh que va a llamar a todos los otros archivos de instalación de forma secuencial;

> sh orawdb.sh

Puede recibir el siguiente error; ORA-27102: out of memory Solaris-AMD64 Error: 22: Invalid argument

En este caso hay que modificar el proyecto y aumentar el tamaño de memoria asignada a la máxima memoria compartida de Oracle.


SQL> startup nomount pfile="/u01/app/oracle/admin/db/scripts/init.ora";

ORA-27102: out of memory

Solaris-AMD64 Error: 22: Invalid argument

Para solucionarlo, haga lo siguiente:

# id -p

uid=0(root) gid=0(root) projid=1(user.root)

# exit

-bash-3.00$ id -p

uid=100(oracle) gid=100(dba) projid=100(user.oracle)

-bash-3.00$ su -

Password:

Oracle Corporation      SunOS 5.10      Generic Patch   January 2005

# prctl -n project.max-shm-memory -i project 100

project: 100: user.oracle

NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT

project.max-shm-memory

        privileged      8.00GB      -   deny                                 -

        system          16.0EB    max   deny                                 -

# prctl -n project.max-shm-memory -r -v 10G -i project 100

#  prctl -n project.max-shm-memory -i project 100

project: 100: user.oracle

NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT

project.max-shm-memory

        privileged      10.0GB      -   deny                                 -

        system          16.0EB    max   deny                                 -

#

Como usuario de Oracle, se puede añadir las siguientes líneas:


cd /var/opt/oracle/

vi oratab

and add;

orawdb:/u01/app/oracle/product/11.2.0/db_1:Y

Ahora conectase a su base de datos.

Scridb filter


No Comments to “11gR2; Silent installation in Oracle Solaris 10”

There are no comments yet, add one below.


Leave a Comment





Subscribe


Polls

which oracle topic interests you most?

View Results

Loading ... Loading ...


Oracle Class Tweets


Recent Posts


Recent Comments

  • Jaspreet: Brilliant explanation.
  • Yousuf: Very Nice… Just wanted to check you have done all patching at Node 1 only.. is there any thing need to...
  • Yousuf: Very Nice.. Thanks for sharing.. Once question.. You have executed all commands on Node 1 only.. Is there any...
  • Emir: Thanks… Great article
  • borse firmate: Thank you for another informative blog. The place else may just I am getting that kind of information...
  • leandro: why this parameter is systemwide? could you read from a asm instance from one failure group and from the...
  • Mohammad: paul, we create pfile from target database to source database and later we change database name, and...
  • Muhammad Ikram: Thanks Brother for sharing pearls of knowledge. May ALLAH reward you for this both here and...
  • rgrover: Thanks for the POST. I recently encounter similar issue. Your POST helped.
  • gopalredy: really its very use full to dbas
  • Vivian: This is awesome! Thank you so much!
  • henry zhong: CDB=DB, and PDB=SCHEMA but in a sub dictionary?
  • Dehbashee: Salam Brother, Thanx for sharing, however, i would be interested in chaging the password for the grid user...
  • wissem: No we don’t need that :) Just the scripts I posted above
  • Md. Tanweer: Thanks for posting the material. I really appreciate if you can send me, if you have tutorial for 11g...
  • christiaan: Thanks!! This has been bugging the hell out of me for so long.
  • Rajasekhar: Thank you
  • Samarjit Panigrahy: Very Nice and Simple Demo… Cool :)
  • cq: Any reason not to use auto patch for both CRS and RAC homes with one command? Or use opatch auto for RAC home as...
  • Hitesh: Hi, Can we use this RACcheck tool on oracle SE version ? Thanks