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] ~]
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; (@+初始化指令碼的路徑)