Debian 8 下安裝 oracle 11g(手動建庫非ASM)
oracle一直是不支援debian系統的。怎奈領導非要在debian上裝,所以開始。
1.建立目錄及使用者:
/usr/sbin/groupadd -g 501 oinstall && /usr/sbin/groupadd -g 502 dba && /usr/sbin/groupadd -g 503 oper && /usr/sbin/useradd -g oinstall -G dba,oper -d /home/oracle/ -s /bin/bash oracle
mkdir -p /data/ora11g/product/11.2.0.4/db_1 && mkdir -p /home/oracle && chown -R oracle:oinstall /data/ora11g && chmod -R 775 /data/ora11g && chown -R oracle:oinstall /home/oracle
2.安裝依賴包
這裡要配置好源 vi /etc/apt/sources.list
常用命令:
apt-cache pkgnames | grep libXp | more
apt-cache searche xxxx
安裝好依賴包:(儘量檢查全,不然後面不知道會報什麼奇怪的錯誤)
apt-get install gcc g++ glibc-* libaio* libstdc++6 libstdc++-4.9-dev make binutils openjdk-7-jdk libc6 libc6-dev libstdc++6 libstdc++5 rpm gawk alien ksh lesstif2 libmotif3 libaio1 linux-headers-*common elfutils libaio-dev sysstat unixodbc-bin unixodbc-dev pdksh
3 . 修改配置檔案
這裡的機器配置是48核 120G記憶體,所以有些引數不要照抄 (top 按 1 看核數)
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 16515072
kernel.shmmax = 67645734912
kernel.shmmni = 4096
kernel.sem = 5010 641280 5010 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
systcl -p 使之生效
vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
vi /etc/pam.d/login 最後加上:
session required pam_limits.so
最後檢查防火牆 iptables -F 清空所有規則。
4.解壓檔案
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
unzip p13390677_112040_Linux-x86-64_3of7.zip
5.開始靜默安裝
裡面這些rsp模板檔案的引數 自己看著改吧,不多說了。
./runInstaller -silent -force -ignoreSysPrereqs -ignorePrereq -responseFile /home/oracle/db_install.rsp
6 . 完成之後開始dbca建庫的時候報錯,缺少兩個庫檔案
njni11,libclntsh.so.11.1
UnsatisfiedLinkError exception loading native library: njni11
Java.lang.UnsatisfiedLinkError: /data/ora11g/product/11.2.0/dbhome_1/lib/libnjni11.so: /data/ora11g/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1: undefined symbol: nnfyboot
修改是把家目錄下的inventory/Scripts/ext/lib/下的libclntsh.so.11.1 拷貝到$ORACLE_HOME/lib資料夾中去
7.之後dbca正常執行 但是開始報TNS無連線。後續安裝監聽後,sqlplus / as sysdba
登入也不行。lsnrctl命令無反應。 我這裡採取了一個比較極端的方式,把別的機器的linux系統下正常執行的資料庫機器上的 $ORACLE_HOME/bin 下的檔案都 rsync到 這個debian機器上了。 之後就有反應了。。。其實很多奇怪詭異的地方,不好按正常思路解決。
8.這裡貼兩個標準的listener.ora 和tnsnames.ora 檔案
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.19)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /data/ora11g
DIAG_ADR_ENABLED_LISTENER = OFF
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test)
(ORACLE_HOME = /data/ora11g/product/11.2.0.4/db_1)
(SID_NAME = test)
)
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /data/ora11g/product/11.2.0.4/db_1)
(PROGRAM = extproc)
)
)
TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.19)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)
9 . 之後鑑於別的各種報錯,決定手動建庫
目錄方面基本不用補了,因為開始都建的差不多了。
首先建立密碼檔案
orapwd file=orapwSID password=oracle entries=5
然後從好的機器上拷貝一份initXXX.ora檔案,資料庫以pfile啟動到nomount狀態
建庫指令碼:
create database test CONTROLFILE REUSE
MAXINSTANCES 8
MAXDATAFILES 3000
MAXLOGHISTORY 1024
MAXLOGFILES 64
MAXLOGMEMBERS 4
character set AL32UTF8 national character set AL16UTF16
logfile
group 1 ('/data/ora11g/oradata/test/redo01.log') size 1g reuse,
group 2 ('/data/ora11g/oradata/test/redo02.log') size 1g reuse,
group 3 ('/data/ora11g/oradata/test/redo03.log') size 1g reuse,
group 4 ('/data/ora11g/oradata/test/redo04.log') size 1g reuse,
group 5 ('/data/ora11g/oradata/test/redo05.log') size 1g reuse,
group 6 ('/data/ora11g/oradata/test/redo06.log') size 1g reuse,
group 7 ('/data/ora11g/oradata/test/redo07.log') size 1g reuse,
group 8 ('/data/ora11g/oradata/test/redo08.log') size 1g reuse,
group 9 ('/data/ora11g/oradata/test/redo09.log') size 1g reuse
datafile '/data/ora11g/oradata/test/system01.dbf' size 1g reuse extent management local
sysaux datafile '/data/ora11g/oradata/test/sysaux01.dbf' size 20g
default temporary tablespace temp tempfile '/data/ora11g/oradata/test/temp01.dbf' size 5g reuse
undo tablespace undotbs1 datafile '/data/ora11g/oradata/test/undotbs01.dbf' size 30g reuse
USER SYS IDENTIFIED BY "ora11g" USER SYSTEM IDENTIFIED BY "ora11g";
建庫完成後要跑一個指令碼,主要用什麼使用者來跑
spool /home/oracle/record.log
@?/rdbms/admin/catalog.sql ; (必跑,建資料字典檢視)
@?/rdbms/admin/catproc.sql ; (必跑,建儲存過程包)
@?/rdbms/admin/catblock.sql ; (建鎖相關的幾個檢視)
@?/rdbms/admin/catoctk.sql ; (建密碼工具包dbms_crypto_toolkit)
@?/rdbms/admin/owminst.plb ; (建工作空間管理相關物件,如dmbs_wm)
spool off
之後可以檢查log 檢視是否有不能接受的報錯。
connect system/oracle
@?/sqlplus/admin/pupbld.sql
@?/sqlplus/admin/help/hlpbld.sql helpus.sql
connect /as sysdba
CREATE TABLESPACE USERS LOGGING DATAFILE '/data/ora11g/oradata/test/user01.dbf' SIZE 30g EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
ALTER DATABASE DEFAULT TABLESPACE USERS;
最後重啟資料庫,到mount模式開啟歸檔 ,結束。