小编Mat*_*Mat的帖子

我需要为 Berkeley DB 支付许可费吗?

我计划在移动应用程序中使用 Berkeley DB。即使应用程序在 iPhone 和 Android 市场上免费分发,我也需要许可证吗?

license berkeley-db

6
推荐指数
1
解决办法
3179
查看次数

使用不同的数据类型存储应用程序设置

我正在开发一个 Web 应用程序,我计划将应用程序设置存储在数据库中的名称、值字段(一行 = 一个设置)中。

这些设置范围从目录路径到简单的是/否标志。显然,我无法将路径(字符串)存储到布尔字段中。

我唯一的选择是将值字段设为字符串,然后根据设置根据需要解释该值,还是有其他一些策略?

(我使用的是 PostgreSQL,但答案可能适用于任何数据库服务器。)

postgresql configuration

6
推荐指数
1
解决办法
915
查看次数

备用控制文件错误

我在做数据卫士。我已经手动完成了备用数据库的备份。它工作正常。当我使用备用控制文件时出现问题。在主服务器上,我创建了一个备用控制文件并将其传输到备用。

scp test_sdy oracle@db3.oracle.com:/u03/app/oracle/oradata/TEST1/control01.ctl
cp /u03/app/oracle/oradata/TEST1/control01.ctl \
   /u03/app/oracle/flash_recover_area/TEST1/control02.ctl
Run Code Online (Sandbox Code Playgroud)

备用设备init.ora包含:

*.control_files='/u03/app/oracle/oradata/TEST1/control01.ctl','/u03/app/oracle/flash_recovery_area/TEST1/control02.ctl'
Run Code Online (Sandbox Code Playgroud)

当我使用 pfile 启动备用数据库时,出现此错误:

ORA-10458: standby database requires recovery
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '/u03/app/oracle/oradata/TEST1_SDY/system01.dbf'
Run Code Online (Sandbox Code Playgroud)

我是不是对备用控制文件做错了什么?我怎样才能解决这个问题?

oracle dataguard

6
推荐指数
1
解决办法
1695
查看次数

一次回滚会影响所有事务吗?

当我运行以下脚本时:

begin transaction
    select XACT_STATE()

    select @@TRANCOUNT 

    begin transaction


    select XACT_STATE()

    select @@TRANCOUNT 

    begin transaction


    select XACT_STATE()

    select @@TRANCOUNT 

    rollback

    select XACT_STATE()

    select @@TRANCOUNT 
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

在此处输入图片说明

那么一个单一的回滚语句可以回滚任意数量的事务?

那么写以下内容是没有意义的:

while @@TRANCOUNT > 0
      rollback
Run Code Online (Sandbox Code Playgroud)

sql-server transaction sql-server-2014

6
推荐指数
1
解决办法
4017
查看次数

有没有办法让 sql server 在当前的 SQLCLR 存储过程之前搜索 master 数据库?

对于带有前缀 sp_ 的 T-SQL 存储过程,SQL Server 将在 master 数据库中搜索并使用当前过程之前的过程。对于我使用 Visual Studios 内置部署使用 SQL Server 2010 创建的 SQLCLR 存储过程,情况似乎并非如此。数据库服务器是 SQL Server 2008 R2 (SP1)。

我执行这个脚本:

SELECT name
from master.sys.procedures
WHERE type_desc='CLR_STORED_PROCEDURE' and schema_id = 1

USE tempdb
PRINT 'USING tempDb'
EXEC sp_RAISERROR_CaughtDemo;
GO
USE master
PRINT 'USING master'
EXEC sp_RAISERROR_CaughtDemo
GO
--SELECT * from sys.assembly_modules
Run Code Online (Sandbox Code Playgroud)

并且存储过程只会使用来自 master 数据库的非限定名称执行:

name
----------------------------------
sp_RAISERROR_CaughtDemo
sp_RAISERROR_UncaughtDemo

(2 row(s) affected)

USING tempDb
Msg 2812, Level 16, State 62, Line 5
Could not find stored procedure 'sp_RAISERROR_CaughtDemo'. …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-clr

5
推荐指数
1
解决办法
902
查看次数

缺少 RSExecRole

我有多个服务器,其中 4 个安装了ReportServer&ReportServerTempDB数据库的报告服务。

几天前,我正在为新登录设置安全性,我发现RSExecRole我的开发服务器(在reportserver数据库中)中缺少该角色。它存在于ReportServerTempDB, master&msdb数据库中。

我找到了一种在msdn上的master&msdb数据库上创建它的方法, 但它并没有帮助我使用与我运行的其他环境类似的所有安全和属性来创建它。reportserver

有没有人遇到过这个问题?任何人都可以帮我写一个脚本并解释一下这个角色吗?

security ssrs sql-server-2012

5
推荐指数
1
解决办法
9544
查看次数

为什么 DBMS_UTILITY.COMPILE_SCHEMA 会破坏基于函数的索引?

批量结构更新后,一些视图/过程变得无效。

所以我只是重新编译它们:

exec dbms_utility.compile_schema( USER )
Run Code Online (Sandbox Code Playgroud)

但在那之后,之前状态良好的所有基于函数的索引都被破坏了,针对这些表的 SQL 语句失败了。这就是问题所在。

此类索引的示例:

CREATE INDEX DOCUMENTS_NMBR_UCN_FIDX ON DOCUMENTS(Str2Number(NUMBER_UCN));

CREATE INDEX DOCUMENTS_DATE_FIDX ON DOCUMENTS(Date2Number(REG_DATE));
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

oracle

5
推荐指数
1
解决办法
2万
查看次数

将 3000 万行导出为 CSV

我有一个查询在 Oracle 数据库 (11g) 中命中多个表。我无权访问服务器本身。我使用 SQL Developer 或 SQL*Plus 进行连接。

大约有 3100 万行和 7 列,我想将其转储到 CSV 文件中。

我怎样才能做到这一点?

oracle oracle-sql-developer

5
推荐指数
1
解决办法
7万
查看次数

在进行大量写入时调用 pg_ctl reload 是否安全?

我正在运行 Postgres 8.4,我想更改用户的身份验证方法。我的理解是,我必须在 中执行此操作pg_hba.conf,然后使用pg_ctl reload(或在本例中为service postgresql reload)重新加载配置文件以使设置生效。

但是,我还使用多个进程从平面文件中导入了大量数据。

这样做安全吗?

postgresql

5
推荐指数
1
解决办法
2398
查看次数

锁定“读提交的快照”

如果在具有“读取已提交快照”隔离级别的表上运行更新并且提交未决

例如:

  1. update table1 set col1 = col1 + 1 where PKcol < 3
  2. update table1 set col1 = col1 + 1 where PKcol = 3
  3. update table1 set col1 = col1 + 1 where NonPKcol < 3
  4. update table1 set col1 = col1 + 1 where NonPKcol = 3
  5. update table1 set col1 = col1 + 1 where PKcol < 3 and NonPKcol = 5

在上述情况下,PKcol 是表中的主键,而 NonPKcol 是非主键。

是否只为满足“where”条件的行锁定更新?它是基于值、索引还是主列?

sql-server transaction locking snapshot-isolation

5
推荐指数
1
解决办法
1740
查看次数