精华内容
下载资源
问答
  • 当一个方法中需要操作数据库同时操作redis,如何保证事务? 1.创建一个配置类RedisConfig 2.开启允许事务管理@EnableTransactionManagement 3.配置RedisTemplate后返回容器管理 4.配置事务管理器 @Configuration @...

    当一个方法中需要操作关系型数据库同时操作redis,如何保证事务?

    1.创建一个配置类RedisConfig
    2.开启允许事务管理@EnableTransactionManagement
    3.配置RedisTemplate后返回容器管理
    4.配置事务管理器

    @Configuration
    @EnableTransactionManagement
    public class RedisConfig{
    @Bean
    public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory redisConnectionFactory){
    	RedisTemplate<String, String> template = new RedisTemplate<String, String>();
    	template.setConnectionFactory(redisConnectionFactory);
    	//配置序列化方式
    	StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
    	template.setKeySerializer(stringRedisSerializer);
    	template.setHashKeySerializer(stringRedisSerializer);
    	template.setValueSerializer(stringRedisSerializer);
    	template.setHashValueSerializer(stringRedisSerializer);
    	//开启支持事务
    	template.setEnableTransactionSupport(true);
    	return template;
    }
    //配置事务管理器
    @Bean
    public PlatformTransactionManager transactionManage(DataSource datasource) throws SQLException {
    	return new DataSourceTransactionManager(datasource);
    }
    }
    

    然后在需要事务的方法上愉快的使用@Transactional了。
    本篇就到这里。

    下一篇预告:
    这里的redisTemplate是RedisTemplate<String, String>,所以下一篇预告为:redis自定义value类型。

    展开全文
  • 利用oracle undo自动管理undo segment不够的时侯smon会自动创建这样的特性,可以查询实例启动起来事务的最大数量,undo segment的最大数量就是实例启动起来事务曾经得到的最大数量,不管现在的undo ...
    利用oracle undo自动管理undo segment不够的时侯smon会自动创建这样的特性,可以查询实例启动起来事务的最大数量,undo segment的最大数量就是实例启动起来事务曾经得到的最大数量,不管现在的undo segment是否都是offline的。 在undo auto管理以后,如果undo空间够那么oracle是不会让多个事务使用同一个undo segment的,也就是说在undo空间够用的情况下一个事务只能使用一个undo segment,这样每个实例上undo segment的最大数量就是该实例上事务的最大数量。[@more@]

    SQL> select tablespace_name,status,count(*)
    2 from dba_rollback_segs
    3 group by tablespace_name ,status
    4 order by tablespace_name ,status
    5 ;

    TABLESPACE_NAME STATUS COUNT(*)
    ------------------------------ ---------------- ----------
    SYSTEM ONLINE 1
    UNDOTBS1 OFFLINE 66
    UNDOTBS1 ONLINE 10
    UNDOTBS2 OFFLINE 85
    UNDOTBS2 ONLINE 10

    SQL>

    SQL> select tablespace_name,count(*)
    2 from dba_rollback_segs
    3 group by tablespace_name
    4 order by tablespace_name
    5 ;

    TABLESPACE_NAME COUNT(*)
    ------------------------------ ----------
    SYSTEM 1
    UNDOTBS1 76
    UNDOTBS2 95

    SQL>

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19602/viewspace-1060435/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/19602/viewspace-1060435/

    展开全文
  • Azure SQL DB 可以被配置成为 SQL Server 事务复制的一个订阅者( subscriber )。 主要应用场景有两种: 将您的数据迁移到 Azure SQL DB, 并且没有宕机时间。 将 Azure SQL DB 作为 SQL on-premises / on VMs 的一个...

    Azure SQL DB 可以被配置成为 SQL Server 事务复制的一个订阅者( subscriber )。

    主要应用场景有两种:

    1. 将您的数据迁移到 Azure SQL DB, 并且没有宕机时间。
    2. 将 Azure SQL DB 作为 SQL on-premises / on VMs 的一个备份或只读实例。

    我们扩展了已有的事务复制逻辑以使得 Azure SQL DB 可以成为一个事务复制订阅者。 从使用的体验上来说,能够察觉到的唯一的区别是在你创建一个订阅者的时候:你需要提供 Azure SQL DB 的 URL 而非一台 server 或者一个实例的名字。如果您已经知道了怎么使用事务复制,那么在 Azure SQL DB 上面使用这个功能的学习成本几乎为 0,意味着您将有一种无缝的体验。将数据复制到 Azure SQL DB 上将会变得非常轻松和便捷。当发布服务器和分发服务器至少是以下 SQL Server 版本之一时,支持此方案:

    • SQL Server 2016 CTP3(预览版)和更高版本
    • SQL Server 2014 SP1 CU3 和更高版本
    • SQL Server 2014 RTM CU10 和更高版本
    • SQL Server 2012 SP2 CU8 和更高版本
    • SQL Server 2012 SP3(发行时)

    它是如何工作的呢?
    数据的复制实际上是通过分发代理( Distribution Agent )完成的。
    下面的这张表展示了整体的架构:

    Distribution-Agent

    注意事项:

    1. 只支持 Snapshot 及单向的事务( onpromise sql 到 sql azure )复制. 不支持 Peer-to-peer transactional replication 及 merge replication。
    2. 只提供 SQL Azure V12 的支持。
    3. 无法通过 SQL Database 门户来配置事务复制。
    4. 复制只能使用 SQL Server 身份验证方式登录连接到 SQL DB。
    5. 只支持 push subscription。
    6. 被复制的表必须要有主键。

    下面的例子展示如何用 SQL Server Management Studio 将 Azure SQL DB 配置成为一个事务复制订阅者。

    1. 创建一个新的事务复制。
      右键 Replication 下的 Local Publication,并选择 New Publication Wizard,会调出新建复制向导。
      New-Publication-Wizard
    2. 选择 Snapshot publication 或者 Transactional publication, 本示例以 Transactional publication 为例
      Publication-Type
    3. 完成向导中的后续步骤,创建一个复制。
      Creating-Publication
    4. 创建一个新的订阅。
      右键刚刚创建的发布,选择 New Subscriptions,调出新建订阅向导。
      New-Subscription-Wizard
    5. 完成向导中所需步骤,在下图 Subscribers 页面,点击 Add Subscriber -> Add SQL Server Subscriber。
      Subscribers
    6. 输入所需的信息,连接到 Azure SQL DB。
      Connect-to-Server
    7. 选择一个 Subscription Database 来接受复制内容。
      Subscription-Database
    8. 完成向导的余下部分,创建订阅。
      Creating-Subscriptions
    9. 创建订阅后,可以看到改订阅出现在之前创建的发布下。
      Changed-Subscription

    在同步完成后,我们来验证一下复制是否生效。
    向 SQL Server 发布的这张表中插入数据后,等复制发生之后,发现插入的数据出现在了 Azure SQL DB 指定的表中。 Azure-SQL-DB

    展开全文
  • SQL如何创建数据库快照

    千次阅读 2017-03-05 19:02:01
    最近开始学的数据库,使用的是SQL server 2008,以下是我学习数据库快照的笔记,如有错误还请指正。 什么是数据库快照:数据库快照,顾名思义就是给数据库某个时刻拍的照片,是数据库(源数据库)的只读...如何创建数据
        最近开始学的数据库,使用的是SQL server 2008,以下是我学习数据库快照的笔记,如有错误还请指正。
    

    什么是数据库快照:
    数据库快照,顾名思义就是给数据库某个时刻拍的照片,是数据库(源数据库)的只读、静态视图。多个快照可以位于一个源数据库中,并且可以作为数据库始终驻留在同一服务器实例上。创建快照时,每个数据库快照在事务上与源数据库一致。在被数据库所有者显式删除之前,快照始终存在。

    如何创建数据库快照:

        下面是进行如下操作的一些最佳方法:命名数据库快照、创建它们时进行计时、限制它们的数量以及将客户端连接重新定向到快照。
    
        数据库快照的命名: 为了便于管理,数据库快照的名称可以包含标识数据库的信息,且每个数据库快照的名称具有唯一性。
        例如:
             .源数据库的名称
             .该新名称用于数据库快照的信息
             .快照的创建日期和时间、序列号或一些其他的信息(例如一天中的某个时间)以区分给定的数据库上的连续快照
    
    基于每天24小时制,这里的数据名称为TEST,那么就可以这样命名:
            TEST_snapshot_0600              --上午六时的数据库快照
            TEST_snapshot_1203              --中午12时3分的数据库快照
            TEST_snapshot_1820              --18时20分的数据库快照
    数据库快照的创建可以根据具体需要在不同的时刻进行创建。
    
    创建数据库快照的语句基本与数据库的创建相同,只不过在末尾加了AS SNAPSHOT OF DB_NAME(作为xx数据库的快照)
    

    下面是创建数据库快照的T-SQL语句:
    CREATE DATABASE db_name ON
    (
    NAME = db_name_data,
    FILENAME = ‘path\db_name_data.ss’
    )
    AS SNAPSHOT OF db_name;

    例:

    GO                              --执行批处理
        CREATE DATABASE TEST          
        ON 
        (
            NAME = TEST_data_1800,           --设置快照文件名称
            FILENAME = 'D:\SQL\TEST_data_1800.ss'  --指定快照文件位置
        )
        AS SNAPSHOT OF TEST;              --指定为数据库快照
        GO
    注意:创建数据库快照时,CREATE DATABASE 语句中不允许有日志文件、脱机文件、还原文件和不起作用的文件
    
    建好数据库快照后,点击对象资源管理器-数据库-数据库快照,就可以查看已建好的数据快照。
    
    如果要删除数据快照,可以使用以下语句:
    
    USE TEST                            --指定当前操作的数据库
        DROP DATABASE SalesSnapshot0600     --删除名为 SalesSnapshot0600 的数据库快照,而不影响源数据库
    
     删除后SalesSnapshot0600 的所有用户连接都被终止,并删除快照使用的所有 NTFS 文件系统稀疏文件
    

    将数据库恢复到数据库快照步骤

    1、标识要将数据库恢复到的数据库快照
    2、删除其他任何数据库快照。
    3、执行恢复操作
    如果数据库使用完整恢复模式,则在执行恢复之前,应先备份日志,恢复数据库快照要求源数据库具有RESTORE DATABASE 权限。
    
    TSQL语句如下:
    RESTORE DATABASE <数据库名称> FROM DATABASE_SNAPSHOT = <数据库快照名称>
    例:
    
    --Test to see if sales_snapshot0600 exists and if it 
    -- does, delete it.
    IF EXISTS (SELECT dbid FROM sys.databases
        WHERE NAME='sales_snapshot0600')
        DROP DATABASE SalesSnapshot0600;
    GO
    -- Reverting Sales to sales_snapshot1200
    USE master;
    RESTORE DATABASE Sales FROM DATABASE_SNAPSHOT = 'sales_snapshot1200';
    GO
    已恢复的数据库将保留数据库快照的权限和配置(例如,数据库所有者和恢复模式)。
    
    展开全文
  • 首先我们来说一下MySQL数据库-数据库操作系统:数据库操作系统(DBMS)的组成 数据库DB 表 TABLE(列 Column) 数据 data SQL的分类(CRUD): DDL:数据库定义语言-DataBase Definition Language DML:数据库操作语言-...
  • 如何创建数据库和表

    2019-09-30 06:13:42
    1.indexedDB数据库时一种事务类型数据库 2.是NoSQL数据库 3.使用JS对象存储数据 创建数据库 1.indexedDB.open创建数据库 2.open方法返回一个IDBRequest对象 <script> var db = window.indexedDB || ...
  • qt如何创建数据库应用程序 Qt的另外一大优点是它支持SQL。通过使用Qt的model/view结构,我们可以不用对SQL了解的太多即可编写出很强大的带有数据库的应用程序。如果你是一个SQL新手,你可以通过网络来获得很多有关...
  • 数据库安全及事务操作 ...4 如何使得采购部门的员工都具有这样的权限:能查看进货表的信息,并拥有对自己采购信息的修改5 银行转账问题6 数据库字段的加密和解密7 给出一个用户表,创建表的代码如下三、遇到的问题
  • PostgreSQL 官网截图 PostgreSQL 是什么? PostgreSQL 是一个功能非常强大的,历史悠久,开源的...如何创建一个 PostgreSQL 数据库? 注册成为21云盒子会员 在控制台中选 “数据库” 然后点击 “新增数据库” ...
  • oracle11g创建数据库的步骤如下:1、按住键盘上Windows键,打开开始菜单,找到Database Configuration Assitant并打开;2、打开数据库配置助手Database Configuration Assitant,单击“下一步”;步骤1:选择“创建...
  • 我们需要接受失望,因为它是有限...由于分库分表之后,新表在另外一个数据库中,如何保证主库和分库的事务性是必须要解决的问题。 解决办法:通过在主库中创建一个流水表,把操作数据库的逻辑映射为一条流水记录。当整
  • 常见的执行报错:psycopg2.Internal...原因:不能再一个事务创建数据库,建库操作需要在事务外部运行 原因可参考:http://initd.org/psycopg/docs/connection.html commit() 将任何未决的事务提交到数据库。 ...
  • 由于分库分表之后,新表在另外一个数据库中,如何保证主库和分库的事务性是必须要解决的问题。 解决办法:通过在主库中创建一个流水表,把操作数据库的逻辑映射为一条流水记录。当整个大事务执行完毕后(流水被插入...
  • 目前通过AOP实现了事务的管理,但是又个问题。例如 class AService { ...1. 如何实现只用一个数据库连接。 现在通过service传入当前的connection可以实现使用同一个数据库连接,但是怎样可以不传参数。。。
  • 隔离性(Isolation)插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图...
  • 数据库事务的传播:数据库事务的传播就是当创建的方法运行在一个事务当中,而该方法内部调用的其他方法同样具备事务属性,其他方法的事务如何启动。 下面举例 BookShopServiceImpl.java @Transactional() @...
  • Informix 用create database dbname的SQL语句来建库是不带事务的;...1. create database dbname with log创建数据库状态是U2. create database dbname with buffered log创建数据库状态是B  ...
  • 数据库事务模式

    2021-03-22 11:44:36
    事务模式欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...
  • 如何创建 OracleTransaction 对象并用它们将事务提交给数据库,如何使用保存点部分回滚一个事务,以及 Oracle 数据库如何分离并发事务。同时分别提供了vb.net和c#两种开发工具提供了具体实例代码
  • 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学...
  • mysql数据库事务的实现原理

    千次阅读 2019-05-12 16:57:41
    这里写自定义目录标题1、为什么要知道数据库事务的实现原理2、事务使用场景功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格...
  • 如何在Ubuntu 14.04上使用Percona XtraBackup创建MySQL数据库的热备份   介绍 使用活动数据库系统时遇到的一个非常常见的挑战是执行热备份,即在不停止数据库服务或将其设置为只读的情况下创建备份。简单地复制...
  • 用spring连接数据库以及动态代理事务1.1、数据源(连接池)的作用1.2、数据源的手动创建1.2.1、使用步骤测试文件bean标签里面的数据库信息是写死的,如何解决1.引用外部的配置文件动态代理---作用:在不修改源码的...
  • 文章目录认识事务事务的ACID特性事务的分类(1) 扁平事务(2) 带有保存点的扁平事务(3) 链事务(4)嵌套事务(5) 分布式事务一:Mysql InnoDBInnoDB的锁lock 和 latch锁的分类什么是意向锁?一致性非锁定读(如果有锁,是...
  • 7 天猫双十一有个积分换墨盒的活动,总共有50万台天猫魔盒(box),每个用户(user)可以用99个天猫积分(point)兑换一台魔盒,且每人限换一台。...1、数据库表结构如何设计,有哪些表,分别有
  • 数据库事务的概念及其实现原理ACID并发异常与控制技术合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...
  • 如何利用事务消息实现分布式事务 一说起事务,容易联想到数据库。我们日常使用事务的场景,绝大部分都是在操作数据库的时候。像 MySQL、Oracle这些主流的关系型数据库,也都提供了完整的事务实现。 那消息队列为什么...
  • 数据库笔记 事务隔离1 概念介绍2 操作语句3 实验设定内容居中、居左、居右功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格...
  • “正在恢复” 的数据库如何处理?

    千次阅读 2018-05-14 13:49:53
    一般来说, 这是因为一个大事务, 让数据库卡着了, 如果数据库重要, 只能让它慢慢还原, 还原的进度可以用xp_readerrorlog 存储过程来看。 但是, 如果日志太大, 你又等不了, 那只能删除日志, 让数据库先跑...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,123
精华内容 449
关键字:

数据库如何创建事务