随着BIG DATA大数据概念逐渐升温,如何搭建一个能够采集海量数据的架构体系摆在大家眼前。如何能够做到所见即所得的无阻拦式采集、如何快速把不规则页面结构化并存储、如何满足越来越多的数据采集还要在有限时间内采集。这篇文章结合我们自身项目经验谈一下。

爬虫框架

整个框架应该包含以下部分:资源管理、反监控管理、抓取管理、监控管理。

看一下整个框架的架构图:

社会化海量数据抓取组件图

  • 资源管理指网站分类体系、网站、网站访问url等基本资源的管理维护;
  • 反监控管理指被访问网站(特别是社会化媒体)会禁止爬虫访问,怎么让他们不能监控到我们的访问时爬虫软件,这就是反监控机制了; (more…)

四月 8th, 2013

Oracle创建awr分析报告

Oracle创建awr分析报告已关闭评论, 数据库问题解决方案, by 小哥.

SQL> sqlplus /nolog
SQL*Plus: Release 10.2.0.3.0 – Production on 星期一 4月 8 10:04:35 2013
Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

SQL> conn ds/ds@192.168.50.203_sjcj
已连接。

SQL> @?\RDBMS\ADMIN\awrrpt.sql

Current Instance
~~~~~~~~~~~~~~~~

DB Id    DB Name      Inst Num Instance
———– ———— ——– ————
503803200 SJCJ                1 sjcj

Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter ‘html’ for an HTML report, or ‘text’ for plain text
Defaults to ‘html’
输入 report_type 的值:html

Type Specified:  html

Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

DB Id     Inst Num DB Name      Instance     Host
———— ——– ———— ———— ————
* 503803200         1 SJCJ         sjcj         WIN08-203

Using  503803200 for database Id
Using          1 for instance number

Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed.  Pressing <return> without
specifying a number lists all completed snapshots.

输入 num_days 的值:7
Snap
Instance     DB Name        Snap Id    Snap Started    Level
———— ———— ——— —————— —–
sjcj         SJCJ              5900 07 4月  2013 19:00     1
5901 07 4月  2013 20:00     1
5902 07 4月  2013 21:00     1
5903 07 4月  2013 22:00     1
5904 07 4月  2013 23:00     1
5905 08 4月  2013 00:00     1
5906 08 4月  2013 01:00     1
5907 08 4月  2013 02:00     1
5908 08 4月  2013 03:00     1
5909 08 4月  2013 04:00     1
5910 08 4月  2013 05:00     1
5911 08 4月  2013 06:00     1
5912 08 4月  2013 07:00     1
5913 08 4月  2013 08:00     1
5914 08 4月  2013 09:00     1
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
输入 begin_snap 的值:5900
Begin Snapshot Id specified: 5900
输入 end_snap 的值:5914

十一月 23rd, 2012

Linux 为什么需要chmod777 权限解释

Linux 为什么需要chmod777 权限解释已关闭评论, 操作系统问题解决方案, by 小哥.

Linux 为什么需要chmod777 权限解释

常用的为chmod777
linux分为权限分为
所有者 用户组 公共
读取 读取 读取
写入 写入 写入
执行 执行 执行

其中
rwx 7 读取+写入+执行
rw- 6 读取+写入
r-x 5 写入+执行
r– 4 读取
-wx 3 读取+执行
-w- 2 写入
–x 1 执行
— 0 没有权限

第一个7代表所有者
第二个7代表用户组
第三个7代表公共

这其中还有一个叫chmod1777
第四位的
所有者 用户组 公共
读取 读取 读取
写入 写入 写入
执行 执行 执行

设置UID 设置GID 粘附
on on on 7
on on off 6
on off on 5
on off off 4
off on on 3
off on off 2
off off on 1
off off off 0

十一月 20th, 2012

Oralce 11gR2 DataGuard for Linux DG配置

Oralce 11gR2 DataGuard for Linux DG配置已关闭评论, 数据库问题解决方案, by 小哥.

5.安装数据库
安装数据库实例(主机中安装备机不需要安装)

1.实例名primary
2.数据库开启归档
3.字符集设置为ZHS16GBK
4.保存脚本
5.使用“监听程序配置”来创建从库的监听器

配置Data Guard配置文件

1.主机配置(192.168.50.191)开启数据库归档模式
如果出现乱码执行
$ export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

$ SQLplus /nolog
SQL> conn / as sysdba
SQL> startup;
SQL> alter database force logging;
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> archive log list
[root@node1 ~]# su – oracle
[oracle@node1 ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Tue Nov 6 10:20:58 2012

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

SQL> conn /as sysdba
Connected.

SQL> startup;
ORACLE instance started.
Total System Global Area 1046224896 bytes
Fixed Size                  1341140 bytes
Variable Size             603982124 bytes
Database Buffers          436207616 bytes
Redo Buffers                4694016 bytes
Database mounted.
Database opened.

SQL> alter database force logging;
Database altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount;
ORACLE instance started.
Total System Global Area  949972992 bytes
Fixed Size                  1340496 bytes
Variable Size             553651120 bytes
Database Buffers          390070272 bytes
Redo Buffers                4911104 bytes
Database mounted.

SQL> alter database archivelog;
Database altered.

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /opt/oracle/oradata/archive
Oldest online log sequence     3
Next log sequence to archive   5
Current log sequence           5

主机创建密码文件
orapwd file=’/opt/oracle/oradata/orapwstandby.ora’ password=sys entries=5

$ orapwd file=’/opt/oracle/oradata/orapwstandby.ora’ password=sys entries=5

主机创建控制文件命名为standby.ctl :
SQL> alter database create standby controlfile as ‘/opt/oracle/oradata/standby.ctl’;

SQL> alter database create standby controlfile as ‘/opt/oracle/oradata/standby.ctl’;
Database altered.

主机创建pfile参数文件命名为standby.ora
SQL> create pfile=’/opt/oracle/oradata/initSTANDBY.ora’ from spfile;

SQL> create pfile=’/opt/oracle/oradata/initstandby.ora’ from spfile;
File created.

SQL> shutdown immediate;
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.

initSTANDBY.ora文件复制至本地
创建两份第一份命名为initPRIMARY.ora第二份为initSTANDBY.ora

备机pfile文件
将pfile文件initSTANDBY.ora复制至备机/opt/oracle/ora11g/dbs/initSTANDBY.ora目录下

备机密码文件
将密码文件orapwPRIMARY.ora更名为orapwSTANDBY.ora存放至备机/opt/oracle/ora11g/dbs/orapwSTANDBY.ora目录下

控制文件
将控制文件standby.ora 复制到备机 /opt/oracle/oradata/standby.ora 目录下

备机配置(192.168.50.192)创建文件夹
mkdir -p /opt/oracle/oradata/STANDBY;
mkdir -p /opt/oracle/admin/STANDBY/adump;
mkdir -p /opt/oracle/admin/STANDBY/bdump;
mkdir -p /opt/oracle/admin/STANDBY/cdump;
mkdir -p /opt/oracle/admin/STANDBY/dpdump;
mkdir -p /opt/oracle/admin/STANDBY/pfile;
mkdir -p /opt/oracle/admin/STANDBY/udump;

主机中数据文件和控制文件复制至备机,使用scp命令复制
[oracle@node1 ~]$ cd /opt/oracle/
[root@node1 oracle]#  scp -r oradata/ 192.168.50.192:/opt/oracle/
root@192.168.50.192’s password:
standby.ctl                                   100% 9520KB   9.3MB/s   00:00
initSTANDBY.ora                         100%  933     0.9KB/s   00:00
orapwSTANDBY.ora                    100% 2048     2.0KB/s   00:00
redo03.log                                    100%   50MB  25.0MB/s   00:02
sysaux01.dbf                                  100%  450MB  21.4MB/s   00:21
undotbs01.dbf                                 100%   75MB  25.0MB/s   00:03
system01.dbf                                  100%  680MB  21.3MB/s   00:32
users01.dbf                                   100% 5128KB   5.0MB/s   00:00
control01.ctl                                 100% 9520KB   9.3MB/s   00:00
temp01.dbf                                    100%   29MB  29.0MB/s   00:00
control02.ctl                                 100% 9520KB   4.7MB/s   00:02
redo01.log                                    100%   50MB  25.0MB/s   00:02
redo02.log                                    100%   50MB  16.7MB/s   00:03 (more…)

十一月 20th, 2012

Oralce 11gR2 DataGuard for Linux 数据库安装

Oralce 11gR2 DataGuard for Linux 数据库安装已关闭评论, 数据库问题解决方案, by 小哥.

主机192.168.50.191
备机192.168.50.192

安装前配置

1. 解压安装文件
unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip
chmod -R 777 /opt

2.修改 /etc/hosts
本机IP地址    主机名   localhost
192.168.1.210  linuxserver  localhost

3. 设置内核参数/etc/sysctl.conf
# This is Oracle 10g sysctl Kernel Setting by heweilong 20110415
# 可以使用的共享内存的总量 (最小内存)
kernel.shmall = 2097152
# 最大共享内存段大小 (内存大小)
kernel.shmmax = 1073741824
# 整个系统共享内存段的最大数目 (4096)
kernel.shmmni = 4096
# 每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数 (250 32000 100 128)
kernel.sem = 5010 641280 5010 128
# 系统中所允许的文件句柄最大数目 (65536)
fs.file-max = 65536
# 应用程序可使用的IPv4端口范围 (1024 65000)
net.ipv4.ip_local_port_range = 1024 65000
# 套接字接收缓冲区大小的缺省值  (262144)
net.core.rmem_default = 1048576
# 套接字接收缓冲区大小的最大值 (262144)
net.core.rmem_max = 1048576
# 套接字发送缓冲区大小的缺省值 (262144)
net.core.wmem_default = 262144
# 套接字发送缓冲区大小的最大值 (262144)
net.core.wmem_max = 262144
# 禁止ping主机 (0)
# net.ipv4.icmp_echo_ignore_all = 1

oracle11g 也可不设置,系统会自动更改
fs.file-max = 65536
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_max = 1048576
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576

4.重新编译内核执行生效
# /sbin/sysctl  -p

5. 编辑/etc/security/limits.conf  添加
oracle soft  nproc 2047
oracle hard  nproc 16384
oracle soft  nofile 1024
oracle hard  nofile 65536
或者
* soft  nproc 2047
* hard  nproc 16384
* soft  nofile 1024
* hard  nofile 65536

6.编辑/etc/pam.d/login 添加 (可选)
session    required     pam_limits.so

7. 修改/etc/selinux/config文件(可选)
SELINUX=disabled

8. 创建组和用户
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle
设置密码

9.  创建安装文件夹(可选)
# mkdir -p /opt/oracle/ora11g
# chown -R oracle.oinstall  /opt

10.  修改XManager显示(可选)
xhost  +IP
# xhost +192.168.1.210

11. 修改版/etc/redhat-release(可选)
# Red Hat Enterprise Linux Server release 5.3 (Tikanga)
Red Hat Enterprise Linux Server release 4 (Tikanga)

12.  编辑/opt/oracle.bash_profile
# This is Oracle 10g user .bash_profile Setting by heweilong 20110415
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/ora11g
export ORACLE_SID=primary
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

13. 注销root用户使用oracle用户登录系统安装数据库
执行/opt/database
#./runInstaller

安装数据库软件

1.仅安装数据库软件
2.单实例数据库
3.企业版
4.打依赖包(如果在安装包时,提示有关联,可以强制执行加入参数 –nodeps)
# rpm -ivh libaio-devel-0.3.106-5.i386.rpm
# rpm -ivh sysstat-7.0.2-11.el5.i386.rpm
# rpm -ivh –nodeps unixODBC-2.2.11-10.el5.i386.rpm
# rpm -ivh –nodeps unixODBC-devel-2.2.11-10.el5.i386.rpm
[root@node2 Server]# rpm -ivh libaio-devel-0.3.106-5.i386.rpm
warning: libaio-devel-0.3.106-5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
1:libaio-devel           ########################################### [100%]
[root@node2 Server]# rpm -ivh sysstat-7.0.2-11.el5.i386.rpm
warning: sysstat-7.0.2-11.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
1:sysstat                ########################################### [100%]
[root@node2 Server]# rpm -ivh –nodeps unixODBC-2.2.11-10.el5.i386.rpm
warning: unixODBC-2.2.11-10.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
1:unixODBC               ########################################### [100%]
[root@node2 Server]# rpm -ivh –nodeps unixODBC-devel-2.2.11-10.el5.i386.rpm
warning: unixODBC-devel-2.2.11-10.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing…                ########################################### [100%]
1:unixODBC-devel         ########################################### [100%]