sql数据库

Oracle Data Guard 理论知识

杀马特。学长 韩版系。学妹 提交于 2020-02-28 04:02:00
Oracle Data Guard 理论知识 来源: Linux 社区 作者: tianlesoftware RAC , Data Gurad , Stream 是 Oracle 高可用性体系中的三种工具,每个工具即可以独立应用,也可以相互配合。他们各自的侧重点不同,适用场景也不同。 RAC 它的强项在于解决单点故障和负载均衡,因此 RAC 方案常用于 7*24 的核心系统,但 RAC 方案中的数据只有一份,尽管可以通过 RAID 等机制可以避免存储故障,但是数据本身是没有冗余的,容易形成单点故障。 Data Gurad 通过冗余数据来提供数据保护, Data Gurad 通过日志同步机制保证冗余数据和主数据之前的同步,这种同步可以是实时,延时,同步,异步多种形式。 Data Gurad 常用于异地容灾和小 企业 的高可用性方案,虽然可以在 Standby 机器上执行只读查询,从而分散 Primary 苏菊哭的性能压力,但是 Data Gurad 决不是性能解决方案。 Stream 是以 Oracle Advanced Queue 为基础实现的数据同步,提供了多种级别的灵活配置,并且 Oracle 提供了丰富的 API 等开发支持, Stream 更适用在应用层面的数据共享。 在 Data Gurad 环境中,至少有两个 数据库 ,一个处于 Open 状态对外提供服务

自己动手写一个简易对象关系映射,ORM(单例版和数据库池版)

 ̄綄美尐妖づ 提交于 2020-02-28 03:22:28
准备知识 DBUtils模块 <<-----重点 DBUtils是Python的一个用于实现数据库连接池的模块 此连接池有两种连接模式: DBUtils提供两种外部接口: PersistentDB :提供线程专用的数据库连接,并自动管理连接。 PooledDB :提供线程间可共享的数据库连接,并自动管理连接。 from DBUtils.PooledDB import PooledDB import pymysql POOL = PooledDB( creator=pymysql, # 使用链接数据库的模块 maxconnections=6, # 连接池允许的最大连接数,0和None表示不限制连接数 mincached=2, # 初始化时,链接池中至少创建的空闲的链接,0表示不创建 maxcached=5, # 链接池中最多闲置的链接,0和None不限制 maxshared=3, # 链接池中最多共享的链接数量,0和None表示全部共享。PS: 无用,因为pymysql和MySQLdb等模块的 threadsafety都为1,所有值无论设置为多少,_maxcached永远为0,所以永远是所有链接都共享。 blocking=True, # 连接池中如果没有可用连接后,是否阻塞等待。True,等待;False,不等待然后报错 maxusage=None, # 一个链接最多被重复使用的次数

SQL学习笔记之简易ORM

与世无争的帅哥 提交于 2020-02-28 03:21:49
0x00 前言 1 、我在实例化一个user对象的时候,可以user=User(name='lqz',password='123') 2 、也可以 user=User()     user['name']='lqz'     user['password']='123' 3 、也可以 user=User()     user.name='lqz'     user.password='password' 前两种,可以通过继承字典dict来实现,第三种,用getattr和setattr。 __getattr__ 拦截点号运算。当对未定义的属性名称和实例进行点号运算时,就会用属性名作为字符串调用这个方法。如果继承树可以找到该属性,则不调用此方法。 __setattr__会拦截所有属性的的赋值语句。如果定义了这个方法,self.arrt = value 就会变成self,__setattr__("attr", value).这个需要注意。当在__setattr__方法内对属性进行赋值是,不可使用self.attr = value,因为他会再次调用self,__setattr__("attr", value),则会形成无穷递归循环,最后导致堆栈溢出异常。应该通过对属性字典做索引运算来赋值任何实例属性,也就是使用self.__dict__['name'] = value。 0x01

简易orm、fuckorm

一世执手 提交于 2020-02-28 03:21:13
一 前言 1 我在实例化一个user对象的时候,可以user=User(name='fixdq',password='123') 2 也可以 user=User()     user['name']='fixdq'     user['password']='123' 3 也可以 user=User()     user.name='fixdq     user.password='password' 前两种,可以通过继承字典dict来实现,第三种,用getattr和setattr __getattr__ 拦截点号运算。当对未定义的属性名称和实例进行点号运算时,就会用属性名作为字符串调用这个方法。如果继承树可以找到该属性,则不调用此方法 __setattr__会拦截所有属性的的赋值语句。如果定义了这个方法,self.arrt = value 就会变成self,__setattr__("attr", value).这个需要注意。当在__setattr__方法内对属性进行赋值是,不可使用self.attr = value,因为他会再次调用self,__setattr__("attr", value),则会形成无穷递归循环,最后导致堆栈溢出异常。应该通过对属性字典做索引运算来赋值任何实例属性,也就是使用self.__dict__['name'] = value 二 定义Model基类

简易版ORM

纵然是瞬间 提交于 2020-02-28 03:20:53
一 前言 1 我在实例化一个user对象的时候,可以user=User(name='lqz',password='123') 2 也可以 user=User()     user['name']='allen'     user['password']='123' 3 也可以 user=User()     user.name='allen'     user.password='password' 前两种,可以通过继承字典dict来实现,第三种,用getattr和setattr __getattr__ 拦截点号运算。当对未定义的属性名称和实例进行点号运算时,就会用属性名作为字符串调用这个方法。如果继承树可以找到该属性,则不调用此方法 __setattr__会拦截所有属性的的赋值语句。如果定义了这个方法,self.arrt = value 就会变成self,__setattr__("attr", value).这个需要注意。当在__setattr__方法内对属性进行赋值是,不可使用self.attr = value,因为他会再次调用self,__setattr__("attr", value),则会形成无穷递归循环,最后导致堆栈溢出异常。应该通过对属性字典做索引运算来赋值任何实例属性,也就是使用self.__dict__['name'] = value 二 定义Model基类

mybatis 动态SQL

吃可爱长大的小学妹 提交于 2020-02-28 02:15:32
动态SQL 官方文档 介绍 什么是动态SQL: 动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句. 官网描述: MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。 虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大的动态 SQL 语言得以改进这种情形。 动态 SQL 元素和 JSTL 或基于类似 XML 的文本处理器相似。在 MyBatis 之前的版本中,有很多元素需要花时间了解。MyBatis 3 大大精简了元素种类,现在只需学习原来一半的元素便可。MyBatis 采用功能强大的基于 OGNL 的表达式来淘汰其它大部分元素。 ------------------------------- - if - choose (when, otherwise) - trim (where, set) - foreach ------------------------------- ​ 我们之前写的 SQL 语句都比较简单,如果有比较复杂的业务,我们需要写复杂的 SQL 语句,往往需要拼接,而拼接

菜鸟求职之数据库复习part 2

只谈情不闲聊 提交于 2020-02-27 23:56:22
一.DDL操作 -u 是user -p 是password 1.1.创建数据库 sql语句:create database my_test2;(改字符:character set utf8) 1.2查看数据库 sql语句:show databases; 1.3使用数据库 sql语句:use my_test2; 1.4删除数据库。 sql语句: drop data my_test2; 1.5查数据库的表 sql语句:show tables;(Empty set) 1.6新建表 sql语句: CREATE TABLE students(id int,name varchar(25),age int ,email varchar (255)); 1.7添加一列 sql语句:alter TABLE students 1.8查看表的字段 sql语句:alter table students add score int ; 1.9修改一个表的字段类型 sql语句:alter table students modify id bigint; 1.10增加/删除一列 sql语句:alter table students add nums varchar(12); 删除sql语句:alter table students drop + 字段名; 来源: CSDN 作者: 恒心如故。 链接:

干货 | RDS For SQL Server单库上云

若如初见. 提交于 2020-02-27 23:40:49
数据库作为核心数据的重要存储,很多时候都会面临数据迁移的需求,例如:业务从本地迁移上云、数据中心故障需要切换至灾备中心、混合云或多云部署下的数据同步、流量突增导致数据库性能瓶颈需要拆分…… 本文将会一步步带着大家来操作,实现RDS For SQL Server单库上云。 一 创建RDS For SQL Server实例 打开京东云控制台: https:// console.jdcloud.com/ 在左侧导航依次点击 数据库库与缓存 - 云数据库 RDS ,选择 华北-北京 地域后点击 创建 按钮。 选择计费类型(这里由于测试,选择 按配置 ),如下图选择好配置后点击 立即购买 确认订单信息后,点击 立即开通 ,稍等几分钟完成数据库实例的创建 创建账号 创建测试库,并赋予账号读写权限 二 创建本地测试数据 1、创建 Win Server 云主机 根据京东云现有云主机规格,内存最低要求8GB,4GB在安装SQL Server过程中会提示内存不足,所以最低要求:4核8GB 如下图创建Win Server云主机 创建完成后如下图: 2、安装sql Server2016 2.1 JDK下载安装 远程连接Win Server云主机,作为Microsoft向大数据整合靠拢的一部分,在SQL Server 2016中新添加了Polybase的功能,这个功能要求安装Oracle JRE7或更高版本

您应该在SQL Server中选择MONEY还是DECIMAL(x,y)数据类型?

断了今生、忘了曾经 提交于 2020-02-27 20:39:00
我很好奇 money 数据类型和 decimal(19,4) 类的东西之间是否存在真正的区别(我相信这是金钱在内部使用的)。 我知道 money 是特定于SQL Server的。 我想知道是否有令人信服的理由选择一个而不是另一个? 大多数SQL Server示例(例如AdventureWorks数据库)使用 money 而不是 decimal 来表示价格信息。 我应该继续使用money数据类型,还是使用十进制有好处? 钱是较少键入的字符,但这不是正当的理由:) #1楼 我意识到WayneM曾说过他知道金钱是特定于SQL Server的。 但是,他在问是否有任何理由要用十进制来代替金钱,反之亦然,我认为还有一个明显的理由应该指出,那就是使用十进制意味着不必更改DBMS就少了一件事情-可能会发生。 使您的系统尽可能灵活! #2楼 如果您不知道自己在做什么,一切都会很危险 即使是高精度的十进制类型也无法保存一天: declare @num1 numeric(38,22) declare @num2 numeric(38,22) set @num1 = .0000006 set @num2 = 1.0 select @num1 * @num2 * 1000000 1.000000 <-应该为0.6000000 money 类型是整数 smallmoney 和 decimal(10,4)

QCMS代码审计:XSS+SQL+后台getshell

僤鯓⒐⒋嵵緔 提交于 2020-02-27 14:45:34
qcms是一款比较小众的cms,最近更新应该是17年,代码框架都比较简单,但问题不少倒是。。。 网站介绍 QCMS是一款小型的网站管理系统。拥有多种结构类型,包括:ASP+ACCESS、ASP+SQL、PHP+MYSQL 采用国际标准编码(UTF-8)和中文标准编码(GB2312) 功能齐全,包括文章管理,产品展示,销售,下载,网上社区,博客,自助表单,在线留言,网上投票,在线招聘,网上广告等多种插件功能 程序和网页代码分离 支持生成Google、Baidu的网站地图 建站 说实话,官网写的是4.0.,安装确实3.0,然后下面写的是2.0,确实让人摸不清头脑 手动创建数据库即可,需要注意数据库要用MySQL5.0版本,向上会报错 数据库:qcms 后台账号密码: admin admin 漏洞复现 XSS 留言处是XSS重灾区,首当其冲就有一个 按照如图所示构造payload 提交之后无需审核,直接先弹个窗。。 登录后台再弹一个。。 查看数据库,没有过滤直接插入 SQLlike注入 在后台下载管理处 构造payload http://127.0.0.1/backend/down.html?title=1';select if(ascii(substr((select database()), 1, 1))-113, 1, sleep(5));%23 这里直接附上简单脚本 # !