Linux下靜默安裝Oracle 11g
首先把防火牆、SElinux關掉
Serviceiptables stop iptables服務停掉
Vim /etc/selinux/config
SELINUX=enforcing 改成 SELINUX=disabled(重啓生效)
setenforce 0 / /臨時關閉,不用重啓
同時主機名稱要提前設置好hostname;
1) 檢查系統軟件包
binutils-2.15.92.0.2-13.EL4
compat-db-4.1.25-9
compat-libstdc++-296-2.96-132.7.2
control-center-2.8.0-12
gcc-3.4.3-22.1.EL4
gcc-c++-3.4.3-22.1.EL44
glibc-2.3.4-2.9
glibc-common-2.3.4-2.9
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.3-22.1
libstdc++-devel-3.4.3-22.1
make-3.80-5
pdksh-5.2.14-30
sysstat-5.0.5-1
xscreensaver-4.18-5.rhel4.2
libaio-0.3.103-3
使用rpm檢查哪些依賴包沒有安裝
rpm -q binutils compat-libstdc++-33 elfutils-libelfelfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-develglibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel makesysstat unixODBC unixODBC-devel
如果依賴包有顯示is not installed(沒安裝),就用yum install 命令安裝
yum install compat-db compat-libstdc++ control-centergcc gcc-c++ glibc glibc-common gonme-libs libstdc++ libstdc++-devel make pdkshsysstat libai
#rpm -qa gcc*
#rpm -Uvh --force binutils-2.15.92.0.2-13.0.0.0.2.x86_64.rpm
2)創建安裝目錄(可根據情況,選擇比較多空間的目錄創建)
mkdir -p /u01/app
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app
3) 創建用戶和組
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -g oinstall -G dba -d/u01/app/oracle oracle
設置oracle用戶密碼
# passwd oracle
4)配置核心參數
vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912 //用於定義單個共享內存段的最大值
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
修改後,使設置生效
/sbin/sysctl –p
可能會報錯:
error:"net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables"is an unknown key
error:"net.bridge.bridge-nf-call-arptables" is an unknown key
解決方法如下:
modprobe bridge
lsmod|grep bridge
/sbin/sysctl –p
5)修改用戶限制
vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
6)在/etc/pam.d/login 文件中,使用文本編輯器或vi命令增加或修改以下內容
vim /etc/pam.d/login
session required /lib/security/pam_limits.so
session required pam_limits.so
在/etc/profile 文件中,使用文本編輯器或vi命令增加或修改以下內容
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
使其設置生效
source /etc/profile
7)檢查交換分區和內存的大小
# grep SwapTotal /proc/meminfo
# grep MemTotal /proc/meminfo
tmp >=400m
8)設置oracle環境變量
su – oracle
vim.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export NLS_LANG=AMERICAN_AMERICA.UTF8
檢查環境變量:
env
同時,在使用靜默安裝的時候會檢查DISPLAY的設置,如果經常說檢查DISPLAY不行的話,到root用戶下執行“xhost + 你的ip:0.0“
重新加載.bash_profile文件
source .bash_profile
9)解壓oracle安裝文件
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
10)複製響應文件模板
mkdir etc
cp /home/oracle/database/response/* /u01/app/oracle/etc
設置響應文件權限
su - root
chmod 700 /u01/app/oracle/etc/*.rsp(注意所有者,oinstall)
11)執行安裝腳本
$./runInstaller
靜默安裝:
$ vi $DISTRIB/db_swonly.rsp
#--------------------------------------------------------------------
#以下參數不要更改
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
DECLINE_SECURITY_UPDATES=true
#以下參數根據實際情況更改,一般也無需更改
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN,zh_TW
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.customComponents=oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
#--------------------------------------------------------------------
各參數含義如下:
-silent 表示以靜默方式安裝,不會有任何提示
-force 允許安裝到一個非空目錄
-noconfig 表示不運行配置助手netca
-responseFile 表示使用哪個響應文件,必需使用絕對路徑
oracle.install.responseFileVersion 響應文件模板的版本,該參數不要更改
oracle.install.option 安裝選項,本例只安裝oracle軟件,該參數不要更改
DECLINE_SECURITY_UPDATES 是否需要在線安全更新,設置爲false,該參數不要更改
ORACLE_HOSTNAME 安裝主機名
UNIX_GROUP_NAME oracle 用戶用於安裝軟件的組名
INVENTORY_LOCATION oracle產品清單目錄
SELECTED_LANGUAGES oracle運行語言環境,一般包括引文和簡繁體中文
ORACLE_HOME Oracle安裝目錄
ORACLE_BASE oracle基礎目錄
oracle.install.db.InstallEdition 安裝版本類型,一般是企業版
oracle.install.db.isCustomInstall 是否定製安裝,默認Partitioning,OLAP,RAT都選上了
oracle.install.db.customComponents 定製安裝組件列表:除了以上默認的,可加上Label Security和DatabaseVault
oracle.install.db.DBA_GROUP oracle用戶用於授予OSDBA權限的組名
oracle.install.db.OPER_GROUP oracle用戶用於授予OSOPER權限的組名
也可使用有圖形的機器,使用圖形界面來生成responsfile:
$ ./runInstaller &
一步步設置到Summary頁, 然後點擊SaveResponse File按鈕, 選擇合適的存放路徑並Finish後, 回到Summary頁, 點擊Cancel退出OUI
開始靜默安裝
1) 通過response文件靜默安裝, 大概2-3分鐘:
$ ./runInstaller -silent -force -noconfig-responseFile /u01/app/oracle/etc
安裝中,如果提示[WARNING]不必理會,此時安裝程序仍在進行,如果出現[FATAL],則安裝程序已經停止了,到日誌目錄下查找錯誤日誌。
控制檯直到出現以下提示則表示安裝完成:
#-------------------------------------------------------------------
[oracle@xen_200_102 database]$ The followingconfiguration scripts need to be executed as the "root" user.
#!/bin/sh
#Root scriptsto run
/u01/app/oracle/oraInventory/orainstRoot.sh
/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.
#-------------------------------------------------------------------
2) 安裝期間查看安裝日誌信息瞭解安裝進度:
$ cd $ORACLE_BASE/oraInventory/logs
$ tail -f installActions*.log
3) 安裝的軟件信息會寫入inventory.xml文件, 如果需重運行則把該文件的對應安裝條目信息刪除即可:
$ vi$ORACLE_BASE/oraInventory/ContentsXML/inventory.xml
若本機第一次安裝oracle軟件, 則執行orainstRoot.sh來建立oraInst.loc文件和修改權限:
$ su -
# /u01/app/oracle/oraInventory/orainstRoot.sh
# more /etc/oraInst.loc
執行$ORACLE_HOME下的root.sh來建立oratab,dbhome,oraenv,coraenv文件, 如果提示則一直回車:
# /u01/app/oracle/product/11.2.0/db_1/root.sh
# more /etc/oratab
靜默配置監聽
通過response文件運行netca, 生成sqlnet.ora和listener.ora文件, 位於$ORACLE_HOME/network/admin目錄下:
# su - oracle
$ $ORACLE_HOME/bin/netca /silent /responsefile$DISTRIB/response/netca.rsp
$ ll $ORACLE_HOME/network/admin/*.ora
$ lsnrctl status
執行完後, 監聽就已經啓動了, 默認端口是1521, 默認是動態監聽,只要實例啓動了就會監聽到.
靜默建庫
1) 生成響應文件模板:
$ vi /u01/app/oracle/etc/db_create.rsp
#--------------------------------------------------------------------
#以下參數不要更改
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
#以下參數必須設置
[CREATEDATABASE]
GDBNAME = "orcl.LK"
TEMPLATENAME = "General_Purpose.dbc"
#以下參數不設置則使用默認值,建議設置
CHARACTERSET = "AMERICAN_AMERICA.UTF8"
TOTALMEMORY = "1024"
#--------------------------------------------------------------------
2) dbca靜默建庫, 大概3-4分鐘:
種子數據庫和控制文件位於$ORACLE_HOME/assistants/dbca/templates/下,即Seed_Database.dfb和Seed_Database.ctl文件, 實際上建庫就是基於通過rman恢復種子數據庫和控制文件來實現的.
$ $ORACLE_HOME/bin/dbca -silent -responseFile /u01/app/oracle/etc/db_create.rsp
Enter SYS user password:
<輸入sys用戶密碼>
Enter SYSTEM user password:
<輸入system用戶密碼>
Copying database files
...
37% complete
Creating and starting Oracle instance
...
62% complete
Completing Database Creation
...
100% complete
Look at the log file"/u01/app/oracle/cfgtoollogs/dbca/ORCL/ORCL.log" for further details.
各參數含義如下:
-silent 表示以靜默方式安裝
-responseFile 表示使用哪個響應文件,必需使用絕對路徑
RESPONSEFILE_VERSION 響應文件模板的版本,該參數不要更改
OPERATION_TYPE 安裝類型,該參數不要更改
GDBNAME 全局數據庫名,點號前面默認是db_name,點號後面默認就是db_domain
TEMPLATENAME 建庫模板名,參考各模板定義:$ORACLE_HOME/assistants/dbca/templates/*.dbc
CHARACTERSET 字符集,默認是WE8MSWIN1252
TOTALMEMORY 實例內存,默認是服務器物理內存的40%
3) 安裝期間查看日誌信息瞭解進度:
$ tail -f$ORACLE_BASE/cfgtoollogs/dbca/$ORACLE_SID/$ORACLE_SID.log
4) 建庫後實例檢查
$ ps -ef | grep ora_ | grep -v grep | wc -l
21
$ ps -ef | grep ora_ | grep -v grep
oracle 1855 1 0 10:07 ? 00:00:00 ora_pmon_ORCL
oracle 1857 1 0 10:07 ? 00:00:00 ora_vktm_ORCL
oracle 1861 1 0 10:07 ? 00:00:00 ora_gen0_ORCL
oracle 1863 1 0 10:07 ? 00:00:00 ora_diag_ORCL
oracle 1865 1 010:07 ? 00:00:00 ora_dbrm_ORCL
oracle 1867 1 0 10:07 ? 00:00:00 ora_psp0_ORCL
oracle 1869 1 0 10:07 ? 00:00:00 ora_dia0_ORCL
oracle 1871 1 0 10:07 ? 00:00:00 ora_mman_ORCL
oracle 1873 1 0 10:07 ? 00:00:00 ora_dbw0_ORCL
oracle 1875 1 0 10:07 ? 00:00:00 ora_lgwr_ORCL
oracle 1877 1 0 10:07 ? 00:00:00 ora_ckpt_ORCL
oracle 1879 1 0 10:07 ? 00:00:00 ora_smon_ORCL
oracle 1881 1 0 10:07 ? 00:00:00 ora_reco_ORCL
oracle 1883 1 0 10:07 ? 00:00:00 ora_mmon_ORCL
oracle 1885 1 0 10:07 ? 00:00:00 ora_mmnl_ORCL
oracle 1887 1 0 10:07 ? 00:00:00 ora_d000_ORCL
oracle 1889 1 0 10:07 ? 00:00:00 ora_s000_ORCL
oracle 1969 1 0 10:07 ? 00:00:00 ora_qmnc_ORCL
oracle 1985 1 0 10:07 ? 00:00:00 ora_cjq0_ORCL
oracle 2003 1 0 10:08 ? 00:00:00 ora_q000_ORCL
oracle 2005 1 0 10:08 ? 00:00:00 ora_q001_ORCL
5) 建庫後監聽檢查
$ lsnrctl status
...
Services Summary...
Service "ORCL.LK" has 1 instance(s).
Instance"ORCL", status READY, has 1 handler(s) for this service...
Service "ORCLXDB.LK" has 1 instance(s).
Instance"ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully
實例應該被動態註冊到監聽程序了.如果未被動態註冊到監聽程序, 則可以手工註冊:
$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 1611:11:46 2009
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release11.2.0.1.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP,Data Mining,
Oracle Database Vault and Real Application Testingoptions
$SQL> alter system register;
6) 改爲歸檔模式並重啓
$ sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database flashback on; (如果要啓用數據庫閃回功能則執行)
SQL> alter database open;
SQL> execute utl_recomp.recomp_serial(); (重新編譯所有可能失效對象)
SQL> alter system archive log current; (手工歸檔測試)
到此建庫完畢!
7) 默認安裝的數據庫用戶:
SQL> set lines 256 pages 500
SQL> selectUSER_ID,USERNAME,ACCOUNT_STATUS,DEFAULT_TABLESPACE from dba_users order by1;
USER_IDUSERNAME ACCOUNT_STATUS DEFAULT_TABLESPACE
---------- -------------------------------------------------------------- ------------------------------
0SYS OPEN SYSTEM
5SYSTEM OPEN SYSTEM
9OUTLN EXPIRED& LOCKED SYSTEM
14DIP EXPIRED& LOCKED USERS
21ORACLE_OCM EXPIRED& LOCKED USERS
30DBSNMP EXPIRED& LOCKED SYSAUX
31APPQOSSYS EXPIRED& LOCKED SYSAUX
32WMSYS EXPIRED& LOCKED SYSAUX
42EXFSYS EXPIRED& LOCKED SYSAUX
43CTXSYS EXPIRED& LOCKED SYSAUX
45XDB EXPIRED& LOCKED SYSAUX
46ANONYMOUS EXPIRED& LOCKED SYSAUX
53ORDSYS EXPIRED& LOCKED SYSAUX
54ORDDATA EXPIRED& LOCKED SYSAUX
55ORDPLUGINS EXPIRED& LOCKED SYSAUX
56SI_INFORMTN_SCHEMA EXPIRED& LOCKED SYSAUX
57MDSYS EXPIRED& LOCKED SYSAUX
61OLAPSYS EXPIRED& LOCKED SYSAUX
65MDDATA EXPIRED& LOCKED USERS
67SPATIAL_WFS_ADMIN_USR EXPIRED& LOCKED USERS
70SPATIAL_CSW_ADMIN_USR EXPIRED& LOCKED USERS
72SYSMAN EXPIRED& LOCKED SYSAUX
74MGMT_VIEW EXPIRED& LOCKED SYSTEM
75 FLOWS_FILES EXPIRED & LOCKED SYSAUX
76APEX_PUBLIC_USER EXPIRED& LOCKED USERS
78APEX_030200 EXPIRED& LOCKED SYSAUX
79 OWBSYS EXPIRED &LOCKED SYSAUX
83OWBSYS_AUDIT EXPIRED& LOCKED SYSAUX
84SCOTT EXPIRED& LOCKED USERS
2147483638 XS$NULL EXPIRED &LOCKED USERS
30 rows selected.
8) 默認安裝的組件:
SQL> col COMP_ID format a8
col COMP_NAME format a35
col VERSION format a12
col schema format a12
col OTHER_SCHEMAS format a45
SQL> select comp_id,comp_name,version,schema,other_schemasfrom dba_registry order by 1;
COMP_ID COMP_NAME VERSION SCHEMA OTHER_SCHEMAS
-------- ----------------------------------------------- ------------ ---------------------------------------------
AMD OLAPCatalog 11.2.0.1.0 OLAPSYS
APEX OracleApplication Express 3.2.1.00.10 APEX_030200 FLOWS_FILES
APS OLAPAnalytic Workspace 11.2.0.1.0 SYS
CATALOG OracleDatabase Catalog Views 11.2.0.1.0 SYS
CATJAVA OracleDatabase Java Packages 11.2.0.1.0 SYS
CATPROC OracleDatabase Packages and Types 11.2.0.1.0 SYS APPQOSSYS,DBSNMP,DIP,ORACLE_OCM,OUTLN,SYSTEM
CONTEXT OracleText 11.2.0.1.0 CTXSYS
EM OracleEnterprise Manager 11.2.0.1.0 SYSMAN
EXF OracleExpression Filter 11.2.0.1.0 EXFSYS
JAVAVM JServerJAVA Virtual Machine 11.2.0.1.0 SYS
ORDIM OracleMultimedia 11.2.0.1.0 ORDSYS MDSYS,ORDDATA,ORDPLUGINS,SI_INFORMTN_SCHEMA
OWB OWB 11.2.0.1.0 OWBSYS
OWM OracleWorkspace Manager 11.2.0.1.0 WMSYS
RUL OracleRules Manager 11.2.0.1.0 EXFSYS
SDO Spatial 11.2.0.1.0 MDSYS
XDB OracleXML Database 11.2.0.1.0 XDB ANONYMOUS,XS$NULL
XML OracleXDK 11.2.0.1.0 SYS
XOQ OracleOLAP API 11.2.0.1.0 SYS
18 rows selected.
靜默刪庫(可選)
1) 生成響應文件模板:
$ vi /tmp/database/response/db_delete.rsp
#--------------------------------------------------------------------
#以下參數不能更改
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "deleteDatabase"
#以下參數根據實際情況更改
[DELETEDATABASE]
SOURCEDB = "ORCL"
#--------------------------------------------------------------------
2) dbca靜默刪庫, 無需手工停庫, 大概1分鐘:
$ $ORACLE_HOME/bin/dbca-silent -responseFile /tmp/database/response/db_delete.rsp
Connecting to database
...
47% complete
Updating network configuration files
...
52% complete
Deleting instance and datafiles
...
100% complete
Look at the log file"/u01/app/oracle/cfgtoollogs/dbca/ORCL.log" for further details.
各參數含義如下:
-silent 表示以靜默方式刪除
-responseFile 表示使用哪個響應文件,必需使用絕對路徑
RESPONSEFILE_VERSION 響應文件模板的版本,該參數不要更改
OPERATION_TYPE 安裝類型,該參數不要更改
SOURCEDB 數據庫名,不是全局數據庫名,即不包含db_domain
3) 刪除期間查看日誌信息瞭解進度:
$ tail -f$ORACLE_BASE/cfgtoollogs/dbca/$ORACLE_SID/$ORACLE_SID.log
數據庫的邏輯備份(導入導出)
Oracle 11g提供了兩個命令expdp、impdp,前者用來對數據庫的進行邏輯備份,後者用來執行恢復操作。導出、導入操作可以在不同的Oracle 11g服務器中執行,從而便於實現數據的遷移。
1)配置備份目錄
# mkdir /opt/mydbbackup
# chown oracle:oinstall /opt/mydbbackup/
# slqplus sys as sysdba
# Enter password: //輸入管理密碼
SQL> create DIRECTORY dmpdir AS ‘/opt/mydbbackup/’; //指定備份目錄位置
Directory created.
SQL> grant read,write ON DIRECTORY dmpdir TO system;
Grant successded.
2)備份(導出)數據
執行備份操作時,需指定備份操作用戶(如system),然後結合DIRECTORY參數指定Oracle管理的備份位置,結合DUMPFILE參數指定備份文件名稱。例如:以下操作將把用戶system所擁有的數據導出爲orc120150130.dmp文件,保存到/opt/mydbbackup/目錄。
# expdp systemDIRECTORY=dmpdir DUMPFILE=orc120150130.dmp
# password: //輸入管理密碼
# ls –lh /opt/mydbbackup/orc120150130.dmp
3)恢復(導入)數據
執行恢復操作時,同樣需指定操作用戶(如system),然後結合DIRECTORY參數指定Oracle管理的備份位置,結合DUMPFILE參數指定備份文件。例如,以下操作將從備份文件orc120150130.dmp中讀取數據,導入到用戶system所擁有的數據庫中。
#impdp systemDIRECTORY=dmpdir DUMPFILE=orc120150130.dmp REUSE_DATAFILES=Y TABLE_EXISTS_ACTION=REPLACE
Password: //輸入管理密碼
其中,REUSE_DATAFILES=Y表示重用原有的數據文件,TABLE_EXISTS_ACTION=REPLACE表示覆蓋已存在的表。
http://blog.itpub.net/29510932/viewspace-1135313/也可以參考這個。
(本人新手,如有錯誤,歡迎指正。希望對你有所幫助,祝你成功!)