1. 程式人生 > >Linux上安裝Oracle資料庫(嘔心瀝血超級詳細版)

Linux上安裝Oracle資料庫(嘔心瀝血超級詳細版)

第一步:系統磁碟分割槽:

1:檢查磁碟資訊

[[email protected] ~]# fdisk –l

2:進入分割槽的磁碟

  [[email protected] ~]# fdisk /dev/vdb
    Command (m for help): n #新建分割槽
    Command actioncd
       e   extended
       p   primary partition (1-4)

p #新增主分割槽
Partition number (1-4): 1 #分割槽開始
First cylinder (1-65270, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-65270, default 65270): #分割槽結束預設值是回車
Using default value 65270

Command (m for help): t #更改磁碟型別
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w # w儲存分割槽退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

3:建立邏輯卷

[[email protected] ~]# pvcreate /dev/vdb1  #建立物理卷
  Physical volume "/dev/xvdb1" successfully created

[[email protected] ~]# vgcreate -s 128M vgdata /dev/vdb1 #建立邏輯卷組
  Volume group "vgdata" successfully created

[[email protected] ~]# lvcreate -L 499G -n lvdata vgdata #建立邏輯卷
  Logical volume "lvdata" created

[
[email protected]
~]# mkfs.ext4 /dev/vgdata/lvdata #格式化磁碟 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 32702464 inodes, 130809856 blocks 6540492 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 3992 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 32 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.

4:掛載邏輯卷

[[email protected] ~]# mkdir /app #建議在根目錄下的資料夾app

[[email protected] ~]# mount /dev/vgdata/lvdata /app #手動用mount 掛載邏輯

[[email protected] ~]# df –h #檢視掛載的情況

5:設定開機啟動/固話掛載

[[email protected] ~]# vi /etc/fstab       #修改命令
/dev/vgdata/lvdata      /app        ext4    defaults        0 0      在底部新增

6:系統swqp分割槽掛載

[[email protected] ~]# dd if=/dev/zero of=/app/swap bs=1024 count=16000000 #新增交換分割槽16GB
16000000+0 records in
16000000+0 records out
16384000000 bytes (16 GB) copied, 341.336 s, 48.0 MB/s
[[email protected] ~]# mkswap /app/swap        
[[email protected] ~]# swapon /app/swap   #建立交換分割槽檔案     
[[email protected] ~]# swapon –a  #啟用交換分割槽
[[email protected] ~]# free -m  #檢視分割槽中的swap
	             total       used       free     shared    buffers     cached
Mem:         64427       1588      62838        255         20        843
-/+ buffers/cache:        724      63703
Swap:        15624          0      15624	
[[email protected] ~]# vi /etc/fstab       #修改命令
/app/swap       swap                    swap    defaults        0 0

第二步:建立oracle使用者

[[email protected] ~]# groupadd oinstall
[[email protected] ~]# groupadd dba
[[email protected] home]# useradd -g oinstall -G dba oracle
[[email protected] home]# passwd oracle

第三步:修改系統的核心引數

[[email protected] home]# vi /etc/sysctl.conf
kernel.shmall = 2097152                           修改
kernel.shmmax = 2147483648				
kernel.shmmni = 4096							新增
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 1048576
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr= 1048576

[[email protected] ~]# sysctl -p #重啟生效核心引數

[[email protected] home]# vi /etc/security/limits.conf
oracle soft   nofile 65536					新增
oracle hard   nofile 65536
oracle soft   nproc   2047
oracle hard   nproc   16384

[[email protected] home]# vi /etc/pam.d/login
session    required     pam_limits.so			新增

第四步:建立安裝目錄和配置環境變數

已經有安裝的目錄/app

[[email protected] ~]# mkdir /app/oracle
[[email protected] home]# chown -R oracle:oinstall /app
[[email protected] home]# chmod -R 755 /app

修改oracle使用者的環境變數

[[email protected] home]#su - oracle
[[email protected] home] $ vi .bash_profile
umask 022												新增在最後一句之前
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/sbin
LD_LIBRARY_PATH=/usr/lib:/usr/X11R6/lib
ORACLE_BASE=/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
ORACLE_SID=oracle11
LD_LIBRARY_PATH=$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/lib:$LD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:$PATH
export PATH LD_LIBRARY_PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LC_ALL=en_US.UTF-8

[[email protected] ~] $ source .bash_profile					執行環境變數

第五步:安裝VNC圖形介面

1、下載vncserver

[[email protected] ~] $ su - root
[[email protected] ~]# yum -y groupinstall "Desktop"   
[[email protected] ~]# yum -y groupinstall "X Window System"
[[email protected] ~]# yum install tigervnc tigervnc-server
Is this ok [y/N]: y

2、配置vncserver

[[email protected] ~]# cd /etc/sysconfig
[[email protected] ~]# vi vncservers 
VNCSERVERS="1:oracle"
 VNCSERVERARGS[1]="-geometry 1024x768"

將檔案中的內容按照截圖中修改
在這裡插入圖片描述
3、啟動vncserver

[[email protected] ~]$ vncserver 

回車後系統會提示讓你輸入一個密碼,這個密碼是vnc連線密碼,和系統密碼沒有關係。啟動後系統會提示出一個程序號為1的視窗。

提示:

  • 1、若進入後系統顯示灰屏的話需要修改 ~/.vnc/xstartup 檔案,找到最後一行,
    將 #twm & #註釋掉這一行
    gnome-session & #新增這一行
  • 2、如果需要以圖形介面控制伺服器的話就需要安裝gnome介面。 方法如下
    yum groupinstall “Desktop”
    yum groupinstall “X Window System”
    yum groupinstall “Chinese Support”
  • 3、如果vncserver以root方式登入,但安裝資料庫輸入netca命令,進入不了,那麼就切換oracle使用者進行vnc,具體操作(首先先建立oracle使用者)
    (1)、停止vnc service vncserver stop
    (2)、修改/etc/sysconfig/vncserver ,將root改成oracle
    (3)、切換到oracle使用者,設定vncserver密碼,#vncpasswd
    (4)、重新啟動vnc service vncserver start

第六步:在oracle使用者下啟動VNC服務

[[email protected] ~]$ vncserver
You will require a password to access your desktops.
Password:
Verify:
xauth:  creating new authority file /home/oracle/.Xauthority

New 'iZ28ubyqhl0Z:1 (oracle)' desktop is iZ28ubyqhl0Z:1
Creating default startup script /home/oracle/.vnc/xstartup
Starting applications specified in /home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/iZ28ubyqhl0Z:1.log
[[email protected] ~]$ ps -aef|grep vnc				檢視vpn是否執行
oracle    2153     1  2 16:19 pts/1    00:00:00 /usr/bin/Xvnc :1 -desktop iZ28ubyqhl0Z:1 (oracle) -auth /home/oracle/.Xauthority -geometry 1024x768 -rfbwait 30000 -rfbauth /home/oracle/.vnc/passwd -rfbport 5901 -fp catalogue:/etc/X11/fontpath.d -pn
oracle    2161  2160  0 16:19 pts/1    00:00:00 vncconfig -iconic
oracle    2339  2121  0 16:20 pts/1    00:00:00 grep vn

用遠端工具中登入,輸入IP地址加後面的號碼 輸入密碼進入
在這裡插入圖片描述
在這裡插入圖片描述

第七步:安裝oracle軟體(在上圖中/客戶的桌面安裝)

上傳oracle檔案到oracle目錄,然後解壓上傳的壓縮檔案,解壓使用
1.Unzip命令

[[email protected] ~]# cd /app/oracle
[[email protected] ~]# unzip linux.x64_11gR2_database_1of2
[[email protected] ~]# unzip linux.x64_11gR2_database_2of2

利用unzip命令解壓縮的時候,出現-bash: unzip: command not found的錯誤。
unzip——命令沒有找到,其原因肯定是沒有安裝unzip。利用一句命令就可以解決了。

[[email protected]~]#yum install -y unzip zip

2.開始安裝oracle軟體

[[email protected] ~]# yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel

[[email protected] ~]# yum install glibc* gcc* make* compat-db* libstdc* libXp* libXtst* compat-libstdc++* -y

[[email protected] pingtai]# rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel(此步驟檢查有沒有丟失的依賴包)

第八步 安裝oracle軟體(在上圖中/vpn桌面安裝)

[[email protected] ~] l s [ o r a c l e @ i Z 28 u b y q h l 0 Z   ] ls [[email protected] ~] cd database/
[[email protected] ~]$./runlnstaller
彈出圖形安裝介面
1.取消溝-----下一步------yes(提示沒有填寫郵箱)

在這裡插入圖片描述
在這裡插入圖片描述
2. 勾選“Skip software updates”不更新 ------下一步
在這裡插入圖片描述
3. 勾選“install database software only”只安裝軟體------下一步
在這裡插入圖片描述
4. 勾選“single instance database installtion” 建立單例項的資料庫安裝—下一步
在這裡插入圖片描述
5.安裝語言 使用預設英文 下一步
在這裡插入圖片描述
6.勾選 “Enterprise Edition(4.5G)”安裝企業版—下一步
在這裡插入圖片描述
7. Oracle安裝路徑自動識別到了配置的變數,下一步
在這裡插入圖片描述
8.安裝檔案的路徑檔案目錄,自動識別。下一步
在這裡插入圖片描述
9.選擇組的所屬,下一步
在這裡插入圖片描述
10.開始檢查安裝的系統的檔案的引數資訊
在這裡插入圖片描述
11.以上是需要調整的一些核心和缺少的包體資訊,需要完成後,再繼續 下一步
在這裡插入圖片描述
12.所有缺少的包資訊,我這邊全部做完後後 下一步,開始安裝
13.

14.顯示的安裝進度資訊
在這裡插入圖片描述
不執行 需要root的使用者下依次執行以上的指令碼

[[email protected] ~]# /app/oraInventory/orainstRoot.sh 
Changing permissions of /app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /app/oraInventory to oinstall.
The execution of the script is complete.
[[email protected] ~]# /app/oracle/product/11.2.0.3/db_1/root.sh 
Performing root user operation for Oracle 11g 

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /app/oracle/product/11.2.0.3/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

執行完成後點選 OK

在這裡插入圖片描述
15.提示你軟體已經安裝成功了。
在這裡插入圖片描述

第九步 配置oracle資料的監聽

在圖形介面的vnc中,命令列中 輸入netca
1.[[email protected] ~]$netca
在這裡插入圖片描述
2.點選下一步 下一步 完成即可;
在這裡插入圖片描述

3.以上提示監聽配置成功,且是啟動了;
在這裡插入圖片描述

第十步建立oracle資料庫的例項

在圖形介面使用dbca命令建立例項(安裝oracle的時候,忘記去執行 一個root.sh檔案了,當然,需要用root使用者執行:
1.解決辦法:

[[email protected] 10.2.0]# cd /app/oracle/product/11.2.0/dbhome_1/
[[email protected] 10.2.0]# ./root.sh(建立/etc/oratab檔案)

以oracle使用者執行
2.

[[email protected] ~]$dbca

在這裡插入圖片描述

在這裡插入圖片描述

3.開始配置例項,下一步
在這裡插入圖片描述
4.建立一個數據實例,下一步
在這裡插入圖片描述
5.選擇建立的模版,下一步
在這裡插入圖片描述
6.輸入例項的名字為:oracle11 下一步
在這裡插入圖片描述

7.預設是配置管理的EM的,直接下一步
在這裡插入圖片描述
8.設定資料庫的使用者統一的密碼
在這裡插入圖片描述
9.預設設定,下一步
在這裡插入圖片描述
10.開啟歸檔模式,設定快速恢復區大小為150GB;
在這裡插入圖片描述
例子,11.下一步
在這裡插入圖片描述
12.程序數量設定為1450
在這裡插入圖片描述
13、資料庫的字符集設定成簡體中文的
在這裡插入圖片描述
14.遊標的大小設定為3000 (需要修改程序數限制)
15.以root身份
[[email protected] oracle]#cd /etc/security/limits.d/
[[email protected] oracle]#vim 90-nproc.conf
#* soft nproc 1024
在這裡插入圖片描述

16.設定完成直接下一步
在這裡插入圖片描述
17.控制檔案系統預設是2個,建議增加1個控制檔案;
在這裡插入圖片描述

18.重做日誌檔案1組3個成員,每組的檔案大小為512MB
在這裡插入圖片描述

19.設定完成 下一步
在這裡插入圖片描述
在這裡插入圖片描述
20.顯示配置資訊,點選OK
在這裡插入圖片描述

21.開始配置資料庫的例項資訊;

在這裡插入圖片描述

22.出現以上介面就是安裝完成了
在這裡插入圖片描述

第十一 關閉啟動的VNC服務

 [[email protected] ~]$ ps -aef|grep vnc
    oracle    2153     1  0 16:19 pts/1    00:00:18 /usr/bin/Xvnc :1 -desktop iZ28ubyqhl0Z:1 (oracle) -auth /home/oracle/.Xauthority -geometry 1024x768 -rfbwait 30000 -rfbauth /home/oracle/.vnc/passwd -rfbport 5901 -fp catalogue:/etc/X11/fontpath.d -pn
    oracle    2161  2160  0 16:19 pts/1    00:00:00 vncconfig -iconic
    oracle    5952  5868  0 17:49 pts/3    00:00:00 grep vnc

 [[email protected] ~]$ vncserver -kill :1

2.檢查vncserver開機不啟動

[[email protected] ~]# chkconfig --list vncserver
vncserver       0:off   1:off   2:off   3:off   4:off   5:off   6:off

3.配置防火牆規則

[[email protected] ~]#vim /etc/sysconfig/iptables    (配置看文件)
[[email protected] ~]# service iptables restart
[[email protected] ~]# service iptables status
[[email protected] ~]# chkconfig iptables on
4.檢視資料庫是否連線成功

root使用者登入
2:切換到使用者oracle使用者操作
命令:su – oracle
3:檢視資料庫監聽是否正常
命令:lsnrctl status
在這裡插入圖片描述
4:進入SQLPLUS
命令:sqlplus / as sysdba

5:啟動監聽
命令:startup

第十二 修改oarcle的密碼檔案不過期

在linux系統的oracle作業系統使用者下操作

1.[[email protected] ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Fri Jul 31 12:04:45 2015

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

2.SQL> alter profile default limit password_life_time unlimited;
3.SQL> alter user system identified by 123456; 為system新增口令

Profile altered.
1、檢視使用者的proifle是哪個,一般是default:

sql>Select username,PROFILE FROM dba_users;

2、檢視指定概要檔案(如default)的密碼有效期設定:

sql> Select * FROM dba_profiles s Where s.PROFILE='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME';

3、將密碼有效期由預設的180天修改成“無限制”:

sql>Alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

修改之後不需要重啟動資料庫,會立即生效。

第十三 安裝sql客戶端,連線oracle

在Windows機中以管理員身份安裝oracle10g client和plsql developer
1.配置oracle net 新增新的
在這裡插入圖片描述
2.自定義名—下一步
在這裡插入圖片描述
3.下一步
在這裡插入圖片描述
4.填寫遠端連線的oracle資料庫的ip ----下一步
在這裡插入圖片描述
5.填寫資料庫例項名稱----下一步
在這裡插入圖片描述
6.測試
在這裡插入圖片描述
7.更改登入—輸入管理員名—密碼—測試
在這裡插入圖片描述
在這裡插入圖片描述
點選測試顯示成功,則完成
8.登入plsql 使用者sys 密碼(創例項的管理員密碼)

第十四 建立熱盤的表空間()

在軟體中新建—開啟—SQL視窗—輸入命令—執行
在這裡插入圖片描述

熱盤表空間名稱:SMSDB_DATA和SMSDB_INDX
1.在oracle的sys用下執行:

CREATE TABLESPACE SMSDB_DATA DATAFILE '/app/oracle/oradata/oracle11/SMSDB_DATA01.dbf' SIZE 20G,
'/app/oracle/oradata/oracle11/SMSDB_DATA02.dbf' SIZE 20G,
'/app/oracle/oradata/oracle11/SMSDB_DATA03.dbf' SIZE 20G,
'/app/oracle/oradata/oracle11/SMSDB_DATA04.dbf' SIZE 20G,
'/app/oracle/oradata/oracle11/SMSDB_DATA05.dbf' SIZE 20G,
'/app/oracle/oradata/oracle11/SMSDB_DATA06.dbf' SIZE 20G LOGGING EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M SEGMENT SPACE MANAGEMENT AUTO;

2.增加表空間資料檔案

alter TABLESPACE SMSDB_DATA add DATAFILE '/app/oracle/oradata/oracle11/SMSDB_DATA20.dbf' SIZE 10G, 
'/app/oracle/oradata/oracle11/SMSDB_DATA21.dbf' SIZE 10G,
'/app/oracle/oradata/oracle11/SMSDB_DATA22.dbf' SIZE 10G 
AUTOEXTEND ON  next 2M MAXSIZE UNLIMITED;

3.建立熱盤表空間:SMSDB_INDX
在oracle的sys用下執行:

CREATE TABLESPACE SMSDB_INDX DATAFILE 
'/app/oracle/oradata/oracle11/SMSDB_INDX_01.dbf' SIZE 15G,
'/app/oracle/oradata/oracle11/SMSDB_INDX_02.dbf' SIZE 15G,
'/app/oracle/oradata/oracle11/SMSDB_INDX_03.dbf' SIZE 15G LOGGING EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M SEGMENT SPACE MANAGEMENT AUTO;

4.建立smsdb使用者和授予許可權

create user smsdb identified by 123456 default tablespace SMSDB_DATA;
grant RESOURCE,SELECT_CATALOG_ROLE,connect to smsdb;
grant RESOURCE,SELECT_CATALOG_ROLE,connect to smsdb;
grant create any table,create any procedure to smsdb;
grant debug any procedure ,debug connect session to smsdb;
alter user smsdb quota unlimited on SMSDB_DATA;
alter user smsdb quota unlimited on SMSDB_INDX;
grant create database link to smsdb;
grant select any table to smsdb;
grant IMP_FULL_DATABASE to smsdb;
Grant read,write on directory P_DIR to smsdb;

5.查詢表空間名字:

select name from v$tablespace;

6.查詢表空間的限制情況:

select TABLESPACE_NAME ,USERNAME,MAX_BYTES from  dba_ts_quotas where username='SMSDB';

7.檢視賦予使用者的許可權:

select * from user_sys_privs;
select * from user_role_privs;

*****安裝完後,會出來一個對話方塊,提示用root使用者執行這兩個指令碼:

[[email protected] ~]# /app/oraInventory/orainstRoot.sh
[[email protected] ~]# /app/oracle/product/11.2.0/dbhome_1/root.sh

*****客戶登陸不上平臺,訪問伺服器失敗:
解決辦法:使用root登入,然後su - oracle

1.[[email protected] ~]# lsnrctl status 檢視資料庫以及資料庫監聽情況
2.[[email protected] ~]# lsnrctl start 啟動監聽
3.[[email protected] ~]# lsnrctl stop 停止監聽

startup 啟動監聽

檢查資料庫是否正常:

[[email protected] ~]# sqlplus / as sysdba 登陸資料庫

輸入這條sql語句進行測試: SQL> Select status from v$instance;
若是open 表示正常(正常的話就請客戶那邊聯絡 移動測 看下同步服務是否正常)
1.對比庫
完善庫使用者smsdb—連線為normal—工具—比較表資料庫—目標會話-登入—比較—點對勾

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
退出完善資料庫

第十五 初始化資料庫

Smsdb使用者登入—新建—命令視窗—輸入語句 @C:\oracle\init.txt; (@+初始化指令碼的路徑)