自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 OpenVSwitch简介

本文主要介绍Open VSwitch - 虚拟交换机的概述内容,阅读本文可以对OVS(Open VSwitch)有一个大致的了解。那么本文主要回答了这样几个问题:1. 虚拟交换机是什么,干什么?2. 虚拟网络和OVS3. OVS的组件有哪些?4. 使用OVS创建一个网络拓扑5. 示例一、 Open VSwitch是什么        OVS是一个高质量的,多层虚

2017-04-30 20:37:16 592

原创 openstack devstack 安装与配置

安装准备OpenStack部署在Linux机器上。经过我的测试在Ubuntu 14.04 Server版上安装OpenStack Mitaka版本比较稳定。为了操作方便,我的Ubuntu是安装在VMware Workstation 12虚拟机上的。Ubuntu 源可以替换为国内的阿里源。http://wiki.ubuntu.org.cn/%E6%A8%A1%E6%9

2017-03-01 15:07:41 854

原创 理解数据库范式

数据库范式是数据库设计中必不可少的知识,没有对范式的理解,就无法设计出高效率、优雅的数据库。甚至设计出错误的数据库。而想要理解并掌握范式却并不是那 么容易。教科书中一般以关系代数的方法来解释数据库范式。这样做虽然能够十分准确的表达数据库范式,但比较抽象,不太直观,不便于理解,更难以记忆。       本文用较为直白的语言介绍范式,旨在便于理解和记忆,这样做可能会出现一些不精确的表述。但对于

2016-09-29 17:16:15 365

原创 连接的比较

在关系代数中,连接运算是由一个笛卡尔积运算和一个选取运算构成的。连接的全部意义在于在水平方向上合并两个数据集合(通常是表)。下面是几种常用的连接类型:连接类型定义图示例子内连接只连接匹配的行select A.c1,B.c2 from A join B on A.c3 = B.c3;左外连接包含左边表的全部行(不管右边的

2016-09-29 17:04:38 403

原创 热备份和冷备份

一、 冷备份    冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将要害性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:    1、 是非常快速的备份方法(只需拷文件)  2、 轻易归档(简单拷贝即可)  3、 轻易恢复到某个时间点上(只需将文件再拷贝回去)  4、

2016-09-29 14:01:11 336

原创 理解 Linux 的硬链接与软链接

Linux 的文件与目录现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用。在 UNIX 系统中,操作系统为磁盘上的文本与图像、鼠标与键盘等输入设备及网络交互等 I/O 操作设计了一组通用 API,使他们被处理时均可统一使用字节流方式。换言之,UNIX 系统中除进程之外的一切皆是文件,而 Linux 保持了这一特性。为了便于文件的

2016-09-22 18:20:10 248

原创 linux awk命令详解

简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfr

2016-09-20 22:36:27 254

原创 virtual functions

Effective C++ 条歀07:为多态基类声明virtual析构函数(Declare destructors virtual in polymorphic base classes)纯虚函数纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。虚函数是C++语言的精髓。含

2016-09-19 16:27:15 251

原创 c++中的虚函数

C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过

2016-09-19 16:25:28 200

原创 ext2格式跟ext3格式區別 inode

inux ext2/ext3文件系統使用索引節點來記錄文件信息,作用像windows的文件分配表。索引節點是一個結構,它包含了一個文件的長度、創建及修改時間、許可權、所屬關係、磁碟中的位置等信息。一個文件系統維護了一個索引節點的數組,每個文件或目錄都與索引節點數組中的唯一一個元素對應。系統給每個索引節點分配了一個號碼,也就是該節點在數組中的索引號,稱為索引節點號。 linux文件系統將文件索引節點

2016-09-19 16:16:13 535

原创 Socket 阻塞与非阻塞模式

阻塞模式Windows套接字在阻塞和非阻塞两种模式下执行I/O操作。在阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即返回,该函数所在的线程会阻塞在这里。相反,在非阻塞模式下,套接字函数会立即返回,而不管I/O是否完成,该函数所在的线程会继续运行。在阻塞模式的套接字上,调用任何一个Windows Sockets API都会耗费不确定的等待时间。图所示,在调用re

2016-09-19 15:51:18 321

原创 孤儿进程与僵尸进程[总结]

1、前言  之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念  我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的

2016-09-19 15:26:26 466

原创 查询系统负载信息 Linux 命令详解

linux uptime命令主要用于获取主机运行时间和查询linux系统负载等信息。uptime命令过去只显示系统运行多久。现在,可以显示系统已经运行了多长时间,信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。uptime命令用法十分简单:直接输入# uptime即可。输

2016-09-19 13:48:23 303

原创 linux grep命令

1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep [options]3.主要参数[options]主要参数:-c:只输出匹配行的计数。-I:不区分大 小写(只适用于

2016-09-19 13:42:47 219

原创 堆和栈的区别

一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的

2016-09-19 13:41:46 174

原创 Linux 下I/O多路复用总结

select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用

2016-09-19 13:40:59 219

原创 Linux的SOCKET编程详解

Linux的SOCKET编程详解1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal)UNIX system V有:消息(me

2016-09-17 22:37:51 382

原创 用户态和内核态的转换

用户态切换到内核态的3种方式a. 系统调用        这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作,比如前例中fork()实际上就是执行了一个创建新进程的系统调用。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int 80h中断。b. 异常        当CPU在执行运行在

2016-09-17 22:17:55 5610

原创 Linux软连接和硬链接

1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的

2016-09-17 22:07:12 218

原创 Linux /etc目录详解

Linux /etc目录详解 /etc目录   包含很多文件.许多网络配置文件也在/etc 中.  /etc/rc   or/etc/rc.d   or/etc/rc*.d     启动、或改变运行级时运行的scripts或scripts的目录.  /etc/passwd     用户数据库,其中的域给出了用户名、真实姓名、家

2016-09-17 22:02:09 1195

原创 rpm命令

RPM是RedhatPackageManager的缩写,是由RedHat公司开发的软件包安装和管理程序,同Windows平台上的Uninstaller比较类似。使用RPM,用户可以自行安装和管理Linux上的应用程序和系统工具。RPM可以让用户直接以binary方式安装软件包,并且可替用户查询是否已经安装了有关的库文件;在用RPM删除程序时,它又会聪明地询问用户是否要删除有关的程序。如果使用RPM

2016-09-17 21:49:55 260

原创 Linux tcpdump命令详解

简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tcpdump

2016-09-17 21:44:21 675

原创 数据库触发器详解

1   引言 Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序。触发器是mysql5新增的功能,目前线上凤巢系统、北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程序比如fc-star管理端,sfrd(das),dorado都会用到触发器程序,实现对于数据库增、删、改引起事件的关联操作。本文介绍了触发器的类型和基本使用方法,讲述了触发器使用中容易产生的

2016-09-17 15:50:16 3049

原创 数据库Oracle 9i 的保护模式

数据库Oracle 9i : 最大保护(Maximum protection ) 这种模式能够保证在primary Database发生故障保证数据不丢失。在这种模式下,事务提交前,要保证Redo数据已经写入到Primary Database的Online Redologs,同时写入Standby Database的Standby Redologs,并确保至少在一个Standby Data

2016-09-17 15:36:48 407

原创 数据库设计三大范式

为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。                 在实际开发中最为常见的设计范式有三个:1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值

2016-09-17 15:11:30 238

原创 关于冷备份与热备份的对比

关于冷备份与热备份的对比一、 冷备份    冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将要害性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:    1、 是非常快速的备份方法(只需拷文件)  2、 轻易归档(简单拷贝即可)  3、 轻易恢复到某个时

2016-09-17 15:01:35 365

原创 数据库事务并发带来的问题

数据库事务并发带来的问题有:更新丢失、脏读、不可重复读、幻象读。假设张三办了一张招商银行卡,余额100元,分别说明上述情况。1、更新丢失:一个事务的更新覆盖了另一个事务的更新。事务A:向银行卡存钱100元。事务B:向银行卡存钱200元。A和B同时读到银行卡的余额,分别更新余额,后提交的事务B覆盖了事务A的更新。更新丢失本质上是写操作的冲突,解决办法是一个一个地写。2、脏读:一个事务读取了另一个

2016-09-17 14:50:41 403

原创 索引

一、什么是索引:简单的来说,建立索引在进行数据库操作的时候不需要全盘一条条的扫描,删选出符合的记录,索引内部自己有一套优化算法,因此借助索引来对数据库进行操作可以提高查询的效率。二、什么时候建立的索引将失效或效率不高(情况有很多,这里列举常见的几种, 假设在字段name上建立了索引):1、使用了运算符!=,以及关键字not in, not exist等,认为产生的结果集很大,往

2016-09-17 14:07:06 390

原创 存储过程详解

存储过程简介什么是存储过程:存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。存储过程的好处:1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。

2016-09-17 13:59:10 365

原创 数据库事务隔离级别

数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。√: 可能出现    ×: 不会出现脏读不可重复读幻读Read uncommitted√√√Re

2016-09-17 13:57:43 240

原创 表空间的管理-字典和本地管理

Oracle通过表空间为数据库提供使用空间,那么Oracle必然提供一种技术用于空间管理。Oracle主要的空间管理方式有两种,一种是Oracle 8i以前的字典管理表空间(DMT)技术,一种就是Oracle 8i以后的本地管理表空间(LMT)技术。由于区间(Extent)是Oracle创建对象时的最小分配单元,所以表空间的管理实际上就是针对于区间的管理。一.字典管

2016-09-17 13:55:49 604

原创 sql执行顺序

SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。      每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回 给调用者。如果没有在查询中

2016-09-17 13:54:23 178

原创 IBATIS中 $与#的区别

我们在使用iBATIS时会经常用到#和$这两个符号。一 .   #与$区别说通俗一点就是         $中间的变量就是直接替换成值的         #会根据变量的类型来进行替换         比如articleTitle的类型是string, 值是"标题"的时候              $articleTitle$ = 标题       

2016-09-17 13:20:26 236

原创 视图和表的区别

1.视图是数据库数据的特定子集。可以禁止所有用户访问数据库表,而要求用户只能通过视图操作数据,这种方法可以保护用户和应用程序不受某些数据库修改的影响。2.视图是抽象的,他在使用时,从表里提取出数据,形成虚的表。  不过对他的操作有很多的限制  。3. 而且视图是永远不会自己消失的除非你删除它。    视图有时会对提高效率有帮助。临时表几乎是不会对性能有帮助,是资源消耗者。    视

2016-09-17 12:49:18 255

原创 日志传送、事务复制 和 Always.on

关于日志传送 (SQL Server)SQL Server 2016 适用对象:SQL Server 2016SQL Server 使用日志传送,您可以自动将“主服务器 ”实例上“主数据库 ”内的事务日志备份发送到单独“辅助服务器 ”实例上的一个或多个“辅助数据库 ”。 事务日志备份分别应用于每个辅助数据库。 可选的第三个服务器实例(称为“监视服

2016-09-17 11:02:39 3653

原创 MySQL主从复制的原理及配置方法

一、复制的原理MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新。将主服务器的数据拷贝到从服务器的一个途径是使用LOAD DATA FROM MASTER语句。请注意LOAD DATA FROM MASTER目前只在所有表使用MyISAM

2016-09-17 10:41:00 562

原创 ISO/OSI网络体系结构和TCP/IP协议模型

1. ISO/OSI的参考模型共有7层,由低层至高层分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、    应用层。各层功能分别为:(1)物理层         提供建立、维护和拆除物理链路所需的机械、电气、功能和规程的特性;提供有关在传输介质上传输非结构的位流        及物理链路故障检测指示。在这一层,数据还没有被组织,仅作为原始的位流或电气电压

2016-09-15 12:50:11 929

原创 Cookie/Session机制详解

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。1.1  Cookie机制

2016-08-16 19:14:54 449

转载 HTTP协议详解

转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspxAuthor :Jeffrey引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HT

2016-08-16 19:13:37 216

原创 23种设计模式(2):工厂方法模式

定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。类型:创建类模式类图:工厂方法模式代码[java] view plain copyinterface IProduct {      public void productMethod();  }    c

2016-07-24 15:27:12 247

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除