OCP課程24:管理Ⅰ之資料庫安裝
課程目標:
- 單例項GI的安裝
- 資料庫軟體的安裝
1、DBA的工作
第一,評估資料庫伺服器的硬體,根據業務的需求,比如資料量,業務量等,決定伺服器的配置
第二,安裝資料庫軟體
第三,規劃資料庫及安全策略
第四,建立,遷移然後開啟資料庫
第五,備份資料庫
第六,建立使用者,配置網路連線
第七,部署應用,建立表空間,建立表,建立儲存過程,建立觸發器等
第八,恢復出問題的資料庫
第九,監控資料庫的效能
2、管理資料庫的工具
為完成上面的任務,oracle提供了一些工具
- 安裝資料庫軟體可以使用統一安裝器(runInstaller)
- 建立資料庫可以用資料庫配置助手(dbca)
- 升級可以使用資料庫升級助手(dbua)
- 配置網路可以使用網路管理器或者網路配置助手(netmgr、netca)
- 管理Oracle可以使用企業管理器(emctl、emca)
- 安裝GI後,管理服務可以使用服務控制工具(srvctl)
- SQL*Plus使用命令列工具管理資料庫(sqlplus)
- 備份恢復可以使用恢復管理器(rman)
- 資料的匯入,匯出,遷移可以使用資料泵(impdp、expdp)
- 使用SQL*Loader匯入資料(sqlldr)
3、安裝規劃
(1)首先要明確安裝目的,是要安裝一個單例項的資料庫還是一個RAC的資料庫,如果只是安裝單例項的資料庫,那就直接安裝資料庫就可以了,如果要部署RAC,那麼就需要先安裝GI,配置ASM。管理Ⅰ不包括RAC的內容,但是包括ASM的內容,故需要先安裝GI,然後建立一個單例項的資料庫。
(2)明確對硬體的最低要求,一般透過聯機文件或者MOS進行檢視確認,如果沒有MOS賬戶,可以檢視http://blog.itpub.net/17252115/viewspace-751427/。
(3)對於安裝順序,如果是部署RAC,推薦是先安裝GI,配置ASM,再安裝資料庫。如果先安裝資料庫,再去安裝GI,就需要手工註冊你的資料庫並將檔案遷移到ASM,就很麻煩了。
(4)安裝的時候如果需要用到儲存,還需要儲存的工程師進行配合。
4、GI和資料庫安裝的系統要求
記憶體的要求:
- 安裝帶EM的資料庫,至少需要1GB的記憶體
- 安裝GI,至少需要1.5GB的記憶體
磁碟空間的要求:
- 如果只是安裝資料庫,記憶體為2GB,swap為3GB,就是說記憶體為1GB到2GB,那麼swap為記憶體的1.5倍,記憶體為2GB到16GB,那麼swap等於記憶體,記憶體大於16GB,那麼swap就為16GB;如果安裝GI,記憶體為2GB到8GB,那麼swap為記憶體的2倍,如果記憶體為8GB到32GB,那麼swap為記憶體的1.5倍,如果記憶體大於32GB,那麼swap就為32GB.
- /tmp目錄的空間至少為1GB
- 資料庫軟體需要3.8GB空間
- GI軟體需要4.5GB空間
5、作業系統的組和使用者
安裝之前需要建立相關的組和使用者,對於使用者,如果只是安裝Oracle,一般就建立使用者Oracle,如果要安裝GI,一般建立使用者Grid,對於組,如果只是安裝資料庫軟體,只需要建立oinstall組和dba組,如果還要安裝GI,還可以建立asmdba,asmoper,asmadmin,當然你也可以只使用dba這個組,使用這麼多組的原因就是細分許可權。
oper
6、設定環境變數
Oracle推薦在安裝之前設定以下這4個環境變數:
- ORACLE_BASE:Oracle目錄結構的起始點,Oracle所有的檔案都位於這個目錄下面,一般都設定為/u01/app/oracle
- ORACLE_HOME:Oracle產品執行的目錄,如果設定了ORACLE_BASE,可以不設定,為方便維護和管理一般設定為/u01/app/oracle/product/11.2.0/dbhome_1
- ORACLE_SID:Oracle System Identifier,用於在1臺伺服器上面標識不同的例項,預設情況下,例項名就是ORACLE_SID的值。
- NLS_LANG:National Language Support,用於定義語言,地域及客戶端字符集,格式是NLS_LANG=language_territory.charset,Linux/Unix下NLS_LANG是一個環境變數,Windows下NLS_LANG一般是在登錄檔裡面設定,Linux/Unix下的設定方式為:export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1,Windows下在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_目錄下
DB也有自己的NLS_LANG引數,來標識資料庫的語言,地域,字符集。可以透過以下的SQL來檢視:
SELECT * FROM v$nls_parameters;
DB的NLS_LANG和客戶端環境變數中NLS_LANG儘可能的保持一致。那麼為什麼要保持一致呢?那是因為如果字符集不匹配,有可能在DB和Client間相互轉換的過程中,出現字元轉換錯誤的情況。
7、檢查系統
執行runInstaller,會去檢查temp目錄空間,作業系統版本,補丁包,依賴包,系統和核心引數,X server許可權,DISPLAY環境變數,swap空間,ORACLE_HOME目錄等。
8、安裝方案
第一部分:安裝GI
第二部分:安裝DB
9、安裝GI
(1)建立依賴包列表檔案,並安裝依賴包
[root@localhost ~]# cat ora_software.txt
binutils*
compat-libstdc++*
compat-libcap1*
elfutils-libelf*
elfutils-libelf-devel*
elfutils-libelf-devel-static*
gcc*
gcc-c++*
glibc*
glibc-common*
glibc-devel*
glibc-headers*
kernel-headers*
libaio*
libaio*
libgcc*
libgomp*
libstdc++*
libstdc++-devel*
make*
pdksh*
sysstat*
unixODBC*
unixODBC-devel*
掛載光碟機
[root@oracletest ~]# mount /dev/cdrom /media/
mount: block device /dev/sr0 is write-protected, mounting read-only
建立本地YUM的指令碼
[root@precise ~]# cat createlocalyum.sh
#!/bin/bash
cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak/
cat << EOF > local.repo
[Local]
baseurl=file:///media/Server
gpgcheck=0
enabled=1
EOF
yum clean all
yum makecache
建立本地YUM並安裝依賴包
[root@oracletest ~]# sh createlocalyum.sh
[root@localhost ~]#cat ora_software.txt | xargs yum install -y
(2)建立使用者、組及目錄指令碼,並執行指令碼
[root@localhost ~]# cat ora_user_dir.sh
#!/bin/bash
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
useradd -g oinstall -G dba grid
echo "123456" | passwd --stdin oracle
echo "123456" | passwd --stdin grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/grid/product/11.2.0/gird
chown -R grid:oinstall /u01
mkdir -p /u01/app/oracle
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
[root@localhost ~]#sh ora_user_dir.sh
(3)建立環境變數列表檔案,並增加環境變數到配置檔案
[root@localhost ~]# cat ora_env.txt
# Oracle Settings
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=stone; export ORACLE_SID
NLS_LANG=american_america.zhs16gbk;export NLS_LANG
PATH=$ORACLE_HOME/bin:$PATH; export PATH
[root@localhost ~]#cat ora_env.txt >> /home/oracle/.bash_profile
[root@localhost ~]# cat gi_env.txt
#Grid Settings
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/grid
ORACLE_SID=+ASM
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
[root@localhost ~]#cat gi_env.txt >> /home/grid/.bash_profile
切換到oracle使用者,確認環境變數已生效
[root@ localhost ~]# su - oracle
[oracle@ localhost ~]$ env | grep ORACLE
ORACLE_SID=stone
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
切換到grid使用者,確認環境變數已生效
[root@oracletest1 ~]# su - grid
[grid@oracletest1 ~]$ env | grep ORACLE
ORACLE_SID=+ASM
ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/grid/product/11.2.0/grid
(4)使用root使用者建立裸裝置
先分別為磁碟建立分割槽
[root@oracletest1 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xaa0a029a.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261):
Using default value 261
Command (m for help): p
Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xaa0a029a
Device Boot Start End Blocks Id System
/dev/sdb1 1 261 2096451 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
分割槽結果
[root@oracletest1 ~]# cat /proc/partitions
major minor #blocks name
8 0 41943040 sda
8 1 204800 sda1
8 2 4096000 sda2
8 3 37641216 sda3
8 16 2097152 sdb
8 17 2096451 sdb1
8 32 2097152 sdc
8 33 2096451 sdc1
8 48 2097152 sdd
8 49 2096451 sdd1
8 64 2097152 sde
8 65 2096451 sde1
8 80 2097152 sdf
8 81 2096451 sdf1
8 96 2097152 sdg
8 97 2096451 sdg1
使分割槽生效
[root@oracletest1 ~]# partprobe
將分割槽對映為raw裝置:
[root@oracletest1 ~]# vim /etc/udev/rules.d/60-raw.rules
[root@oracletest1 ~]# tail -12 /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
KERNEL=="raw1", OWNER="grid",GROUP="dba", MODE="0666"
ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N"
KERNEL=="raw2", OWNER="grid",GROUP="dba", MODE="0666"
ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw3 %N"
KERNEL=="raw3", OWNER="grid",GROUP="dba", MODE="0666"
ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw4 %N"
KERNEL=="raw4", OWNER="grid",GROUP="dba", MODE="0666"
ACTION=="add", KERNEL=="sdf1", RUN+="/bin/raw /dev/raw/raw5 %N"
KERNEL=="raw5", OWNER="grid",GROUP="dba", MODE="0666"
ACTION=="add", KERNEL=="sdg1", RUN+="/bin/raw /dev/raw/raw6 %N"
KERNEL=="raw6", OWNER="grid",GROUP="dba", MODE="0666"
[root@oracletest1 ~]# ls /dev/raw/
rawctl
[root@oracletest1 ~]# start_udev
Starting udev: udevd[29597]: GOTO 'pulseaudio_check_usb' has no matching label in: '/lib/udev/rules.d/90-pulseaudio.rules'
[ OK ]
[root@oracletest1 ~]# ls /dev/raw/
raw1 raw2 raw3 raw4 raw5 raw6 rawctl
(5)使用grid使用者解壓grid安裝檔案
[grid@oracletest1 ~]$ unzip /mnt/hgfs/data/oracle/software/11204/p13390677_112040_Linux-x86-64_3of7.zip
(6)使用oracle使用者解壓oracle安裝檔案
[oracle@oracletest1 ~]$ unzip /mnt/hgfs/data/oracle/software/11204/p13390677_112040_Linux-x86-64_1of7.zip
[oracle@oracletest1 ~]$ unzip /mnt/hgfs/data/oracle/software/11204/p13390677_112040_Linux-x86-64_2of7.zip
(7)安裝GI
[root@oracletest1 ~]# su - grid
[grid@oracletest1 ~]$ export DISPLAY=192.168.230.1:0.0
[grid@oracletest1 ~]$ cd grid/
[grid@oracletest1 grid]$ ./runInstaller
選擇語言,如果這兒選擇了簡體中文,軟體啟動後就可以顯示中文了。
配置磁碟組,此處只能配置一個磁碟組,可以在安裝完成後使用asmca來增加磁碟組,Oracle建議在大部分環境下建立2個磁碟組,一個用於存放資料,一個用於快速恢復區。
為sys和asmsnmp賬戶設定密碼,由於ASM例項不包含資料字典,所有認證方式只有作業系統認證和密碼檔案認證,sys使用者將會被加入到密碼檔案中(orapw+ASM)並授予sysdba,sysoper和sysasm許可權,asmsnmp使用者也會被加入到密碼檔案中但只授予sysdba許可權。
指定OSASM,OSDBA,OSOPER組,因為此處只是安裝單個例項(standalone server),通常就只使用一個所有者組dba。
此處“Oracle Base”為環境變數ORACLE_BASE的值,“Software Location”為ORACLE_HOME的值。
指定Inventory目錄及所有者組,Inventory儲存Oracle軟體安裝的目錄資訊,資料庫的升級、增刪元件都需要用到Inventory。Inventory的目錄推薦為/u01/app/oraInventory/,所有者組推薦為oinstall,此處輸入和選擇的內容會寫入到/etc/oraInst.loc檔案。
此處進行條件檢查,不滿足安裝條件的專案會列出來,如果是缺少相關軟體包,就需要先去安裝軟體包,如果是引數不合適,可以點選“Fix&Chec Again”,以root身份執行一個生成的修復指令碼。暫時解決不了又不影響安裝的問題,可以勾選“Ignore All”。
以root使用者執行指令碼:
[root@oragrid ~]# /tmp/CVU_11.2.0.4.0_grid/runfixup.sh
對前面選擇的安裝選項進行確認。還可以將前面的操作儲存為一個響應檔案,用於後續相同情況下的靜默安裝。響應檔案是一個文字檔案,可以編輯用於不同的安裝環境。最後點選“Install”進行安裝。
監控安裝過程。
“Execute Configuration Scripts”對話方塊出現,表示需要使用root使用者執行這兩個指令碼,/u01/app/oraInventory/orainstRoot.sh這個指令碼修改Invertory目錄的許可權;
/u01/app/grid/product/11.2.0/grid/root.sh這個指令碼複製可執行檔案到/usr/local/bin目錄,建立/etc/oratab檔案,為grid使用者建立OCR keys,啟動ohasd守護程式,並修改/etc/inittab檔案以便在伺服器啟動的時候啟動ohasd。
[root@oragrid ~]# /u01/app/oraInventory/orainstRoot.sh
[root@oragrid ~]# /u01/app/grid/product/11.2.0/grid/root.sh
安裝完成後,使用下面的命令可以檢視各個資源的狀態:
[grid@oracletest1 grid]$ crsctl stat res -t
(8)建立磁碟組
由於在安裝GI的時候只能建立一個磁碟組,如果需要增加磁碟組的話,在GI安裝完成後,使用asmca命令增加磁碟組。
[grid@oragrid grid]$ export DISPLAY=192.168.230.1:0.0
[grid@oragrid grid]$ asmca
增加完成後,使用下面的命令檢視資源狀態:
[grid@oracletest1 grid]$ crsctl stat res -t
沒有問題的話,建議重啟伺服器後再次執行上面的命令,確保Oracle Restart正常。
10、安裝資料庫軟體
安裝完成GI後,再安裝Oracle資料庫軟體。
[root@oracletest1 ~]# su - oracle
[oracle@oracletest ~]$ export DISPLAY=192.168.230.1:0.0
[oracle@oracletest ~]$ cd database/
[oracle@oracletest database]$ ./runInstaller
選擇“Install database software only”,只安裝資料庫。
選擇“Single instance database Installation”,安裝單例項資料庫。
選擇語言。
選擇安裝版本,一般選擇“Enterprise Edition”。
此處“Oracle Base”為環境變數ORACLE_BASE的值,“Software Location”為ORACLE_HOME的值。注意不能包含空格。
指定OSDBA和OSOPER組,預設情況下,指定OSDBA為dba組,獲取sysdba許可權,指定OSOPER為oper組,獲取sysoper許可權。這裡由於單例項安裝不執行職責劃分,故都選擇dba組。因為oracle使用者是屬於dba組的,故oracle使用者就有了建立資料庫的許可權(sysdba)。
此處進行條件檢查,不滿足安裝條件的專案會列出來,如果是缺少相關軟體包,就需要先去安裝軟體包,如果是引數不合適,可以點選“Fix&Chec Again”,以root身份執行一個生成的修復指令碼。暫時解決不了又不影響安裝的問題,可以勾選“Ignore All”。
以root使用者執行指令碼:
[root@oragrid ~]# /tmp/CVU_11.2.0.4.0_oracle/runfixup.sh
對前面選擇的安裝選項進行確認。還可以將前面的操作儲存為一個響應檔案,用於後續相同情況下的靜默安裝。響應檔案是一個文字檔案,可以編輯用於不同的安裝環境。最後點選“Install”進行安裝。
“Execute Configuration Scripts”對話方塊出現,表示需要使用root使用者執行這個指令碼。
[root@oragrid ~]# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
安裝完成。
11、靜默安裝
步驟:
(1)準備響應檔案,可以透過安裝產生,也可以對模版進行修改。
(2)執行OUI在靜默模式:./runInstaller -silent -responsefile ,安裝完成後執行相應的指令碼(/u01/app/oraInventory/orainstRoot.sh和$ORACLE_HOME/root.sh)。
12、相關習題:
(1)Which task would you perform before you run Oracle Universal Installer (OUI) in silent or suppressed mode for an installation?
A. Run the root.sh script.
B. Create the oraInst.loc file.
C. Create the tnsnames.ora file.
D. Run the oraInstRoot.sh script.
答案:B
(2)You are installing Oracle Database 11g on your server. During the installation Oracle Universal Installer (OUI) prompts you to enter the path of the inventory directory and also prompts you to specify an operating system group name.
Which statement is true in this case?
A. The ORACLE_BASE parameter is not set.
B. The installation is being performed by the root user.
C. The operating system group that will be specified should have root user as its member
D. The installation is being performed without the "Create Starter Database" option selected.
E. The operating system group that will be specified must have permission to write to the inventory director
答案:E
(3)You are installing Oracle Database 11g on a machine. When you run the installer, the Universal Installer (OUI) shows the message that says one of the product-specific prerequisite checks has failed:
Checking available swap space requirements ...
Expected result: 1512MB
Actual Result: 1018MB
Check complete. The overall result of this check is: Failed <<<< Problem: The system does not have the required swap space.
What happens to the installation in this situation?
A. It can be continued.
B. It resizes the swap space automatically when you proceed further.
C. It can be continued, but the instance cannot be started without increasing the swap space.
D. It shows a message saying one or more prerequisite checks have failed and the installation cannot proceed.
答案:A
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28536251/viewspace-1972145/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- OCP課程60:管理Ⅰ之管理資料庫空間資料庫
- OCP課程26:管理Ⅰ之管理資料庫例項資料庫
- OCP課程61:管理II之複製資料庫資料庫
- OCP課程25:管理Ⅰ之使用DBCA建立資料庫資料庫
- OCP課程50:管理II之診斷資料庫資料庫
- OCP課程23:管理Ⅰ之資料庫體系結構資料庫
- OCP課程53:管理II之使用閃回資料庫資料庫
- OCP課程39:管理Ⅰ之移動資料
- OCP課程13:SQL之使用資料字典檢視管理物件SQL物件
- OCP課程18:SQL之管理不同時區下的資料SQL
- OCP課程27:管理Ⅰ之管理ASM例項ASM
- OCP課程54:管理II之管理記憶體記憶體
- OCP課程16:SQL之處理大資料SQL大資料
- OCP課程4:SQL之限制和排序資料SQL排序
- OCP課程56:管理II之SQL調優SQL
- OCP課程15:SQL之管理模式物件SQL模式物件
- 陳安之課程資料下載
- OCP課程58:管理II之自動任務
- OCP課程42:管理II之核心概念和工具
- OCP課程45:管理II之備份設定
- 資料庫課程設計-宿舍管理系統資料庫
- OCP課程48:管理II之使用RMAN執行恢復
- OCP課程51:管理II之使用閃回技術1
- OCP課程52:管理II之使用閃回技術2
- MySQL資料庫管理員(OCP)MySql資料庫
- 資料庫課程設計資料庫
- OCP課程47:管理II之還原和恢復任務
- OCP課程11:SQL之使用DDL語句建立和管理表SQL
- OCP課程19:SQL之使用子查詢檢索資料SQL
- 【資料庫課程】研討02資料庫
- RAC之資料庫軟體安裝資料庫
- SequoiaDB資料庫之文字安裝資料庫
- OCP課程21:SQL之正規表示式SQL
- OCP課程12:SQL之建立其他模式物件SQL模式物件
- OCP課程9:SQL之使用集合運算子SQL
- OCP課程8:SQL之使用子查詢SQL
- OCP課程6:SQL之使用組函式SQL函式
- 【DBCA -SILENT】靜默安裝之rac資料庫安裝資料庫