我们的 PostgreSQL 9.0 Windows 生产服务器空间不足。
在我们的 100GB 数据库中,我们有一个包含 TOAST 二进制数据的大表。我们删除了一些行,需要将空间归还给 O/S。
我们没有足够的空间做表的全部重写,所有我的读书CLUSTER,VACUUM FULL而且pg_repack是他们需要重写表。到目前为止,我的 google-fu 还不足以找到其他任何东西。
一些停机时间是可以接受的(约 2 小时),但是备份/恢复对于我们的目的来说太慢了,我也不热衷于在步骤之间删除数据库。
问题:如何在不进行全表重写的情况下将磁盘空间返回给 O/S?
(这是一个生产服务器,因此任何解决方案都必须有信誉/推荐/支持等)。
(PS 可以使用一个单独的更大的磁盘,如果可以以某种方式在其上重建表。表空间?)
我们一直在加固我们的服务器,最近由于贵宾犬攻击,我们禁用了 SSL 3.0。当我在我们的其中一台测试服务器上执行此操作时,SQL Server 在重新启动后无法启动。
通过注册表禁用 TLS 1.0 和 SSL 3.0,我已经能够在 Windows Server 2012 和 Windows 7 上重现这一点。我在服务器机器上使用 SQL Server 2012。在我的 Windows 7 机器上,sql server 2012 和 sql server 2005 不会以禁用的方式启动。
这些是我得到的事件日志错误:
应用程序日志:
(28/10/2014 8:38:54 AM) SQL Server 无法生成 FRunCM 线程。检查 SQL Server 错误日志和 Windows 事件日志以获取有关可能的相关问题的信息。(28/10/2014 8:38:54 AM) 由于网络库中的内部错误,无法启动网络库。要确定原因,请查看错误日志中紧接此错误之前的错误。(28/10/2014 8:38:54 AM) TDSSNIClient 初始化失败,错误为 0x80090331,状态代码为 0x1。(28/10/2014 8:38:54 AM) TDSSNIClient 初始化失败,错误为 0x80090331,状态代码为 0x80。
系统日志
(28/10/2014 8:38:54 AM) SQL Server (MSSQLSERVER) 服务因特定于服务的错误 %%-2146893007 而终止。(28/10/2014 8:38:54 AM) 创建 SSL 服务器凭据时发生致命错误。内部错误状态为 10013。
有谁知道我们可以禁用 SSL 3.0 …
我有 Windows 10 训练营。我已经安装了最新版本的 MySQL 社区服务器。我还在 IIS 上安装了 WordPress。MacBook 有 16Gb 的内存。这是我的配置文件
[client]
no-beep
# pipe
# socket=0.0
port=3306
[mysql]
default-character-set=utf8
[mysqld]
port=3306
datadir=C:/ProgramData/MySQL/MySQL Server 5.6/Data
character-set-server=utf8
]default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
log-output=FILE
general-log=0
general_log_file="DESKTOP-F1OO1LC.log"
slow-query-log=1
slow_query_log_file="DESKTOP-F1OO1LC-slow.log"
long_query_time=10
log-error="DESKTOP-F1OO1LC.err"
server-id=1
max_connections=151
query_cache_size=0
table_open_cache=2000
tmp_table_size=90M
thread_cache_size=10
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=171M
key_buffer_size=8M
read_buffer_size=64K
read_rnd_buffer_size=256K
innodb_additional_mem_pool_size=13M
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size=7M
innodb_buffer_pool_size = 4G
innodb_log_file_size=48M
innodb_thread_concurrency=17
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
back_log=80
flush_time=0
join_buffer_size=256K
max_allowed_packet=4M
max_connect_errors=100
open_files_limit=4161
query_cache_type=0
sort_buffer_size=256K
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000
Run Code Online (Sandbox Code Playgroud)
有什么明显的我做错了或者你需要更多信息吗?我试过遵循各种指南,但对所有可用的选项感到迷失。
目前正在查看每秒最多 …
当我第一次运行查询时,执行需要 x 毫秒。当我第二次运行它时,它花费的时间要少得多。我假设这个机制涉及一些缓存,但我需要知道我的查询的真实速度是多少。
顺便说一句,我在 Windows (XAMPP) 中使用 Apache、MySQL 和 PHP。
我们的磁盘空间不足。
该服务器有一个 420 GB 的 HDD,并运行一个 Microsoft SQL Server 和一个 Oracle Server(10g)。
Oracle 服务器最多使用 315 GB 空间。我们刚刚加载了一个 100GB 的 Microsoft SQL Server 数据库。现在我们有大约 5GB 可用空间,需要备份 SQL Server 数据库。
首先,我们尝试将备份移动到另一个驱动器,但这不起作用。
然后我们尝试调整我们的 Oracle Server 的分配空间的大小,它由 6 个文件组成,每个文件 20GB,每个文件使用大约 4GB。当我们尝试将此文件大小调整为 10GB 时,我们收到 Oracle 错误 ORA-03297,但显示已使用 4GB。经过多次尝试,我们可以将一些文件缩短到 16/17/18GB,但我们仍然需要更多空间。
是否有解决方案如何将 Oracle 文件的大小调整为每个 10GB?
我们尝试过 Coalesce 并释放未使用的空间,但这也不起作用。
我这里有一个非常奇怪的情况。我有一个运行 ubuntu 8.10 和 MySQL 服务器的 linux 机器,上面安装了 Wordpress,为我们公司托管了一个内部博客。运行它的机器已经坏了,但我能够将驱动器放入机箱中并访问文件并恢复 MySQL 数据文件夹。我们主要是一家 Windows 公司,我的 Linux 经验非常有限。在这台机器崩溃之前,我们正在尝试将此博客移动到运行 PHP for IIS 的 Windows 虚拟机;并且我们在 MySQL 5.1 上启动并运行了 Wordpress 数据库的旧副本。我目前正在尝试从 linux MySQL 数据文件夹中检索最新数据并将其导入当前数据库,但我遇到了问题。
到目前为止的问题:1) 我不知道 linux 机器上安装了哪个版本的 MySQL 2) 我在 linux MySQL 数据文件夹上看到 ib_logfile0、ib_logfile1 和 ibdata1,但不确定它是否真的在运行 InnoDB我的 wordpress 文件夹中也有 .frm、.myd 和 .myi 文件
如果我能找出 linux box MySQL 的版本,我也许可以创建一个虚拟机来运行 linux 和 MySQL,这样我就可以复制数据文件夹,然后进行导出转储;除非其他人知道一种更简单的方法将数据放入我当前的数据库中。
对此问题的任何帮助或指导将不胜感激。
谢谢,内森
先介绍一下背景:
如果所讨论的数据库是按照 DBA 的思维方式构建的,则下面描述的问题根本不存在:
仅通过视图和存储过程访问数据 --> 用户无需对表具有任何权限即可使用该应用程序.
但问题的数据库是一个“开发商的心态”制作的,所以应用程序发送INSERT,UPDATE并DELETE查询到服务器- >它需要有足够的权限的帐户才能够访问数据库。
显然每个人都同意 Windows 身份验证比 SQL Server 身份验证更安全,例如这里:
我的问题:
当数据库是以开发人员的心态构建时,这仍然有效,如上所述?(当用户需要INSERT/ UPDATE/DELETE对表的权限)
为什么我问这个:
我们的主要应用程序是一个带有 SQL Server 数据库的 MS Access 前端。目前,我们正在使用 Windows 身份验证,但我正在考虑切换到 SQL 身份验证。
我看到的问题:
每个人都使用自己的 Windows 帐户连接到数据库。
因此,为了使应用程序工作时,Windows帐户所有人和他们的狗需要有INSERT/ UPDATE/DELETE该表的权限。
这意味着这里的每个人都可以创建一个新的 Access 数据库,从我们的主数据库中链接几个表并编辑(或删除)它们。
是的,我们有一些真正知道如何做到这一点的高级用户。
从这个角度来看,我很难理解为什么在推荐 Windows 身份验证而不是 SQL 身份验证时显然没有考虑这种安全威胁。
对我来说,任何人都可以使用他的 Windows …
我在我的 Mac 上的 Centos VM 上安装了 11g。我已经准备好一切并在服务器上工作。我已经包含了我在 cenos 上运行的以下命令。
$lsnrctl 状态
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 23-JUN-2014 14:49:41
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hayer)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 23-JUN-2014 14:03:58
Uptime 0 days 0 hr. 45 min. 42 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/hayer/listener/alert/log.xml
Listening Endpoints …Run Code Online (Sandbox Code Playgroud) 我尝试运行这个简单的命令:
CREATE TABLESPACE tb_rec
OWNER postgres
LOCATION 'd:/tablespaces';
Run Code Online (Sandbox Code Playgroud)
但是,未创建表空间,我收到以下消息:
ERREUR: n'a pas pu configurer les droits du répertoire « d:/tablespaces » : Permission denied
Run Code Online (Sandbox Code Playgroud)
对于非法语人士:
ERROR: was not able to configure the directory rights « d:/tablespaces » : Permission denied
Run Code Online (Sandbox Code Playgroud)
我没有找到任何 postgres 用户 ( net user) 并且我被困在这个......
如何将目录访问权限授予 postgres?
Windows 7
Postgres 9.2
windows ×10
mysql ×3
sql-server ×3
disk-space ×2
linux ×2
postgresql ×2
connectivity ×1
innodb ×1
mysql-5.6 ×1
oracle ×1
oracle-10g ×1
patching ×1
php ×1
query ×1
restore ×1
security ×1
sqlplus ×1
ssl ×1
tablespaces ×1
testing ×1
vacuum ×1
windows-10 ×1