環(huán)境準(zhǔn)備
- win7環(huán)境下遠(yuǎn)程連接工具XShell;
- CentOS6.5 64位系統(tǒng);
- Oracle linux 64位版本安裝包:
linux.x64_11gR2_database_1of2.zip
lnux.x64_11gR2_database_2of2.zip
安裝前需要一定的依賴庫(kù)
yum -y install gcc gcc-c++ make binutilscompat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-commonglibc-devel libaio libaio-devel libgcclibstdc++ libstdc++-devel unixODBC unixODBC-devel
設(shè)定swap空間
- 在
/home下生成swap文件 設(shè)定大小2GB
cd /home
dd if=/dev/zero of=/home/swapfile bs=1M count=2048
- 設(shè)定使用
swapfile交換文件
mkswap /home/swapfile
- 啟用交換分區(qū)
swapon /home/swapfile
- 編輯文件
vi /etc/fstab
- 以便引導(dǎo)系統(tǒng)時(shí)啟用交換文件,文件最下方插入
/home/swapfile swap swap defaults 0 0
添加oracle用戶
- 創(chuàng)建oinstall、dba組 將oracle用戶加入組 修改并設(shè)定oracle用戶密碼
groupadd -g 501 oinstall
groupadd -g 502 dba
useradd -g oinstall -G dba -m -d /home/oracle oracle
passwd oracle
-g:指定用戶所屬的群組
-G:指定用戶所屬的附加群組
-d:指定用戶主目錄
-m:若用戶主目錄不存在,則自動(dòng)創(chuàng)建。
修改內(nèi)核參數(shù)
- 編輯文件
/etc/sysctl.conf
vi /etc/sysctl.conf
- 配置文件內(nèi)加入 修改以下參數(shù)。如果沒有可以自己添加,如果默認(rèn)值比參考值大,則不需要修改。
kernel.shmall = 2097152 kernel.shmmax = 536870912 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586`
- 執(zhí)行命令sysctl使其自檢并生效
sysctl -p
修改用戶資源限制
- 修改配置文件
vi /etc/security/limits.conf
- 配置文件下方加入
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240
- 修改配置文件
vi /etc/pam.d/login
- 配置文件內(nèi)加入
session required /lib64/security/pam_limits.so session required pam_limits.so
這里注意:若添加下面語(yǔ)句,本地用戶不能登錄系統(tǒng)!
session required /lib/security/pam_limits.so
創(chuàng)建安裝目錄
- 并賦予組用戶及權(quán)限
mkdir -p /usr/local/oracle/ /usr/local/oraInventory/ /usr/local/oradata/
chmod -R 775 /usr/local/oracle /usr/local/oraInventory /usr/local/oradata
chown -R oracle:oinstall /usr/local/oracle /usr/local/oraInventory /usr/local/oradata
創(chuàng)建oraInst.loc文件
- 創(chuàng)建
oraInst.loc文件
vi /etc/oraInst.loc
- 文件內(nèi)加入以下內(nèi)容
inventory_loc=/usr/local/oraInventory inst_group=oinstall
- 設(shè)定該文件的用戶組及權(quán)限。
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
通過xshell上傳zip文件到/home并解壓
- 解壓文件
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
待解壓完畢后會(huì)生成文件夾/home/database
- 修改其用戶組及權(quán)限此處直接使用777
chmod 777 /home/database
chown -R oracle.oinstall /home/database
關(guān)閉Selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
setenforce 0
[root@oracledb ~]# setenforce 0
關(guān)閉防火墻
service iptables stop
chkconfig iptables off
準(zhǔn)備oracle安裝應(yīng)答模板文件db_install.rsp文件。
- 該文件默認(rèn)存放在解壓后的安裝包內(nèi),也就是本例中
/home/database/response下,將oracle靜默安裝所需應(yīng)答文件全部拷貝至/usr/local/oracle文件夾下
cp /home/database/response/* /usr/local/oracle/
- 修改安裝所需的所有應(yīng)答文件的所屬組及權(quán)限
chown oracle:oinstall /usr/local/oracle/*.rsp
chmod 755 /usr/local/oracle/*.rsp
- 配置db_install.rsp文件
vi /usr/local/oracle/db_install.rsp
- 文件內(nèi)修改相應(yīng)的參數(shù)配置如下:
oracle.install.option=INSTALL_DB_SWONLY //安裝類型,只裝數(shù)據(jù)庫(kù)軟件 ORACLE_HOSTNAME=db //主機(jī)名稱(命令hostname查詢) UNIX_GROUP_NAME=oinstall // 安裝組 INVENTORY_LOCATION=/usr/local/oraInventory //INVENTORY目錄(**不填就是默認(rèn)值,本例此處需修改,因個(gè)人創(chuàng)建安裝目錄而定) SELECTED_LANGUAGES=en,zh_CN // 選擇語(yǔ)言 ORACLE_HOME=/usr/local/oracle/product/11.2.0/db_1 // oracle_home *路徑根據(jù)目錄情況注意修改 本例安裝路徑/usr/local/oracle ORACLE_BASE=/usr/local/oracle // oracle_base *注意修改 oracle.install.db.InstallEdition=EE // oracle版本 oracle.install.db.isCustomInstall=false //自定義安裝,否,使用默認(rèn)組件 oracle.install.db.DBA_GROUP=dba //dba用戶組 oracle.install.db.OPER_GROUP=oinstall //oper用戶組 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //數(shù)據(jù)庫(kù)類型 oracle.install.db.config.starterdb.globalDBName=orcl //globalDBName oracle.install.db.config.starterdb.SID=orcl //SID(**此處注意與環(huán)境變量?jī)?nèi)配置SID一致) oracle.install.db.config.starterdb.memoryLimit=81920 //自動(dòng)管理內(nèi)存的內(nèi)存(M) oracle.install.db.config.starterdb.password.ALL=oracle //設(shè)定所有數(shù)據(jù)庫(kù)用戶使用同一個(gè)密碼 SECURITY_UPDATES_VIA_MYORACLESUPPORT=false //(手動(dòng)寫了false) DECLINE_SECURITY_UPDATES=true // **注意此參數(shù) 設(shè)定一定要為true
設(shè)置oracle用戶環(huán)境
- 由root切換至創(chuàng)建好的oracle用戶 (必須有 - )
su - oracle
- 修改該用戶的用戶配置文件
/home/oracle目錄下
vi /home/oracle/.bash_profile
- 文件內(nèi)加入并修改至以下內(nèi)容
ORACLE_BASE=/usr/local/oracle ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 ORACLE_SID=orcl PATH=$PATH:$ORACLE_HOME/bin export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
- 保存退出后執(zhí)行
source命令立即生效。
source .bash_profile
在oracle用戶下開始安裝。
- 執(zhí)行命令安裝。
/home/database/./runInstaller -silent -force -ignoreSysprereqs -ignorePrereq -responseFile /usr/local/oracle/db_install.rsp
參數(shù)說明
/home/database是安裝包解壓后的路徑,此處根據(jù)安裝包解壓所在位置做修改。
./runInstaller 是主要安裝腳本
-silent 靜默模式
-force 強(qiáng)制安裝
-ignorePrereq忽略warning直接安裝。
-responseFile讀取安裝應(yīng)答文件。
- 可以通過XShell另起窗口并以root登陸。
通過watch -d -n 2 'du -sh /usr/local/oracle'監(jiān)測(cè)oracle安裝目錄是否變化。
或者直接tail -f命令監(jiān)測(cè)安裝log日志。 - 等待安裝編譯直至出現(xiàn)以下內(nèi)容,在新創(chuàng)建的root窗口內(nèi)執(zhí)行以下提示內(nèi)的腳本:
/usr/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
- Open a terminal window
- Log in as "root"
- Run the scripts
- Return to this window and hit"Enter" key to continues
Successfully Setup Software.
DBCA靜默安裝
- 修改
/usr/local/oracle/dbca.rsp文件
[GENERAL] RESPONSEFILE_VERSION = "11.2.0" OPERATION_TYPE = "createDatabase" [CREATEDATABASE] GDBNAME = "orcl" SID = “orcl" TEMPLATENAME = "General_Purpose.dbc" SYSPASSWORD="password" SYSTEMPASSWORD="password" DATAFILEDESTINATION = "/usr/local/oracle/oradata" RECOVERYAREADESTINATION="/usr/local/oracle/flash_recovery_area" CHARACTERSET = "AL32UTF8" NATIONALCHARACTERSET= "UTF8"
- 根據(jù)
init.ora,創(chuàng)建一個(gè)新的initorcl.ora,修改里面的<$ORACLE_HOME>為絕對(duì)路以及修改其他配置名稱。 - 修改hosts文件 配置主機(jī)名 host
vi /etc/hosts
ip 主機(jī)名
- DBCA靜默安裝
su - oracle $ORACLE_HOME/bin/dbca -silent -responseFile /usr/local/oracle/dbca.rsp
復(fù)制數(shù)據(jù)庫(kù)文件
1% 已完成
......
37% 已完成
正在創(chuàng)建并啟動(dòng) Oracle 實(shí)例
40% 已完成
......
62% 已完成
正在進(jìn)行數(shù)據(jù)庫(kù)創(chuàng)建
66% 已完成
......
96% 已完成
100% 已完成
有關(guān)詳細(xì)信息, 請(qǐng)參閱日志文件"/usr/local/oracle/cfgtoollogs/dbca/orcl/orcl.log"。
使用參數(shù)說明:
-silent指以靜默方式執(zhí)行dbca命令
-createDatabase指使用dbca
-templateName指定用來創(chuàng)建數(shù)據(jù)庫(kù)的模板名稱,這里指定為General_Purposedbc,即一般用途的數(shù)據(jù)庫(kù)模板
-gdbname指定創(chuàng)建的全局?jǐn)?shù)據(jù)庫(kù)名稱,這里指定名稱為orcl
-sid 指定數(shù)據(jù)庫(kù)系統(tǒng)標(biāo)識(shí)符,這里指定為orcl,與數(shù)據(jù)庫(kù)同名
-responseFile 指定安裝響應(yīng)文件,NO_VALUE表示沒有指定響應(yīng)文件
-characterSet 指定數(shù)據(jù)庫(kù)使用的字符集,這里指定為AL32UTF8
-memoryPercentage 指定用于oracle的物理內(nèi)存的百分比,這里指定為30%
-emConfiguration 指定Enterprise Management的管理選項(xiàng)。LOCAL表示數(shù)據(jù)庫(kù)由Enterprise Manager本地管理
修改監(jiān)聽配置
- 在此目錄下
/usr/local/oracle/product/11.2.0/db_1/network/admin將/admin/samples下三個(gè)文件如下配置到/admin下:
*修改listener.ora*
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = centOS6.5)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME= orcl) (SID_NAME = orcl) (ORACLE_HOME = /usr/local/oracle/product/11.2.0/db_1) (PROGRAM = extproc) ) )
tnsnames.ora
centOS = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = centOS6.5)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )
- 修改oracle啟動(dòng)配置文件
su - oracle
vi /etc/oratab
orcl:/usr/oracle/product/11.2.0/db_1:Y //把“N”改成“Y”
這樣就可以啟動(dòng)此實(shí)例,監(jiān)聽器。
netstat -tlnp //查看監(jiān)聽情況
dbstart $ORACLE_HOME //此時(shí)所有oracle的進(jìn)程關(guān)閉,監(jiān)聽器也停止。
dbshut $ORACLE_HOME //再次查看監(jiān)聽器狀態(tài)。
lsnrctl start ---啟動(dòng)監(jiān)聽
lsnrctl status ----查看監(jiān)聽
sqlplus配置
[oracle@localhost ~]$ sqlplus /nolog
SQL> conn / as sysdba ---進(jìn)入系統(tǒng)管理用戶
SQL> startup ; ---啟動(dòng)oracle實(shí)例
SQL> shutdown immediate; ---停掉oracle實(shí)例
SQL> create tablespace oracle datafile 'oracle.dbf' size 100M reuse, 'oracle2.dbs' size 100M reuse default storage (initial 500K next 300K pctincrease 20); ----創(chuàng)建表空間
SQL> create user test identified by "test" default tablespace oracle profile default account unlock; -----創(chuàng)建用戶(create user username identified by password)
SQL> grant dba to test; ----授權(quán)用戶dba權(quán)限
Grant succeeded.
SQL> grant unlimited tablespace to test;
Grant succeeded.
SQL> create table z_test(id number,name varchar(20)); ----創(chuàng)建表
SQL> insert into z_test select 1,'a' from dual; ---插入表數(shù)據(jù)
SQL> select name from v$database; ---查看實(shí)例名
SQL> select username,default_tablespace from user_users; ---查看當(dāng)權(quán)用戶所在表空間
SQL> select table_name from all_tables where TABLESPACE_NAME='表空間' ---查看表空間中的所有表(表空間名字一定要大寫。)
SQL> alter database archivelog;
SQL> alter database flashback on; (如果要啟用數(shù)據(jù)庫(kù)閃回功能則執(zhí)行)
SQL> alter database open;
SQL> execute utl_recomp.recomp_serial(); (重新編譯所有可能失效對(duì)象)
SQL> alter system archive log current; (手工歸檔測(cè)試)
SQL> select table_name from dba_tables;
成功?。?!
若要使用遠(yuǎn)程訪問的話,請(qǐng)務(wù)必關(guān)閉防火墻!!!