小编Rol*_*DBA的帖子

在同一台物理服务器上运行复制是不明智的吗?

我正在考虑为我的数据库设置主从复制。从服务器将用于冗余和可能的报告服务器。但是,我遇到的最大问题之一是我们的数据中心已经用尽了电源。因此,添加另一台物理服务器不是一种选择。

就 CPU 而言,我们现有的数据库服务器的利用率相当低(四核上的平均负载从未真正超过 1)。所以主要的想法是放入一些新驱动器并将内存加倍(从 8GB 到 16),并在同一台物理机器上运行第二个 mysql 实例。每个实例都有单独的数据库磁盘。

这个想法有什么问题吗?

编辑(更多信息):我(幸运的是)从来没有发生过任何足以关闭服务器的事情,但我正在努力提前计划。我们当然有可以从中恢复的每晚备份。但我认为,如果主服务器的驱动器出现故障(如果整台机器出现故障,显然不会),将冗余数据放在单独的磁盘上会提供更快的解决方案。

至于报告方面,我们要报告的任何表都是 MyIsam。因此,在正在写入的同一表上进行昂贵的读取可能会使服务器陷入困境。我的假设是,只要我们在主服务器上投入足够的 RAM(因为 cpu 负载还不是问题),有一个要报告的从服务器就不会影响主服务器。

mysql myisam replication

13
推荐指数
2
解决办法
4433
查看次数

有关操作/管理 MongoDB 的良好资源

学习如何操作和管理 MongoDB的最佳资源是什么?

有很多资源可以针对它进行开发 - 当您拥有足够的开发能力并且确实需要过滤掉这些噪音时,这实际上会产生问题。对于还没有能力聘请 DBA 的开发人员,我们需要在保持我们的 Mongo 集群稳定、高性能等方面做得相当好。除了常见问题解答和快速入门指南之外,还有其他好的信息存储库吗?值得关注的好博客等?

mongodb

13
推荐指数
2
解决办法
739
查看次数

在 SQL Server 2008 中读取 XML 文件

如何读取 XML 文件并将 XML 中的数据存储到 SQL Server 2008 中的表中?

sql-server-2008 xml sql-server

13
推荐指数
2
解决办法
4万
查看次数

Oracle 的哪些特性使其成为小型项目的有吸引力的选择?

鉴于 Oracle 的许可处理[a](以及在较小程度上的成本),我一直想知道选择 Oracle 而不是 PostgreSQL 或 MySQL 的决定因素是什么。

我的公司几乎总是选择 Oracle(在可能的情况下使用 XE),即使对于只有一个简单的 Windows 服务器盒运行数据库而没有任何专门的数据库管理的小型项目也是如此。(请注意,小的并不意味着数据将总是适合的Oracle XE的相当小尺寸的限制。)

我一直质疑这个选择,但它的好处是我们至少只接触一种数据库产品。

尽管如此,对于一个新项目,您需要一个 RDBMS,但数据库的项目和范围非常小,基于在简单的 Windows 服务器上运行的 Oracle 的哪些独特特性(没有太多的专用管理),您会选择 Oracle 而不是另一个关系数据库?

附加上下文:我们的许多数据库部署都在客户站点运行,我们称之为“低管理”模式。也就是说,数据库设置一次。在现场对其正确行为和性能进行了一些初步测试。在此之后,数据库就在其上运行。没有进行常规管理。只有当出现问题时,技术人员(不是专门的 DBA)才会检查数据库,试图找出发生了什么。备份主要是作为离线备份完成的。在某些项目中,客户甚至不关心是否涉及 RDBMS。他们只是将他们的应用程序视为一个有效(或无效)的黑匣子。

[a] :在我工作的地方,几个项目经理需要反复几个月才能为小项目获得适当的许可,因为如果收入很小,当地的 Oracle 代表对销售他们的产品并不十分感兴趣。

oracle database-recommendation feature-comparison

13
推荐指数
4
解决办法
2783
查看次数

精简大型 SQL Server 数据库

我有一个大型 SQL Server 2008 测试数据库 (1.9TB),我想减小它在磁盘上的大小。我一直在删除未使用的表,并清除大量数据,但它在磁盘上的大小并没有减少。我该怎么办?

我查看了 SSMS 中的 Shrink 任务,但选项令人眼花缭乱。我是收缩数据库还是文件?有什么选择?

在此处输入图片说明 在此处输入图片说明

sql-server

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

mysqldump 可以转储触发器和程序吗?

有没有办法制作一个 mysqldump 来保存指定数据库中的所有触发器和过程?

前段时间我读到这mysqldump也将保存我的触发器,但它看起来不像。我的第二个相关问题是如果触发器存在,我如何检入 sql 文件?

mysql mysqldump trigger backup stored-procedures

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

包相对于独立的过程和函数有什么好处?

寻找一个规范的答案来回答为什么包应该在 Oracle 数据库中比独立的过程和函数更受欢迎。

oracle plsql

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

mysqldump 命令是否还会备份 DB 中存在的所有视图,或者是否有特殊命令?

我正在尝试备份我的整个数据库以及视图。我将使用mysqldump命令。我想知道这是否会复制所有视图,或者我将不得不使用单独的命令。

请给我一个答案。任何帮助是极大的赞赏。

mysql mysqldump backup view

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

通过网络批量插入

有人可以帮我解决这些问题吗?

BULK INSERT DATABESE01.dbo.TABLE01
FROM '\\COMPUTER01\FOLDER01\TextFile.txt'
WITH
(
    FIELDTERMINATOR = ' ',
    rowterminator = '\n',
    tablock
)
Run Code Online (Sandbox Code Playgroud)

错误显示,无法打开:

无法批量插入,因为无法打开文件“\SERVERNAME\FOLDERNAME\textFile.txt”。操作系统错误代码 5(访问被拒绝。)

该路径位于网络上的另一台计算机上。

sql-server bulk-insert

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

将 600GB 表索引键数据类型从 INT 更改为 BIGINT 的最快方法

我需要将 600GB MySQL 表中的数据类型从 INT 更改为 BIGINT。该列具有唯一索引。我可能对 unsigned INT 很好,但我认为更改为 unsigned 或 BIGINT 将几乎相同的痛苦。该表的引擎是 InnoDB。什么会更容易:

  1. 更改表
  2. 复制结构和 INSERT INTO (SELECT *)
  3. 转储表和更改转储文件表定义
  4. 还要别的吗?

更新:根据要求,MySQL 5.5.15 版,没有外键并创建表:

 CREATE TABLE `tbl` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `user_id` int(11) NOT NULL,
    `created_at` datetime NOT NULL,
    `tid` bigint(20) NOT NULL,
    `t` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
    `f` tinyint(1) NOT NULL,
    `i_id` bigint(20) NOT NULL,
    `ir_id` int(11) NOT NULL,
    `r_c` int(11) NOT NULL,
    `r` tinyint(1) NOT NULL,
    `e` text CHARACTER SET …
Run Code Online (Sandbox Code Playgroud)

mysql database-design alter-table mysql-5.5

13
推荐指数
1
解决办法
3653
查看次数