小编Nic*_*mas的帖子

如何从 LDF 文件中恢复数据?

我们使用的是 SQL 2005 Express Edition。我们要从 LDF 文件中读取数据以恢复一些已删除的记录。

我们尝试使用 ApexSQL 的试用版,这对我们有很大帮助。我们不是去寻找第三方软件,而是试图弄清楚如何自己读取日志文件。

我们如何从 LDF 文件中读取和恢复数据?

sql-server-2005 sql-server backup recovery restore

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

以任何方式绕过唯一索引 16 列最大值

根据CREATE INDEX文档:

最多可以将 16 列组合成一个复合索引键。

我们有一个包含 ~18 列的表格,需要形成一个独特的组合。此表性能敏感——我们很少更新值/插入记录。我们只需要确保我们避免重复我们的记录......并认为我们可以强加一个简单的唯一性约束。

有任何想法吗?如果有更好的方法,我愿意完全避免使用唯一索引/约束。

sql-server-2008 database-design sql-server constraint

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

与 DBA 讨论服务器升级项目 - 常见问题

我更像是一个网络/Windows 管理员,我的任务是监督 SQL 服务器升级项目。我需要与 DBA 会面并讨论他们关于升级的需求/愿望。我不想完全盲目地进去,所以我想我会先问你们。我们正在从 SQL Server 2008 迁移到 SQL Server 2008 R2,并且可能会在可能的情况下迁移到 Windows Server 2008 R2。作为 DBA,您对这样的升级有何担忧?您希望看到的任何事情同时发生吗?

sql-server-2008 sql-server-2008-r2 upgrade

8
推荐指数
2
解决办法
236
查看次数

如何在 SQL Server 中创建与非主键的关系?

我有一个用户表,它有两列一个名为 UserID 的主键和另一个名为 UserName 的列。

  • 用户 ID (int) PK
  • 用户名 (varchar(256)

它们都是独一无二的,但出于某些原因,我决定使用 UserName 作为其他表中的参考。因此,例如订单表通过 UserName 而不是 userid 引用了用户。

  • 订单号
  • 用户名

我想在引用 UserName 和 Users 表的所有表之间创建关系,以便获得 SQL Server 的级联更新/删除功能。

但是 SQL Server 不允许我在非主键列上创建关系。有什么方法可以在不更改用户表的情况下获得级联更新/删除功能,以便 UserName 是主键而不是 UserID?

foreign-key sql-server constraint

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

如何扩展 SQL Server 2008 或 2012?

如何扩展 SQL Server 2008(或 2012)?基本上,我理解有两种选择:

放大:

如果 CPU 受限,我可以清楚地看到从 1 个 CPU 内核到 2 个到 4 个。或者如果 RAM 使用量激增,只需添加更多 RAM。假设没有应用程序级别更改,SQL Server 2008/2012 是否真的弥补了这种不足并以这种方式扩展?为了尽量减少猜测,让我们假设我没有做一些愚蠢的事情,比如燃烧 CPU 周期、进行交叉连接等。

向外扩展:

目前尚不清楚扩展将如何工作。我的意思是如果我在第一个 SQL 服务器旁边添加另一个 SQL 服务器,查询如何知道要在哪个服务器上运行?前面是否有一些负载平衡器(它是否与 SQL Server 软件一起提供?)?它是否需要更改应用程序级别以扩展工作?或者我是否必须对数据进行分片并使用自定义代码根据数据分片键调用正确的数据库服务器?

希望更多有经验的人提供意见。

sql-server scalability

8
推荐指数
2
解决办法
9892
查看次数

碎片整理 - 重建索引 SQL Server 2005

我正在研究对数据库进行碎片整理,似乎我正在寻找以下 SQL 语句:

ALTER INDEX ALL ON mytablename
REBUILD WITH(ONLINE = ON)
Run Code Online (Sandbox Code Playgroud)

当我从 中提取信息时sys.dm_db_index_physical_stats,我看到百分比非常高 - 70%、80% 和 90% (!)。所以这告诉我我想要一个REBUILD,而不是一个REORGANIZE

在执行这些之前,我有几个问题REBUILDS

  1. 它可以在进程使用数据库时运行吗?(ONLINE = ON 告诉我是的,但我想确认它不会崩溃。)还是在不使用时运行更好?
  2. 我阅读REBUILD使事情运行得更慢。那是在重建索引的时候吗?(或永远之后)
  3. 重建所有索引/或每个索引需要多长时间?
  4. 是否有任何副作用或我需要注意的其他信息?这是生产/实时数据库。

编辑:最后,重建它的最佳方法是什么?循环遍历百分比大于 30 的所有对象?或者?

谢谢!

index sql-server maintenance fragmentation

8
推荐指数
1
解决办法
1860
查看次数

用 NOT NULL 定义的 MySQL 列允许空值

不久前我创建了一个表并开始向其中添加数据。最近我添加了一个新列 ( address)NOT NULL作为新列的一部分。旧行(添加前)仍然为空,这在定义中创建了警告。但是,仍然允许带有新列的新行插入空值。

新列的添加前空值是否是允许的来源?如果是这样,有没有办法告诉 MySQL 不允许它,即使它以前是这样?

mysql> show create table my_table\G
*************************** 1. row ***************************
       Table: my_table
Create Table: CREATE TABLE `my_table` (
  `entry_id` int(11) NOT NULL auto_increment,
  `address` varchar(512) NOT NULL,
  `follow_up_to` int(11) default NULL,
  PRIMARY KEY  (`entry_id`),
  KEY `follow_up_to` (`follow_up_to`),
  CONSTRAINT `my_table_ibfk_1` 
     FOREIGN KEY (`follow_up_to`) 
     REFERENCES `my_table` (`entry_id`) ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=535 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

mysql>
Run Code Online (Sandbox Code Playgroud)

mysql null

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

Stack Overflow 可以在 SQL Server Web 版上运行吗?

我正在开始一个新的网络企业,可能需要扩展到大量用户。

我对 SQL Server Web 版的 SPLA 许可充满信心,但想知道我是否需要考虑升级到 Standard、Enterprise 或 DataCenter(很确定不会是这个)。

我知道人们在需要之前不应该考虑扩展,但这会影响站点的架构和业务计划。

我知道处理器限制是每个物理处理器,而不是线程,所以我不用担心。然而,一些镜像和备份功能会让我担心。SO 是否依赖于这些功能?

tl;dr
像 Stack Overflow 这样的网站可以在 SQL Server Web 上运行吗?哪些方面的维护和高可用性是不可能实现的?

performance database-design sql-server

8
推荐指数
1
解决办法
378
查看次数

MySQL 主二进制日志损坏

我们最近对我们的基础设施进行了一些更改,现在我无法保持 MySQL 复制运行。奴隶抱怨二进制日志损坏,重置它无济于事。我一直在我的主日志中看到这样的条目:

二进制日志'
WFxKTRNJAAAAPwAAAKY/YwAAABsAAAAAAAEACHdlYmVkaTMwAA1QYXJ0bmVyQ29uZmlnAAQICA8P
BC0AYwAA
WFxKTRhJAAAAXAAAAAAJAYwAAABsAAAAAAAEABP//8BoSAAAAAAAAAAggMAAAAAAAAJUEFDS0NPVU5U
Azc3MfAaEgAAAAAAAIIDAAAAAAAACVBBQ0tDT1VOVAM3NzI=
'/*!*/;

在从属日志中,这只是作为“未知事件”出现,并且复制在该位置失败。

这是我给主人的 my.cnf:

[mysqld]
datadir=/data/mysql-data
套接字=/tmp/mysql.sock
用户=mysql
日志错误=/var/log/mysqld.log

binlog-do-db = db1
binlog-do-db = db2
binlog-do-db = db3
binlog-do-db = db4
binlog_format = '混合'

log-bin = /data/mysql-binlogs/mysql-bin.log
服务器 ID=73
报告主机=thisserver.mydomain.com

线程缓存大小 = 30
key_buffer_size = 700M
myisam_sort_buffer_size = 300M
table_cache = 256
sort_buffer_size = 4M
read_buffer_size = 1M
innodb_data_home_dir = /data/mysql-data/
innodb_data_file_path = InnoDB:100M:autoextend
设置变量 = innodb_buffer_pool_size=500M
设置变量 = innodb_additional_mem_pool_size=10M
设置变量 = max_connections=500
innodb_log_group_home_dir = /data/mysql-data
设置变量 = innodb_log_file_size=20M
设置变量 = innodb_log_buffer_size=8M …

mysql replication

8
推荐指数
1
解决办法
3859
查看次数

什么是 RFID 的合适数据类型,格式是否有标准定义?

我有一个数据库,可以根据嵌入鞋子中的 RFID 标签跟踪人们。此数据到达VARCHAR(MAX)与其他数据混合在一起的列中,没有特定的顺序。到目前为止,所有 RFID 值的格式如下:

AnnnnnnnnAnnAAAA  (where A = 0-9  and n = A-Z)
Run Code Online (Sandbox Code Playgroud)

我正在写一份报告,从这些消息中提取 RFID 并将它们存储在他们自己的表中。只要 RFID 遵循相同的模式,我就可以找到它们。如果 RFID 格式发生变化,我的提取过程将失败。

RFID标签有标准格式吗?哪种数据类型最适合存储 RFID 标签?

我现在就去VARCHAR(20)

sql-server datatypes

8
推荐指数
2
解决办法
3764
查看次数