跳轉至內容

RAC攻擊 - Oracle 叢集資料庫在家/RAC攻擊12c/列印版

來自Wikibooks,開放世界的開放書籍
RAC攻擊 - Oracle 12c 叢集資料庫在家

為了更好地理解RAC安裝,此圖片說明了按照本書操作時實現的架構。

RAC Attack 12c architecture

為了安裝一個功能齊全的RAC,需要以下IP地址

  • 2個公網IP,每個節點一個,用於主作業系統網路介面
  • 2個公網IP,每個節點一個,用於虛擬IP
  • 3個公網IP,每個SCAN監聽器一個
  • 2個私網IP,每個節點一個,用於叢集私有互連

在本書中,公網地址屬於網路192.168.78.0/24,私網地址屬於網路172.16.100.0/24

技術選擇

[編輯 | 編輯原始碼]

本書旨在提供儘可能簡單的說明,以便在您的筆記型電腦上進行基本的RAC安裝。這裡沒有涵蓋許多高階拓撲和主題。如果您對技術可能性感到好奇,只需詢問志願者,他/她將很樂意向您解釋更多內容。


硬體需求

[編輯 | 編輯原始碼]

本手冊將引導您完成在您自己的筆記型電腦或臺式電腦上建立雙節點Oracle RAC叢集的過程。

硬體最低需求

[編輯 | 編輯原始碼]

大多數現代筆記型電腦和臺式電腦都應該足夠強大,可以執行雙節點虛擬RAC叢集。簡而言之,以下是推薦的最低配置

  • 現代CPU(2011年以後生產的大多數筆記型電腦應該都可以)
  • 8GB記憶體
  • 40GB可用磁碟空間
    • 9GB軟體暫存
    • 29GB - 2個虛擬機器 + 2個ASM磁碟
  • Windows 64位(XP、Vista或7)(Linux和Mac也經過測試,並且本書中包含了與Windows說明的差異)

軟體元件

[編輯 | 編輯原始碼]

在開始之前,您需要了解將要安裝哪些軟體。如果參加活動,最好提前將軟體下載到您的筆記型電腦上,以避免在實驗期間下載。版權軟體不可分發,因此志願者無法為您提供所有必需的軟體元件。但組織者可能已設定了代理伺服器以加快下載速度或至少提供免費軟體。

Windows 7 64位

[編輯 | 編輯原始碼]

本書涵蓋Windows 7 64位作為主機,即使所有可以執行VirtualBox 64位的作業系統都可以使用。由於Oracle 12c for Linux 32位不可用,因此64位是強制性的。


VirtualBox

[編輯 | 編輯原始碼]

本書使用VirtualBox,因為許多Oracle專家將其視為成熟且免費的虛擬化解決方案,與Oracle軟體完全相容:https://www.virtualbox.org/。VirtualBox版本4.3.26和4.2.12到4.2.18之間的舊版本已成功與OEL6和Oracle 12c一起測試。最新成功測試的VirtualBox版本是5.0.8

一些VirtualBox版本(如果我沒記錯的話,是4.3.14到22 [1])在Windows上存在嚴重問題。EL 6.4到6.7已嘗試過,沒有問題。[2]

Windows 系統下首選的 SSH 客戶端之一。您可以從此處下載它

http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe


Vnc 檢視器

[編輯 | 編輯原始碼]

伺服器將安裝在沒有 X 伺服器的環境中,因此您需要 VNC 來獲取圖形介面。

http://www.realvnc.com/download/get/1295/

Oracle 軟體

[編輯 | 編輯原始碼]

Oracle Enterprise Linux 6

[編輯 | 編輯原始碼]

可以從 http://edelivery.oracle.com/linux/ 下載。

  1. 使用您的 Oracle 帳戶登入:http://edelivery.oracle.com/linux
  2. 在“媒體包搜尋”頁面上,選擇
  3. 產品包:Oracle Linux 平臺:x86 64 位 點選GO
  4. 點選:Oracle Linux Release 6 Update 4 Media Pack for x86_64 (64 位)
  5. 點選第一行的下載按鈕
  6. 檔案V37084-01.iso下載完成後,將其重新命名為Oracle_Linux_6_64.iso,以便於與其他 Oracle 檔案區分。

Oracle Grid Infrastructure 和 Database 12c (12.1.0.1)

[編輯 | 編輯原始碼]

可以從 http://edelivery.oracle.com/ 下載。

  1. 使用您的 Oracle 帳戶登入:http://edelivery.oracle.com/
  2. 在“媒體包搜尋”頁面上,選擇
  3. 產品包:Oracle Database 平臺:Linux x86-64 點選GO
  4. 點選:Oracle Database 12c Release 1 (12.1.0.1.0) Media Pack for Linux x86-64
  5. 點選以下四個包的下載按鈕
    • Oracle Database 12c Release 1 (12.1.0.1.0) for Linux x86-64 (Part 1 of 2)
    • Oracle Database 12c Release 1 (12.1.0.1.0) for Linux x86-64 (Part 2 of 2)
    • Oracle Database 12c Release 1 Grid Infrastructure (12.1.0.1.0) for Linux x86-64 (Part 1 of 2)
    • Oracle Database 12c Release 1 Grid Infrastructure (12.1.0.1.0) for Linux x86-64 (Part 2 of 2)
  6. 將下載以下檔案
    • V38501-01_1of2.zip
    • V38501-01_2of2.zip
    • V38500-01_1of2.zip
    • V38500-01_2of2.zip
    解壓縮後,將有兩個資料夾:“grid”和“database”,其中包含完整安裝檔案。

準備主機

[編輯 | 編輯原始碼]

VirtualBox 設定

[編輯 | 編輯原始碼]
  1. 執行 Oracle VM VirtualBox 安裝程式。
  2. 在歡迎頁面上,點選下一步
  3. Vbox install welcome
  4. 保留預設元件選擇,點選下一步
  5. Vbox install component selection
  6. 點選下一步
  7. Vbox install create shortcuts
  8. 除非您有網路上的掛起下載或批處理,否則點選
  9. Vbox install network reset
  10. 點選安裝
  11. Vbox install ready to install
  12. 安裝完成。點選完成以開啟 VirtualBox
  13. Vbox install completed


VirtualBox 網路配置

[編輯 | 編輯原始碼]
  1. 執行 VirtualBox 管理器。
  2. 在主螢幕上,選擇檔案 > 首選項 > 網路
  3. Network adapter preferences
  4. 雙擊VirtualBox Host-Only 乙太網介面卡。VirtualBox 將建議預設地址為 192.168.56.1。請按如下所示更新設定,然後連續點選確定兩次。
  5. IPv4 地址:192.168.78.1 IPv4 網路掩碼:255.255.255.0 網路介面卡 1 地址


安裝 Linux

[編輯 | 編輯原始碼]

建立 VirtualBox 虛擬機器

[編輯 | 編輯原始碼]
  1. 在您的計算機上,在您選擇的任意位置建立一個名為racattack12c的新資料夾,該資料夾將包含所有虛擬磁碟。
  2. 安裝結束後,檔案將如下所示 RA-Windows_7-Create Directory



  3. 在 VirtualBox 中,在主螢幕上,點選左上角的新建圖示。
  4. VirtualBox Manager Home



  5. 為虛擬機器的名稱輸入collabn1。選擇Linux作為型別,選擇Oracle (64 位)作為版本,然後點選下一步
  6. RA-vbox 4214-create vm-name and os



  7. 大小欄位中輸入3072,然後點選下一步 如果您只有 8GB 的總記憶體,請將其減少到 2510,否則您的筆記型電腦可能會變慢
  8. RA-vbox 4214-create vm-vm memory



  9. 保持現在建立虛擬硬碟選中狀態,然後點選建立
  10. RA-vbox 4214-create vm-create primary hard disk



  11. 保持VDI (VirtualBox 磁碟映像)選中狀態,然後點選下一步
  12. RA-vbox 4214-create vm-primary hard disk type



  13. 保持動態分配選中狀態,然後點選下一步
  14. RA-vbox 4214-create vm-storage on drive



  15. 輸入要建立的磁碟檔案的完整路徑,或透過瀏覽圖示進行選擇位置
  16. 最好使用之前為所有虛擬磁碟建立的公共資料夾racattack12c 檔案應命名為collabn1.vdi 大小欄位中輸入30.00 GB,然後點選建立 RA-vbox 4214-create vm-file location and size





VirtualBox 虛擬機器設定

[編輯 | 編輯原始碼]
  1. 在主螢幕上,選擇虛擬機器collabn1,然後點選左上角的設定圖示。
  2. RA-vbox 4214-create vm-finished vm



  3. 開啟USB子選單。取消選中啟用 USB 控制器複選框。
  4. RA-vbox 4214-create vm-usb settings



  5. 開啟儲存子選單。刪除IDE 控制器下的磁碟。
  6. RA-vbox 4214-create vm-delete empty ide



  7. 單擊移除確認。
  8. RA-vbox 4214-create vm-delete ide
  9. 單擊新增 CD/DVD 裝置
  10. RA-vbox 4214-create vm-add iso



  11. 單擊選擇磁碟
  12. VirtualBox New VM Settings New IDE



  13. 找到並開啟Oracle_Linux_6_64.iso檔案。
  14. RA-vbox 4214-create vm-oracle linux 6 iso added



  15. 開啟網路子選單。在介面卡 1選項卡下,將連線到:下拉選單更改為僅主機介面卡
  16. VirtualBox_Settings_Network_Adapter_1



  17. 選擇介面卡 2選項卡。選中啟用網路介面卡複選框。將連線到:下拉選單更改為內部網路,並在名稱欄位中輸入名稱rac-priv
  18. VirtualBox_New_VM_Settings_Network_Adapter_2



  19. 選擇介面卡 3選項卡。選中啟用網路介面卡複選框。將連線到:下拉選單更改為NAT
  20. VirtualBox_New_VM_Settings_Network_Adapter_3



  21. 選擇共享資料夾選項卡。單擊新增共享資料夾
  22. 輸入您下載 Oracle 安裝介質的路徑,併為您的資料夾輸入一個名稱。 輸入資料夾名稱“12cR1”。 選中自動掛載並單擊確定 VirtualBox_New_VM_Settings_Shared folder
  23. 單擊確定儲存修改。
  24. 檢視新虛擬機器的摘要。


作業系統安裝

[編輯 | 編輯原始碼]
  1. 單擊啟動以啟動虛擬機器。如果提示選擇啟動磁碟,請選擇Oracle_Linux_6_64.iso,然後再次單擊啟動
  2. RA-Oracle_Linux_6_64bit-Install_OS-select boot iso



  3. Oracle Linux 安裝螢幕將自動顯示。按Enter鍵開始安裝。
  4. RA-Oracle_Linux_6_64bit-Install_OS-boot menu



  5. 按向右箭頭鍵跳過 CD 測試,然後按Enter鍵。
  6. RA-Oracle_Linux_6_64bit-Install_OS-media test



  7. 從這一點開始,您可以使用滑鼠進行導航。要從 VM 中解鎖滑鼠和鍵盤,請按右側Ctrl鍵。單擊下一步
  8. RA-Oracle_Linux_6_64bit-Install_OS-splash start



  9. 保持英語(英語)選中,然後單擊下一步
  10. RA-Oracle_Linux_6_64bit-Install_OS-choose language



  11. 保持美國英語選中,然後單擊下一步(除非您有其他首選鍵盤佈局)。
  12. RA-Oracle_Linux_6_64bit-Install_OS-choose keyboard



  13. 保持基本儲存裝置選中,然後單擊下一步
  14. RA-Oracle_Linux_6_64bit-Install_OS-install device



  15. 對於顯示下面的儲存裝置可能包含資料的警告框,單擊是,放棄所有資料
  16. RA-Oracle_Linux_6_64bit-Install_OS-storage device warning



  17. 在主機名欄位中,輸入collabn1.racattack
    • 單擊左下角的配置網路
    • 突出顯示系統 eth0,然後單擊編輯...按鈕。
    • 單擊自動連線複選框。
    • 單擊IPv4 設定選項卡。
    • 單擊方法:下拉選單,然後選擇手動
    • 單擊新增,然後為地址輸入192.168.78.51
    • 網路掩碼保留為24
    • DNS 伺服器:框中,輸入192.168.78.51, 192.168.78.52
    • 搜尋域:框中,輸入racattack
    • 單擊應用按鈕。
  18. RA-Oracle_Linux_6_64bit-Install_OS-eth0 ipv4 settings



  19. 突出顯示系統 eth1,然後單擊編輯...按鈕。
    • 單擊自動連線複選框。
    • 單擊IPv4 設定選項卡。
    • 單擊方法:下拉選單,然後選擇手動
    • 單擊新增,然後輸入172.16.100.51
    • 網路掩碼更改為24
    • 單擊應用按鈕。
  20. RA-Oracle_Linux_6_64bit-Install_OS-eth1 ipv4 settings



  21. 突出顯示系統 eth2,然後單擊編輯...按鈕。
    • 單擊自動連線複選框。
    • 單擊IPv4 設定選項卡。
    • 單擊方法:下拉選單,然後選擇僅自動(DHCP)地址
    • 單擊應用按鈕。
    • 單擊關閉關閉網路配置選單,然後單擊下一步
  22. RA-Oracle_Linux_6_64bit-Install_OS-eth2 ipv4 settings



  23. 保持時區設定不變,然後單擊下一步
  24. RA-Oracle_Linux_6_64bit-Install_OS-time zone



  25. 輸入根密碼racattack,然後單擊下一步
  26. RA-Oracle_Linux_6_64bit-Install_OS-root password



  27. 當收到有關弱密碼的警告時,單擊無論如何使用
  28. RA-Oracle_Linux_6_64bit-Install_OS-root password confirm



  29. 對於安裝型別,單擊使用所有空間,然後單擊下一步
  30. RA-Oracle_Linux_6_64bit-Install_OS-use all disk space



  31. 當收到有關將儲存配置寫入磁碟的警告時,單擊將更改寫入磁碟
  32. RA-Oracle_Linux_6_64bit-Install_OS-write changes to disk confirm



  33. 保持基本伺服器作為預設安裝型別。單擊下一步
  34. RA-Oracle_Linux_6_64bit-Install_OS-default installation type



  35. 作業系統將需要一段時間才能安裝。
  36. RA-Oracle_Linux_6_64bit-Install_OS-install progressing



  37. 安裝完成後,單擊重新啟動
  38. RA-Oracle_Linux_6_64bit-Install_OS-complete congrats



  39. 重新啟動不再顯示訊息,只是一個進度條。
    • 伺服器啟動時,您可以按F8鍵檢視進度。
    • 系統應啟動到命令列登入提示符。
  40. RA-Oracle_Linux_6_64bit-Install_OS-post install reboot progress



Linux 安裝後操作

[編輯 | 編輯原始碼]
  1. 要連線到新建立的虛擬機器,請在 Putty 中為名為collabn1的新 VM 建立一個連線,其IP 地址192.168.78.51
    • 可選地,為collabn2建立另一個連線,其IP 地址192.168.78.52,該連線稍後將作為collabn1的克隆建立。

    Putty connection screen

  2. 透過單擊開啟開啟collabn1連線。
    • 安全警報對話方塊中單擊
  3. Putty security alert
  4. 以以下身份登入:提示符處輸入root,在密碼:提示符處輸入racattack
  5. Putty connected
  6. 關閉並停用防火牆IPTables

  7. [root@collabn1 ~]# service iptables stop
    iptables: Flushing firewall rules:                         [  OK  ]
    iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
    iptables: Unloading modules:                               [  OK  ]
    
    [root@collabn1 ~]# chkconfig iptables off
    
    [root@collabn1 ~]# chkconfig --list iptables
    iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
    
  8. 停用SELinux。開啟配置檔案並將SELINUX變數從enforcing更改為disabled
  9. [root@collabn1 ~]# vim /etc/selinux/config # 此檔案控制系統上 SELinux 的狀態。 # SELINUX=可以取以下三個值之一: # enforcing - 強制執行 SELinux 安全策略。 # permissive - SELinux 列印警告而不是強制執行。 # disabled - 未載入 SELinux 策略。 SELINUX=disabled # SELINUXTYPE=可以取以下兩個值之一: # targeted - 受保護的目標程序, # mls - 多級安全保護。 SELINUXTYPE=targeted
  10. 驗證所有網路介面是否都已啟動。
  11. [root@collabn1 ~]# ip l 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:4f:8a:0b brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:99:7e:95 brd ff:ff:ff:ff:ff:ff 4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:e2:63:7f brd ff:ff:ff:ff:ff:ff
  12. 新增 DVD 作為儲存庫。
  13. 轉到 VBOX 選單=>儲存=>將 DVD 裝置新增到伺服器裝置->CD/DVD 裝置->Oracle_Linux_6_4.iso

    執行以下命令

    mkdir /media/cdrom
    mount /dev/cdrom /media/cdrom/
    cd /etc/yum.repos.d
    mkdir /tmp/old.yum.repos.d
    mv * /tmp/old.yum.repos.d
    
    cat <<EOF > ol64.repo
    [OL64]
    name=Oracle Linux 6.4 x86_64
    baseurl=file:///media//cdrom
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY
    gpgcheck=1
    enabled=1
    EOF
    
  14. 安裝資料庫預安裝包oracle-rdbms-server-11gR2-preinstall
  15. 此包安裝 Oracle 11g 的所有軟體包要求(但也適用於 12c),配置核心引數,建立 oracle使用者和組並設定使用者限制
    [root@collabn1 ~]# yum install -y oracle-rdbms-server-11gR2-preinstall
    ....
    Transaction Summary
    ========================================================================
    Install      21 Package(s)
    Upgrade       2 Package(s)
    
    Total download size: 43 M
    
    ....
    
    Installed:
      oracle-rdbms-server-11gR2-preinstall.x86_64 0:1.0-8.el6
    
    ....
    
    Complete!
    
  16. 安裝將用於安裝和管理伺服器的其他 RPM。
  17. [root@collabn1 ~]# rpm -ivh /media/cdrom/Packages/kernel-uek-devel-$(uname -r).rpm
    [root@collabn1 ~]# yum install -y tigervnc-server.x86_64 xclock man parted.x86_64 unzip.x86_64 xterm lsof bind  xorg-x11-twm oracleasm-support
    Install      12 Package(s)
    .... 
    Total download size: 22 M
    ....
    Complete!
    
  18. 解除安裝NTP
  19. [root@collabn1 ~]# yum remove -y ntp .... 已移除:ntp.x86_64 0:4.2.4p8-3.el6 .... 完成! [root@collabn1 ~]#
  20. 在繼續執行後續步驟之前,解除安裝 DVD。
  21. [root@collabn1 ~]# umount /media/cdrom


安裝 VirtualBox 附加元件

[編輯 | 編輯原始碼]
  1. 透過點選裝置->安裝客戶機新增,使VirtualBox客戶機新增功能可供作業系統使用。
  2. RA-Oracle_Linux_6_64bit-Configure_OS-install guest additions

  3. 掛載VirtualBox建立的虛擬CD-Rom。
  4. [root@collabn1 ~]# mount /dev/cdrom /media/cdrom
     mount: block device /dev/sr0 is write-protected, mounting read-only
    
  5. 安裝VirtualBox客戶機新增功能。與步驟安裝視窗系統驅動程式相關的錯誤可以忽略,在最新的VBox版本中不會出現。
  6. [root@collabn1 ~]# sh /media/cdrom/VBoxLinuxAdditions.run 驗證歸檔完整性...一切正常。解壓VirtualBox 4.2.14 Linux客戶機新增功能............VirtualBox客戶機新增功能安裝程式正在刪除已安裝的VirtualBox 4.2.14客戶機新增功能版本...複製其他安裝模組...安裝其他模組...刪除現有的VirtualBox非DKMS核心模組[確定]構建VirtualBox客戶機新增功能核心模組找不到當前執行核心的標頭檔案。如果以下模組編譯失敗,這可能是原因。缺少的軟體包可能可以使用yum install kernel-uek-devel-2.6.39-400.17.1.el6uek.x86_64安裝構建主客戶機新增功能模組[確定]構建共享資料夾支援模組[確定]構建OpenGL支援模組[確定]執行客戶機新增功能的非核心設定[確定]您應該重新啟動客戶機以確保實際使用了新模組安裝視窗系統驅動程式[失敗](找不到X.Org或XFree86視窗系統。)
  7. 解除安裝光碟機。
  8. [root@collabn1 ~]# umount /media/cdrom


配置Bind DNS

[編輯 | 編輯原始碼]

如果BIND DNS未安裝,請執行#yum install -y bind(在Linux後安裝步驟9之前,解除安裝/media/cdrom之前)。


  1. 啟用BIND DNS在啟動時啟動。
  2. [root@collabn1 ~]# chkconfig named on
  3. 更改named目錄許可權。
  4. [root@collabn1 ~]# touch /var/named/racattack [root@collabn1 ~]# chgrp named /var/named/racattack [root@collabn1 ~]# chmod 664 /var/named/racattack [root@collabn1 ~]# chmod g+w /var/named
  5. 備份BIND配置檔案。
  6. [root@collabn1 ~]# cp /etc/named.conf /etc/named.conf.org
  7. 更改/etc/named.conf許可權。
  8. [root@collabn1 ~]# chmod 664 /etc/named.conf 否則,原始保護可能會在重新啟動named步驟中導致問題,並在/var/log/messages中出現防寫錯誤。
  9. 執行以下命令或編輯/etc/named.conf檔案以手動更改named配置。
  10. sed -i -e 's/listen-on .*/listen-on port 53 { 192.168.78.51; };/' \
    -e 's/allow-query .*/allow-query     { 192.168.78.0\/24; localhost; };\n        allow-transfer  { 192.168.78.0\/24; };/' \
    -e '$azone "racattack" {\n  type master;\n  file "racattack";\n};\n\nzone "in-addr.arpa" {\n  type master;\n  file "in-addr.arpa";\n};' \
    /etc/named.conf
    
    • 粗體顯示從預設值修改的行。
    options {
           listen-on port 53 { 192.168.78.51; };
           listen-on-v6 port 53 { ::1; };
           directory       "/var/named";
           dump-file       "/var/named/data/cache_dump.db";
           statistics-file "/var/named/data/named_stats.txt";
           memstatistics-file "/var/named/data/named_mem_stats.txt";
           allow-query     { 192.168.78.0/24; localhost; };
           allow-transfer  { 192.168.78.0/24; };
           recursion yes;
    
           dnssec-enable yes;
           dnssec-validation yes;
           dnssec-lookaside auto;
    
           /* Path to ISC DLV key */
           bindkeys-file "/etc/named.iscdlv.key";
    
           managed-keys-directory "/var/named/dynamic";
    };
    
    logging {
           channel default_debug {
                   file "data/named.run";
                   severity dynamic;
           };
    };
    
    zone "." IN {
           type hint;
           file "named.ca";
    };
    
    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";
    
    zone "racattack" {
     type master;
     file "racattack";
    };
    
    zone "in-addr.arpa" {
     type master;
     file "in-addr.arpa";
    };
    
  11. 透過執行以下命令在collabn1上建立racattack域的區域檔案
  12. (複製並貼上整個框)echo '$TTL 3H @ IN SOA collabn1 hostmaster ( 101  ; serial 1D  ; refresh 1H  ; retry 1W  ; expire 3H )  ; minimum NS collabn1 NS collabn2 localhost A 127.0.0.1 collabn1 A 192.168.78.51 collabn1-vip A 192.168.78.61 collabn1-priv A 172.16.100.51 collabn2 A 192.168.78.52 collabn2-vip A 192.168.78.62 collabn2-priv A 172.16.100.52 collabn-cluster-scan A 192.168.78.251 collabn-cluster-scan A 192.168.78.252 collabn-cluster-scan A 192.168.78.253' \ > /var/named/racattack
  13. collabn1上建立反向區域檔案。
  14. (複製並貼上整個框)echo '$TTL 3H @ IN SOA collabn1.racattack. hostmaster.racattack. ( 101  ; serial 1D  ; refresh 1H  ; retry 1W  ; expire 3H )  ; minimum NS collabn1.racattack. NS collabn2.racattack. 51.78.168.192 PTR collabn1.racattack. 61.78.168.192 PTR collabn1-vip.racattack. 51.100.16.172 PTR collabn1-priv.racattack. 52.78.168.192 PTR collabn2.racattack. 62.78.168.192 PTR collabn2-vip.racattack. 52.100.16.172 PTR collabn2-priv.racattack. 251.78.168.192 PTR collabn-cluster-scan.racattack. 252.78.168.192 PTR collabn-cluster-scan.racattack. 253.78.168.192 PTR collabn-cluster-scan.racattack.' \ > /var/named/in-addr.arpa
  15. 生成rndc.key檔案。
  16. [root@collabn1 ~]# rndc-confgen -a -r /dev/urandom 已寫入金鑰檔案“/etc/rndc.key”[root@collabn1 ~]# chgrp named /etc/rndc.key [root@collabn1 ~]# chmod g+r /etc/rndc.key [root@collabn1 ~]# ls -lrta /etc/rndc.key -rw-r----- 1 root named 77 11月 10 09:19 /etc/rndc.key
  17. 重新啟動named服務。
  18. [root@collabn1 ~]# service named restart 正在停止named:[確定]正在啟動named:[確定]
  19. 檢查/etc/sysconfig/network-scripts/ifcfg-eth2中引數PEERDNS是否設定為no,以防止resolv.conf被dhcp客戶端覆蓋
  20. DEVICE=eth2 TYPE=Ethernet UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp HWADDR=xx:xx:xx:xx:xx DEFROUTE=yes PEERDNS=no PEERROUTES=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth2" USERCTL=no 注意:我(Yury)發現以下兩個應設定為NO => DEFROUTE=no,PEERROUTES=no
  21. 如果它之前設定為yes,請重新啟動網路並驗證檔案/etc/resolv.conf現在是否包含正確的名稱伺服器
  22. [root@collabn1 ~]# service network restart 正在關閉介面eth0:[確定]正在關閉介面eth1:[確定]正在關閉介面eth2:[確定]正在關閉環回介面:[確定]正在啟動環回介面:[確定]正在啟動介面eth0:[確定]正在啟動介面eth1:[確定]正在啟動介面eth2:正在確定eth2的IP資訊...已完成。[確定]
  23. /etc/resolv.conf應該包含
  24. [root@collabn1 ~]# cat /etc/resolv.conf  ; 由/sbin/dhclient-script生成 nameserver 192.168.78.51 nameserver 192.168.78.52 search racattack
  25. 檢查collabn1上的主DNS是否正常工作。
  26. [root@collabn1 ~]# nslookup collabn-cluster-scan.racattack 伺服器:192.168.78.51 地址:192.168.78.51#53 名稱:collabn-cluster-scan.racattack 地址:192.168.78.251 名稱:collabn-cluster-scan.racattack 地址:192.168.78.252 名稱:collabn-cluster-scan.racattack 地址:192.168.78.253


準備Linux用於Oracle

[編輯 | 編輯原始碼]
  1. 修改pam.d登入檔案以使用限制。
  2. sed -i -e '/session    required     pam_selinux.so open/i\
    session    required     \/lib64\/security\/pam_limits.so\
    session    required     pam_limits.so' /etc/pam.d/login
    
  3. oracle使用者的密碼更改為racattack
  4. [root@collabn1 ~]# passwd oracle 正在更改oracle使用者的密碼。新密碼:密碼錯誤:它基於字典詞重新輸入新密碼:passwd:所有身份驗證令牌已成功更新。
  5. 建立並更改叢集軟體和資料庫安裝目錄的所有權。
  6. [root@collabn1 ~]# mkdir -p /u01/app [root@collabn1 ~]# chown oracle:oinstall /u01/app
  7. 修改oracle使用者,使其屬於vboxsf組。
  8. [root@collabn1 ~]# usermod -G oinstall,dba,vboxsf oracle [root@collabn1 ~]# id oracle uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(vboxsf)


如果BIND DNS未安裝,請執行#yum install -y bind(在Linux後安裝步驟9之前,解除安裝/media/cdrom之前)。

建立叢集

[編輯 | 編輯原始碼]

建立VirtualBox共享儲存

[編輯 | 編輯原始碼]
  1. 關閉伺服器
  2. [root@collabn1 ~]# shutdown -h now 來自root@collabn1.racattack (/dev/pts/0)的廣播訊息,於9:06...系統即將立即關閉!
  3. 在VirtualBox管理器中,選擇機器collabn1,單擊設定 -> 儲存
  4. 選擇控制器SATA,然後單擊新增硬碟按鈕 Virtualbox 4: Create Shared Storage - Add Hard Disk 單擊建立新磁碟 Virtualbox 4: Create Shared Storage - Select New Disk
  5. 保持VDI (VirtualBox 磁碟映像)選中狀態,然後點選下一步
  6. RA-vbox 4214-create vm-primary hard disk type
  7. 對於共享儲存,選擇固定大小,然後單擊下一步
  8. Virtualbox 4: Create Shared Storage - Fixed Size
  9. 將檔案位置更改為之前建立的racattack12資料夾。
  10. 輸入asm1.vdi作為磁碟名稱。 輸入5.00Gb作為磁碟大小。 單擊建立 Virtualbox 4: Create Shared Storage - Disk Name and Size
  11. 現在磁碟已物理建立,大小為5Gb,因此完成可能需要更多時間。
  12. Virtualbox 4: Create Shared Storage - Creation in progress
  13. 重複這些步驟以建立另外三個磁碟
    • asm2.vdi(5.00GB)
    • asm3.vdi(5.00GB)
    • asm4.vdi(5.00GB)
  14. 最後,應該為asm建立了四個虛擬磁碟。
  15. 單擊確定 Virtualbox 4: Create Shared Storage - 4 disks created
  16. 使所有asm裝置可共享:在VirtualBox管理器中,單擊檔案 -> 虛擬介質管理器
  17. Virtualbox 4: Create Shared Storage - virtual media manager
  18. 對於每個asm裝置:右鍵單擊 -> 修改
  19. Virtualbox 4: Create Shared Storage - virtual media manager modify
  20. 選擇可共享,然後單擊確定。對四個asm裝置執行此操作。
  21. Virtualbox 4: Create Shared Storage - virtual media manager shareable
  22. 啟動機器collabn1
  23. 您現在應該看到另外四個名為/dev/sd*的磁碟[root@collabn1 ~]# ls -l /dev/sd* brw-rw----. 1 root disk 8, 0 7月 28 10:16 /dev/sda brw-rw----. 1 root disk 8, 1 7月 28 10:16 /dev/sda1 brw-rw----. 1 root disk 8, 2 7月 28 10:16 /dev/sda2 brw-rw----. 1 root disk 8, 16 7月 28 10:16 /dev/sdb brw-rw----. 1 root disk 8, 32 7月 28 10:16 /dev/sdc brw-rw----. 1 root disk 8, 48 7月 28 10:16 /dev/sdd brw-rw----. 1 root disk 8, 64 7月 28 10:16 /dev/sde


配置儲存持久命名

[編輯 | 編輯原始碼]
  1. 一旦伺服器能夠識別新的磁碟,使用**fdisk**在每個磁碟上新增一個主分割槽。
  2. [root@collabn1 ~]# fdisk /dev/sdb 裝置既不包含有效的DOS分割槽表,也不包含Sun、SGI或OSF磁碟標籤 正在構建一個新的帶有磁碟識別符號0x97cc9f57的DOS磁碟標籤。 更改將僅保留在記憶體中,直到您決定寫入它們。 之後,當然,以前的內容將無法恢復。 警告:分割槽表4的無效標誌0x0000將在w(rite)時被更正 警告:DOS相容模式已棄用。 強烈建議關閉該模式(命令'c')並將顯示單位更改為扇區(命令'u')。 命令(m獲取幫助):n 命令操作 e 擴充套件 p 主分割槽(1-4) p 分割槽號(1-4):1 第一個柱面(1-652,預設1):<enter> 使用預設值1 最後一個柱面,+柱面或+size{K,M,G}(1-652,預設652):<enter> 使用預設值652 命令(m獲取幫助):w 分割槽表已更改! 呼叫ioctl()重新讀取分割槽表。 同步磁碟。
  3. 對**sdc、sdd和sde**重複相同的步驟。
  4. 完成後,所有磁碟都至少有一個分割槽。[root@collabn1 ~]# ls -l /dev/sd?1 brw-rw----. 1 root disk 8, 1 Jul 28 10:16 /dev/sda1 brw-rw----. 1 root disk 8, 17 Jul 28 10:23 /dev/sdb1 brw-rw----. 1 root disk 8, 33 Jul 28 10:27 /dev/sdc1 brw-rw----. 1 root disk 8, 49 Jul 28 10:27 /dev/sdd1 brw-rw----. 1 root disk 8, 65 Jul 28 10:27 /dev/sde1
  5. 配置**scsi_id**命令的**-g**選項,以期從共享裝置獲取UUID。
  6. [root@collabn1 ~]# echo "options=-g" > /etc/scsi_id.config
  7. 測試scsi_id -是否返回資料。

  8. [root@collabn1 ~]#  /sbin/scsi_id -g -u -d /dev/sdb
    


  9. 透過執行以下指令碼準備檔案** /etc/udev/rules.d/99-oracle-asmdevices.rules**
  10. #!/bin/bash
    #file ~/createOracleAsmUdevRules.sh
    
    i=1
     # ol6 / rhel6 / centos 6 
    cmd="/sbin/scsi_id -g -u -d"
    for disk in sdb sdc sdd sde ; do 
             cat <<EOF >> /etc/udev/rules.d/99-oracle-asmdevices.rules
    KERNEL=="sd?1", BUS=="scsi", PROGRAM=="$cmd /dev/\$parent", \
     RESULT=="`$cmd /dev/$disk`", NAME="asm-disk$i", OWNER="oracle", GROUP="dba", MODE="0660"
    EOF
             i=$(($i+1)) 
    done
    
  11. 完成後,檔案應如下所示(除了scsi UUID)。
  12. 注意:以“KERNEL”開頭的行不得拆分。[root@collabn1 ~]# cat /etc/udev/rules.d/99-oracle-asmdevices.rules KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB2216c54a-825b4598", NAME="asm-disk1", OWNER="oracle", GROUP="dba", MODE="0660" KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB83dd4d7f-d052e72c", NAME="asm-disk2", OWNER="oracle", GROUP="dba", MODE="0660" KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB636da22f-87dc2f88", NAME="asm-disk3", OWNER="oracle", GROUP="dba", MODE="0660" KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB86aaf297-60dcda74", NAME="asm-disk4", OWNER="oracle", GROUP="dba", MODE="0660"
  13. 重新載入udev規則並重啟udev。
  14. [root@collabn1 ~]# /sbin/partprobe /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 [root@collabn1 ~]# /sbin/udevadm test /block/sdb/sdb1 [root@collabn1 ~]# /sbin/udevadm test /block/sdc/sdc1 [root@collabn1 ~]# /sbin/udevadm test /block/sdd/sdd1 [root@collabn1 ~]# /sbin/udevadm test /block/sde/sde1 [root@collabn1 ~]# /sbin/udevadm control --reload-rules [root@collabn1 ~]# /sbin/start_udev 啟動udev:[OK] [root@collabn1 ~]# /etc/init.d/oracleasm scandisks [root@collabn1 ~]# /etc/init.d/oracleasm listdisks
  15. 新的磁碟已準備好使用。
  16. [root@collabn1 ~]# ls -l /dev/asm* brw-rw----. 1 oracle dba 8, 17 Jul 30 16:17 /dev/asm-disk1 brw-rw----. 1 oracle dba 8, 33 Jul 30 16:17 /dev/asm-disk2 brw-rw----. 1 oracle dba 8, 49 Jul 30 16:17 /dev/asm-disk3 brw-rw----. 1 oracle dba 8, 65 Jul 30 16:17 /dev/asm-disk4


克隆VirtualBox虛擬機器

[編輯 | 編輯原始碼]
  1. 關閉虛擬機器。
  2. [root@collabn1 ~]# shutdown -h now 來自root@collabn1.racattack (/dev/pts/0) 的廣播訊息,於 8:42 ... 系統即將立即關閉!
  3. 克隆磁碟**collabn1.vdi**:在VirtualBox管理器中,點選**檔案** -> **虛擬介質管理器**。
  4. Virtualbox 4: Virtual box manager
  5. 右鍵點選磁碟**collabn1.vdi**,然後點選**複製...**。
  6. Virtualbox 4: Clone Disk - Virtual Media Manager copy
  7. 保留檔案collabn1.vdi,點選**下一步**。
  8. Virtualbox 4: Clone Disk - Virtual Media Manager HD to copy
  9. 保留**VDI**作為檔案型別。點選**下一步**。
  10. Virtualbox 4: Clone Disk - HD type
  11. 保留**動態分配**。點選**下一步**。
  12. Virtualbox 4: Clone Disk - allocation type
  13. 輸入要建立的磁碟檔案的完整路徑,或透過瀏覽圖示進行選擇位置
  14. 同樣,最好使用之前為所有虛擬磁碟建立的公共資料夾**racattack12c**。 檔案應命名為**collabn2.vdi**。 點選**複製**。 Virtualbox 4: Clone Disk - new disk name
  15. 點選**關閉**退出虛擬介質管理器。


建立第二個VirtualBox虛擬機器

[編輯 | 編輯原始碼]
  1. 在VirtualBox中,點選左上角的**新建**圖示以建立新的虛擬機器。
  2. 為虛擬機器的**名稱**輸入**collabn2**。為**型別**選擇**Linux**,為**版本**選擇**Oracle (64 bit)**,然後點選**下一步**。
  3. Virtualbox 4: Second VM Name and OS
  4. 大小欄位中輸入3072,然後點選下一步 如果您只有 8GB 的總記憶體,請將其減少到 2510,否則您的筆記型電腦可能會變慢
  5. RA-vbox 4214-create vm-vm memory
  6. 選擇**使用現有的虛擬硬碟檔案**,並使用資料夾圖示找到之前建立的檔案**collabn2.vdi**。
  7. 點選**建立**完成第二個虛擬機器的建立。 Virtualbox 4: Create second vm - Use existing HD
  8. 現在有兩個虛擬機器;**collabn2**是**collabn1**的克隆。
  9. 在主螢幕上,選擇虛擬機器**collabn2**,然後點選左上角的**設定**圖示。 RA-Oracle_Linux_6_64bit-Configure_OS-finished cloning
  10. 開啟USB子選單。取消選中啟用 USB 控制器複選框。
  11. RA-vbox 4214-create vm-usb settings
  12. 開啟網路子選單。在介面卡 1選項卡下,將連線到:下拉選單更改為僅主機介面卡
  13. VirtualBox_Settings_Network_Adapter_1
  14. 選擇介面卡 2選項卡。選中啟用網路介面卡複選框。將連線到:下拉選單更改為內部網路,並在名稱欄位中輸入名稱rac-priv
  15. VirtualBox_New_VM_Settings_Network_Adapter_2
  16. 選擇介面卡 3選項卡。選中啟用網路介面卡複選框。將連線到:下拉選單更改為NAT
  17. VirtualBox_New_VM_Settings_Network_Adapter_3
  18. 選擇共享資料夾選項卡。單擊新增共享資料夾
  19. 輸入您下載Oracle安裝介質的路徑,併為您的資料夾輸入一個名稱。 選中自動掛載並單擊確定 VirtualBox_New_VM_Settings_Shared folder
  20. 開啟儲存子選單。
  21. 點選**控制器SATA**,然後點選**新增磁碟** VirtualBox New VM Settings - Add shared storage
  22. 點選**選擇現有磁碟**
  23. VirtualBox New VM Settings - Choose existing disk
  24. 選擇磁碟**asm1.vdi**,然後點選**開啟**。
  25. VirtualBox New VM Settings - Choose existing disk ASM
  26. 重複此操作以新增所有剩餘的asm磁碟。
  27. VirtualBox New VM Settings - Storage added
  28. 單擊確定儲存修改。
  29. 檢視新虛擬機器的摘要。
  30. Vbox 4: Create Second VM - complete VM settings
  31. 啟動**collabn2**虛擬機器。


配置第二個Linux虛擬機器

[編輯 | 編輯原始碼]
  1. 網路尚不可用,因為我們重新初始化了網路介面卡,因此需要在虛擬機器中進行以下更改。 以**root/racattack**身份登入。鍵入命令**system-config-network**。**裝置配置**已突出顯示。按**Enter**。
  2. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network change
  3. **eth0 (eth0) - 乙太網**已突出顯示。按**Enter**。
  4. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network save devices
  5. 向下到**靜態IP**行。將IP更改為**192.168.78.52**。向下到**確定**並按**Enter**。
  6. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network eth0
  7. 選擇**eth1 (eth1) - 乙太網**並按**Enter**。向下到**靜態IP**行。將IP更改為**172.16.100.52**。向下到**確定**並按**Enter**。
  8. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network eth1
  9. Tab到**儲存**並按**Enter**。
  10. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network save devices
  11. 向下箭頭到**DNS配置**並按**Enter**。
  12. RA-Oracle_Linux_6_64bit-Configure_OS-post clone DNS configuration
  13. 在**主機名**欄位中,更改為**collabn2.racattack**。Tab到**確定**並按**Enter**。
  14. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network dns change
  15. Tab到**儲存並退出**並按**Enter**。
  16. RA-Oracle_Linux_6_64bit-Configure_OS-post clone network save quit
  17. 檢查/etc/sysconfig/network-scripts/ifcfg-eth2中引數PEERDNS是否設定為no,以防止resolv.conf被dhcp客戶端覆蓋
  18. DEVICE=eth2 TYPE=Ethernet UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp HWADDR=xx:xx:xx:xx:xx DEFROUTE=yes PEERDNS=no PEERROUTES=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth2" USERCTL=no
  19. 刪除udev網路規則檔案。它將在下次重啟時使用新的MAC地址重新生成。
  20. [root@collabn2 ~]# rm -f /etc/udev/rules.d/70-persistent-net.rules
  21. 刪除網路介面卡配置檔案中的**HWADDR**和**UUID**行。
  22. [root@collabn2 ~]# sed -i -e '/HWADDR/d' -e '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-eth[0-2]
  23. 透過鍵入**reboot**重啟**collabn2**虛擬機器。
  24. 也啟動**collabn1**虛擬機器,併為兩者啟動Putty會話。

    RA-Oracle_Linux_6_64bit-Configure_OS-collabn1 reboot
  25. 驗證所有網路介面是否都已啟動。
  26. [root@collabn2 ~]# ip l 1: lo: <環回,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <廣播,多播,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:c9:39:d3 brd ff:ff:ff:ff:ff:ff 3: eth1: <廣播,多播,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:33:bd:a8 brd ff:ff:ff:ff:ff:ff 4: eth2: <廣播,多播,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:5f:61:29 brd ff:ff:ff:ff:ff:ff
  27. 驗證所有ASM裝置是否可見。
  28. [root@collabn2 ~]# ls -l /dev/asm* brw-rw----. 1 oracle dba 8, 17 Aug 5 15:40 /dev/asm-disk1 brw-rw----. 1 oracle dba 8, 33 Aug 5 15:40 /dev/asm-disk2 brw-rw----. 1 oracle dba 8, 49 Aug 5 15:40 /dev/asm-disk3 brw-rw----. 1 oracle dba 8, 65 Aug 5 15:40 /dev/asm-disk4


完成DNS設定

[編輯 | 編輯原始碼]
  1. collabn2上開啟一個會話。
  2. 停止DNS服務。
  3. [root@collabn2 ~]# service named stop 正在停止 named: . [ OK ]
  4. 刪除實際的DNS檔案。
  5. [root@collabn2 ~]# rm -f /var/named/racattack /var/named/in-addr.arpa
  6. 使用以下命令修改檔案/etc/named.conf
  7. https://wikibook.tw/wiki/RAC_Attack_-_Oracle_Cluster_Database_at_Home/RAC_Attack_12c/Complete_DNS_Setup

    sed -i -e 's/listen-on .*/listen-on port 53 { 192.168.78.52; };/' \
    -e 's/type master;/type slave;\n masters  {192.168.78.51; };/' \
    /etc/named.conf
    

    以便最後看起來像這樣

    options {
           listen-on port 53 { 192.168.78.52; };
           listen-on-v6 port 53 { ::1; };
           directory       "/var/named";
           dump-file       "/var/named/data/cache_dump.db";
           statistics-file "/var/named/data/named_stats.txt";
           memstatistics-file "/var/named/data/named_mem_stats.txt";
           allow-query     { 192.168.78.0/24; localhost; };
           allow-transfer  { 192.168.78.0/24; };
           recursion yes;
    
           dnssec-enable yes;
           dnssec-validation yes;
           dnssec-lookaside auto;
    
           /* Path to ISC DLV key */
           bindkeys-file "/etc/named.iscdlv.key";
    
           managed-keys-directory "/var/named/dynamic";
    };
    
    logging {
           channel default_debug {
                   file "data/named.run";
                   severity dynamic;
           };
    };
    
    zone "." IN {
           type hint;
           file "named.ca";
    };
    
    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";
    
    zone "racattack" {
     type slave;
     masters  { 192.168.78.51; };
     file "racattack";
    };
    
    zone "in-addr.arpa" {
     type slave;
     masters  { 192.168.78.51; };
     file "in-addr.arpa";
    };
    
  8. 啟動named服務。
  9. [root@collabn2 ~]# service named start 正在啟動 named: [ OK ]
  10. 檢查collabn1上的主DNS伺服器和collabn2上的從DNS伺服器是否都正常工作。
  11. 執行以下所有語句以驗證兩個DNS伺服器的正確配置

    https://wikibook.tw/wiki/RAC_Attack_-_Oracle_Cluster_Database_at_Home/RAC_Attack_12c/Linux_Post_Installation_No_Internet

    [root@collabn2 ~]# dig @collabn1 collabn1.racattack
    [root@collabn2 ~]# dig @collabn1 collabn2.racattack
    [root@collabn2 ~]# dig @collabn1 collabn1-vip.racattack
    [root@collabn2 ~]# dig @collabn1 collabn2-vip.racattack
    [root@collabn2 ~]# dig @collabn1 collabn1-priv.racattack
    [root@collabn2 ~]# dig @collabn1 collabn2-priv.racattack
    [root@collabn2 ~]# dig @collabn1 collabn-cluster-scan.racattack
    
    [root@collabn2 ~]# dig @collabn2 collabn1.racattack
    [root@collabn2 ~]# dig @collabn2 collabn2.racattack
    [root@collabn2 ~]# dig @collabn2 collabn1-vip.racattack
    [root@collabn2 ~]# dig @collabn2 collabn2-vip.racattack
    [root@collabn2 ~]# dig @collabn2 collabn1-priv.racattack
    [root@collabn2 ~]# dig @collabn2 collabn2-priv.racattack
    [root@collabn2 ~]# dig @collabn2 collabn-cluster-scan.racattack
    


VNC伺服器設定

[編輯 | 編輯原始碼]
  1. 使用oracle帳戶配置VNC伺服器(密碼不會顯示)
  2. [root@collabn1 ~]# su - oracle [oracle@collabn1 ~]$ vncserver :1 您需要密碼才能訪問您的桌面。 密碼:racattack 驗證:racattack xauth: 建立新的授權檔案 /home/oracle/.Xauthority 新的'collabn1.racattack:1 (oracle)'桌面是collabn1.racattack:1 建立預設啟動指令碼 /home/oracle/.vnc/xstartup 正在啟動/home/oracle/.vnc/xstartup中指定的應用程式 日誌檔案是 /home/oracle/.vnc/collabn1.racattack:1.log
  3. 在您的筆記型電腦上開啟vncviewer,並填寫collabn1的IP地址,後跟:1
  4. RA-VNCViewer-Connect form

  5. 出現提示時輸入密碼racattack
  6. RA-VNCViewer-Password form
  7. 圖形介面已準備好進行網格基礎架構安裝。
  8. RA-VNCViewer-Connected


安裝網格基礎架構

[編輯 | 編輯原始碼]

準備安裝GI

[編輯 | 編輯原始碼]
  1. 驗證包含安裝介質的VirtualBox共享資料夾是否已正確掛載,並且Oracle可以訪問它。
  2. [root@collabn1 ~]# su - oracle [oracle@collabn1 ~]$ df -k 檔案系統 1K塊 已用 可用 使用% 掛載點 /dev/mapper/vg_collabn1-lv_root 27407400 2798080 23217092 11% / tmpfs 1544640 0 1544640 0% /dev/shm /dev/sda1 495844 55641 414603 12% /boot 12cR1 976728060 863308936 113419124 89% /media/sf_12cR1 [oracle@collabn1 ~]$ ls -l /media/sf_12cR1 總計 6295549 -rwxrwx---. 1 root vboxsf 1361028723 Jun 27 16:21 linuxamd64_12c_database_1of2.zip -rwxrwx---. 1 root vboxsf 1116527103 Jun 27 16:12 linuxamd64_12c_database_2of2.zip -rwxrwx---. 1 root vboxsf 1750478910 Jun 27 16:27 linuxamd64_12c_grid_1of2.zip -rwxrwx---. 1 root vboxsf 201673595 Jun 27 15:23 linuxamd64_12c_grid_2of2.zip
  3. 您可以選擇從您的筆記型電腦(使用Windows原生功能、WinZip、7-Zip或其他工具)或直接從伺服器解壓縮它。
  4. [oracle@collabn1 ~]$ cd /media/sf_12cR1 [oracle@collabn1 sf_12cR1]$ unzip linuxamd64_12c_database_1of2.zip 歸檔檔案:linuxamd64_12c_database_1of2.zip 建立:database/ OK 正在膨脹:database/welcome.html OK 建立:database/response/ OK 正在膨脹:database/response/db_install.rsp OK 正在膨脹:database/response/netca.rsp OK 正在膨脹:database/response/dbca.rsp OK 建立:database/sshsetup/ OK 正在膨脹:database/sshsetup/sshUserSetup.sh OK 建立:database/rpm/ OK 正在膨脹:database/rpm/cvuqdisk-1.0.9-1.rpm OK [...] [oracle@collabn1 sf_12cR1]$ unzip linuxamd64_12c_database_2of2.zip [...] [oracle@collabn1 sf_12cR1]$ unzip linuxamd64_12c_grid_1of2.zip [...] [oracle@collabn1 sf_12cR1]$ unzip linuxamd64_12c_grid_2of2.zip [...]
  5. 軟體包解壓縮完成後,您將得到兩個目錄,griddatabase,其中包含安裝檔案。
  6. [oracle@collabn1 sf_12cR1]$ ls -l 總計 6295549 drwxrwx---. 1 root vboxsf 0 Jul 3 06:38 database drwxrwx---. 1 root vboxsf 0 Jun 10 08:15 grid -rwxrwx---. 1 root vboxsf 1361028723 Jun 27 16:21 linuxamd64_12c_database_1of2.zip -rwxrwx---. 1 root vboxsf 1116527103 Jun 27 16:12 linuxamd64_12c_database_2of2.zip -rwxrwx---. 1 root vboxsf 1750478910 Jun 27 16:27 linuxamd64_12c_grid_1of2.zip -rwxrwx---. 1 root vboxsf 201673595 Jun 27 15:23 linuxamd64_12c_grid_2of2.zip
  7. root使用者身份安裝cvuqdisk軟體包
  8. [root@collabn1 ~]# rpm -Uvh /media/sf_12cR1/grid/rpm/cvuqdisk-1.0.9-1.rpm 正在準備... ########################################### [100%] 使用預設組oinstall安裝軟體包1:cvuqdisk ########################################### [100%] [root@collabn1 ~]#
  9. 在節點collabn2上執行相同的操作
  10. [root@collabn2 ~]# rpm -Uvh /media/sf_12cR1/grid/rpm/cvuqdisk-1.0.9-1.rpm 正在準備... ########################################### [100%] 使用預設組oinstall安裝軟體包1:cvuqdisk ########################################### [100%] [root@collabn2 ~]#


安裝網格基礎架構

[編輯 | 編輯原始碼]
  1. 從VNC遠端會話中,以oracle使用者身份執行網格基礎架構的安裝。
  2. [oracle@collabn1 ~]$ /media/sf_12cR1/grid/runInstaller 正在啟動Oracle通用安裝程式... 正在檢查臨時空間:必須大於120 MB。實際22670 MB 透過 正在檢查交換空間:必須大於150 MB。實際3023 MB 透過 正在檢查監視器:必須配置為顯示至少256種顏色。實際16777216 透過 正在準備從/tmp/OraInstall2013-08-06_04-25-00PM啟動Oracle通用安裝程式。請稍候...[oracle@collabn1 ~]$ [oracle@collabn1 ~]$
  3. 安裝開始顯示啟動畫面
  4. RA-Oracle_GI_12101-Install-Splash
  5. 保留跳過軟體更新,然後單擊下一步
  6. RA-Oracle_GI_12101-Install-Software Updates
  7. 保留為叢集安裝和配置Oracle Grid Infrastructure,然後單擊下一步
  8. RA-Oracle_GI_12101-Install-Installation option
  9. 保留配置標準叢集,然後單擊下一步
  10. RA-Oracle_GI_12101-Install-Cluster Type
  11. 保留典型安裝,然後單擊下一步
  12. RA-Oracle_GI_12101-Install-Installation type
  13. SCAN名稱框中,輸入collabn-cluster-scan.racattack
  14. 在中央框中,僅顯示第一個節點。單擊新增...並輸入第二個節點的網路名稱。
    • 公共主機名:collabn2.racattack
    • 虛擬主機名:collabn2-vip.racattack
    RA-Oracle_GI_12101-Install-Cluster configuration
  15. 單擊SSH連線...
  16. RA-Oracle_GI_12101-Install-Cluster configuration done
  17. 輸入racattack作為oracle使用者的密碼,然後單擊設定
  18. RA-Oracle_GI_12101-Install-SSH connectivity
  19. SSH等效性的設定已啟動。
  20. RA-Oracle_GI_12101-Install-SSH connectivity progress
  21. 完成後,單擊確定
  22. RA-Oracle_GI_12101-Install-SSH connectivity OK
  23. 單擊識別網路介面...
  24. 檢查是否設定了正確的地址。
    • eth0標記為公共
    • eth1標記為私有
    • eth2標記為不使用
    單擊確定關閉識別網路介面視窗。 最後,單擊下一步 RA-Oracle_GI_12101-Install-Identify Network Interfaces
  25. 在此步驟中會執行一些先決條件驗證。可能需要幾分鐘才能完成。
  26. RA-Oracle_GI_12101-Install-Installer validation
  27. 由於選擇的SCAN名稱太長(超過15個字元),Oracle建議使用不同的名稱作為叢集名稱。單擊
  28. RA-Oracle_GI_12101-Install-Confirm Cluster Name
  29. 保留預設的Oracle基本目錄和軟體位置。
  30. 叢集登錄檔儲存型別組合框中,選擇Oracle自動儲存管理 輸入racattack作為SYSASM密碼。 選擇dba作為OSASM組。 單擊下一步 RA-Oracle_GI_12101-Install-Install Locations
  31. racattack是一個弱密碼,Oracle會發出警告。單擊繼續
  32. RA-Oracle_GI_12101-Install-Sysasm weak password
  33. DATA保留為磁碟組名稱。
  34. 選擇外部冗餘(在RAC Attack事件中這樣做是安全的!)。 候選磁碟列表為空。點選更改發現路徑... 磁碟發現路徑文字欄位中輸入/dev/asm* 點選確定 RA-Oracle_GI_12101-Install-Create ASM Diskgroup
  35. 選中兩個將立即分配到新磁碟組的磁碟。
  36. 點選下一步 RA-Oracle_GI_12101-Install-Create ASM Diskgroup disks
  37. 保留預設的清單目錄。點選下一步
  38. RA-Oracle_GI_12101-Install-Create Inventory
  39. 選中自動執行配置指令碼,然後選中使用“root”使用者憑據
  40. 輸入racattack作為root的密碼,然後點選下一步 RA-Oracle_GI_12101-Install-Root script execution credentials
  41. 完成先決條件檢查需要一些時間。
  42. RA-Oracle_GI_12101-Install-Prerequisite Check progress
  43. 如果一切正確,您將注意到兩個檢查失敗了
    • 物理記憶體
    • ASM的裝置檢查
    選中“忽略全部”,然後點選下一步 RA-Oracle_GI_12101-Install-Prerequisite checks
  44. 點選確認您要跳過一些先決條件。
  45. RA-Oracle_GI_12101-Install-Prerequisite checks continue
  46. 將出現摘要頁面。可以選擇點選儲存響應檔案並選擇一個位置來儲存此安裝會話的響應檔案。
  47. RA-Oracle_GI_12101-Install-Save response file
  48. 檢視摘要並點選安裝開始安裝。
  49. RA-Oracle_GI_12101-Install-Summary
  50. 安裝開始。根據您的筆記型電腦硬體,可能需要一個多小時。
  51. RA-Oracle_GI_12101-Install-Install product progress
  52. 過了一會兒,安裝程式會在以root身份執行一些指令碼之前要求確認。點選繼續。
  53. RA-Oracle_GI_12101-Install-Confirm root execution
  54. 安裝繼續,同樣,可能需要很長時間才能完成。完成後,點選關閉退出。
  55. RA-Oracle_GI_12101-Install-Completed


安裝GI後檢查叢集狀態

[編輯 | 編輯原始碼]
  1. 網格基礎架構安裝完成後,您可以獲取叢集元件的狀態
  2. [oracle@collabn1 ~]$ . oraenv ORACLE_SID = [oracle] ? +ASM1 [oracle@collabn1 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- 名稱 目標 狀態 伺服器 狀態 詳細資訊 -------------------------------------------------------------------------------- 本地資源 -------------------------------------------------------------------------------- ora.DATA.dg 線上 線上 collabn1 穩定 線上 線上 collabn2 穩定 ora.LISTENER.lsnr 線上 線上 collabn1 穩定 線上 線上 collabn2 穩定 ora.asm 線上 線上 collabn1 已啟動,穩定 線上 線上 collabn2 已啟動,穩定 ora.net1.network 線上 線上 collabn1 穩定 線上 線上 collabn2 穩定 ora.ons 線上 線上 collabn1 穩定 線上 線上 collabn2 穩定 -------------------------------------------------------------------------------- 叢集資源 -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 線上 線上 collabn2 穩定 ora.LISTENER_SCAN2.lsnr 1 線上 線上 collabn1 穩定 ora.LISTENER_SCAN3.lsnr 1 線上 線上 collabn1 穩定 ora.collabn1.vip 1 線上 線上 collabn1 穩定 ora.collabn2.vip 1 線上 線上 collabn2 穩定 ora.cvu 1 線上 線上 collabn1 穩定 ora.oc4j 1 離線 離線 穩定 ora.scan1.vip 1 線上 線上 collabn2 穩定 ora.scan2.vip 1 線上 線上 collabn1 穩定 ora.scan3.vip 1 線上 線上 collabn1 穩定 --------------------------------------------------------------------------------
  3. 可選步驟:為了提高節點對Virtualbox環境巨大延遲的抵抗力,您可以增加CRS在導致節點隔離(重啟)之前的超時時間。
  4. 在將配置應用於第一個節點時,您需要停止第二個節點。[oracle@collabn1 ~]$ ssh collabn2 [oracle@collabn2 ~]$ su - 密碼: [root@collabn2 ~]# . oraenv ORACLE_SID = [root] ? +ASM2 Oracle 基礎已設定為 /u01/app/oracle [root@collabn2 ~]# crsctl stop crs CRS-2791: 正在啟動在 'collabn2' 上關閉 Oracle 高可用服務管理的資源 CRS-2673: 正在嘗試停止 'ora.crsd' 在 'collabn2' 上 CRS-2790: 正在啟動在 'collabn2' 上關閉叢集就緒服務管理的資源 CRS-2673: 正在嘗試停止 'ora.DATA.dg' 在 'collabn2' 上 ... CRS-2677: 'ora.gipcd' 在 'collabn2' 上的停止成功 CRS-2793: 'collabn2' 上 Oracle 高可用服務管理的資源的關閉已完成 CRS-4133: Oracle 高可用服務已停止。 [root@collabn2 ~]# exit 登出 [oracle@collabn2 ~]$ exit 登出 連線到 collabn2 已關閉。 [oracle@collabn1 ~]$ su - 密碼: [root@collabn1 ~]# . oraenv ORACLE_SID = [root] ? +ASM1 Oracle 基礎已設定為 /u01/app/oracle [root@collabn1 ~]# crsctl get css misscount CRS-4678: 叢集同步服務的成功獲取丟失計數 30。 [root@collabn1 ~]# crsctl set css misscount 90 CRS-4684: 叢集同步服務的成功設定引數丟失計數為 90。 [root@collabn1 ~]# crsctl get css disktimeout CRS-4678: 叢集同步服務的成功獲取磁碟超時 200。 [root@collabn1 ~]# crsctl set css disktimeout 600 CRS-4684: 叢集同步服務的成功設定引數磁碟超時為 600。 [root@collabn1 ~]# ssh collabn2 root@collabn2 的密碼: 最後登入: 2013年8月6日星期二16:19:56 來自 192.168.78.51 [root@collabn2 ~]# . oraenv ORACLE_SID = [root] ? +ASM2 Oracle 基礎已設定為 /u01/app/oracle [root@collabn2 ~]# crsctl start crs CRS-4123: Oracle 高可用服務已啟動。啟動命令在幾秒鐘內返回提示符。但是,整個堆疊完全啟動可能需要幾分鐘。


ASM 配置

[編輯 | 編輯原始碼]
  1. 從VNC會話中,執行ASM配置助手
  2. [oracle@collabn1 ~] . oraenv ORACLE_SID = [oracle] ? +ASM1 Oracle 基礎已設定為 /u01/app/oracle [oracle@collabn1 ~]$ asmca
  3. asmca在“磁碟組”選項卡上開啟,顯示安裝程式建立的DATA磁碟組。點選建立
  4. RA-Oracle_GI_12101-asmca-diskgroups
  5. 輸入FRA作為磁碟組名稱。
  6. 選擇外部(無)冗餘。 選中一個磁碟以建立5GB的磁碟組。 單擊確定 RA-Oracle_GI_12101-asmca-add_diskgroups
  7. 正在建立磁碟組。
  8. RA-Oracle_GI_12101-asmca-Creating diskgroup
  9. 磁碟組已建立。
  10. RA-Oracle_GI_12101-asmca-Diskgroup created
  11. 點選選項卡,然後點選建立
  12. 輸入SHARED作為卷名。

    選擇磁碟組DATA

    大小在我們的實驗中無關緊要,因此輸入1。

    單擊確定

    RA-Oracle_GI_12101-asmca-Creating volume


  13. 卷已建立。
  14. RA-Oracle GI 12101-asmca-Volume created
  15. 選擇ASM叢集檔案系統選項卡。
  16. 單擊建立 RA-Oracle_GI_12101-asmca-Filesystems
  17. 選擇叢集檔案系統
  18. 掛載點:/shared 選中自動掛載 使用者名稱:oracle 組名:dba 卷:SHARED 單擊確定 RA-Oracle_GI_12101-asmca-Creating Filesystem
  19. 要完成檔案系統的建立,請以root身份執行此指令碼。
  20. RA-Oracle_GI_12101-asmca-Creating Filesystem acfs script [root@collabn1 ~]# /u01/app/oracle/cfgtoollogs/asmca/scripts/acfs_script.sh ACFS檔案系統/shared已掛載到節點collabn1 ACFS檔案系統/shared已掛載到節點collabn2
  21. 最後,檔案系統已掛載到兩個節點上。
  22. [root@collabn1 ~]# df -k 檔案系統 1K-塊 已用 可用 使用% 掛載點 /dev/mapper/vg_collabn1-lv_root 27407400 8778184 17236988 34% / tmpfs 1544640 653576 891064 43% /dev/shm /dev/sda1 495844 55641 414603 12% /boot 12cR1 976728060 863308972 113419088 89% /media/sf_12cR1 /dev/asm/shared-336 1048576 80176 968400 8% /shared [root@collabn2 ~]# df -k 檔案系統 1K-塊 已用 可用 使用% 掛載點 /dev/mapper/vg_collabn1-lv_root 27407400 8883544 17131628 35% / tmpfs 1544640 653576 891064 43% /dev/shm /dev/sda1 495844 55641 414603 12% /boot /dev/asm/shared-336 1048576 80176 968400 8% /shared


安裝資料庫軟體

[編輯 | 編輯原始碼]
  1. 在VNC會話中,以oracle使用者身份執行安裝程式。
  2. [oracle@collabn1 ~]$ /media/sf_12cR1/database/runInstaller 正在啟動Oracle通用安裝程式... 正在檢查臨時空間:必須大於500 MB。實際16829 MB 透過 正在檢查交換空間:必須大於150 MB。實際3023 MB 透過 正在檢查監視器:必須配置為至少顯示256色。實際16777216 透過 正在準備從/tmp/OraInstall2013-08-08_06-27-48PM啟動Oracle通用安裝程式。請稍候...
  3. 將出現啟動畫面。
  4. RA-Oracle_RAC_12101-Install-Splash
  5. 取消選中我希望透過My Oracle Support接收安全更新,然後點選下一步
  6. RA-Oracle_RAC_12101-Install-Security_updates
  7. 點選確認您不想收到安全更新通知。
  8. RA-Oracle_RAC_12101-Install-Address not specified
  9. 選擇跳過軟體更新,然後點選下一步
  10. RA-Oracle_RAC_12101-Install-Software_updates
  11. 選擇僅安裝資料庫軟體,然後點選下一步
  12. RA-Oracle_RAC_12101-Install-Installation option
  13. 選擇Oracle Real Application Clusters資料庫安裝,然後點選下一步
  14. RA-Oracle_RAC_12101-Install-Grid Installation option
  15. 驗證所有節點是否都已選中,然後點選下一步
  16. RA-Oracle_RAC_12101-Install-Node selection
  17. 點選下一步接受預設語言選擇。
  18. RA-Oracle_RAC_12101-Install-Product languages
  19. 選擇企業版,然後點選下一步
  20. RA-Oracle_RAC_12101-Install-Database edition
  21. 如果您之前已建立了ACFS 1GB檔案系統,則現在需要指定另一個位置。
  22. Oracle基礎:/u01/app/oracle 軟體位置:/u01/app/oracle/product/12.1.0/dbhome_1 單擊下一步 RA-Oracle_RAC_12101-Install-Installation location
  23. 將所有組(除OSOPER組外,將其保留為空)保留為dba,然後點選下一步
  24. RA-Oracle_RAC_12101-Install-Operating system groups
  25. 安裝程式檢查所有先決條件。
  26. RA-Oracle_RAC_12101-Install-Prerequisite checks
  27. 檢視安裝摘要,可以選擇儲存響應檔案,然後點選安裝
  28. RA-Oracle_RAC_12101-Install-Summary
  29. 在普通的筆記型電腦配置上,安裝可能需要半小時。
  30. RA-Oracle_RAC_12101-Install-Installation progress
  31. 在即將完成之前,安裝程式會要求以root身份在兩個節點上執行指令碼。不要點選確定
  32. RA-Oracle_RAC_12101-Install-Execute root scripts
  33. 以root身份在兩個節點上執行指令碼。

  34. [root@collabn1 ~]# /u01/app/oracle/product/12.1.0/dbhome_1/root.sh 正在執行 Oracle 12c 的 root 使用者操作 以下環境變數已設定: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/12.1.0/dbhome_1 輸入本地 bin 目錄的完整路徑名: [/usr/local/bin]: “dbhome” 的內容未更改。無需覆蓋。 “oraenv” 的內容未更改。無需覆蓋。 “coraenv” 的內容未更改。無需覆蓋。 當建立資料庫時,資料庫配置助手將根據需要將條目新增到 /etc/oratab 檔案中 完成執行 root 指令碼的通用部分。現在將執行特定於產品的 root 操作。 [root@collabn1 ~]# ssh collabn2 root@collabn2 的密碼: 最後登入:2013年8月8日星期四 16:54:49 來自 192.168.78.1 [root@collabn2 ~]# /u01/app/oracle/product/12.1.0/dbhome_1/root.sh 正在執行 Oracle 12c 的 root 使用者操作 以下環境變數已設定: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/12.1.0/dbhome_1 輸入本地 bin 目錄的完整路徑名: [/usr/local/bin]: “dbhome” 的內容未更改。無需覆蓋。 “oraenv” 的內容未更改。無需覆蓋。 “coraenv” 的內容未更改。無需覆蓋。 當建立資料庫時,資料庫配置助手將根據需要將條目新增到 /etc/oratab 檔案中 完成執行 root 指令碼的通用部分。現在將執行特定於產品的 root 操作。
  35. 在之前的視窗中點選確定,然後點選關閉退出安裝程式。
  36. RA-Oracle_RAC_12101-Install-Completed


建立資料庫

[編輯 | 編輯原始碼]
  1. 執行資料庫配置助手
  2. [oracle@collabn1 ~]$ /u01/app/oracle/product/12.1.0/dbhome_1/bin/dbca
  3. 將出現啟動畫面。
  4. RA-Oracle_RAC_12101-DBCA Splash
  5. 選擇建立資料庫並點選下一步
  6. RA-Oracle_RAC_12101-DBCA Database Operation
  7. 選擇使用預設配置建立資料庫
  8. 全域性資料庫名稱:RAC.racattack 儲存型別:自動儲存管理 (ASM) 資料庫檔案位置:+DATA 快速恢復區:+FRA 資料庫字元集:AL32UTF8 - Unicode UTF-8 通用字元集 管理密碼:racattack 選中作為容器資料庫建立 可插拔資料庫名稱:PDB (*)

    單擊下一步

    RA-Oracle_RAC_12101-DBCA Creation mode


  9. 由於密碼較弱,會顯示警告。點選繼續。
  10. 由於空間要求,先決條件檢查可能會失敗。可以透過選中忽略所有來安全地忽略。
  11. 單擊下一步 RA-Oracle_RAC_12101-DBCA Prerequisite checks
  12. 檢視摘要頁面並點選完成
  13. RA-Oracle_RAC_12101-DBCA Summary
  14. 資料庫建立已完成。點選退出,然後點選關閉
  15. RA-Oracle_RAC_12101-DBCA Database Created


華夏公益教科書