数据库服务器

SQL Server 系统库的备份与恢复

ε祈祈猫儿з 提交于 2019-11-30 09:42:52
master数据库 master作为数据库的主要数据库,记录着SQL Server系统的所有系统级信息,例如登录用户、系统配置设置、端点和凭证以及访问其他数据服务器所需要的信息。master数据库还记录着启动服务器实例所需要的初始化信息,每个其它数据库的主文件位置。master数据库是SQL Server启动的时候打开的第一个数据库。SQL Server是从这个数据库里找到其它数据的信息的。如果master数据库有问题,整个SQL Server都将无法启动。 master数据库本身不大,做一次备份很快。建议要经常做master的完整数据库备份,以充分保护您的数据。如果master数据库已损坏,可以通过还原master数据库的最近完整数据库备份,轻松修复已损坏的数据库。 如果由于master数据库损坏严重大无法启动服务器实例,有没有备份,这时候只能重建了。重建master数据将使的所有的系统数据库恢复到其原始状态。例如,重建master数据库会删除并重新创建msdb数据库。这将导致丢失所有的计划信息以及备份和还原历史记录。所以重建master数据库后,SQL Server就像被重装过一样。所有的用户记录都会丢失,用户数据库需要再次附加,SQL Server任务记录都要重建。这是一个很折腾的过程。重建master数据库是个万不得已的选择。

多级缓存的分层架构

为君一笑 提交于 2019-11-30 06:57:39
多级缓存的分层架构 前言 在互联网高速发展的今天,缓存技术被广泛地应用。无论业内还是业外,只要是提到性能问题,大家都会脱口而出“用缓存解决”。 这种说法带有片面性,甚至是一知半解,但是作为专业人士的我们,需要对缓存有更深、更广的了解。 缓存技术存在于应用场景的方方面面。从浏览器请求,到反向代理服务器,从进程内缓存到分布式缓存。其中缓存策略,算法也是层出不穷,今天就带大家走进缓存。 正文 缓存对于每个开发者来说是相当熟悉了,为了提高程序的性能我们会去加缓存,但是在什么地方加缓存,如何加缓存呢? 假设一个网站,需要提高性能,缓存可以放在浏览器,可以放在反向代理服务器,还可以放在应用程序进程内,同时可以放在分布式缓存系统中。 从用户请求数据到数据返回,数据经过了浏览器,CDN,代理服务器,应用服务器,以及数据库各个环节。每个环节都可以运用缓存技术。 从浏览器/客户端开始请求数据,通过 HTTP 配合 CDN 获取数据的变更情况,到达代理服务器(Nginx)可以通过反向代理获取静态资源。 再往下来到应用服务器可以通过进程内(堆内)缓存,分布式缓存等递进的方式获取数据。如果以上所有缓存都没有命中数据,才会回源到数据库。 缓存的请求顺序是:用户请求 → HTTP 缓存 → CDN 缓存 → 代理服务器缓存 → 进程内缓存 → 分布式缓存 → 数据库。 看来在技术的架构每个环节都可以加入缓存

高并发的解决方案[转载]

谁都会走 提交于 2019-11-30 06:07:39
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/sanyaoxu_2/article/details/78992113 1.应用和静态资源分离 刚开始的时候应用和静态资源是保存在一起的,当并发量达到一定程度的时候就需要将静态资源保存到专门的服务器中,静态资源主要包括图片、视频、js、css和一些资源文件等,这些文件因为没有状态所以分离比较简单,直接存放到响应的服务器就可以了,一般会使用专门的域名去访问。 通过不同的域名可以让浏览器直接访问资源服务器而不需要再访问应用服务器了。架构图如下: 2.页面缓存 页面缓存是将应用生成的页面缓存起来,这样就不需要每次都生成页面了,从而可以节省大量的CPU资源,如果将缓存的页面放到内存中速度就更快了。如果使用Nginx服务器就可以使用它自带的缓存功能,当然也可以使用专门的Squid 服务器。页面缓存的默认失效机制一班都是按缓存时间处理的,当然也可以在修改数据之后手动让相应的缓存失效。 页面缓存主要是使用在数据很少发生变化的页面,但是很多页面是大部分数据都很少发生变化,而其中很少一部分数据变化频率却非常高,比如说一个显示文章的页面,正常来说完全可以静态化,但是如果文章后面有“顶”和“踩”的功能而且显示的有响应的数量

网络IO

﹥>﹥吖頭↗ 提交于 2019-11-30 02:42:13
大并发服务器框架 大并发服务器设计目标 高性能(High Performance). 要求编写出来的服务器能够最大限度发挥机器性能, 使得机器在满负荷的情况下能够处理尽可能多的并发请求, 对于大量并发请求能够及时快速做出响应 高可用(High Availability). 要求服务器7*24小时服务, 故障转移 伸缩性(Scalability). 服务器具有良好框架, 分层设计, 业务分离, 并且能够进行灵活部署 分布式: 负载均衡 分布式存储 分布式计算 C/S结构: 任何网络系统都可以抽象为C/S结构(客户端, 服务端) 网络I/O+服务器高性能编程技术+数据库 超出数据库连接数: 数据库并发连接数10个, 应用服务器这边有1000个并发请求, 将会有990个请求失败. 解决办法: 增加一个中间层DAL(数据库访问控制层), 一个队列进行排队 超出时限: 数据库并发连接数10个, 数据库1秒钟之内最能处理1000个请求, 应用服务器这边有10000个并发请求, 会出现0-10秒的等待. 如果系统规定响应时间5秒, 则该系统不能处理10000个并发请求, 这时数据库并发能力5000, 数据出现瓶颈. 数据库瓶颈缓解 提高数据库的并发能力 队列+连接池(DAL) 主要逻辑挪到应用服务器处理, 数据库只做辅助的业务处理. 在数据库上进行计算能力或处理处理逻辑不如操作系统效率高. --

高级PHP面试总结

故事扮演 提交于 2019-11-30 02:41:47
1、给你四个坐标点,判断它们能不能组成一个矩形,如判断([0,0],[0,1],[1,1],[1,0])能组成一个矩形。 勾股定理,矩形是对角线相等的四边形。只要任意三点不在一条直线上,任选一点,求这一点到另外三点的长度的平方,两个短的之和如果等于最长的,那么这就是矩形。 2、写一段代码判断单向链表中有没有形成环,如果形成环,请找出环的入口处,即P点 /* *单链表的结点类 */ class LNode{ //为了简化访问单链表,结点中的数据项的访问权限都设为public public int data; public LNode next; } class LinkListUtli { //当单链表中没有环时返回null,有环时返回环的入口结点 public static LNode searchEntranceNode(LNode L) { LNode slow=L;//p表示从头结点开始每次往后走一步的指针 LNode fast=L;//q表示从头结点开始每次往后走两步的指针 while(fast !=null && fast.next !=null) { if(slow==fast) break;//p与q相等,单链表有环 slow=slow.next; fast=fast.next.next; } if(fast==null || fast.next==null)

04.Nginx搭建流行架构

谁都会走 提交于 2019-11-29 22:01:52
1.LNMP架构概述 1.什么是LNMP LNMP是一套技术的组合,L=Linux、N=Nginx、M~=MySQL、P~=PHP 2.LNMP架构是如何工作的 首先Nginx服务是不能处理动态请求,那么当用户发起动态请求时, Nginx又是如何进行处理的。 当用户发起http请求,请求会被Nginx处理,如果是静态资源请求Nginx则直接返回,如果是动态请求Nginx则通过fastcgi协议转交给后端的PHP程序处理,具体如下图所示 3.Nginx与Fast-CGI详细工作流程如下图所示 1.用户通过http协议发起请求,请求会先抵达LNMP架构中的Nginx 2.Nginx会根据用户的请求进行Location规则匹配 3.Location如果匹配到请求是静态,则由Nginx读取本地直接返回 4.Location如果匹配到请求是动态,则由Nginx将请求转发给fastcgi协议 5.fastgi收到后会将请求交给php-fpm管理进程,php-fpm管理进程接收到后会调用具体的工作进程warrap 6.warrap进程会调用php程序进行解析,如果只是解析代码,php直接返回 7.如果有查询数据库操作,则由php连接数据库(用户 密码 IP)发起查询的操作 8.最终数据由mysql->php->php-fpm->fastcgi->nginx->http->user 2

Oracle实现跨数据库查询

℡╲_俬逩灬. 提交于 2019-11-29 21:35:31
1.在当前数据库下查看所有的DBLINK的方法 select * from dba_db_links; 2.创建 create public database link dbLinkName --(dbLink的名字,任意指定) connect to username identified by password using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = IP )(PORT = 1521))--(IP:ORACLE服务器的IP地址) ) (CONNECT_DATA = (SERVICE_NAME = SID) --(ORACLE服务器的服务标识) ) )'; 3.使用 select count(*) from tableName@dbLinkName ; 来源: https://blog.csdn.net/hzs8716/article/details/100927152

django数据库操作

久未见 提交于 2019-11-29 19:18:41
一:web框架基础简介 【1】web框架本质   (1)web本质也是C/S架构   (2)浏览器:客户端   (2)服务端:服务端 【2】web框架自定义 import socket server = socket.socket() server.bind(('127.0.0.1',8080)) server.listen(6) while True: conn ,addr = server.accept() # 字符串 recv_data = conn.recv(1024).decode('utf-8') print(recv_data) conn.send(b'hello world') conn.close() (1)客户端结果展示 (2)服务端结果展示 '''b'GET / HTTP/1.1\r\nHost: 127.0.0.1:8080\r\nConnection: keep-alive\r\nCache-Control: max-age=0\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36\r

redis高级

你。 提交于 2019-11-29 19:01:59
一.Redis简介 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。 Redis是 NoSQL技术阵营中的一员,它通过多种键值数据类型来适应不同场景下的存储需求,借助一些高层级的接口使用其可以胜任,如缓存、队列系统的不同角色 二.Redis特性 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 三.Redis 优势 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。 丰富的特性 –

MySQL federated引擎 --- 实现类似oracle dblink功能

别说谁变了你拦得住时间么 提交于 2019-11-29 18:23:31
1.查看是否安装了federated引擎 show engines; 2.开启federated引擎 windows下在my.ini中加入federated,即可开启; linux中,需要编译时加入选项,再在my.ini中加入federated,方可开启. 3.建立远程数据表链接 举例说明: A(192.168.0.233:3306)、B(192.168.0.233:3307)、C(192.168.0.233:3308)、D(192.168.0.234:3306) 在A、B、C、D四个数据库分别创建库testfed; 在B、C上建立授权用户, mysql> grant all privileges on testfed . t_test to test@'%' identified by 'test'; (或者 grant select on testfed .t_test to test@ '192.85.1.113' identified by 'test' ; ) flush privileges; 在B上,创建 mysql> create table t_testB (id int not null auto_increment primary key, c_str char(20) not null) engine innodb; Query OK, 0 rows