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.