Linux下oracle資料庫安裝教程
準備工作:
1.關閉Linux的防火牆和SELinux,在/etc/hosts中加入本機IP和主機名;
2.由於oracle10g並沒有支援centos7的安裝,所以在安裝oracle之前首先要配置centos-release檔案
vim /etc/centos-release |
將檔案內容修改為redhat-4
3.安裝oracle的依賴包,按順序安裝時可能有些會安裝失敗,這是由於他們之間相互依賴造成的,可以在所有的依賴包安裝完後再次安裝那些失敗的依賴即可。
binutils-2.17.50.0.6 compat-libstdc++-33-3.2.3 compat-libstdc++-33-3.2.3 (32 bit) elfutils-libelf-0.125 elfutils-libelf-devel-0.125 gcc-4.1.2 gcc-c++-4.1.2 glibc-2.5-24 glibc-2.5-24 (32 bit) glibc-common-2.5 glibc-devel-2.5 glibc-devel-2.5 (32 bit) glibc-headers-2.5 ksh-20060214 libaio-0.3.106 libaio-0.3.106 (32 bit) libaio-devel-0.3.106 libaio-devel-0.3.106 (32 bit) libgcc-4.1.2 libgcc-4.1.2 (32 bit) libstdc++-4.1.2 libstdc++-4.1.2 (32 bit) libstdc++-devel 4.1.2 make-3.81 sysstat-7.0.2 unixODBC-2.2.14-11.el6 (x86_64) or later unixODBC-2.2.14-11.el6.i686 or later unixODBC-devel-2.2.14-11.el6 (x86_64) or later unixODBC-devel-2.2.14-11.el6.i686 or later libXp |
4.檢查安裝Oracle的硬體要求:使用命令df –h,檢查記憶體,交換區,硬碟空間等,要求安裝目錄要大於
5.新增使用者組和使用者並修改目錄許可權
groupadd dba useradd -g dba oracle mkdir -p /data/oracle mkdir -p /data/oracle mkdir -p /data/database chown oracle:dba /data/oracle -R chown oracle:dba /data/database -R chown oracle:dba /data |
6.修改環境變數
系統環境變數:在/etc/sysctl.conf檔案加入以下配置,並執行/sbin/sysctl -p使之生效。
#use for oracle net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.rp_filter = 1 #設定最大開啟檔案數 fs.file-max = 6815744 fs.aio-max-nr = 1048576 #共享記憶體的總量,8G記憶體設定:2097152*4k/1024/1024 kernel.shmall = 2097152 #最大共享記憶體的段大小 kernel.shmmax = 2147483648 #整個系統共享記憶體端的最大數 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 #可使用的IPv4埠範圍 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 vm.hugetlb_shm_group = 1001 |
使用者環境變數:編輯 /home/oracle/.bash_profile,在後面追加以下環境變數值
export LANG=zh_CN.UTF-8 export LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC export ORACLE_HOME=/data/oracle/product/10g export ORACLE_SID=centos export ORACLE_BASE=/data/oracle export PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/data/oracle/product/10g/bin export LD_LIBRARY_PATH=/data/oracle/product/10g/lib:/opt/oracle/product/10g/network/lib export CLASSPATH=/data/oracle/product/10g/product/jlib:/data/oracle/product/10g/jlib:/data/oracle/product/10g/jre export ORA_NLS33=/data/oracle/product/10g/ocommon/nls/admin/data export NLS_LANG=AMERICAN_AMERICA.UTF8 export ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH CLASSPATH ORA_NLS33 NLS_LANG export PATH=$PATH:$ORACLE_HOME/bin |
執行如下指令,使其生效:
source /home/oracle/.bash_profile |
7.在vim /etc/security/limits.conf檔案行末新增以下內容
# End of file * soft nofile 65536 * hard nofile 65536 * soft nproc 65535 * hard nproc 65535 * soft sigpending 65535 * hard sigpending 65535 |
8.設定Oracle使用者的profile檔案:使用如下命令,root使用者執行
su - root vim /etc/profile |
在profile檔案末增加如下內容
#For Oracle if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi |
此外檢查該配置檔案中的ORACLE_HOME和.bash_profile是否一致。
Oracle安裝:
1.上傳和解壓軟體包:oracle10g的基礎包:x-10201.cpio.gz
gzip -d x-10201.cpio.gz 解壓縮 cpio -idmv < x-10201.cpio 開啟包 |
注:在/data/database/中進行解壓和開啟包
2.配置enterprise.rsp檔案:注意,檔案裡標為 <Value Required> 的地方都是必填項。標為 <Value Unspecified> 的都是可選項,一律跳過不看。
UNIX_GROUP_NAME="dba" ORACLE_HOME="/data/oracle/product/10g" ORACLE_HOME_NAME="OraDbHome1" ORACLE_HOSTNAME="centos" COMPONENT_LANGUAGES={"en","zh_CN"} s_nameForDBAGrp="dba" s_nameForOPERGrp="dba" n_configurationOption=3 |
3.enterprise.rsp檔案配置好後,開始oracle的靜默安裝
./runInstaller -ignoreSysPrereqs -silent -responseFile /data/database/database/response/enterprise.rsp |
注:如果安裝過程中出現亂碼,可在當前視窗下執行如下指令(僅臨時生效)
export LANG=en_US.UTF-8 |
4.使用root使用者執行
/data/oracle/oraInventory/orainstRoot.sh /data/oracle/product/10g/root.sh |
5.例項環境的確認
export ORACLE_SID=centos |
6.建立oracle需要的目錄
mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/adump mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/bdump mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/cdump mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/dpdump mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/udump mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/pfile |
7.建立密碼檔案
$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapwcip password=manager force=y |
8.使用oracle使用者建立目錄
/data/oracle/oradata/flash_recovery_area
/data/oracle/oradata/archlog
9.修改引數initcentos.ora檔案
vim /data/oracle/product/10g/dbs/initcentos.ora |
將initcentos.ora配置檔案配置如下:
db_name=centos db_block_size= 8192 sga_max_size= 160M control_files=”/data/oracle/oradata/control1.ctl”,”/data/oracle/oradata/control2.ctl”,”/data/oracle/oradata/control3.ctl” undo_management=AUTO undo_tablespace=UNDOTBS1 user_dump_dest=/data/oracle/admin/centos/udump open_cursors=500 processes=20 job_queue_processes=10 db_files =2048 db_recovery_file_dest=/data/oracle/oradata/flash_recovery_area db_recovery_file_dest_size=2048M log_archive_dest_1=”LOCATION=/data/oracle/oradata/archlog” log_archive_format=centos_%t_%s_%r.arch |
10.連線到oralce
sqlplus "/as sysdba" 連線到資料庫 startup nomount 啟動資料庫例項(僅啟動例項,並沒有mount資料庫) |
若使用sqlplus連線資料庫出現亂碼時,只需在/home/oracle/.bash_profile中修改NLS_LANG即可
export NLS_LANG=AMERICAN_AMERICA.UTF8 |
Startup nomount時的報錯:
這種問題一般是/data/oracle/product/10g/dbs/目錄下不存在initcentos.ora檔案,或者是該檔案許可權有問題。
a.若是/data/oracle/product/10g/dbs/目錄下不存在initcentos.ora檔案,則要在/data/oracle/admin/centos/pfile/目錄下找到檔案init.ora.1242014234024(檔名並不一定相同),將它複製到/data/oracle/product/10g/dbs/目錄下並改名為initcentos.ora。
b.若檢視initcentos.ora檔案許可權
後得知是由於檔案許可權問題,將該檔案的所屬使用者和使用者組改為oracle和dba
cd /data/oracle/product/10g/dbs/ ls chown oracle:dba initcentos.ora |
c.關閉oracle例項
SHUTDOWN IMMEDIATE |
11.建庫
啟動例項後,利用建庫指令碼建立資料庫:
create database centos MAXINSTANCES 8 MAXLOGHISTORY 1 MAXLOGFILES 16 MAXLOGMEMBERS 4 MAXDATAFILES 2048 datafile '/data/oracle/oradata/system01.dbf' size 500M reuse autoextend on next 20M maxsize unlimited sysaux datafile '/data/oracle/oradata/sysaux.dbf' size 200M autoextend on next 20M maxsize unlimited default temporary tablespace temp tempfile '/data/oracle/oradata/temp01.dbf' size 200M reuse autoextend on next 20M maxsize unlimited undo tablespace UNDOTBS1 datafile '/data/oracle/oradata/undotbs1.dbf' size 2048M reuse autoextend off CHARACTER SET ZHS16GBK NATIONAL CHARACTER SET AL16UTF16 logfile group 1 ('/data/oracle/oradata/redo1.log') size 200M reuse,group 2 ('/data/oracle/oradata/redo2.log') size 200M reuse,group 3 ('/data/oracle/oradata/redo3.log') size 200M reuse USER SYS IDENTIFIED BY manager USER SYSTEM IDENTIFIED BY manager; |
12.建立表空間和使用者
建立資料表空間
create tablespace centos nologging datafile '/data/oracle/oradata/centos01.dbf' size 512m; |
建立使用者
create user centos identified by "centos" default tablespace centos temporary tablespace temp profile DEFAULT quota unlimited on centos; |
授權:
grant dba to centos; |
13.配置監聽及啟動監聽
使用oracle使用者執行如下操作:
vim /data/oracle/product/10g/network/admin/samples/listener.ora |
對監聽檔案配置如下:
LISTENER = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)) (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)) ) SID_LIST_LISTENER= (SID_LIST= (SID_DESC= #BEQUEATH CONFIG (GLOBAL_DBNAME=salesdb.mycompany) (SID_NAME=sid1) (ORACLE_HOME=/data/oracle/product/10g) #PRESPAWN CONFIG (PRESPAWN_MAX=20) (PRESPAWN_LIST= (PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1)) ) ) ) |
啟動監聽:
lsnrctl start |
檢視監聽:
lsnrctl status |
停止監聽:
lsnrctl stop |
14.執行資料字典指令碼
首先要關閉上次啟動的例項,然後再啟動例項同時mount資料庫
SHUTDOWN IMMEDIATE quit sqlplus “/ as sysdba” startup |
執行資料字典指令碼,其中catalog和catproc是必需的,其它可選:
SQL> @/data/oracle/product/10g/rdbms/admin/catalog.sql(建資料字典檢視) SQL> @/data/oracle/product/10g/rdbms/admin/catproc.sql(建儲存過程包) SQL> @/data/oracle/product/10g/rdbms/admin/catblock.sql(建鎖相關的幾個檢視) SQL> @/data/oracle/product/10g/rdbms/admin/catoctk.sql(建密碼工具包dbms_crypto_toolkit) SQL> @/data/oracle/product/10g/rdbms/admin/owminst.plb(建工作空間管理相關物件,如dmbs_wm) |