1. 程式人生 > >史上最詳細:在VMware虛擬機器裡搭建DB2 purescale測試

史上最詳細:在VMware虛擬機器裡搭建DB2 purescale測試

說明

DB2的purescale功能由於牽扯到多款產品,包括GPFS, RSCT,TSA,所以非常複雜,搭建的過程稍有不慎,就會遇到很多的報錯。本文詳細地介紹瞭如何在VMware虛擬機器裡搭建出一個Linux環境下的purescale叢集,叢集有兩個節點node01,node02,每個節點上一個member,一個cf。

測試過程中,輸入的命令以藍色表示,前面#表示用root使用者執行,$表示例項使用者執行。需要強調的地方用紅色標出。


測試環境

windows 7
FlashFXP
SecureCRT
DB2 10.5FP8
SUSE Linux 11.4
Vmware 10.0.1


測試步驟

1. 安裝兩個SUSE

Vmware裡安裝兩個SUSE,安裝的步驟是一樣的,注意要點:

1.1 選擇自定義安裝

1.2  磁碟和記憶體大小

選擇磁碟和記憶體大小的時候,磁碟建議至少40G,記憶體至少要2560M (我一開始的時候設定記憶體為2000M,最後啟動CF的時候總是報錯)



其他的都採用預設選項就好,注意檢查預設網路採用的是否是NAT方式。

2. 修改主機名和hosts檔案 (兩臺機器都要做)

2.1 檢視IP地址:

安裝完成之後,兩臺虛擬機器會自動開啟,登入之後,在桌面上空白處點選右鍵->Open in Terminal->輸入命令 "ipconfig -a":


查到IP地址之後,後面的大部分步驟都可以不用在虛擬機器裡做了,直接使用win7下的secureCRT或者PuTTY連線到虛擬機器即可。

2.2 修改hostname

在/etc/rc.d/boot.localnet開頭新增一行
export HOSTNAME=node01

另一臺機器主機名修改為node02,這個重啟之後生效的,所以不必著急現在就看到效果。

2.3 修改 /etc/hosts檔案如下:

其中192.168.187.148,192.168.187.149分別是兩臺機器的IP地址

# cat /etc/hosts

127.0.0.1       localhost
192.168.187.148 node01

192.168.187.149 node02

3. 安裝必要的軟體包(兩臺機器都要做)

安裝軟體包前,要先把“光碟”放入光碟機,在虛擬機器名子上右鍵->設定


之後執行以下命令:
# zypper install pam-32bit 
# zypper install glibc-locale-32bit 
# zypper install iscsitarget

還要設定一些環境變數和檔案
# echo "export DB2USENONIB=TRUE" >> /etc/profile.local
# cp -v /usr/src/linux-3.0.101-63-obj/x86_64/default/include/generated/autoconf.h /lib/modules/3.0.101-63-default/build/include/linux

4. 新增磁碟 (兩臺機器都要做)

由於purescale是把資料放在共享儲存的,所以我們需要一個共享磁碟,方案是在node01上新增一塊磁碟,然後共享給node02



之後按預設選擇就可以,大小我使用了40G。
node02上也要新增一塊硬碟,但用不到,主要目地是使兩邊的碟符保持一致,所以大小設定為0.01G即可。

都新增完成之後,重啟兩個虛擬機器。

5 iscsi實現磁碟共享

在上一步中,添加了磁碟,這一步的目的是讓它變成共享磁碟,node01和node02都能訪問。

5.1 共享之前,檢視磁碟狀態

共享之前,可以分別在兩個節點上檢視磁碟狀態,每個節點上有兩個磁碟,sda和sdb:

node01:~ # fdisk -l

Disk /dev/sdb: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a4042

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     4208639     2103296   82  Linux swap / Solaris
/dev/sda2   *     4208640    83886079    39838720   83  Linux

node02:~ # fdisk -l

Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007a70b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     4208639     2103296   82  Linux swap / Solaris
/dev/sda2   *     4208640    83886079    39838720   83  Linux

Disk /dev/sdb: 10 MB, 10485760 bytes
64 heads, 32 sectors/track, 10 cylinders, total 20480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

5.2 只在node01上配置iSCSI Target

目地是把node01上新新增的那個磁碟/dev/sdb為作target,需要到虛擬機器裡配置:











5.3 在node01上配置iSCSI Initiator:



填寫node01的IP地址




True表示已經連線上

再次檢視,發現多了一個磁碟/dev/sdc
node01:~ # fdisk -l

Disk /dev/sdb: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000a4042

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     4208639     2103296   82  Linux swap / Solaris
/dev/sda2   *     4208640    83886079    39838720   83  Linux

Disk /dev/sdc: 42.9 GB, 42949672960 bytes
64 heads, 32 sectors/track, 40960 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdc doesn't contain a valid partition table

5.4 同樣的辦法,在node02上也配置iSCSI Initiator

輸入IP那一步,仍然要寫node01的IP地址,配置完成之後,fdisk -l的輸出如下:

node02:~ # fdisk -l

Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0007a70b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     4208639     2103296   82  Linux swap / Solaris
/dev/sda2   *     4208640    83886079    39838720   83  Linux

Disk /dev/sdb: 10 MB, 10485760 bytes
64 heads, 32 sectors/track, 10 cylinders, total 20480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 42.9 GB, 42949672960 bytes
64 heads, 32 sectors/track, 40960 cylinders, total 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdc doesn't contain a valid partition table
node02:~ # 

這一步完成之後,兩臺機器上都多了一個磁碟/dev/sdc,實際上他們共享的是node01上的/dev/sdb

6. 建立DB2使用者和組(兩臺機器都要做)

# groupadd -g 999 db2iadm  
# groupadd -g 998 db2fadm
# groupadd -g 997 dasadm 
# useradd -u 1004 -g db2iadm -m -d /home/db2inst1 db2inst1   
# useradd -u 1003 -g db2fadm -m -d /home/db2fend db2fend
# useradd -u 1002 -g dasadm -m -d /home/dasusr dasusr 
# passwd db2inst1 
# passwd db2fend

# passwd dasusr  

7. 配置ssh信任(兩臺機器都要做)

這裡root使用者和db2inst1使用者都要配置,配置SSH信任的辦法可以自行參考網路,或者
http://blog.csdn.net/qingsong3333/article/details/73695895

在home目錄下,如果不存在,就新建一個目錄".ssh",

root:
# cd $HOME
# mkdir .ssh
# ssh-keygen
# cd .ssh
# touch authorized_keys
# cat id_rsa.pub >> authorized_keys
# chmod 600 authorized_keys

# su - db2inst1
$ mkdir .ssh
$ ssh-keygen
$ cd .ssh
$ touch authorized_keys
$ cat id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys

然後分別將自己機器上的id_rsa.pub文字內容追加到對方機器裡對應使用者(root對root,db2inst1對db2inst1)上的authorized_keys檔案裡

兩臺機器上,都分別用root和db2inst1使用者測試,如果以下命令都不需要輸入密碼,則成功:
# ssh node01 date
# ssh node02 date

# su - db2inst1
$ ssh node01 date
$ ssh node02 date

8. 安裝DB2(兩臺機器都要做)

可以使用FlashFXP將安裝包上傳到虛擬機器上:
# tar -zxvf v10.5fp8_linuxx64_server_t.tar.gz
#  ./server_t/db2_install
DBI1324W  Support of the db2_install command is deprecated.

 
Default directory for installation of products - /opt/ibm/db2/V10.5

***********************************************************
Install into default directory (/opt/ibm/db2/V10.5) ? [yes/no] 
yes
 

Specify one of the following keywords to install DB2 products.

  SERVER 
  CONSV 
  EXP 
  CLIENT 
  RTCL 
 
Enter "help" to redisplay product names.

Enter "quit" to exit.

***********************************************************
SERVER
***********************************************************
Do you want to install the DB2 pureScale Feature? [yes/no] 
yes 
DB2 installation is being initialized.

 Total number of tasks to be performed: 53 
Total estimated time for all tasks to be performed: 2183 second(s) 

Task #1 start
Description: Checking license agreement acceptance 
Estimated time 1 second(s) 
Task #1 end 

.

9. 配置GPFS(只在node01上做)

可以使用db2cluster命令來做,也可以僅使用GPFS的命令。(其實db2cluster命令就是呼叫的GPFS命令)

9.1 建立GPFS cluster:

新建一個gpfs.nodes檔案,內容如下
#cat  /tmp/gpfs.nodes
node01:quorum-manager
node02:quorum-manager

# /usr/lpp/mmfs/bin/mmcrcluster -p node01 -s node02 -n /tmp/gpfs.nodes -r /usr/bin/ssh -R /usr/bin/scp

9.2 新增license:

# /usr/lpp/mmfs/bin/mmchlicense server --accept -N  node01,node02

9.3 修改配置引數:

# /usr/lpp/mmfs/bin/mmchconfig maxFilesToCache=20000
# /usr/lpp/mmfs/bin/mmchconfig usePersistentReserve=yes
# /usr/lpp/mmfs/bin/mmchconfig verifyGpfsReady=yes
# /usr/lpp/mmfs/bin/mmchconfig totalPingTimeout=75
# /usr/lpp/mmfs/bin/mmlscluster
GPFS cluster information
========================
  GPFS cluster name:         node01
  GPFS cluster id:           2620703579963216106
  GPFS UID domain:           node01
  Remote shell command:      /usr/bin/ssh
  Remote file copy command:  /usr/bin/scp
  Repository type:           CCR

 Node  Daemon node name  IP address       Admin node name  Designation
-----------------------------------------------------------------------
   1   node01            192.168.187.148  node01           quorum-manager
   2   node02            192.168.187.149  node02           quorum-manager

9.4 啟動GPFS daemons

啟動GPFS 並檢視狀態,等一會之後,如果變成active說明沒問題:

# /usr/lpp/mmfs/bin/mmstartup -a

# /usr/lpp/mmfs/bin/mmgetstate -a

9.5 建立GPFS檔案系統

新建一個gpfs.disks檔案,內容如下
# cat  /tmp/gpfs.disks
%nsd:
 device=/dev/sdc
 nsd=qsmiao
 usage=dataAndMetadata
 
# /usr/lpp/mmfs/bin/mmcrnsd -F /tmp/gpfs.disks -v yes

# /usr/lpp/mmfs/bin/mmlsnsd

 File system   Disk name    NSD servers                                    
---------------------------------------------------------------------------
 (free disk)   qsmiao         (directly attached)      

# /usr/lpp/mmfs/bin/mmcrfs /gpfs20170623 gpfsdev qsmiao -B 1024K -m 1 -M 2 -r 1 -R 2

其中gpfs20170623是給目錄起的名子,gpfsdev是給gpfs裝置起的名子
  
# cat /etc/fstab

# /usr/lpp/mmfs/bin/mmmount all -a
Thu Jun 22 06:50:14 EDT 2017: mmmount: Mounting file systems ...

9.6 在node01和node02都可以看到建立的檔案系統

node01:~ # df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda2       39213504 11834268  25387300  32% /
udev             1403056      132   1402924   1% /dev
tmpfs            1403056      808   1402248   1% /dev/shm
/dev/gpfsdev    41943040   478208  41464832   2% /gpfs20170623
node01:~ # echo "I'm writing to shared filesystem" > /gpfs20170623/hello.txt

node02:~ # df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda2       39213504 11834016  25387552  32% /
udev             1403056      132   1402924   1% /dev
tmpfs            1403056      804   1402252   1% /dev/shm
/dev/gpfsdev    41943040 41943040         0 100% /gpfs20170623
node02:~ # cat  /gpfs20170623/hello.txt
I'm writing to shared filesystem
  
至此,我們可以看到,GPFS共享檔案系統已經建立好,node01和node02可以對其併發訪問

10. 建立例項(只在node01上做)


# /opt/ibm/db2/V10.5/instance/db2icrt -cf node01 -cfnet node01 -m node01 -mnet node01 -instance_shared_dir /gpfs20170623 -tbdev 192.168.187.2 -u db2fend db2inst1

上面的命令在node01上建立了一個member,一個CF。其中-tbdev 為閘道器地址即可, 請參考最後如何檢視閘道器地址。

# su - db2inst1
$ db2set DB2_SD_ALLOW_SLOW_NETWORK=ON
$ db2licm -a db2aese_u.lic 
$ db2start
06/23/2017 13:46:38     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.
$ db2instance -list
ID        TYPE             STATE                HOME_HOST               CURRENT_HOST       <..略..>
--        ----             -----                ---------               ------------       <..略..>
0       MEMBER           STARTED                   node01                     node01       <..略..>
128     CF               PRIMARY                   node01                     node01       <..略..>

HOSTNAME                   STATE                INSTANCE_STOPPED        ALERT
--------                   -----                ----------------        -----
  node01                  ACTIVE                              NO           NO
$ su - root

11. 新增另一個member(只在node01上做)

#  /opt/ibm/db2/V10.5/instance/db2iupdt -d -add -m node02 -mnet node02 db2inst1

12. 新增另一個CF(只在node01上做):

# su - db2inst1
$ db2stop
06/23/2017 14:10:27     1   0   SQL1032N  No start database manager command was issued.
06/23/2017 14:10:55     0   0   SQL1064N  DB2STOP processing was successful.
SQL6033W  Stop command processing was attempted on "2" node(s).  "1" node(s) were successfully stopped.  "1" node(s) were already stopped.  "0" node(s) could not be stopped.
$ su - root
#  /opt/ibm/db2/V10.5/instance/db2iupdt -d -add -cf node02 -cfnet node02 db2inst1

13. 啟動例項(只在node01上做):

# su - db2inst1
$ db2start
06/23/2017 14:31:53     1   0   SQL1063N  DB2START processing was successful.
06/23/2017 14:32:04     0   0   SQL1063N  DB2START processing was successful.
SQL1063N  DB2START processing was successful.
$ db2instance -list                                                                      
ID        TYPE             STATE                HOME_HOST               CURRENT_HOST       <..略..>
--        ----             -----                ---------               ------------       <..略..>
0       MEMBER           STARTED                   node01                     node01       <..略..>
1       MEMBER           STARTED                   node02                     node02       <..略..>
128     CF               PRIMARY                   node01                     node01       <..略..>
129     CF                  PEER                   node02                     node02       <..略..>

HOSTNAME                   STATE                INSTANCE_STOPPED        ALERT
--------                   -----                ----------------        -----
  node02                  ACTIVE                              NO           NO
  node01                  ACTIVE                              NO           NO

14. 建立資料庫(只在node01上做)

$ db2 "create db sample"
$ db2 "connect to sample"  
$ db2 "create table t1(id int, address char(20))"

$ db2 "insert into t1 values(123, 'Beijing')" 

15. 驗證(只在node02上做)

# su - db2inst1
$ db2 "connect to sample"
$ db2 "list applications global"
Auth Id  Application    Appl.      Application Id                DB       # of
         Name           Handle                                   Name    Agents
-------- -------------- ---------- ----------------------------- -------- -----
DB2INST1 db2bp          75         *N0.db2inst1.170623184141     SAMPLE   1    
DB2INST1 db2bp          65591      *N1.db2inst1.170623184447     SAMPLE   1   

$ db2 "insert into t1 values(223,'NanJing')"
$ db2 "select * from t1"

ID          ADDRESS             
----------- --------------------
        123 Beijing             
        223 NanJing             

  2 record(s) selected.
  
$ db2 "force applications all"
$ db2stop

答疑

1.) DPF環境下,例項目錄是共享的。但Purescale例項目錄不是共享的,我只見你在node01上建立了例項,為什麼node02上也有自己的例項和例項目錄?
答:在新增node02節點上的member或者CF時,它會自動在node02上建立例項,也就是第10步。

2.) 如何檢視閘道器?
答:檢視閘道器,其中0.0.0.0開頭的,即為預設閘道器,即192.168.187.2
#  netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.187.2   0.0.0.0         UG        0 0          0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
192.168.187.0   0.0.0.0         255.255.255.0   U         0 0          0 eth0

3.)
為什麼第11步的時候,db2stop說有一個節點SQL1032N,另一個節點SQL1064N?
答:新新增的member是沒有啟動的。

參考資料





 

相關推薦

詳細VMware虛擬機器搭建DB2 purescale測試

說明 DB2的purescale功能由於牽扯到多款產品,包括GPFS, RSCT,TSA,所以非常複雜,搭建的過程稍有不慎,就會遇到很多的報錯。本文詳細地介紹瞭如何在VMware虛擬機器裡搭建出一個Linux環境下的purescale叢集,叢集有兩個節點node01,nod

詳細Vmware安裝教程(一)-建立Linux虛擬機器

本文將演示如何使用Vwmare workstation軟體建立Linux虛擬機器,通過學習,我們將可以按照自己下需求,來建立一個安裝Linux作業系統(Centos)的虛擬機器,虛擬機器的CPU、硬碟、網絡卡、記憶體等硬體都可以根據需要進行定製。 1. 準備Host機器(

黃聰詳細的kali安裝教程沒有之一

ner 沒有 操作系統 你是 著作權 如圖所示 鏈接 class 區域 首先在vm裏面新建虛擬機,直接選擇典型,然後下一步。 1 2 然後到了這一步,選擇中間的安裝程序光盤鏡像文件,然後去文件裏面

【轉】Hadoop學習--第二篇詳細的Hadoop環境搭建

GitChat 作者:鳴宇淳 原文: 史上最詳細的Hadoop環境搭建 前言 Hadoop在大資料技術體系中的地位至關重要,Hadoop是大資料技術的基礎,對Hadoop基礎知識的掌握的紮實程度,會決定在大資料技術道路上走多遠。 這是一篇入門文章,Hadoop的學

Linux系統程式設計學習常見問題(一)VMware虛擬機器下Ubuntu18.04突然不了網的問題解決方案

問題描述:VMware虛擬機器下Ubuntu18.04突然上不了網的問題:如下圖所示:   更改這裡的三種連線方式都是這樣  2.  分析:IP衝突或者配置出了問題,需重新更新設定。 3.  解決: (1)將模式調整為

一步步教你搭建Android開發環境(有圖有真相)--“自吹自擂詳細囉嗦、最新的搭建教程”

宣告:轉摘請註明http://blog.csdn.net/longming_xu/article/details/28241045 前言:為什麼要寫這麼一篇文章?網上介紹Android開發環境搭建的文章一片一片的,我為什麼要自己”重複的去造輪子“呢?原因有三個:第一個

詳細圖文教程如何使vmware虛擬機器的linux系統連線windows

  先說些基本概念。   因特網簡單來說,是由網路和主機組成的。所以,就有了網路號和主機號的概念。 網路號標識因特網內唯一的網路,而主機號則標誌同一個網路號內唯一的主機,即不同網路號可以有相同的主機號。 所以,ip地址就是由網路號+主機號組成的。現在ip地址有IPV4和IPV6兩個版本。IPV4的ip地址為

【轉載】TensorFlow 好玩的技術、應用和你不知道的黑科技

tube map 高性能 知識 seq 出現 執行時間 mes lex 【導讀】TensorFlow 在 2015 年年底一出現就受到了極大的關註,經過一年多的發展,已經成為了在機器學習、深度學習項目中最受歡迎的框架之一。自發布以來,TensorFlow 不斷在完善並增加新

詳細Windows版本搭建安裝React Native環境配置

gin windows系統 adl 搭建環境 tools 想要 變量 rep home 說在前面的話: 感謝同事金曉冰傾情奉獻本環境搭建教程 之前我們已經講解了React Native的OS X系統的環境搭建以及配置,鑒於各大群裏有很多人反應在Windows環境搭建出現各種

移植QT5.6到嵌入式開發板(詳細的QT移植教程)

文件傳輸 嵌入式環境 ubun 導致 字庫 etc -a led fill 目前網上的大多數 QT 移植教程還都停留在 qt4.8 版本,或者還有更老的 Qtopia ,但是目前 Qt 已經發展到最新的 5.7 版本了,我個人也已經使用了很長一段時間的 qt5.6 for

詳細nodejs版本管理器nvm的安裝與使用(附註意事項和優化方案)

技術 註意 nod core 遇到 target 快速 方式 get 使用場景 在Node版本快速更新叠代的今天,新老項目使用的node版本號可能已經不相同了,node版本更新越來越快,項目越做越多,node切換版本號的需求越來越迫切,傳統卸載一個版本在安裝另一個版本的方

Android Studio獲取開發版SHA1值和發布版SHA1值的詳細方法

nal code tail JD rip 通過 提示 打開 tor 前言:使用百度地圖時需要秘鑰,申請秘鑰時需要SHA1值,所以今天就總結一下怎麽獲取這個值。 正常情況下: 一、獲取開發版SHA1: 在此我直接用AndroidStudio提供的命令控制臺了,畢竟做Andro

XX-NET詳細完整教程

偽造 不用 app 分享圖片 AS 版本 firefox 配置過程 自動切換 前言   XX-NET,系GAE類代理,即通過可用Google ip連接Google App Engine項目,然後把所有tcp請求發送給Google App Engine,最終實現科學式網絡的

利用Python實現導彈自動追蹤!室友面前的裝逼利器!詳細

技術 取數 跟隨鼠標 構造 制作 思想 室友 相同 精確 不好意思 ,上傳錯了。接著看圖! 由於待會要用pygame演示,他的坐標系是y軸向下,所以這裏我們也用y向下的坐標系。 算法總的思想就是根據上圖,把時間t分割成足夠小的片段(比如1/1000,

詳細Windows下安裝 binwalk

github src cti tro 下載 安裝步驟 clas 文件 命令行 1. https://github.com/ReFirmLabs/binwalk到這裏下載binwalk,下載後解壓。 2. 找到下載後的文件夾, 在這裏要進行安裝步驟,一邊按著shift,一邊

詳細Oracle 12c搭建過程(內附源碼包)

請求 源碼包下載 可用 groupadd set port instr lease 添加 簡介 Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系數據庫管理系統。它是在數據庫領域一直處於領先地位的產品。可以說Oracle

Kafka詳細原理總結

send shu control 並保存 分布 batch 重傳 應該 還要 Kafka是最初由Linkedin公司開發,是一個分布式、支持分區的(partition)、多副本的(replica),基於zookeeper協調的分布式消息系統,它的最大的特性就是可以實時的處理

詳細的新浪廣告系統技術架構優化歷程

內容來源:2017 年 08 月 10 日,新浪廣告開發技術專家徐挺在“第二屆APMCon中國應用效能管理大會【大規模網路架構優化專場】”上進行的《新浪廣告系統的服務化優化歷程》演講分享。IT 大咖說作為獨家視訊合作方,經主辦方和講者審閱授權釋出。 閱讀字數:

詳細的爬蟲教程,Python採集全網受歡迎的 500 本書!

      想看好書?想知道哪些書比較多人推薦,最好的方式就是看資料,接下來用 Python 爬取噹噹網五星圖書榜 TOP500 的書籍,或許能給我們參考參考! Python爬取目標   爬取噹噹網前500本受歡迎的書籍 解析書籍名稱

[程式碼審計]Emlog 6.0 Beta-詳細程式碼審計分析

*2018-11-02 之前這篇文章發到 Freebuf 上面的由於某些原因刪除了,卻被某些爬蟲網站給抓取了,現在公開,希望大家做一個合理的學習,切勿用於非法用途!官網也更新了6.0正式版,現在作為最後公佈也不存在不妥之處,再次宣告:僅供學習參考,任何由個人行為產生的違法犯罪結果自行承擔!